opengl: support reading 8bit texture (fixes icon corruption)
Change-Id: Iba3fd58374a550f3411b02f029f12f4509fb6048
This commit is contained in:
@@ -368,7 +368,7 @@ GLuint OpenGLSalBitmap::CreateTexture()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// convert to 32 bits RGBA using palette
|
// convert to 32 bits RGBA using palette
|
||||||
pData = new sal_uInt8[ mnBufHeight * (mnBufWidth << 2) ];
|
pData = new sal_uInt8[mnBufHeight * mnBufWidth * 4];
|
||||||
bAllocated = true;
|
bAllocated = true;
|
||||||
nFormat = GL_RGBA;
|
nFormat = GL_RGBA;
|
||||||
nType = GL_UNSIGNED_BYTE;
|
nType = GL_UNSIGNED_BYTE;
|
||||||
@@ -424,13 +424,16 @@ bool OpenGLSalBitmap::ReadTexture()
|
|||||||
if( pData == NULL )
|
if( pData == NULL )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if( mnBits == 16 || mnBits == 24 || mnBits == 32 )
|
if (mnBits == 8 || mnBits == 16 || mnBits == 24 || mnBits == 32)
|
||||||
{
|
{
|
||||||
// no conversion needed for truecolor
|
// no conversion needed for truecolor
|
||||||
pData = maUserBuffer.get();
|
pData = maUserBuffer.get();
|
||||||
|
|
||||||
switch( mnBits )
|
switch( mnBits )
|
||||||
{
|
{
|
||||||
|
case 8: nFormat = GL_LUMINANCE;
|
||||||
|
nType = GL_UNSIGNED_BYTE;
|
||||||
|
break;
|
||||||
case 16: nFormat = GL_RGB;
|
case 16: nFormat = GL_RGB;
|
||||||
nType = GL_UNSIGNED_SHORT_5_6_5;
|
nType = GL_UNSIGNED_SHORT_5_6_5;
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user