mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-11-25 14:57:20 +00:00
[client] egl: partially fix RGB_24 support
This commit is contained in:
parent
8605df8c8d
commit
49bdf046fe
@ -111,7 +111,7 @@ static bool egl_filterBGRtoBGRASetup(EGL_Filter * filter,
|
|||||||
{
|
{
|
||||||
EGL_FilterBGRtoBGRA * this = UPCAST(EGL_FilterBGRtoBGRA, filter);
|
EGL_FilterBGRtoBGRA * this = UPCAST(EGL_FilterBGRtoBGRA, filter);
|
||||||
|
|
||||||
if (pixFmt != EGL_PF_BGR_32 || pixFmt != EGL_PF_RGB_24)
|
if (pixFmt != EGL_PF_BGR_32 && pixFmt != EGL_PF_RGB_24)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (this->useDMA != useDMA)
|
if (this->useDMA != useDMA)
|
||||||
|
@ -30,12 +30,17 @@
|
|||||||
|
|
||||||
bool egl_texUtilGetFormat(const EGL_TexSetup * setup, EGL_TexFormat * fmt)
|
bool egl_texUtilGetFormat(const EGL_TexSetup * setup, EGL_TexFormat * fmt)
|
||||||
{
|
{
|
||||||
|
fmt->pixFmt = setup->pixFmt;
|
||||||
|
fmt->width = setup->width;
|
||||||
|
fmt->height = setup->height;
|
||||||
|
fmt->stride = setup->stride;
|
||||||
|
fmt->pitch = setup->pitch;
|
||||||
|
|
||||||
switch(setup->pixFmt)
|
switch(setup->pixFmt)
|
||||||
{
|
{
|
||||||
//EGL has no support for 24-bit formats, so we stuff it into a 32-bit
|
//EGL has no support for 24-bit formats, so we stuff it into a 32-bit
|
||||||
//texture to unpack with a shader later
|
//texture to unpack with a shader later
|
||||||
case EGL_PF_BGR_32:
|
case EGL_PF_BGR_32:
|
||||||
case EGL_PF_RGB_24:
|
|
||||||
// fallthrough
|
// fallthrough
|
||||||
|
|
||||||
case EGL_PF_BGRA:
|
case EGL_PF_BGRA:
|
||||||
@ -70,17 +75,22 @@ bool egl_texUtilGetFormat(const EGL_TexSetup * setup, EGL_TexFormat * fmt)
|
|||||||
fmt->fourcc = DRM_FORMAT_ABGR16161616F;
|
fmt->fourcc = DRM_FORMAT_ABGR16161616F;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case EGL_PF_RGB_24:
|
||||||
|
fmt->bpp = 3;
|
||||||
|
fmt->format = GL_BGRA_EXT;
|
||||||
|
fmt->intFormat = GL_BGRA_EXT;
|
||||||
|
fmt->dataType = GL_UNSIGNED_BYTE;
|
||||||
|
fmt->fourcc = DRM_FORMAT_ARGB8888;
|
||||||
|
|
||||||
|
// adjust the width as the texture is 32bpp but our source is 24bpp
|
||||||
|
fmt->width = fmt->width / 4 * 3;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
DEBUG_ERROR("Unsupported pixel format");
|
DEBUG_ERROR("Unsupported pixel format");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt->pixFmt = setup->pixFmt;
|
|
||||||
fmt->width = setup->width;
|
|
||||||
fmt->height = setup->height;
|
|
||||||
fmt->stride = setup->stride;
|
|
||||||
fmt->pitch = setup->pitch;
|
|
||||||
|
|
||||||
if (!fmt->stride)
|
if (!fmt->stride)
|
||||||
fmt->stride = setup->width;
|
fmt->stride = setup->width;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user