On 14 Oct 2015, at 07:13, Anton Baskanov wrote:
diff --git a/dlls/gdi32/palette.c b/dlls/gdi32/palette.c index d850d0f..70a75d8 100644 --- a/dlls/gdi32/palette.c +++ b/dlls/gdi32/palette.c @@ -418,8 +418,39 @@ UINT WINAPI GetSystemPaletteEntries(
{
if (entries && start < 256)
{
UINT i;
const RGBQUAD *default_entries;
if (start + count > 256) count = 256 - start;
default_entries = get_default_color_table( 8 );
for (i = 0; i < count; ++i)
{
if (start + i < 10 || start + i >= 246)
{
entries[i].peRed = default_entries[start + i].rgbRed;
entries[i].peGreen = default_entries[start + i].rgbGreen;
entries[i].peBlue = default_entries[start + i].rgbBlue;
}
else
{
entries[i].peRed = 0;
entries[i].peGreen = 0;
entries[i].peBlue = 0;
}
entries[i].peFlags = 0;
}
}
}
I think this should be moved to nulldrv_GetSystemPaletteEntries().
Then X11DRV_GetSystemPaletteEntries() should forward to this (using GET_NEXT_PHYSDEV) in the case that 'palette_size' is zero.
This avoids the ugly GetDeviceCaps call at the beginning.
Huw.