summaryrefslogtreecommitdiff
path: root/src/gralloc/gralloc_mod.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gralloc/gralloc_mod.h')
-rw-r--r--src/gralloc/gralloc_mod.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/gralloc/gralloc_mod.h b/src/gralloc/gralloc_mod.h
new file mode 100644
index 0000000000..e06ec864ad
--- /dev/null
+++ b/src/gralloc/gralloc_mod.h
@@ -0,0 +1,65 @@
+#ifndef _GRALLOC_DRM_H
+#define _GRALLOC_DRM_H
+
+#include <hardware/gralloc.h>
+#include <xf86drm.h>
+#include <xf86drmMode.h>
+#include <pthread.h>
+
+struct drm_module_t {
+ gralloc_module_t base;
+
+ pthread_mutex_t mutex;
+
+ /* initialized by drm_gem_init */
+ int fd;
+
+ /* initialized by drm_kms_init */
+ drmModeResPtr resources;
+ uint32_t crtc_id;
+ uint32_t connector_id;
+ drmModeModeInfo mode;
+ int xdpi, ydpi;
+ int format;
+#ifdef DRM_MODE_FEATURE_DIRTYFB
+ drmModeClip clip;
+#endif
+
+ /* initialized by drm_gem_drv_init */
+ void *gem;
+ int mode_dirty_fb;
+ int mode_page_flip;
+ int swap_interval;
+ int vblank_secondary;
+
+ int first_post;
+};
+
+static inline int
+drm_mod_get_bpp(int format)
+{
+ int bpp;
+
+ switch (format) {
+ case HAL_PIXEL_FORMAT_RGBA_8888:
+ case HAL_PIXEL_FORMAT_RGBX_8888:
+ case HAL_PIXEL_FORMAT_BGRA_8888:
+ bpp = 4;
+ break;
+ case HAL_PIXEL_FORMAT_RGB_888:
+ bpp = 3;
+ break;
+ case HAL_PIXEL_FORMAT_RGB_565:
+ case HAL_PIXEL_FORMAT_RGBA_5551:
+ case HAL_PIXEL_FORMAT_RGBA_4444:
+ bpp = 2;
+ break;
+ default:
+ bpp = 0;
+ break;
+ }
+
+ return bpp;
+}
+
+#endif /* _GRALLOC_DRM_H */