static bool compositor_draw_surface(surface_t *surface)
static rect_t prevCursorRect
static region_t invalidRegion
void compositor_invalidate(const rect_t *rect)
static void compositor_draw_fullscreen(compositor_ctx_t *ctx)
void compositor_init(void)
void compositor_draw(compositor_ctx_t *ctx)
static void compositor_draw_all(compositor_ctx_t *ctx)
#define LIST_FOR_EACH_REVERSE(elem, list, member)
Iterates over a list in reverse.
#define NULL
Pointer error value.
#define RECT_FIT(rect, parent)
#define RECT_INIT_DIM(x, y, width, height)
#define RECT_INIT(left, top, right, bottom)
static void region_intersect(region_t *region, region_t *out, const rect_t *clipRect)
static bool region_is_empty(const region_t *region)
static void region_add(region_t *region, const rect_t *rect)
static void region_clear(region_t *region)
static void region_subtract(region_t *region, const rect_t *subRect)
void screen_transfer(surface_t *surface, const rect_t *rect)
uint64_t screen_height(void)
void screen_transfer_blend(surface_t *surface, const rect_t *rect)
void screen_transfer_frontbuffer(surface_t *surface, const rect_t *rect)
uint64_t screen_width(void)
#define SURFACE_SCREEN_RECT(surface)
rect_t rects[MAX_REGION_RECTS]