2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS DirectX
4 * FILE: dll/directx/ddraw/Ddraw/callbacks_dd_hel.c
5 * PURPOSE: HEL Callbacks for Direct Draw
6 * PROGRAMMER: Magnus Olsen
13 extern DDPIXELFORMAT pixelformats
[];
14 extern DWORD pixelformatsCount
;
17 * Direct Draw Callbacks
20 DWORD CALLBACK
HelDdDestroyDriver(LPDDHAL_DESTROYDRIVERDATA lpDestroyDriver
)
25 DWORD CALLBACK
HelDdCreateSurface(LPDDHAL_CREATESURFACEDATA lpCreateSurface
)
31 DWORD CALLBACK
HelDdSetColorKey(LPDDHAL_DRVSETCOLORKEYDATA lpDrvSetColorKey
)
37 DWORD CALLBACK
HelDdSetMode(LPDDHAL_SETMODEDATA SetMode
)
41 DX_STUB_str("in hel");
43 DevMode
.dmSize
= (WORD
)sizeof(DEVMODE
);
44 DevMode
.dmDriverExtra
= 0;
46 SetMode
->ddRVal
= DDERR_UNSUPPORTEDMODE
;
48 if (EnumDisplaySettingsEx(NULL
, SetMode
->dwModeIndex
, &DevMode
, 0 ) != 0)
52 if (ChangeDisplaySettings(&DevMode
, CDS_FULLSCREEN
) != DISP_CHANGE_SUCCESSFUL
)
55 SetMode
->ddRVal
= DDERR_UNSUPPORTEDMODE
;
60 SetMode
->ddRVal
= DD_OK
;
64 return DDHAL_DRIVER_HANDLED
;
67 DWORD CALLBACK
HelDdWaitForVerticalBlank(LPDDHAL_WAITFORVERTICALBLANKDATA lpWaitForVerticalBlank
)
72 DWORD CALLBACK
HelDdCanCreateSurface(LPDDHAL_CANCREATESURFACEDATA lpCanCreateSurface
)
77 DWORD CALLBACK
HelDdCreatePalette(LPDDHAL_CREATEPALETTEDATA lpCreatePalette
)
79 DDRAWI_DDRAWPALETTE_GBL
* ddPalGbl
= lpCreatePalette
->lpDDPalette
;
83 if(ddPalGbl
->dwFlags
& DDRAWIPAL_2
)
85 else if(ddPalGbl
->dwFlags
& DDRAWIPAL_4
)
87 else if(ddPalGbl
->dwFlags
& DDRAWIPAL_16
)
89 else if(ddPalGbl
->dwFlags
& DDRAWIPAL_256
)
92 DxHeapMemAlloc(logPal
, sizeof(LOGPALETTE
) + size
*sizeof(PALETTEENTRY
));
95 lpCreatePalette
->ddRVal
= DDERR_OUTOFMEMORY
;
96 return DDHAL_DRIVER_HANDLED
;
99 logPal
->palVersion
= 0x300;
100 logPal
->palNumEntries
= size
;
101 CopyMemory(&logPal
->palPalEntry
[0], lpCreatePalette
->lpColorTable
, size
*sizeof(PALETTEENTRY
));
103 ddPalGbl
->hHELGDIPalette
= CreatePalette(logPal
);
105 if (ddPalGbl
->hHELGDIPalette
== NULL
)
107 DxHeapMemFree(logPal
);
108 lpCreatePalette
->ddRVal
= DDERR_INVALIDOBJECT
;
109 return DDHAL_DRIVER_HANDLED
;
112 DxHeapMemFree(logPal
);
113 ddPalGbl
->lpColorTable
= lpCreatePalette
->lpColorTable
;
114 ddPalGbl
->dwFlags
|= DDRAWIPAL_INHEL
| DDRAWIPAL_GDI
;
115 lpCreatePalette
->ddRVal
= DD_OK
;
116 return DDHAL_DRIVER_HANDLED
;
119 DWORD CALLBACK
HelDdGetScanLine(LPDDHAL_GETSCANLINEDATA lpGetScanLine
)
124 DWORD CALLBACK
HelDdSetExclusiveMode(LPDDHAL_SETEXCLUSIVEMODEDATA lpSetExclusiveMode
)
127 DX_STUB_str("Not implement yet, return DD_OK for not bsod\n");
128 lpSetExclusiveMode
->ddRVal
= DD_OK
;
130 return DDHAL_DRIVER_HANDLED
;
133 DWORD CALLBACK
HelDdFlipToGDISurface(LPDDHAL_FLIPTOGDISURFACEDATA lpFlipToGDISurface
)