瀏覽代碼

[rlgl] add `RL_PIXELFORMAT_UNCOMPRESSED_DEPTH` to enum `rlPixelFormat`

pull/5630/head
R2turnTrue 1 周之前
父節點
當前提交
2356cb8785
共有 1 個檔案被更改,包括 52 行新增0 行删除
  1. +52
    -0
      src/rlgl.h

+ 52
- 0
src/rlgl.h 查看文件

@ -461,6 +461,7 @@ typedef enum {
RL_PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float)
RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float)
RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float)
RL_PIXELFORMAT_UNCOMPRESSED_DEPTH, // Depth component (24 or 16 bit, depending on OpenGL version)
RL_PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha)
RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha)
RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp
@ -3630,6 +3631,36 @@ void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned
#endif
#endif
#endif
case RL_PIXELFORMAT_UNCOMPRESSED_DEPTH:
if (RLGL.ExtSupported.texDepth)
{
*glFormat = GL_DEPTH_COMPONENT;
if (RLGL.ExtSupported.texDepthWebGL)
{
*glInternalFormat = GL_DEPTH_COMPONENT;
*glType = GL_UNSIGNED_SHORT;
}
else
{
if (RLGL.ExtSupported.maxDepthBits == 32)
{
*glInternalFormat = GL_DEPTH_COMPONENT32_OES;
*glType = GL_UNSIGNED_INT;
}
else if (RLGL.ExtSupported.maxDepthBits == 24)
{
*glInternalFormat = GL_DEPTH_COMPONENT24_OES;
*glType = GL_UNSIGNED_INT;
}
else
{
*glInternalFormat = GL_DEPTH_COMPONENT16_OES;
*glType = GL_UNSIGNED_SHORT;
}
}
}
break;
#elif defined(GRAPHICS_API_OPENGL_33)
case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_R8; *glFormat = GL_RED; *glType = GL_UNSIGNED_BYTE; break;
case RL_PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: *glInternalFormat = GL_RG8; *glFormat = GL_RG; *glType = GL_UNSIGNED_BYTE; break;
@ -3644,6 +3675,27 @@ void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned
case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F; *glFormat = GL_RED; *glType = GL_HALF_FLOAT; break;
case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break;
case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break;
case RL_PIXELFORMAT_UNCOMPRESSED_DEPTH:
if (RLGL.ExtSupported.texDepth)
{
*glFormat = GL_DEPTH_COMPONENT;
if (RLGL.ExtSupported.maxDepthBits == 32)
{
*glInternalFormat = GL_DEPTH_COMPONENT32F;
*glType = GL_FLOAT;
}
else if (RLGL.ExtSupported.maxDepthBits == 24)
{
*glInternalFormat = GL_DEPTH_COMPONENT24;
*glType = GL_UNSIGNED_INT;
}
else
{
*glInternalFormat = GL_DEPTH_COMPONENT16;
*glType = GL_UNSIGNED_SHORT;
}
}
break;
#endif
#if !defined(GRAPHICS_API_OPENGL_11)
case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; break;

Loading…
取消
儲存