|
|
@@ -2585,6 +2585,7 @@ namespace bgfx
|
|
|
{ 16, { 0x00000f00, 0x000000f0, 0x0000000f, 0x0000f000 }, TextureFormat::RGBA4 },
|
|
|
{ 16, { 0x0000f800, 0x000007e0, 0x0000001f, 0x00000000 }, TextureFormat::R5G6B5 },
|
|
|
{ 16, { 0x00007c00, 0x000003e0, 0x0000001f, 0x00008000 }, TextureFormat::RGB5A1 },
|
|
|
+ { 24, { 0x00ff0000, 0x0000ff00, 0x000000ff, 0x00000000 }, TextureFormat::RGB8 },
|
|
|
{ 32, { 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 }, TextureFormat::BGRA8 },
|
|
|
{ 32, { 0x00ff0000, 0x0000ff00, 0x000000ff, 0x00000000 }, TextureFormat::BGRA8 },
|
|
|
{ 32, { 0x000003ff, 0x000ffc00, 0x3ff00000, 0xc0000000 }, TextureFormat::RGB10A2 },
|
|
|
@@ -3432,10 +3433,14 @@ namespace bgfx
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
- if (!imageConvert(_dst, TextureFormat::BGRA8, _src, _format, _width, _height, _pitch) )
|
|
|
{
|
|
|
- // Failed to convert, just make ugly red-yellow checkerboard texture.
|
|
|
- imageCheckerboard(_width, _height, 16, UINT32_C(0xffff0000), UINT32_C(0xffffff00), _dst);
|
|
|
+ const uint32_t srcBpp = s_imageBlockInfo[_format].bitsPerPixel;
|
|
|
+ const uint32_t srcPitch = _width * srcBpp / 8;
|
|
|
+ if (!imageConvert(_dst, TextureFormat::BGRA8, _src, _format, _width, _height, srcPitch) )
|
|
|
+ {
|
|
|
+ // Failed to convert, just make ugly red-yellow checkerboard texture.
|
|
|
+ imageCheckerboard(_width, _height, 16, UINT32_C(0xffff0000), UINT32_C(0xffffff00), _dst);
|
|
|
+ }
|
|
|
}
|
|
|
break;
|
|
|
}
|