mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-08 16:50:44 +00:00
Fix thumbnail generation for eSpecial_R5G6B5 & eSpecial_R5G5B5A1.
This commit is contained in:
committed by
Baldur Karlsson
parent
b088b21757
commit
aa5ec25270
@@ -1277,12 +1277,27 @@ bool WrappedVulkan::EndFrameCapture(void *dev, void *wnd)
|
||||
uint32_t stride = fmt.compByteWidth * fmt.compCount;
|
||||
|
||||
bool buf1010102 = false;
|
||||
bool buf565 = false, buf5551 = false;
|
||||
bool bufBGRA = (fmt.bgraOrder != false);
|
||||
|
||||
if(fmt.special && fmt.specialFormat == eSpecial_R10G10B10A2)
|
||||
if(fmt.special)
|
||||
{
|
||||
stride = 4;
|
||||
buf1010102 = true;
|
||||
switch(fmt.specialFormat)
|
||||
{
|
||||
case eSpecial_R10G10B10A2:
|
||||
stride = 4;
|
||||
buf1010102 = true;
|
||||
break;
|
||||
case eSpecial_R5G6B5:
|
||||
stride = 2;
|
||||
buf565 = true;
|
||||
break;
|
||||
case eSpecial_R5G5B5A1:
|
||||
stride = 2;
|
||||
buf5551 = true;
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
byte *dst = thpixels;
|
||||
@@ -1305,6 +1320,22 @@ bool WrappedVulkan::EndFrameCapture(void *dev, void *wnd)
|
||||
dst[1] = (byte)(unorm.y * 255.0f);
|
||||
dst[2] = (byte)(unorm.z * 255.0f);
|
||||
}
|
||||
else if(buf565)
|
||||
{
|
||||
uint16_t *src565 = (uint16_t *)src;
|
||||
Vec3f unorm = ConvertFromB5G6R5(*src565);
|
||||
dst[0] = (byte)(unorm.z * 255.0f);
|
||||
dst[1] = (byte)(unorm.y * 255.0f);
|
||||
dst[2] = (byte)(unorm.x * 255.0f);
|
||||
}
|
||||
else if(buf5551)
|
||||
{
|
||||
uint16_t *src5551 = (uint16_t *)src;
|
||||
Vec4f unorm = ConvertFromB5G5R5A1(*src5551);
|
||||
dst[0] = (byte)(unorm.z * 255.0f);
|
||||
dst[1] = (byte)(unorm.y * 255.0f);
|
||||
dst[2] = (byte)(unorm.x * 255.0f);
|
||||
}
|
||||
else if(bufBGRA)
|
||||
{
|
||||
dst[0] = src[2];
|
||||
|
||||
Reference in New Issue
Block a user