summaryrefslogtreecommitdiffstats
path: root/gralloc_drm_priv.h
diff options
context:
space:
mode:
Diffstat (limited to 'gralloc_drm_priv.h')
-rw-r--r--gralloc_drm_priv.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/gralloc_drm_priv.h b/gralloc_drm_priv.h
index dc7d505..eb4338c 100644
--- a/gralloc_drm_priv.h
+++ b/gralloc_drm_priv.h
@@ -49,6 +49,25 @@ enum hdmi_output_mode {
struct gralloc_drm_plane_t {
drmModePlane *drm_plane;
+
+ /* plane has been set to display a layer */
+ uint32_t active;
+
+ /* handle to display */
+ buffer_handle_t handle;
+
+ /* position, crop and scale */
+ uint32_t src_x;
+ uint32_t src_y;
+ uint32_t src_w;
+ uint32_t src_h;
+ uint32_t dst_x;
+ uint32_t dst_y;
+ uint32_t dst_w;
+ uint32_t dst_h;
+
+ /* previous buffer, for refcounting */
+ struct gralloc_drm_bo_t *prev;
};
struct gralloc_drm_output
@@ -106,6 +125,12 @@ struct gralloc_drm_t {
struct drm_module_t {
gralloc_module_t base;
+ /* HWC plane API */
+ int (*hwc_reserve_plane) (struct gralloc_drm_t *mod, buffer_handle_t handle,
+ uint32_t dst_x, uint32_t dst_y, uint32_t dst_w, uint32_t dst_h,
+ uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h);
+ void (*hwc_disable_planes) (struct gralloc_drm_t *mod);
+
pthread_mutex_t mutex;
struct gralloc_drm_t *drm;
};