| #include "AndroidCommon.hpp" |
| |
| #include "../../Common/DebugAndroid.hpp" |
| |
| #include <GLES/glext.h> |
| #include <system/graphics.h> |
| |
| #define GL_RGB565 0x8D62 |
| #define SW_YV12_BT601 0x32315659 // YCrCb 4:2:0 Planar, 16-byte aligned, BT.601 color space, studio swing |
| #define SW_YV12_BT709 0x48315659 // YCrCb 4:2:0 Planar, 16-byte aligned, BT.709 color space, studio swing |
| #define SW_YV12_JFIF 0x4A315659 // YCrCb 4:2:0 Planar, 16-byte aligned, BT.601 color space, full swing |
| |
| GLenum GLPixelFormatFromAndroid(int halFormat) |
| { |
| switch(halFormat) |
| { |
| case HAL_PIXEL_FORMAT_RGBA_8888: |
| return GL_RGBA; |
| case HAL_PIXEL_FORMAT_RGBX_8888: |
| return GL_RGB; |
| case HAL_PIXEL_FORMAT_RGB_888: |
| return GL_RGB; |
| case HAL_PIXEL_FORMAT_BGRA_8888: |
| return GL_BGRA_EXT; |
| case HAL_PIXEL_FORMAT_RGB_565: |
| return GL_RGB565; |
| case HAL_PIXEL_FORMAT_YV12: |
| return SW_YV12_BT601; |
| default: |
| ALOGE("%s badness unsupported HAL format=%x", __FUNCTION__, halFormat); |
| } |
| |
| return GL_RGBA; |
| } |
| |
| GLenum GLPixelTypeFromAndroid(int halFormat) |
| { |
| switch(halFormat) |
| { |
| case HAL_PIXEL_FORMAT_RGBA_8888: |
| case HAL_PIXEL_FORMAT_RGBX_8888: |
| case HAL_PIXEL_FORMAT_RGB_888: |
| case HAL_PIXEL_FORMAT_BGRA_8888: |
| return GL_UNSIGNED_BYTE; |
| case HAL_PIXEL_FORMAT_RGB_565: |
| return GL_UNSIGNED_SHORT_5_6_5; |
| case HAL_PIXEL_FORMAT_YV12: |
| return GL_UNSIGNED_BYTE; |
| default: |
| ALOGE("%s badness unsupported HAL format=%x", __FUNCTION__, halFormat); |
| } |
| |
| return GL_UNSIGNED_BYTE; |
| } |