mirror of
https://github.com/FreeRDP/FreeRDP.git
synced 2025-06-03 00:00:20 +00:00
Windows GDI color decoding.
This commit is contained in:
parent
f16ffaefa7
commit
2e40c9c99d
@ -66,7 +66,43 @@ static const BYTE wf_rop2_table[] =
|
|||||||
static BOOL wf_decode_color(wfContext* wfc, const UINT32 srcColor,
|
static BOOL wf_decode_color(wfContext* wfc, const UINT32 srcColor,
|
||||||
UINT32* color, UINT32* format)
|
UINT32* color, UINT32* format)
|
||||||
{
|
{
|
||||||
return gdi_decode_color(wfc->context.gdi, srcColor, color, format);
|
rdpGdi* gdi;
|
||||||
|
rdpSettings* settings;
|
||||||
|
UINT32 SrcFormat, DstFormat;
|
||||||
|
|
||||||
|
if (!wfc)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
gdi = wfc->context.gdi;
|
||||||
|
settings = wfc->context.settings;
|
||||||
|
|
||||||
|
if (!gdi || !settings)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
SrcFormat = gdi_get_pixel_format(gdi->context->settings->ColorDepth,
|
||||||
|
FALSE);
|
||||||
|
|
||||||
|
if (format)
|
||||||
|
*format = SrcFormat;
|
||||||
|
|
||||||
|
switch(GetBitsPerPixel(gdi->dstFormat))
|
||||||
|
{
|
||||||
|
case 32:
|
||||||
|
DstFormat = PIXEL_FORMAT_ABGR32;
|
||||||
|
break;
|
||||||
|
case 24:
|
||||||
|
DstFormat = PIXEL_FORMAT_BGR24;
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
DstFormat = PIXEL_FORMAT_RGB16;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*color = ConvertColor(srcColor, SrcFormat,
|
||||||
|
DstFormat, &gdi->palette);
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL wf_set_rop2(HDC hdc, int rop2)
|
static BOOL wf_set_rop2(HDC hdc, int rop2)
|
||||||
|
Loading…
Reference in New Issue
Block a user