diff options
Diffstat (limited to 'hwc/rgz_2d.h')
-rw-r--r-- | hwc/rgz_2d.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/hwc/rgz_2d.h b/hwc/rgz_2d.h index fb1b86b..3030c1e 100644 --- a/hwc/rgz_2d.h +++ b/hwc/rgz_2d.h @@ -26,9 +26,13 @@ /* * Maximum number of layers the regionizer will accept as input. Account for an - * additional 'background layer' to generate empty subregion rectangles. + * additional 'background layer' to generate empty subregion rectangles and + * a damage region as well. */ -#define RGZ_INPUT_MAXLAYERS (RGZ_MAXLAYERS - 1) +#define RGZ_INPUT_MAXLAYERS (RGZ_MAXLAYERS - 2) + +/* Number of framebuffers to track */ +#define RGZ_NUM_FB 2 /* * Regionizer data @@ -51,6 +55,7 @@ struct rgz_in_hwc { int flags; int layerno; hwc_layer_t *layers; + hwc_layer_extended_t *extlayers; struct bvsurfgeom *dstgeom; }; @@ -61,6 +66,10 @@ typedef struct rgz_in_params { } data; } rgz_in_params_t; +typedef struct rgz_ext_layer_list { + hwc_layer_extended_t layers[RGZ_INPUT_MAXLAYERS]; +} rgz_ext_layer_list_t; + /* * Validate whether the HWC layers can be rendered * @@ -263,9 +272,9 @@ typedef struct blit_rect { typedef struct rgz_layer { hwc_layer_t hwc_layer; + uint32_t identity; int buffidx; int dirty_count; - void* dirty_hndl; } rgz_layer_t; typedef struct rgz_fb_state { @@ -289,6 +298,9 @@ struct rgz { int nhregions; int state; rgz_fb_state_t cur_fb_state; + int fb_state_idx; /* Target framebuffer index. Points to the fb where the blits will be applied to */ + rgz_fb_state_t fb_states[RGZ_NUM_FB]; /* Storage for previous framebuffer geometry states */ + blit_rect_t damaged_area; /* Area of the screen which will be redrawn unconditionally */ }; #endif /* __RGZ_2D__ */ |