Flesh out wlr_surface state lifecycle a bit

Sprinked some TODOs around for future work
This commit is contained in:
Drew DeVault 2017-08-09 23:34:50 -04:00
parent a5d1b6a2c9
commit 750d0ad458
2 changed files with 75 additions and 24 deletions

View file

@ -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;