These flags determine the strategy for managing pure GDI programs or, in the most complicated case, hybrid games that mix GDI calls with other renderers like DirectDraw or Direct3D.
No GDI handling |
GDINONE |
Disables video-related GDI/user32 API hooking. |
Scaled GDI calls |
HOOKGDI |
Scales GDI API coordinates to fit the window stretching. |
Emulated Device Context |
GDIEMULATEDC |
Handle an emulated GDI device context. |
Share ddraw and GDI DC |
SHAREDDC |
Shares the window DC (device context) with the DirectDraw primary surface DC. These contexts can have very different interactions in fullscreen and windowed modes. In windowed mode, what usually happens is that one DC layer overlaps the other and produces flickering. This option merges the graphic content of GDI on top of the primary surface of DirectDraw. |
Remap Client Rect |
CLIENTREMAPPING |
Enabled by default. Makes DxWnd remap the window client coordinates so that the program receives the same values as if the program was running in fullscreen mode. |
Scale font parameters |
FIXTEXTOUT |
Tries to scale font parameters to fit the window stretching. |
Suppress FillRect |
NOFILLRECT |
It is quite common for a fullscreen program to start its activities by clearing the desktop through a FillRect of the whole desktop area. Though this operation is usually intercepted and redirected to the windowed area, if it fails this flag bypasses that FillRect call. |
Reuse emulated DC |
REUSEEMULATEDDC |
In GDIEMULATEDC mode, the emulated surface is created and destroyed at each frame blit. This flag recycles that DC for subsequent frames, improving performance but sometimes producing side effects. |
Fix clipper area in shared DC |
FIXCLIPPERAREA |
In SHAREDDC mode, this flag tries to compensate for clipping problems between the program window and other windows on the desktop. It is not currently fully implemented, so it is discouraged for now. |
Syncronize GDI to ddraw palette |
SYNCPALETTE |
Makes DirectDraw palette emulation aware of palette changes made through GDI calls. |
Suppress Win common errors |
NOWINERRORS |
Makes system libraries return success in all cases where the error could depend on the windowed environment, but can be safely ignored. Currently, it only suppresses errors in the DestroyWindow user32 call. |