diff options
author | Chia-I Wu <olv@lunarg.com> | 2010-10-11 16:06:47 +0800 |
---|---|---|
committer | Chia-I Wu <olvaffe@gmail.com> | 2011-03-16 20:18:39 +0800 |
commit | 2b1f1af17f8e8f199cb0dd4f7f1a225529b357c5 (patch) | |
tree | 938719b6cb9f40fba9a9af658b7223bdf0aa4f7e /src/gralloc/gralloc_mod.h | |
parent | 8e698931d730242cdb88fd7281903a10c6576d09 (diff) |
android: Add DRM-based gralloc.
Diffstat (limited to 'src/gralloc/gralloc_mod.h')
-rw-r--r-- | src/gralloc/gralloc_mod.h | 65 |
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 */ |