mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-01 22:58:38 -04:00
Flesh out wlr_surface state lifecycle a bit
Sprinked some TODOs around for future work
This commit is contained in:
parent
a5d1b6a2c9
commit
750d0ad458
2 changed files with 75 additions and 24 deletions
|
|
@ -1,21 +1,40 @@
|
|||
#ifndef _WLR_TYPES_WLR_SURFACE_H
|
||||
#define _WLR_TYPES_WLR_SURFACE_H
|
||||
|
||||
#include <wayland-server.h>
|
||||
#include <pixman.h>
|
||||
#include <stdint.h>
|
||||
|
||||
struct wlr_frame_callback {
|
||||
struct wl_resource *resource;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
struct wlr_surface {
|
||||
struct wl_resource *pending_buffer;
|
||||
bool pending_attached;
|
||||
bool attached; // whether the surface currently has a buffer attached
|
||||
#define WLR_SURFACE_INVALID_BUFFER 1
|
||||
#define WLR_SURFACE_INVALID_SURFACE_DAMAGE 2
|
||||
#define WLR_SURFACE_INVALID_BUFFER_DAMAGE 4
|
||||
#define WLR_SURFACE_INVALID_OPAQUE_REGION 8
|
||||
#define WLR_SURFACE_INVALID_INPUT_REGION 16
|
||||
#define WLR_SURFACE_INVALID_TRANSFORM 16
|
||||
#define WLR_SURFACE_INVALID_SCALE 16
|
||||
|
||||
struct wlr_texture *texture;
|
||||
const char *role; // the lifetime-bound role or null
|
||||
struct wlr_surface_state {
|
||||
uint32_t invalid;
|
||||
struct wl_resource *buffer;
|
||||
int32_t sx, sy;
|
||||
pixman_region32_t surface_damage, buffer_damage;
|
||||
pixman_region32_t opaque, input;
|
||||
uint32_t transform;
|
||||
int32_t scale;
|
||||
};
|
||||
|
||||
struct wlr_surface {
|
||||
struct wl_resource *resource;
|
||||
struct wlr_texture *texture;
|
||||
struct wlr_surface_state current, pending;
|
||||
const char *role; // the lifetime-bound role or null
|
||||
|
||||
float buffer_to_surface_matrix[16];
|
||||
float surface_to_buffer_matrix[16];
|
||||
|
||||
struct {
|
||||
struct wl_signal destroy;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue