switch (internal_format) {
case GL_RGBA32F_ARB:
case GL_RGBA16F_ARB:
+ case GL_RGBA16:
case GL_RGBA8:
case GL_RGB10_A2:
case GL_SRGB8_ALPHA8:
break;
case GL_RGB32F:
case GL_RGB16F:
+ case GL_RGB16:
case GL_R11F_G11F_B10F:
case GL_RGB8:
case GL_RGB10:
break;
case GL_RG32F:
case GL_RG16F:
+ case GL_RG16:
case GL_RG8:
format = GL_RG;
break;
case GL_R32F:
case GL_R16F:
+ case GL_R16:
case GL_R8:
format = GL_RED;
break;
case GL_R16F:
type = GL_FLOAT;
break;
+ case GL_RGBA16:
+ case GL_RGB16:
+ case GL_RG16:
+ case GL_R16:
+ type = GL_UNSIGNED_SHORT;
+ break;
case GL_SRGB8_ALPHA8:
case GL_SRGB8:
case GL_RGBA8:
case GL_RGB565:
bytes_per_pixel = 2;
break;
+ case GL_RGBA16:
+ bytes_per_pixel = 8;
+ break;
+ case GL_RGB16:
+ bytes_per_pixel = 6;
+ break;
+ case GL_RG16:
+ bytes_per_pixel = 4;
+ break;
+ case GL_R16:
+ bytes_per_pixel = 2;
+ break;
default:
// TODO: Add more here as needed.
assert(false);