Added a lot more texture formats

Former-commit-id: b3a553ea39a174d84c5cd6fcca853ee83c1e6670
This commit is contained in:
Lynix 2013-09-06 12:07:38 +02:00
parent ae7c54a9fc
commit 0fd535a9e8
4 changed files with 394 additions and 29 deletions

View File

@ -152,25 +152,49 @@ enum nzPixelFormat
{ {
nzPixelFormat_Undefined = -1, nzPixelFormat_Undefined = -1,
nzPixelFormat_BGR8, // 3*nzUInt8 nzPixelFormat_BGR8, // 3*uint8
nzPixelFormat_BGRA8, // 4*nzUInt8 nzPixelFormat_BGRA8, // 4*uint8
nzPixelFormat_DXT1, nzPixelFormat_DXT1,
nzPixelFormat_DXT3, nzPixelFormat_DXT3,
nzPixelFormat_DXT5, nzPixelFormat_DXT5,
nzPixelFormat_L8, // 1*nzUInt8 nzPixelFormat_L8, // 1*uint8
nzPixelFormat_LA8, // 2*nzUInt8 nzPixelFormat_LA8, // 2*uint8
nzPixelFormat_RGB5A1, // 1*nzUInt16 nzPixelFormat_R8, // 1*uint8
nzPixelFormat_RGB8, // 3*nzUInt8 nzPixelFormat_R8I, // 1*int8
nzPixelFormat_RGB16F, nzPixelFormat_R8UI, // 1*uint8
nzPixelFormat_RGB16I, // 4*nzUInt16 nzPixelFormat_R16, // 1*uint16
nzPixelFormat_R16F, // 1*half
nzPixelFormat_R16I, // 1*int16
nzPixelFormat_R16UI, // 1*uint16
nzPixelFormat_R32F, // 1*float
nzPixelFormat_R32I, // 1*uint16
nzPixelFormat_R32UI, // 1*uint32
nzPixelFormat_RG8, // 2*int8
nzPixelFormat_RG8I, // 2*int8
nzPixelFormat_RG8UI, // 2*uint8
nzPixelFormat_RG16, // 2*uint16
nzPixelFormat_RG16F, // 2*half
nzPixelFormat_RG16I, // 2*int16
nzPixelFormat_RG16UI, // 2*uint16
nzPixelFormat_RG32F, // 2*float
nzPixelFormat_RG32I, // 2*uint16
nzPixelFormat_RG32UI, // 2*uint32
nzPixelFormat_RGB5A1, // 3*uint5 + alpha bit
nzPixelFormat_RGB8, // 3*uint8
nzPixelFormat_RGB16F, // 3*half
nzPixelFormat_RGB16I, // 4*int16
nzPixelFormat_RGB16UI, // 4*uint16
nzPixelFormat_RGB32F, // 3*float nzPixelFormat_RGB32F, // 3*float
nzPixelFormat_RGB32I, // 4*nzUInt32 nzPixelFormat_RGB32I, // 4*int32
nzPixelFormat_RGBA4, // 1*nzUInt16 nzPixelFormat_RGB32UI, // 4*uint32
nzPixelFormat_RGBA8, // 4*nzUInt8 nzPixelFormat_RGBA4, // 4*uint4
nzPixelFormat_RGBA16F, nzPixelFormat_RGBA8, // 4*uint8
nzPixelFormat_RGBA16I, // 4*nzUInt16 nzPixelFormat_RGBA16F, // 4*half
nzPixelFormat_RGBA16I, // 4*int16
nzPixelFormat_RGBA16UI, // 4*uint16
nzPixelFormat_RGBA32F, // 4*float nzPixelFormat_RGBA32F, // 4*float
nzPixelFormat_RGBA32I, // 4*nzUInt32 nzPixelFormat_RGBA32I, // 4*int32
nzPixelFormat_RGBA32UI, // 4*uint32
nzPixelFormat_Depth16, nzPixelFormat_Depth16,
nzPixelFormat_Depth24, nzPixelFormat_Depth24,
nzPixelFormat_Depth24Stencil8, nzPixelFormat_Depth24Stencil8,

View File

@ -189,28 +189,56 @@ inline nzUInt8 NzPixelFormat::GetBitsPerPixel(nzPixelFormat format)
case nzPixelFormat_LA8: case nzPixelFormat_LA8:
return 16; return 16;
case nzPixelFormat_RGB16F: case nzPixelFormat_R8:
return 48; case nzPixelFormat_R8I:
case nzPixelFormat_R8UI:
return 8;
case nzPixelFormat_R16:
case nzPixelFormat_R16F:
case nzPixelFormat_R16I:
case nzPixelFormat_R16UI:
return 16;
case nzPixelFormat_R32F:
case nzPixelFormat_R32I:
case nzPixelFormat_R32UI:
return 32;
case nzPixelFormat_RG8:
case nzPixelFormat_RG8I:
case nzPixelFormat_RG8UI:
return 16;
case nzPixelFormat_RG16:
case nzPixelFormat_RG16F:
case nzPixelFormat_RG16I:
case nzPixelFormat_RG16UI:
return 32;
case nzPixelFormat_RG32F:
case nzPixelFormat_RG32I:
case nzPixelFormat_RG32UI:
return 64;
case nzPixelFormat_RGB16F:
case nzPixelFormat_RGB16I: case nzPixelFormat_RGB16I:
case nzPixelFormat_RGB16UI:
return 48; return 48;
case nzPixelFormat_RGB32F: case nzPixelFormat_RGB32F:
return 96;
case nzPixelFormat_RGB32I: case nzPixelFormat_RGB32I:
case nzPixelFormat_RGB32UI:
return 96; return 96;
case nzPixelFormat_RGBA16F: case nzPixelFormat_RGBA16F:
return 64;
case nzPixelFormat_RGBA16I: case nzPixelFormat_RGBA16I:
case nzPixelFormat_RGBA16UI:
return 64; return 64;
case nzPixelFormat_RGBA32F: case nzPixelFormat_RGBA32F:
return 128;
case nzPixelFormat_RGBA32I: case nzPixelFormat_RGBA32I:
case nzPixelFormat_RGBA32UI:
return 128; return 128;
case nzPixelFormat_RGBA4: case nzPixelFormat_RGBA4:
@ -280,18 +308,42 @@ inline nzPixelFormatType NzPixelFormat::GetType(nzPixelFormat format)
case nzPixelFormat_DXT5: case nzPixelFormat_DXT5:
case nzPixelFormat_L8: case nzPixelFormat_L8:
case nzPixelFormat_LA8: case nzPixelFormat_LA8:
case nzPixelFormat_R8:
case nzPixelFormat_R8I:
case nzPixelFormat_R8UI:
case nzPixelFormat_R16:
case nzPixelFormat_R16F:
case nzPixelFormat_R16I:
case nzPixelFormat_R16UI:
case nzPixelFormat_R32F:
case nzPixelFormat_R32I:
case nzPixelFormat_R32UI:
case nzPixelFormat_RG8:
case nzPixelFormat_RG8I:
case nzPixelFormat_RG8UI:
case nzPixelFormat_RG16:
case nzPixelFormat_RG16F:
case nzPixelFormat_RG16I:
case nzPixelFormat_RG16UI:
case nzPixelFormat_RG32F:
case nzPixelFormat_RG32I:
case nzPixelFormat_RG32UI:
case nzPixelFormat_RGB5A1: case nzPixelFormat_RGB5A1:
case nzPixelFormat_RGB8: case nzPixelFormat_RGB8:
case nzPixelFormat_RGB16F: case nzPixelFormat_RGB16F:
case nzPixelFormat_RGB16I: case nzPixelFormat_RGB16I:
case nzPixelFormat_RGB16UI:
case nzPixelFormat_RGB32F: case nzPixelFormat_RGB32F:
case nzPixelFormat_RGB32I: case nzPixelFormat_RGB32I:
case nzPixelFormat_RGB32UI:
case nzPixelFormat_RGBA4: case nzPixelFormat_RGBA4:
case nzPixelFormat_RGBA8: case nzPixelFormat_RGBA8:
case nzPixelFormat_RGBA16F: case nzPixelFormat_RGBA16F:
case nzPixelFormat_RGBA16I: case nzPixelFormat_RGBA16I:
case nzPixelFormat_RGBA16UI:
case nzPixelFormat_RGBA32F: case nzPixelFormat_RGBA32F:
case nzPixelFormat_RGBA32I: case nzPixelFormat_RGBA32I:
case nzPixelFormat_RGBA32UI:
return nzPixelFormatType_Color; return nzPixelFormatType_Color;
case nzPixelFormat_Depth16: case nzPixelFormat_Depth16:
@ -327,8 +379,10 @@ inline bool NzPixelFormat::HasAlpha(nzPixelFormat format)
case nzPixelFormat_RGB5A1: case nzPixelFormat_RGB5A1:
case nzPixelFormat_RGBA16F: case nzPixelFormat_RGBA16F:
case nzPixelFormat_RGBA16I: case nzPixelFormat_RGBA16I:
case nzPixelFormat_RGBA16UI:
case nzPixelFormat_RGBA32F: case nzPixelFormat_RGBA32F:
case nzPixelFormat_RGBA32I: case nzPixelFormat_RGBA32I:
case nzPixelFormat_RGBA32UI:
case nzPixelFormat_RGBA4: case nzPixelFormat_RGBA4:
case nzPixelFormat_RGBA8: case nzPixelFormat_RGBA8:
return true; return true;
@ -336,11 +390,33 @@ inline bool NzPixelFormat::HasAlpha(nzPixelFormat format)
case nzPixelFormat_BGR8: case nzPixelFormat_BGR8:
case nzPixelFormat_DXT1: case nzPixelFormat_DXT1:
case nzPixelFormat_L8: case nzPixelFormat_L8:
case nzPixelFormat_R8:
case nzPixelFormat_R8I:
case nzPixelFormat_R8UI:
case nzPixelFormat_R16:
case nzPixelFormat_R16F:
case nzPixelFormat_R16I:
case nzPixelFormat_R16UI:
case nzPixelFormat_R32F:
case nzPixelFormat_R32I:
case nzPixelFormat_R32UI:
case nzPixelFormat_RG8:
case nzPixelFormat_RG8I:
case nzPixelFormat_RG8UI:
case nzPixelFormat_RG16:
case nzPixelFormat_RG16F:
case nzPixelFormat_RG16I:
case nzPixelFormat_RG16UI:
case nzPixelFormat_RG32F:
case nzPixelFormat_RG32I:
case nzPixelFormat_RG32UI:
case nzPixelFormat_RGB8: case nzPixelFormat_RGB8:
case nzPixelFormat_RGB16F: case nzPixelFormat_RGB16F:
case nzPixelFormat_RGB16I: case nzPixelFormat_RGB16I:
case nzPixelFormat_RGB16UI:
case nzPixelFormat_RGB32F: case nzPixelFormat_RGB32F:
case nzPixelFormat_RGB32I: case nzPixelFormat_RGB32I:
case nzPixelFormat_RGB32UI:
case nzPixelFormat_Depth16: case nzPixelFormat_Depth16:
case nzPixelFormat_Depth24: case nzPixelFormat_Depth24:
case nzPixelFormat_Depth24Stencil8: case nzPixelFormat_Depth24Stencil8:
@ -372,18 +448,42 @@ inline bool NzPixelFormat::IsCompressed(nzPixelFormat format)
case nzPixelFormat_BGRA8: case nzPixelFormat_BGRA8:
case nzPixelFormat_L8: case nzPixelFormat_L8:
case nzPixelFormat_LA8: case nzPixelFormat_LA8:
case nzPixelFormat_R8:
case nzPixelFormat_R8I:
case nzPixelFormat_R8UI:
case nzPixelFormat_R16:
case nzPixelFormat_R16F:
case nzPixelFormat_R16I:
case nzPixelFormat_R16UI:
case nzPixelFormat_R32F:
case nzPixelFormat_R32I:
case nzPixelFormat_R32UI:
case nzPixelFormat_RG8:
case nzPixelFormat_RG8I:
case nzPixelFormat_RG8UI:
case nzPixelFormat_RG16:
case nzPixelFormat_RG16F:
case nzPixelFormat_RG16I:
case nzPixelFormat_RG16UI:
case nzPixelFormat_RG32F:
case nzPixelFormat_RG32I:
case nzPixelFormat_RG32UI:
case nzPixelFormat_RGB5A1: case nzPixelFormat_RGB5A1:
case nzPixelFormat_RGB8: case nzPixelFormat_RGB8:
case nzPixelFormat_RGB16F: case nzPixelFormat_RGB16F:
case nzPixelFormat_RGB16I: case nzPixelFormat_RGB16I:
case nzPixelFormat_RGB16UI:
case nzPixelFormat_RGB32F: case nzPixelFormat_RGB32F:
case nzPixelFormat_RGB32I: case nzPixelFormat_RGB32I:
case nzPixelFormat_RGB32UI:
case nzPixelFormat_RGBA4: case nzPixelFormat_RGBA4:
case nzPixelFormat_RGBA8: case nzPixelFormat_RGBA8:
case nzPixelFormat_RGBA16F: case nzPixelFormat_RGBA16F:
case nzPixelFormat_RGBA16I: case nzPixelFormat_RGBA16I:
case nzPixelFormat_RGBA16UI:
case nzPixelFormat_RGBA32F: case nzPixelFormat_RGBA32F:
case nzPixelFormat_RGBA32I: case nzPixelFormat_RGBA32I:
case nzPixelFormat_RGBA32UI:
case nzPixelFormat_Depth16: case nzPixelFormat_Depth16:
case nzPixelFormat_Depth24: case nzPixelFormat_Depth24:
case nzPixelFormat_Depth24Stencil8: case nzPixelFormat_Depth24Stencil8:
@ -450,6 +550,66 @@ inline NzString NzPixelFormat::ToString(nzPixelFormat format)
case nzPixelFormat_LA8: case nzPixelFormat_LA8:
return "LA8"; return "LA8";
case nzPixelFormat_R8:
return "R8";
case nzPixelFormat_R8I:
return "R8I";
case nzPixelFormat_R8UI:
return "R8UI";
case nzPixelFormat_R16:
return "R16";
case nzPixelFormat_R16F:
return "R16F";
case nzPixelFormat_R16I:
return "R16I";
case nzPixelFormat_R16UI:
return "R16UI";
case nzPixelFormat_R32F:
return "R32F";
case nzPixelFormat_R32I:
return "R32I";
case nzPixelFormat_R32UI:
return "R32UI";
case nzPixelFormat_RG8:
return "RG8";
case nzPixelFormat_RG8I:
return "RG8I";
case nzPixelFormat_RG8UI:
return "RG8UI";
case nzPixelFormat_RG16:
return "RG16";
case nzPixelFormat_RG16F:
return "RG16F";
case nzPixelFormat_RG16I:
return "RG16I";
case nzPixelFormat_RG16UI:
return "RG16UI";
case nzPixelFormat_RG32F:
return "RG32F";
case nzPixelFormat_RG32I:
return "RG32I";
case nzPixelFormat_RG32UI:
return "RG32UI";
case nzPixelFormat_RGB5A1: case nzPixelFormat_RGB5A1:
return "RGB5A1"; return "RGB5A1";
@ -462,12 +622,18 @@ inline NzString NzPixelFormat::ToString(nzPixelFormat format)
case nzPixelFormat_RGB16I: case nzPixelFormat_RGB16I:
return "RGB16I"; return "RGB16I";
case nzPixelFormat_RGB16UI:
return "RGB16UI";
case nzPixelFormat_RGB32F: case nzPixelFormat_RGB32F:
return "RGB32F"; return "RGB32F";
case nzPixelFormat_RGB32I: case nzPixelFormat_RGB32I:
return "RGB32I"; return "RGB32I";
case nzPixelFormat_RGB32UI:
return "RGB32UI";
case nzPixelFormat_RGBA4: case nzPixelFormat_RGBA4:
return "RGBA4"; return "RGBA4";
@ -480,12 +646,18 @@ inline NzString NzPixelFormat::ToString(nzPixelFormat format)
case nzPixelFormat_RGBA16I: case nzPixelFormat_RGBA16I:
return "RGBA16I"; return "RGBA16I";
case nzPixelFormat_RGBA16UI:
return "RGBA16UI";
case nzPixelFormat_RGBA32F: case nzPixelFormat_RGBA32F:
return "RGBA32F"; return "RGBA32F";
case nzPixelFormat_RGBA32I: case nzPixelFormat_RGBA32I:
return "RGBA32I"; return "RGBA32I";
case nzPixelFormat_RGBA32UI:
return "RGBA32UI";
case nzPixelFormat_Depth16: case nzPixelFormat_Depth16:
return "Depth16"; return "Depth16";

View File

@ -1340,6 +1340,7 @@ void NzOpenGL::SetViewport(const NzRecti& viewport)
bool NzOpenGL::TranslateFormat(nzPixelFormat pixelFormat, Format* format, FormatType type) bool NzOpenGL::TranslateFormat(nzPixelFormat pixelFormat, Format* format, FormatType type)
{ {
///FIXME: Vérifier certains dataType
switch (pixelFormat) switch (pixelFormat)
{ {
case nzPixelFormat_BGR8: case nzPixelFormat_BGR8:
@ -1376,6 +1377,126 @@ bool NzOpenGL::TranslateFormat(nzPixelFormat pixelFormat, Format* format, Format
case nzPixelFormat_LA8: case nzPixelFormat_LA8:
return false; return false;
case nzPixelFormat_R8:
format->dataFormat = GL_RED;
format->dataType = GL_UNSIGNED_BYTE;
format->internalFormat = GL_R8;
return true;
case nzPixelFormat_R8I:
format->dataFormat = GL_RED;
format->dataType = GL_BYTE;
format->internalFormat = GL_R8I;
return true;
case nzPixelFormat_R8UI:
format->dataFormat = GL_RED;
format->dataType = GL_UNSIGNED_BYTE;
format->internalFormat = GL_R8UI;
return true;
case nzPixelFormat_R16:
format->dataFormat = GL_RED;
format->dataType = GL_UNSIGNED_SHORT;
format->internalFormat = GL_R16;
return true;
case nzPixelFormat_R16F:
format->dataFormat = GL_RED;
format->dataType = GL_HALF_FLOAT; ///FIXME: Correct ?
format->internalFormat = GL_R16F;
return true;
case nzPixelFormat_R16I:
format->dataFormat = GL_RED;
format->dataType = GL_SHORT;
format->internalFormat = GL_R16I;
return true;
case nzPixelFormat_R16UI:
format->dataFormat = GL_RED;
format->dataType = GL_UNSIGNED_SHORT;
format->internalFormat = GL_R16UI;
return true;
case nzPixelFormat_R32F:
format->dataFormat = GL_RED;
format->dataType = GL_FLOAT;
format->internalFormat = GL_R32F;
return true;
case nzPixelFormat_R32I:
format->dataFormat = GL_RED;
format->dataType = GL_INT;
format->internalFormat = GL_R32I;
return true;
case nzPixelFormat_R32UI:
format->dataFormat = GL_RED;
format->dataType = GL_UNSIGNED_INT;
format->internalFormat = GL_R32UI;
return true;
case nzPixelFormat_RG8:
format->dataFormat = GL_RG;
format->dataType = GL_UNSIGNED_BYTE;
format->internalFormat = GL_RG8;
return true;
case nzPixelFormat_RG8I:
format->dataFormat = GL_RG;
format->dataType = GL_BYTE;
format->internalFormat = GL_RG8I;
return true;
case nzPixelFormat_RG8UI:
format->dataFormat = GL_RG;
format->dataType = GL_UNSIGNED_BYTE;
format->internalFormat = GL_RG8UI;
return true;
case nzPixelFormat_RG16:
format->dataFormat = GL_RG;
format->dataType = GL_UNSIGNED_SHORT;
format->internalFormat = GL_RG16;
return true;
case nzPixelFormat_RG16F:
format->dataFormat = GL_RG;
format->dataType = GL_HALF_FLOAT; ///FIXME: Correct ?
format->internalFormat = GL_RG16F;
return true;
case nzPixelFormat_RG16I:
format->dataFormat = GL_RG;
format->dataType = GL_SHORT;
format->internalFormat = GL_RG16I;
return true;
case nzPixelFormat_RG16UI:
format->dataFormat = GL_RG;
format->dataType = GL_UNSIGNED_SHORT;
format->internalFormat = GL_RG16UI;
return true;
case nzPixelFormat_RG32F:
format->dataFormat = GL_RG;
format->dataType = GL_FLOAT;
format->internalFormat = GL_RG32F;
return true;
case nzPixelFormat_RG32I:
format->dataFormat = GL_RG;
format->dataType = GL_INT;
format->internalFormat = GL_RG32I;
return true;
case nzPixelFormat_RG32UI:
format->dataFormat = GL_RG;
format->dataType = GL_UNSIGNED_INT;
format->internalFormat = GL_RG32UI;
return true;
case nzPixelFormat_RGB5A1: case nzPixelFormat_RGB5A1:
format->dataFormat = GL_RGBA; format->dataFormat = GL_RGBA;
format->dataType = GL_UNSIGNED_SHORT_5_5_5_1; format->dataType = GL_UNSIGNED_SHORT_5_5_5_1;
@ -1390,16 +1511,22 @@ bool NzOpenGL::TranslateFormat(nzPixelFormat pixelFormat, Format* format, Format
case nzPixelFormat_RGB16F: case nzPixelFormat_RGB16F:
format->dataFormat = GL_RGB; format->dataFormat = GL_RGB;
format->dataType = GL_FLOAT; format->dataType = GL_HALF_FLOAT; ///FIXME: Correct ?
format->internalFormat = GL_RGB16F; format->internalFormat = GL_RGB16F;
return true; return true;
case nzPixelFormat_RGB16I: case nzPixelFormat_RGB16I:
format->dataFormat = GL_RGB; format->dataFormat = GL_RGB;
format->dataType = GL_INT; format->dataType = GL_SHORT;
format->internalFormat = GL_RGB16I; format->internalFormat = GL_RGB16I;
return true; return true;
case nzPixelFormat_RGB16UI:
format->dataFormat = GL_RGB;
format->dataType = GL_UNSIGNED_SHORT;
format->internalFormat = GL_RGB16UI;
return true;
case nzPixelFormat_RGB32F: case nzPixelFormat_RGB32F:
format->dataFormat = GL_RGB; format->dataFormat = GL_RGB;
format->dataType = GL_FLOAT; format->dataType = GL_FLOAT;
@ -1412,6 +1539,12 @@ bool NzOpenGL::TranslateFormat(nzPixelFormat pixelFormat, Format* format, Format
format->internalFormat = GL_RGB32I; format->internalFormat = GL_RGB32I;
return true; return true;
case nzPixelFormat_RGB32UI:
format->dataFormat = GL_RGB;
format->dataType = GL_UNSIGNED_INT;
format->internalFormat = GL_RGB32UI;
return true;
case nzPixelFormat_RGBA4: case nzPixelFormat_RGBA4:
format->dataFormat = GL_RGBA; format->dataFormat = GL_RGBA;
format->dataType = GL_UNSIGNED_SHORT_4_4_4_4; format->dataType = GL_UNSIGNED_SHORT_4_4_4_4;
@ -1426,14 +1559,20 @@ bool NzOpenGL::TranslateFormat(nzPixelFormat pixelFormat, Format* format, Format
case nzPixelFormat_RGBA16F: case nzPixelFormat_RGBA16F:
format->dataFormat = GL_RGBA; format->dataFormat = GL_RGBA;
format->dataType = GL_FLOAT; format->dataType = GL_HALF_FLOAT; ///FIXME: Correct ?
format->internalFormat = GL_RGBA16F; format->internalFormat = GL_RGBA16F;
return true; return true;
case nzPixelFormat_RGBA16I: case nzPixelFormat_RGBA16I:
format->dataFormat = GL_RGBA;
format->dataType = GL_SHORT;
format->internalFormat = GL_RGBA16I;
return true;
case nzPixelFormat_RGBA16UI:
format->dataFormat = GL_RGBA; format->dataFormat = GL_RGBA;
format->dataType = GL_INT; format->dataType = GL_INT;
format->internalFormat = GL_RGBA32I; format->internalFormat = GL_RGBA16UI;
return true; return true;
case nzPixelFormat_RGBA32F: case nzPixelFormat_RGBA32F:
@ -1448,21 +1587,27 @@ bool NzOpenGL::TranslateFormat(nzPixelFormat pixelFormat, Format* format, Format
format->internalFormat = GL_RGB32I; format->internalFormat = GL_RGB32I;
return true; return true;
case nzPixelFormat_RGBA32UI:
format->dataFormat = GL_RGB;
format->dataType = GL_UNSIGNED_INT;
format->internalFormat = GL_RGB32UI;
return true;
case nzPixelFormat_Depth16: case nzPixelFormat_Depth16:
format->dataFormat = GL_DEPTH_COMPONENT; format->dataFormat = GL_DEPTH_COMPONENT;
format->dataType = GL_UNSIGNED_BYTE; format->dataType = GL_UNSIGNED_SHORT;
format->internalFormat = GL_DEPTH_COMPONENT16; format->internalFormat = GL_DEPTH_COMPONENT16;
return true; return true;
case nzPixelFormat_Depth24: case nzPixelFormat_Depth24:
format->dataFormat = GL_DEPTH_COMPONENT; format->dataFormat = GL_DEPTH_COMPONENT;
format->dataType = GL_UNSIGNED_BYTE; format->dataType = GL_UNSIGNED_INT;
format->internalFormat = GL_DEPTH_COMPONENT24; format->internalFormat = GL_DEPTH_COMPONENT24;
return true; return true;
case nzPixelFormat_Depth24Stencil8: case nzPixelFormat_Depth24Stencil8:
format->dataFormat = GL_DEPTH_STENCIL; format->dataFormat = GL_DEPTH_STENCIL;
format->dataType = GL_UNSIGNED_BYTE; format->dataType = GL_UNSIGNED_INT_24_8;
format->internalFormat = GL_DEPTH24_STENCIL8; format->internalFormat = GL_DEPTH24_STENCIL8;
return true; return true;

View File

@ -1307,14 +1307,38 @@ bool NzTexture::IsFormatSupported(nzPixelFormat format)
return true; return true;
// Formats supportés depuis OpenGL 3 // Formats supportés depuis OpenGL 3
case nzPixelFormat_R8:
case nzPixelFormat_R8I:
case nzPixelFormat_R8UI:
case nzPixelFormat_R16:
case nzPixelFormat_R16F:
case nzPixelFormat_R16I:
case nzPixelFormat_R16UI:
case nzPixelFormat_R32F:
case nzPixelFormat_R32I:
case nzPixelFormat_R32UI:
case nzPixelFormat_RG8:
case nzPixelFormat_RG8I:
case nzPixelFormat_RG8UI:
case nzPixelFormat_RG16:
case nzPixelFormat_RG16F:
case nzPixelFormat_RG16I:
case nzPixelFormat_RG16UI:
case nzPixelFormat_RG32F:
case nzPixelFormat_RG32I:
case nzPixelFormat_RG32UI:
case nzPixelFormat_RGB16F: case nzPixelFormat_RGB16F:
case nzPixelFormat_RGB16I: case nzPixelFormat_RGB16I:
case nzPixelFormat_RGB16UI:
case nzPixelFormat_RGB32F: case nzPixelFormat_RGB32F:
case nzPixelFormat_RGB32I: case nzPixelFormat_RGB32I:
case nzPixelFormat_RGB32UI:
case nzPixelFormat_RGBA16F: case nzPixelFormat_RGBA16F:
case nzPixelFormat_RGBA16I: case nzPixelFormat_RGBA16I:
case nzPixelFormat_RGBA16UI:
case nzPixelFormat_RGBA32F: case nzPixelFormat_RGBA32F:
case nzPixelFormat_RGBA32I: case nzPixelFormat_RGBA32I:
case nzPixelFormat_RGBA32UI:
return NzOpenGL::GetVersion() >= 300; return NzOpenGL::GetVersion() >= 300;
// Formats de profondeur (Supportés avec les FBOs) // Formats de profondeur (Supportés avec les FBOs)