struct tw_surface


#include <surface.h>

struct tw_surface
    // fields

    struct wl_resource* resource;
    const struct tw_allocator* alloc;
    struct tw_surface_buffer buffer;
    struct tw_view* pending;
    struct tw_view* current;
    struct tw_view* previous;
    struct tw_view surface_states[3];
    struct wl_list links[MAX_VIEW_LINKS];
    struct wl_list layer_link;
    struct wl_list frame_callbacks;
    struct wl_list subsurfaces;
    struct wl_list subsurfaces_pending;
    bool is_mapped;
    float x;
    float y;
    pixman_rectangle32_t xywh;
    pixman_region32_t dirty;
    struct tw_mat3 transform;
    struct tw_mat3 inverse_transform;
    struct tw_surface::@60 geometry;
    const char* name;
    void* commit_private;
    tw_surface_commit_cb_t commit;
    struct tw_surface::@61 role;
    struct wl_signal frame;
    struct wl_signal commit;
    struct wl_signal destroy;
    struct wl_signal dirty;
    struct tw_surface::@62 signals;
    void* user_data;

Detailed Documentation


struct tw_surface_buffer buffer

the tw_surface::buffer is used to present; should stay available from imported to destroy of the surface

struct wl_list links[MAX_VIEW_LINKS]

many types may need to use one of the links, eg: backend_ouput, layer, compositor, input. Plane.

struct tw_mat3 transform

map from (-1,-1,1,1) to global coordinates in a Y-down coordinate system

unnamed-struct geometry

transform of the view