GPU_texture : Add RG8 format.

This commit is contained in:
Clément Foucault 2017-08-18 14:22:40 +02:00
parent 95b1b7756d
commit 91ab64f38f
3 changed files with 8 additions and 5 deletions

View File

@ -397,16 +397,16 @@ static void drw_texture_get_format(
case DRW_TEX_RGBA_16: *r_data_type = GPU_RGBA16F; break;
case DRW_TEX_RGB_16: *r_data_type = GPU_RGB16F; break;
case DRW_TEX_RGB_11_11_10: *r_data_type = GPU_R11F_G11F_B10F; break;
case DRW_TEX_RG_8: *r_data_type = GPU_RG8; break;
case DRW_TEX_RG_16: *r_data_type = GPU_RG16F; break;
case DRW_TEX_RG_32: *r_data_type = GPU_RG32F; break;
case DRW_TEX_R_8: *r_data_type = GPU_R8; break;
case DRW_TEX_R_16: *r_data_type = GPU_R16F; break;
case DRW_TEX_R_32: *r_data_type = GPU_R32F; break;
#if 0
case DRW_TEX_RGBA_32: *data_type = GPU_RGBA32F; break;
case DRW_TEX_RGB_8: *data_type = GPU_RGB8; break;
case DRW_TEX_RGB_32: *data_type = GPU_RGB32F; break;
case DRW_TEX_RG_8: *data_type = GPU_RG8; break;
case DRW_TEX_RGBA_32: *r_data_type = GPU_RGBA32F; break;
case DRW_TEX_RGB_8: *r_data_type = GPU_RGB8; break;
case DRW_TEX_RGB_32: *r_data_type = GPU_RGB32F; break;
#endif
case DRW_TEX_DEPTH_16: *r_data_type = GPU_DEPTH_COMPONENT16; break;
case DRW_TEX_DEPTH_24: *r_data_type = GPU_DEPTH_COMPONENT24; break;
@ -2210,6 +2210,7 @@ static GPUTextureFormat convert_tex_format(
switch (fbo_format) {
case DRW_TEX_R_16: *r_channels = 1; return GPU_R16F;
case DRW_TEX_R_32: *r_channels = 1; return GPU_R32F;
case DRW_TEX_RG_8: *r_channels = 2; return GPU_RG8;
case DRW_TEX_RG_16: *r_channels = 2; return GPU_RG16F;
case DRW_TEX_RG_32: *r_channels = 2; return GPU_RG32F;
case DRW_TEX_RGBA_8: *r_channels = 4; return GPU_RGBA8;

View File

@ -69,6 +69,7 @@ typedef enum GPUTextureFormat {
GPU_RG16F,
GPU_R32F,
GPU_R16F,
GPU_RG8,
GPU_R8,
#if 0
GPU_RGBA32I,
@ -83,7 +84,6 @@ typedef enum GPUTextureFormat {
GPU_RG16,
GPU_RG16I,
GPU_RG16UI,
GPU_RG8,
GPU_RG8I,
GPU_RG8UI,
GPU_R32I,

View File

@ -167,6 +167,7 @@ static GLenum gpu_texture_get_format(
break;
case GPU_DEPTH_COMPONENT16:
case GPU_R16F:
case GPU_RG8:
*bytesize = 2;
break;
case GPU_R8:
@ -189,6 +190,7 @@ static GLenum gpu_texture_get_format(
case GPU_RGBA8: return GL_RGBA8;
case GPU_R32F: return GL_R32F;
case GPU_R16F: return GL_R16F;
case GPU_RG8: return GL_RG8;
case GPU_R8: return GL_R8;
/* Special formats texture & renderbuffer */
case GPU_R11F_G11F_B10F: return GL_R11F_G11F_B10F;