@@ -905,11 +905,11 @@ int WINAPI fake_GetDeviceCaps(HDC hdc, int index)
905905 return 20 ;
906906 }
907907 else
908- {
909- return 256 ;
908+ {
909+ return 256 ;
910+ }
910911 }
911912 }
912- }
913913
914914 return real_GetDeviceCaps (hdc , index );
915915}
@@ -1410,18 +1410,39 @@ HPALETTE WINAPI fake_SelectPalette(HDC hdc, HPALETTE hPal, BOOL bForceBkgd)
14101410 {
14111411 TRACE ("%s [%p]\n" , __FUNCTION__ , _ReturnAddress ());
14121412
1413- PALETTEENTRY pal [256 ];
1414- UINT count = GetPaletteEntries (hPal , 0 , 256 , pal );
1415-
1416- ddp_SetEntries (g_ddraw .primary -> palette , 0 , 0 , count , pal );
1413+ g_ddraw .primary -> selected_pal_count = GetPaletteEntries (hPal , 0 , 256 , g_ddraw .primary -> selected_pal );
14171414
1418- return real_SelectPalette (g_ddraw .primary -> hdc , hPal , bForceBkgd );
1415+ return real_SelectPalette (g_ddraw .primary -> hdc , hPal , bForceBkgd );;
14191416 }
14201417 }
14211418
14221419 return real_SelectPalette (hdc , hPal , bForceBkgd );
14231420}
14241421
1422+ UINT WINAPI fake_RealizePalette (HDC hdc )
1423+ {
1424+ if (g_ddraw .ref &&
1425+ g_ddraw .bpp == 8 &&
1426+ ((g_ddraw .hwnd && WindowFromDC (hdc ) == g_ddraw .hwnd ) || WindowFromDC (hdc ) == GetDesktopWindow ()))
1427+ {
1428+ if (g_ddraw .primary && g_ddraw .primary -> palette )
1429+ {
1430+ TRACE ("%s [%p]\n" , __FUNCTION__ , _ReturnAddress ());
1431+
1432+ ddp_SetEntries (
1433+ g_ddraw .primary -> palette ,
1434+ 0 ,
1435+ 0 ,
1436+ g_ddraw .primary -> selected_pal_count ,
1437+ g_ddraw .primary -> selected_pal );
1438+
1439+ return g_ddraw .primary -> selected_pal_count ;
1440+ }
1441+ }
1442+
1443+ return real_RealizePalette (hdc );
1444+ }
1445+
14251446HMODULE WINAPI fake_LoadLibraryA (LPCSTR lpLibFileName )
14261447{
14271448 HMODULE hmod_old = GetModuleHandleA (lpLibFileName );
0 commit comments