#include <ddrawint.h>
#include <ddrawgdi.h>
#include <ntgdi.h>
+#include <d3dhal.h>
/* DATA **********************************************************************/
{
RealDestroy = FALSE;
}
-
+
/* Call win32k */
Return = NtGdiDdDestroySurface((HANDLE)pSurfaceLocal->hDDSurface,
RealDestroy);
DdFlip(LPDDHAL_FLIPDATA Flip)
{
/* Call win32k */
-
+
return NtGdiDdFlip( (HANDLE)Flip->lpSurfCurr->hDDSurface,
(HANDLE)Flip->lpSurfTarg->hDDSurface,
- /* FIXME the two last should be current left handler */
+ /* FIXME the two last should be current left handler */
(HANDLE)Flip->lpSurfCurr->hDDSurface,
(HANDLE)Flip->lpSurfTarg->hDDSurface,
(PDD_FLIPDATA)Flip);
WINAPI
DdLock(LPDDHAL_LOCKDATA Lock)
{
- /* Call win32k */
+ /* Call win32k */
return NtGdiDdLock((HANDLE)Lock->lpDDSurface->hDDSurface,
(PDD_LOCKDATA)Lock,
(HANDLE)Lock->lpDDSurface->hDC);
pDdSurfaceGlobal = &DdSurfaceGlobal;
phSurface = &hPrevSurface;
puhSurface = &hSurface;
-
+
/* Clear the structures */
RtlZeroMemory(&DdSurfaceLocal, sizeof(DdSurfaceLocal));
RtlZeroMemory(&DdSurfaceGlobal, sizeof(DdSurfaceGlobal));
- RtlZeroMemory(&DdSurfaceMore, sizeof(DdSurfaceMore));
+ RtlZeroMemory(&DdSurfaceMore, sizeof(DdSurfaceMore));
}
/* check if we got a surface or not */
phSurface[i] = (HANDLE)lcl->hDDSurface;
ptmpDdSurfaceLocal->ddsCaps.dwCaps = lcl->ddsCaps.dwCaps;
- ptmpDdSurfaceLocal->dwFlags = (ptmpDdSurfaceLocal->dwFlags &
+ ptmpDdSurfaceLocal->dwFlags = (ptmpDdSurfaceLocal->dwFlags &
(0xB0000000 | DDRAWISURF_INMASTERSPRITELIST |
DDRAWISURF_HELCB | DDRAWISURF_FRONTBUFFER |
DDRAWISURF_BACKBUFFER | DDRAWISURF_INVALID |
if (lcl->dwFlags & DDRAWISURF_HASPIXELFORMAT)
{
RtlCopyMemory( &ptmpDdSurfaceGlobal->ddpfSurface ,
- &gpl->ddpfSurface,
+ &gpl->ddpfSurface,
sizeof(DDPIXELFORMAT));
ptmpDdSurfaceGlobal->ddpfSurface.dwSize = sizeof(DDPIXELFORMAT);
ptmpDdSurfaceMore->dwSurfaceHandle = (DWORD) pCreateSurface->lplpSList[i]->dbnOverlayNode.object_int;
}
- /* FIXME count to next SurfaceCount for
+ /* FIXME count to next SurfaceCount for
ptmpDdSurfaceGlobal = pDdSurfaceGlobal;
ptmpDdSurfaceLocal = pDdSurfaceLocal;
ptmpDdSurfaceMore = pDdSurfaceMore;
lcl->lpSurfMore->ddsCapsEx.dwCaps3 = ptmpDdSurfaceMore->ddsCapsEx.dwCaps3;
lcl->lpSurfMore->ddsCapsEx.dwCaps4 = ptmpDdSurfaceMore->ddsCapsEx.dwCaps4;
}
- /* FIXME count to next SurfaceCount for
+ /* FIXME count to next SurfaceCount for
ptmpDdSurfaceGlobal = pDdSurfaceGlobal;
ptmpDdSurfaceLocal = pDdSurfaceLocal;
ptmpDdSurfaceMore = pDdSurfaceMore;
}
/* PRIVATE FUNCTIONS *********************************************************/
-static ULONG RemberDdQueryDisplaySettingsUniquenessID = 0;
BOOL
WINAPI
-bDDCreateSurface(LPDDRAWI_DDRAWSURFACE_LCL pSurface,
+bDDCreateSurface(LPDDRAWI_DDRAWSURFACE_LCL pSurface,
BOOL bComplete)
{
DD_SURFACE_LOCAL SurfaceLocal;
/* Check if we have a pixel format */
if (pSurface->dwFlags & DDSD_PIXELFORMAT)
- {
+ {
/* Use global one */
SurfaceGlobal.ddpfSurface = pSurface->lpGbl->lpDD->vmiData.ddpfDisplay;
SurfaceGlobal.ddpfSurface.dwSize = sizeof(DDPIXELFORMAT);
/*
* @implemented
*
- * GDIEntry 1
+ * GDIEntry 1
*/
-BOOL
-WINAPI
+BOOL
+WINAPI
DdCreateDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
HDC hdc)
-{
+{
BOOL Return = FALSE;
/* Check if the global hDC (hdc == 0) is being used */
if (!ghDirectDraw)
{
/* Create the DC */
- if ((hdc = CreateDC(L"Display", NULL, NULL, NULL)))
+ if ((hdc = CreateDCW(L"Display", NULL, NULL, NULL)))
{
/* Create the DDraw Object */
ghDirectDraw = NtGdiDdCreateDirectDrawObject(hdc);
- /* Delete our DC */
+ /* Delete our DC */
NtGdiDeleteObjectApp(hdc);
}
}
else
{
/* Using the per-process object, so create it */
- pDirectDrawGlobal->hDD = (ULONG_PTR)NtGdiDdCreateDirectDrawObject(hdc);
-
+ pDirectDrawGlobal->hDD = (ULONG_PTR)NtGdiDdCreateDirectDrawObject(hdc);
+
/* Set the return value */
Return = pDirectDrawGlobal->hDD ? TRUE : FALSE;
}
if (D3dCallbacks.ContextCreate)
{
/* FIXME
- pD3dCallbacks->ContextCreate = D3dContextCreate;
+ pD3dCallbacks->ContextCreate = D3dContextCreate;
*/
}
if (D3dCallbacks.ContextDestroy)
}
if (D3dCallbacks.ContextDestroyAll)
{
- /* FIXME
+ /* FIXME
pD3dCallbacks->ContextDestroyAll = (LPD3DHAL_CONTEXTDESTROYALLCB) NtGdiD3dContextDestroyAll;
*/
}
*
* GDIEntry 3
*/
-BOOL
+BOOL
WINAPI
DdDeleteDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal)
{
*
* GDIEntry 4
*/
-BOOL
-WINAPI
+BOOL
+WINAPI
DdCreateSurfaceObject( LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
BOOL bPrimarySurface)
{
- return bDDCreateSurface(pSurfaceLocal, TRUE);
- //return bDdCreateSurfaceObject(pSurfaceLocal, TRUE);
+ return bDDCreateSurface(pSurfaceLocal, TRUE);
}
*
* GDIEntry 5
*/
-BOOL
-WINAPI
+BOOL
+WINAPI
DdDeleteSurfaceObject(LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal)
{
BOOL Return = FALSE;
*
* GDIEntry 6
*/
-BOOL
-WINAPI
-DdResetVisrgn(LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
+BOOL
+WINAPI
+DdResetVisrgn(LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
HWND hWnd)
{
/* Call win32k directly */
HANDLE hSectionApp,
DWORD dwOffset)
{
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return 0;
}
/*
*
* GDIEntry 10
*/
-BOOL
-WINAPI
+BOOL
+WINAPI
DdReenableDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
BOOL *pbNewMode)
{
/* Call win32k directly */
return NtGdiDdReenableDirectDrawObject(GetDdHandle(pDirectDrawGlobal->hDD),
pbNewMode);
-}
+}
/*
*
* GDIEntry 11
*/
-BOOL
-STDCALL
+BOOL
+STDCALL
DdAttachSurface( LPDDRAWI_DDRAWSURFACE_LCL pSurfaceFrom,
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceTo)
{
/* Create Surface if it does not exits one */
- if (pSurfaceFrom->hDDSurface)
+ if (!pSurfaceFrom->hDDSurface)
{
if (!bDDCreateSurface(pSurfaceFrom, FALSE))
{
}
/* Create Surface if it does not exits one */
- if (pSurfaceTo->hDDSurface)
+ if (!pSurfaceTo->hDDSurface)
{
if (!bDDCreateSurface(pSurfaceTo, FALSE))
{
* GDIEntry 13
*/
ULONG
-STDCALL
+STDCALL
DdQueryDisplaySettingsUniqueness()
{
- return RemberDdQueryDisplaySettingsUniquenessID;
+ return GdiSharedHandleTable->flDeviceUniq;
}
/*
*
* GDIEntry 14
*/
-HANDLE
-WINAPI
+HANDLE
+WINAPI
DdGetDxHandle(LPDDRAWI_DIRECTDRAW_LCL pDDraw,
LPDDRAWI_DDRAWSURFACE_LCL pSurface,
BOOL bRelease)
hdc,
lpGammaRamp);
}
-/*
- * @implemented
- *
- * GDIEntry 16
- */
-DWORD
-WINAPI
-DdSwapTextureHandles(LPDDRAWI_DIRECTDRAW_LCL pDDraw,
- LPDDRAWI_DDRAWSURFACE_LCL pDDSLcl1,
- LPDDRAWI_DDRAWSURFACE_LCL pDDSLcl2)
-{
- /* Always returns success */
- return TRUE;
-}
+