mirror of https://github.com/bjornbytes/lovr.git
Add more texture formats;
This commit is contained in:
parent
5f06ca44c9
commit
98e0522c4f
|
@ -131,8 +131,14 @@ const char* StencilActions[] = {
|
|||
const char* TextureFormats[] = {
|
||||
[FORMAT_RGB] = "rgb",
|
||||
[FORMAT_RGBA] = "rgba",
|
||||
[FORMAT_RGBA4] = "rgba4",
|
||||
[FORMAT_RGBA16F] = "rgba16f",
|
||||
[FORMAT_RGBA32F] = "rgba32f",
|
||||
[FORMAT_R16F] = "r16f",
|
||||
[FORMAT_R32F] = "r32f",
|
||||
[FORMAT_RGB565] = "rgb565",
|
||||
[FORMAT_RGB5A1] = "rgb5a1",
|
||||
[FORMAT_RGB10A2] = "rgb5a2",
|
||||
[FORMAT_RG11B10F] = "rg11b10f",
|
||||
[FORMAT_DXT1] = "dxt1",
|
||||
[FORMAT_DXT3] = "dxt3",
|
||||
|
|
|
@ -122,10 +122,21 @@ TextureData* lovrTextureDataGetBlank(int width, int height, uint8_t value, Textu
|
|||
switch (format) {
|
||||
case FORMAT_RGB: pixelSize = 3; break;
|
||||
case FORMAT_RGBA: pixelSize = 4; break;
|
||||
case FORMAT_RGBA4: pixelSize = 2; break;
|
||||
case FORMAT_RGBA16F: pixelSize = 8; break;
|
||||
case FORMAT_RGBA32F: pixelSize = 16; break;
|
||||
case FORMAT_R16F: pixelSize = 2; break;
|
||||
case FORMAT_R32F: pixelSize = 4; break;
|
||||
case FORMAT_RGB565: pixelSize = 2; break;
|
||||
case FORMAT_RGB5A1: pixelSize = 2; break;
|
||||
case FORMAT_RGB10A2: pixelSize = 4; break;
|
||||
case FORMAT_RG11B10F: pixelSize = 4; break;
|
||||
default: lovrThrow("Unable to create a blank compressed texture");
|
||||
|
||||
case FORMAT_DXT1:
|
||||
case FORMAT_DXT3:
|
||||
case FORMAT_DXT5:
|
||||
lovrThrow("Unable to create a blank compressed texture");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
lovrAssert(width > 0 && height > 0, "TextureData dimensions must be positive");
|
||||
|
|
|
@ -16,8 +16,14 @@
|
|||
typedef enum {
|
||||
FORMAT_RGB,
|
||||
FORMAT_RGBA,
|
||||
FORMAT_RGBA4,
|
||||
FORMAT_RGBA16F,
|
||||
FORMAT_RGBA32F,
|
||||
FORMAT_R16F,
|
||||
FORMAT_R32F,
|
||||
FORMAT_RGB565,
|
||||
FORMAT_RGB5A1,
|
||||
FORMAT_RGB10A2,
|
||||
FORMAT_RG11B10F,
|
||||
FORMAT_DXT1,
|
||||
FORMAT_DXT3,
|
||||
|
|
|
@ -186,8 +186,14 @@ static GLenum convertTextureFormat(TextureFormat format) {
|
|||
switch (format) {
|
||||
case FORMAT_RGB: return GL_RGB;
|
||||
case FORMAT_RGBA: return GL_RGBA;
|
||||
case FORMAT_RGBA4: return GL_RGBA;
|
||||
case FORMAT_RGBA16F: return GL_RGBA;
|
||||
case FORMAT_RGBA32F: return GL_RGBA;
|
||||
case FORMAT_R16F: return GL_RED;
|
||||
case FORMAT_R32F: return GL_RED;
|
||||
case FORMAT_RGB565: return GL_RGB;
|
||||
case FORMAT_RGB5A1: return GL_RGBA;
|
||||
case FORMAT_RGB10A2: return GL_RGBA;
|
||||
case FORMAT_RG11B10F: return GL_RGB;
|
||||
case FORMAT_DXT1: return GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
|
||||
case FORMAT_DXT3: return GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
|
||||
|
@ -199,8 +205,14 @@ static GLenum convertTextureFormatInternal(TextureFormat format, bool srgb) {
|
|||
switch (format) {
|
||||
case FORMAT_RGB: return srgb ? GL_SRGB8 : GL_RGB8;
|
||||
case FORMAT_RGBA: return srgb ? GL_SRGB8_ALPHA8 : GL_RGBA8;
|
||||
case FORMAT_RGBA4: return GL_RGBA4;
|
||||
case FORMAT_RGBA16F: return GL_RGBA16F;
|
||||
case FORMAT_RGBA32F: return GL_RGBA32F;
|
||||
case FORMAT_R16F: return GL_R16F;
|
||||
case FORMAT_R32F: return GL_R32F;
|
||||
case FORMAT_RGB565: return GL_RGB565;
|
||||
case FORMAT_RGB5A1: return GL_RGB5_A1;
|
||||
case FORMAT_RGB10A2: return GL_RGB10_A2;
|
||||
case FORMAT_RG11B10F: return GL_R11F_G11F_B10F;
|
||||
case FORMAT_DXT1: return srgb ? GL_COMPRESSED_SRGB_S3TC_DXT1_EXT : GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
|
||||
case FORMAT_DXT3: return srgb ? GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT : GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
|
||||
|
@ -241,16 +253,11 @@ static GLenum convertMeshDrawMode(MeshDrawMode mode) {
|
|||
|
||||
static bool isCanvasFormatSupported(TextureFormat format) {
|
||||
switch (format) {
|
||||
case FORMAT_RGB:
|
||||
case FORMAT_RGBA:
|
||||
case FORMAT_RGBA16F:
|
||||
case FORMAT_RGBA32F:
|
||||
case FORMAT_RG11B10F:
|
||||
return true;
|
||||
case FORMAT_DXT1:
|
||||
case FORMAT_DXT3:
|
||||
case FORMAT_DXT5:
|
||||
return false;
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue