first working api is GetCaps for HAL. rember we do not support HEL, and
we are missing GdiEntry2 in ros, so it will not working in reactos until
gdientry2 are inplace.
Modified: trunk/reactos/lib/ddraw/hal/ddraw.c
Modified: trunk/reactos/lib/ddraw/main/ddraw.c
_____
Modified: trunk/reactos/lib/ddraw/hal/ddraw.c
--- trunk/reactos/lib/ddraw/hal/ddraw.c 2005-10-23 19:18:39 UTC (rev
18721)
+++ trunk/reactos/lib/ddraw/hal/ddraw.c 2005-10-23 19:24:42 UTC (rev
18722)
@@ -80,18 +80,50 @@
return 1;
}
- /* fill some extra data */
- This->DirectDrawGlobal.vmiData.dwDisplayWidth = This->Width;
- This->DirectDrawGlobal.vmiData.dwDisplayHeight = This->Height;
- This->DirectDrawGlobal.vmiData.lDisplayPitch = This->Width *
This->Bpp/8;
- This->DirectDrawGlobal.vmiData.dwOffscreenAlign = 64;
- This->DirectDrawGlobal.vmiData.dwOverlayAlign = 64;
- This->DirectDrawGlobal.vmiData.dwTextureAlign = 64;
- This->DirectDrawGlobal.vmiData.dwZBufferAlign = 64;
- This->DirectDrawGlobal.vmiData.dwAlphaAlign = 64;
- //This->DirectDrawGlobal.vmiData.ddpfDisplay; // This has to be
filled
+ /* Copy HalInfo to DirectDrawGlobal */
- This->DirectDrawGlobal.ddCaps = This->HalInfo.ddCaps;
+ /* have not check where it should go into yet
+ LPDDHAL_DDCALLBACKS lpDDCallbacks;
+ LPDDHAL_DDSURFACECALLBACKS lpDDSurfaceCallbacks;
+ LPDDHAL_DDPALETTECALLBACKS lpDDPaletteCallbacks;
+ */
+
+
RtlCopyMemory(&This->DirectDrawGlobal.vmiData,&This->HalInfo.vmiData,siz
eof(VIDMEMINFO));
+
RtlCopyMemory(&This->DirectDrawGlobal.ddCaps,&This->HalInfo.ddCaps,sizeo
f(DDCORECAPS));
+ This->DirectDrawGlobal.dwMonitorFrequency =
This->HalInfo.dwMonitorFrequency;
+
+ /* have not check where it should go into yet
+ LPDDHAL_GETDRIVERINFO GetDriverInfo;
+ */
+
+ This->DirectDrawGlobal.dwModeIndex = This->HalInfo.dwModeIndex;
+
+ /* have not check where it should go into yet
+ LPDWORD lpdwFourCC;
+ */
+
+ This->DirectDrawGlobal.dwNumModes = This->HalInfo.dwNumModes;
+ This->DirectDrawGlobal.lpModeInfo = This->HalInfo.lpModeInfo;
+
+ /* have not check where it should go into yet
+ DWORD dwFlags;
+ */
+
+ /* Unsure which of these two for lpPDevice
+ This->DirectDrawGlobal.dwPDevice = This->HalInfo.lpPDevice;
+ This->lpDriverHandle = This->HalInfo.lpPDevice;
+ */
+
+ This->DirectDrawGlobal.hInstance = This->HalInfo.hInstance;
+
+ /* have not check where it should go into yet
+ ULONG_PTR lpD3DGlobalDriverData;
+ ULONG_PTR lpD3DHALCallbacks;
+ LPDDHAL_DDEXEBUFCALLBACKS lpDDExeBufCallbacks;
+ */
+
+
+
This->DirectDrawGlobal.lpDDCBtmp->HALDD =
This->DirectDrawGlobal.lpDDCBtmp->cbDDCallbacks;
This->DirectDrawGlobal.lpDDCBtmp->HALDDSurface =
This->DirectDrawGlobal.lpDDCBtmp->cbDDSurfaceCallbacks;
This->DirectDrawGlobal.lpDDCBtmp->HALDDExeBuf =
This->DirectDrawGlobal.lpDDCBtmp->cbDDExeBufCallbacks;
_____
Modified: trunk/reactos/lib/ddraw/main/ddraw.c
--- trunk/reactos/lib/ddraw/main/ddraw.c 2005-10-23 19:18:39 UTC
(rev 18721)
+++ trunk/reactos/lib/ddraw/main/ddraw.c 2005-10-23 19:24:42 UTC
(rev 18722)
@@ -223,7 +223,25 @@
HRESULT WINAPI Main_DirectDraw_GetCaps(LPDIRECTDRAW7 iface, LPDDCAPS
pDriverCaps,
LPDDCAPS pHELCaps)
{
- DX_STUB;
+ DWORD status = DD_FALSE;
+ IDirectDrawImpl *This = (IDirectDrawImpl *)iface;
+
+ if (pDriverCaps != NULL)
+ {
+
RtlCopyMemory(pDriverCaps,&This->DirectDrawGlobal.ddCaps,sizeof(DDCORECA
PS));
+ status = DD_OK;
+ }
+
+ if (pHELCaps != NULL)
+ {
+
RtlCopyMemory(pDriverCaps,&This->DirectDrawGlobal.ddHELCaps,sizeof(DDCOR
ECAPS));
+ status = DD_OK;
+ }
+
+ /* Both caps mixed ?? */
+ /* DDCORECAPS ddBothCaps; */
+
+ return status;
}
HRESULT WINAPI Main_DirectDraw_GetDisplayMode(LPDIRECTDRAW7 iface,
LPDDSURFACEDESC2 pDDSD)
Show replies by date