QOpenGLTexture: introduce support for Ericsson compressed formats
OpenGL 4.3 and OpenGL ES 3.0 have support for these formats out of the box. See http://en.wikipedia.org/wiki/Ericsson_Texture_Compression Change-Id: I661f05b9872f3aa128e39cec64df094a79736555 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>bb10
parent
8aceadba1f
commit
c0b4e9076b
|
|
@ -384,6 +384,16 @@ static bool isSizedTextureFormat(QOpenGLTexture::TextureFormat internalFormat)
|
|||
case QOpenGLTexture::SRGB_Alpha_DXT3:
|
||||
case QOpenGLTexture::SRGB_Alpha_DXT5:
|
||||
case QOpenGLTexture::SRGB_BP_UNorm:
|
||||
case QOpenGLTexture::R11_EAC_UNorm:
|
||||
case QOpenGLTexture::R11_EAC_SNorm:
|
||||
case QOpenGLTexture::RG11_EAC_UNorm:
|
||||
case QOpenGLTexture::RG11_EAC_SNorm:
|
||||
case QOpenGLTexture::RGB8_ETC2:
|
||||
case QOpenGLTexture::SRGB8_ETC2:
|
||||
case QOpenGLTexture::RGB8_PunchThrough_Alpha1_ETC2:
|
||||
case QOpenGLTexture::SRGB8_PunchThrough_Alpha1_ETC2:
|
||||
case QOpenGLTexture::RGBA8_ETC2_EAC:
|
||||
case QOpenGLTexture::SRGB8_Alpha8_ETC2_EAC:
|
||||
return true;
|
||||
|
||||
case QOpenGLTexture::DepthFormat:
|
||||
|
|
@ -510,6 +520,24 @@ static QOpenGLTexture::PixelFormat pixelFormatCompatibleWithInternalFormat(QOpen
|
|||
case QOpenGLTexture::SRGB_BP_UNorm:
|
||||
return QOpenGLTexture::RGBA;
|
||||
|
||||
case QOpenGLTexture::R11_EAC_UNorm:
|
||||
case QOpenGLTexture::R11_EAC_SNorm:
|
||||
return QOpenGLTexture::Red;
|
||||
|
||||
case QOpenGLTexture::RG11_EAC_UNorm:
|
||||
case QOpenGLTexture::RG11_EAC_SNorm:
|
||||
return QOpenGLTexture::RG;
|
||||
|
||||
case QOpenGLTexture::RGB8_ETC2:
|
||||
case QOpenGLTexture::SRGB8_ETC2:
|
||||
case QOpenGLTexture::RGB8_PunchThrough_Alpha1_ETC2:
|
||||
case QOpenGLTexture::SRGB8_PunchThrough_Alpha1_ETC2:
|
||||
return QOpenGLTexture::RGB;
|
||||
|
||||
case QOpenGLTexture::RGBA8_ETC2_EAC:
|
||||
case QOpenGLTexture::SRGB8_Alpha8_ETC2_EAC:
|
||||
return QOpenGLTexture::RGBA;
|
||||
|
||||
case QOpenGLTexture::DepthFormat:
|
||||
return QOpenGLTexture::Depth;
|
||||
|
||||
|
|
@ -627,6 +655,16 @@ static QOpenGLTexture::PixelType pixelTypeCompatibleWithInternalFormat(QOpenGLTe
|
|||
case QOpenGLTexture::SRGB_Alpha_DXT3:
|
||||
case QOpenGLTexture::SRGB_Alpha_DXT5:
|
||||
case QOpenGLTexture::SRGB_BP_UNorm:
|
||||
case QOpenGLTexture::R11_EAC_UNorm:
|
||||
case QOpenGLTexture::R11_EAC_SNorm:
|
||||
case QOpenGLTexture::RG11_EAC_UNorm:
|
||||
case QOpenGLTexture::RG11_EAC_SNorm:
|
||||
case QOpenGLTexture::RGB8_ETC2:
|
||||
case QOpenGLTexture::SRGB8_ETC2:
|
||||
case QOpenGLTexture::RGB8_PunchThrough_Alpha1_ETC2:
|
||||
case QOpenGLTexture::SRGB8_PunchThrough_Alpha1_ETC2:
|
||||
case QOpenGLTexture::RGBA8_ETC2_EAC:
|
||||
case QOpenGLTexture::SRGB8_Alpha8_ETC2_EAC:
|
||||
return QOpenGLTexture::UInt8;
|
||||
|
||||
case QOpenGLTexture::DepthFormat:
|
||||
|
|
@ -1630,6 +1668,16 @@ QOpenGLTexture *QOpenGLTexturePrivate::createTextureView(QOpenGLTexture::Target
|
|||
\value RGB_BP_UNSIGNED_FLOAT Equivalent to GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
|
||||
\value RGB_BP_SIGNED_FLOAT Equivalent to GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
|
||||
\value RGB_BP_UNorm Equivalent to GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
|
||||
\value R11_EAC_UNorm Equivalent to GL_COMPRESSED_R11_EAC
|
||||
\value R11_EAC_SNorm Equivalent to GL_COMPRESSED_SIGNED_R11_EAC
|
||||
\value RG11_EAC_UNorm Equivalent to GL_COMPRESSED_RG11_EAC
|
||||
\value RG11_EAC_SNorm Equivalent to GL_COMPRESSED_SIGNED_RG11_EAC
|
||||
\value RGB8_ETC2 Equivalent to GL_COMPRESSED_RGB8_ETC2
|
||||
\value SRGB8_ETC2 Equivalent to GL_COMPRESSED_SRGB8_ETC2
|
||||
\value RGB8_PunchThrough_Alpha1_ETC2 Equivalent to GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
|
||||
\value SRGB8_PunchThrough_Alpha1_ETC2 Equivalent to GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
|
||||
\value RGBA8_ETC2_EAC Equivalent to GL_COMPRESSED_RGBA8_ETC2_EAC
|
||||
\value SRGB8_Alpha8_ETC2_EAC Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
|
||||
|
||||
\value SRGB8 Equivalent to GL_SRGB8
|
||||
\value SRGB8_Alpha8 Equivalent to GL_SRGB8_ALPHA8
|
||||
|
|
@ -2155,6 +2203,16 @@ void QOpenGLTexture::setFormat(TextureFormat format)
|
|||
d->formatClass = FormatClass_S3TC_DXT5_RGBA;
|
||||
break;
|
||||
|
||||
case QOpenGLTexture::R11_EAC_UNorm:
|
||||
case QOpenGLTexture::R11_EAC_SNorm:
|
||||
case QOpenGLTexture::RG11_EAC_UNorm:
|
||||
case QOpenGLTexture::RG11_EAC_SNorm:
|
||||
case QOpenGLTexture::RGB8_ETC2:
|
||||
case QOpenGLTexture::SRGB8_ETC2:
|
||||
case QOpenGLTexture::RGB8_PunchThrough_Alpha1_ETC2:
|
||||
case QOpenGLTexture::SRGB8_PunchThrough_Alpha1_ETC2:
|
||||
case QOpenGLTexture::RGBA8_ETC2_EAC:
|
||||
case QOpenGLTexture::SRGB8_Alpha8_ETC2_EAC:
|
||||
case RG3B2:
|
||||
case R5G6B5:
|
||||
case RGB5A1:
|
||||
|
|
|
|||
|
|
@ -186,6 +186,16 @@ public:
|
|||
RGB_BP_UNSIGNED_FLOAT = 0x8E8F, // GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
|
||||
RGB_BP_SIGNED_FLOAT = 0x8E8E, // GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
|
||||
RGB_BP_UNorm = 0x8E8C, // GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
|
||||
R11_EAC_UNorm = 0x9270, // GL_COMPRESSED_R11_EAC
|
||||
R11_EAC_SNorm = 0x9271, // GL_COMPRESSED_SIGNED_R11_EAC
|
||||
RG11_EAC_UNorm = 0x9272, // GL_COMPRESSED_RG11_EAC
|
||||
RG11_EAC_SNorm = 0x9273, // GL_COMPRESSED_SIGNED_RG11_EAC
|
||||
RGB8_ETC2 = 0x9274, // GL_COMPRESSED_RGB8_ETC2
|
||||
SRGB8_ETC2 = 0x9275, // GL_COMPRESSED_SRGB8_ETC2
|
||||
RGB8_PunchThrough_Alpha1_ETC2 = 0x9276, // GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
|
||||
SRGB8_PunchThrough_Alpha1_ETC2 = 0x9277, // GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
|
||||
RGBA8_ETC2_EAC = 0x9278, // GL_COMPRESSED_RGBA8_ETC2_EAC
|
||||
SRGB8_Alpha8_ETC2_EAC = 0x9279, // GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
|
||||
|
||||
// sRGB formats
|
||||
SRGB8 = 0x8C41, // GL_SRGB8
|
||||
|
|
|
|||
Loading…
Reference in New Issue