implement GDIEntry1 of 16, the code is bit untested, we can not test it until all...
authorMagnus Olsen <magnus@greatlord.com>
Thu, 28 Jul 2005 18:45:58 +0000 (18:45 +0000)
committerMagnus Olsen <magnus@greatlord.com>
Thu, 28 Jul 2005 18:45:58 +0000 (18:45 +0000)
svn path=/trunk/; revision=16834

reactos/lib/gdi32/gdi32.xml
reactos/lib/gdi32/include/ddentry.h [new file with mode: 0644]
reactos/lib/gdi32/include/precomp.h
reactos/lib/gdi32/misc/gdientry.c [new file with mode: 0644]
reactos/lib/gdi32/misc/stubs.c

index 4a81897..5123e93 100644 (file)
@@ -17,6 +17,7 @@
        </directory>
        <directory name="misc">
                <file>heap.c</file>
+            <file>gdientry.c</file>
                <file>misc.c</file>
                <file>stubs.c</file>
                <file>stubsa.c</file>
diff --git a/reactos/lib/gdi32/include/ddentry.h b/reactos/lib/gdi32/include/ddentry.h
new file mode 100644 (file)
index 0000000..87a20af
--- /dev/null
@@ -0,0 +1,324 @@
+\r
+#ifndef __D3D8THK_H\r
+#define __D3D8THK_H\r
+\r
+#include <ddk\ddrawint.h>\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+BOOL STDCALL NtGdiD3dContextCreate(\r
+    HANDLE hDirectDrawLocal,\r
+    HANDLE hSurfColor,\r
+    HANDLE hSurfZ,\r
+    PD3DNTHAL_CONTEXTCREATEDATA pdcci\r
+);\r
+\r
+DWORD STDCALL NtGdiD3dContextDestroy(      \r
+    PD3DNTHAL_CONTEXTDESTROYDATA pContextDestroyData\r
+);\r
+\r
+DWORD STDCALL NtGdiD3dContextDestroyAll(VOID);\r
+\r
+DWORD STDCALL NtGdiD3dDrawPrimitives2(      \r
+    HANDLE hCmdBuf,\r
+    HANDLE hVBuf,\r
+    PD3DNTHAL_DRAWPRIMITIVES2DATA pded,\r
+    FLATPTR *pfpVidMemCmd,\r
+    DWORD *pdwSizeCmd,\r
+    FLATPTR *pfpVidMemVtx,\r
+    DWORD *pdwSizeVtx\r
+);\r
+\r
+DWORD STDCALL NtGdiD3dValidateTextureStageState(      \r
+    PD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdAddAttachedSurface(      \r
+    HANDLE hSurface,\r
+    HANDLE hSurfaceAttached,\r
+    PDD_ADDATTACHEDSURFACEDATA puAddAttachedSurfaceData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdAlphaBlt(VOID);\r
+\r
+BOOL STDCALL NtGdiDdAttachSurface(      \r
+    HANDLE hSurfaceFrom,\r
+    HANDLE hSurfaceTo\r
+);\r
+\r
+DWORD STDCALL NtGdiDdBeginMoCompFrame(      \r
+    HANDLE hMoComp,\r
+    PDD_BEGINMOCOMPFRAMEDATA puBeginFrameData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdBlt(      \r
+    HANDLE hSurfaceDest,\r
+    HANDLE hSurfaceSrc,\r
+    PDD_BLTDATA puBltData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdCanCreateD3DBuffer(      \r
+    HANDLE hDirectDraw,\r
+    PDD_CANCREATESURFACEDATA puCanCreateSurfaceData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdCanCreateSurface(      \r
+    HANDLE hDirectDraw,\r
+    PDD_CANCREATESURFACEDATA puCanCreateSurfaceData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdColorControl(      \r
+    HANDLE hSurface,\r
+    PDD_COLORCONTROLDATA puColorControlData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdCreateD3DBuffer(      \r
+    HANDLE hDirectDraw,\r
+    HANDLE *hSurface,\r
+    DDSURFACEDESC *puSurfaceDescription,\r
+    DD_SURFACE_GLOBAL *puSurfaceGlobalData,\r
+    DD_SURFACE_LOCAL *puSurfaceLocalData,\r
+    DD_SURFACE_MORE *puSurfaceMoreData,\r
+    PDD_CREATESURFACEDATA puCreateSurfaceData,\r
+    HANDLE *puhSurface\r
+);\r
+\r
+HANDLE STDCALL NtGdiDdCreateDirectDrawObject(      \r
+    HDC hdc\r
+);\r
+\r
+HANDLE STDCALL NtGdiDdCreateMoComp(      \r
+    HANDLE hDirectDraw,\r
+    PDD_CREATEMOCOMPDATA puCreateMoCompData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdCreateSurface(      \r
+    HANDLE hDirectDraw,\r
+    HANDLE *hSurface,\r
+    DDSURFACEDESC *puSurfaceDescription,\r
+    DD_SURFACE_GLOBAL *puSurfaceGlobalData,\r
+    DD_SURFACE_LOCAL *puSurfaceLocalData,\r
+    DD_SURFACE_MORE *puSurfaceMoreData,\r
+    PDD_CREATESURFACEDATA puCreateSurfaceData,\r
+    HANDLE *puhSurface\r
+);\r
+\r
+DWORD STDCALL NtGdiDdCreateSurfaceEx(      \r
+    HANDLE hDirectDraw,\r
+    HANDLE hSurface,\r
+    DWORD dwSurfaceHandle\r
+);\r
+\r
+HANDLE STDCALL NtGdiDdCreateSurfaceObject(      \r
+    HANDLE hDirectDrawLocal,\r
+    HANDLE hSurface,\r
+    PDD_SURFACE_LOCAL puSurfaceLocal,\r
+    PDD_SURFACE_MORE puSurfaceMore,\r
+    PDD_SURFACE_GLOBAL puSurfaceGlobal,\r
+    BOOL bComplete\r
+);\r
+\r
+BOOL STDCALL NtGdiDdDeleteDirectDrawObject(      \r
+    HANDLE hDirectDrawLocal\r
+);\r
+\r
+BOOL STDCALL NtGdiDdDeleteSurfaceObject(      \r
+    HANDLE hSurface\r
+);\r
+\r
+DWORD STDCALL NtGdiDdDestroyD3DBuffer(      \r
+    HANDLE hSurface\r
+);\r
+\r
+DWORD STDCALL NtGdiDdDestroyMoComp(      \r
+    HANDLE hMoComp,\r
+    PDD_DESTROYMOCOMPDATA puBeginFrameData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdDestroySurface(      \r
+    HANDLE hSurface,\r
+    BOOL bRealDestroy\r
+);\r
+\r
+DWORD STDCALL NtGdiDdEndMoCompFrame(      \r
+    HANDLE hMoComp,\r
+    PDD_ENDMOCOMPFRAMEDATA puEndFrameData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdFlip(      \r
+    HANDLE hSurfaceCurrent,\r
+    HANDLE hSurfaceTarget,\r
+    HANDLE hSurfaceCurrentLeft,\r
+    HANDLE hSurfaceTargetLeft,\r
+    PDD_FLIPDATA puFlipData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdFlipToGDISurface(      \r
+    HANDLE hDirectDraw,\r
+    PDD_FLIPTOGDISURFACEDATA puFlipToGDISurfaceData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdGetAvailDriverMemory(      \r
+    HANDLE hDirectDraw,\r
+    PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdGetBltStatus(      \r
+    HANDLE hSurface,\r
+    PDD_GETBLTSTATUSDATA puGetBltStatusData\r
+);\r
+\r
+HDC STDCALL NtGdiDdGetDC(      \r
+    HANDLE hSurface,\r
+    PALETTEENTRY *puColorTable\r
+);\r
+\r
+DWORD STDCALL NtGdiDdGetDriverInfo(      \r
+    HANDLE hDirectDraw,\r
+    PDD_GETDRIVERINFODATA puGetDriverInfoData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdGetDriverState(      \r
+    PDD_GETDRIVERSTATEDATA pdata\r
+);\r
+\r
+DWORD STDCALL NtGdiDdGetDxHandle(      \r
+    HANDLE hDirectDraw,\r
+    HANDLE hSurface,\r
+    BOOL bRelease\r
+);\r
+\r
+DWORD STDCALL NtGdiDdGetFlipStatus(      \r
+    HANDLE hSurface,\r
+    PDD_GETFLIPSTATUSDATA puGetFlipStatusData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdGetInternalMoCompInfo(      \r
+    HANDLE hDirectDraw,\r
+    PDD_GETINTERNALMOCOMPDATA puGetInternalData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdGetMoCompBuffInfo(      \r
+    HANDLE hDirectDraw,\r
+    PDD_GETMOCOMPCOMPBUFFDATA puGetBuffData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdGetMoCompFormats(      \r
+    HANDLE hDirectDraw,\r
+    PDD_GETMOCOMPFORMATSDATA puGetMoCompFormatsData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdGetMoCompGuids(      \r
+    HANDLE hDirectDraw,\r
+    PDD_GETMOCOMPGUIDSDATA puGetMoCompGuidsData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdGetScanLine(      \r
+    HANDLE hDirectDraw,\r
+    PDD_GETSCANLINEDATA puGetScanLineData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdLock(      \r
+    HANDLE hSurface,\r
+    PDD_LOCKDATA puLockData,\r
+    HDC hdcClip\r
+);\r
+\r
+DWORD STDCALL NtGdiDdLockD3D(      \r
+    HANDLE hSurface,\r
+    PDD_LOCKDATA puLockData\r
+);\r
+\r
+BOOL STDCALL NtGdiDdQueryDirectDrawObject(      \r
+    HANDLE hDirectDrawLocal,\r
+    DD_HALINFO *pHalInfo,\r
+    DWORD *pCallBackFlags,\r
+    PD3DNTHAL_CALLBACKS puD3dCallbacks,\r
+    PD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData,\r
+    PDD_D3DBUFCALLBACKS puD3dBufferCallbacks,\r
+    LPDDSURFACEDESC puD3dTextureFormats,\r
+    DWORD *puNumHeaps,\r
+    VIDEOMEMORY *puvmList,\r
+    DWORD *puNumFourCC,\r
+    DWORD *puFourCC\r
+);\r
+\r
+DWORD STDCALL NtGdiDdQueryMoCompStatus(      \r
+    HANDLE hMoComp,\r
+    PDD_QUERYMOCOMPSTATUSDATA puQueryMoCompStatusData\r
+);\r
+\r
+BOOL STDCALL NtGdiDdReenableDirectDrawObject(      \r
+    HANDLE hDirectDrawLocal,\r
+    BOOL *pubNewMode\r
+);\r
+\r
+BOOL STDCALL NtGdiDdReleaseDC(      \r
+    HANDLE hSurface\r
+);\r
+\r
+DWORD STDCALL NtGdiDdRenderMoComp(      \r
+    HANDLE hMoComp,\r
+    PDD_RENDERMOCOMPDATA puRenderMoCompData\r
+);\r
+\r
+BOOL STDCALL NtGdiDdResetVisrgn(      \r
+    HANDLE hSurface,\r
+    HWND hwnd\r
+);\r
+\r
+DWORD STDCALL NtGdiDdSetColorKey(      \r
+    HANDLE hSurface,\r
+    PDD_SETCOLORKEYDATA puSetColorKeyData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdSetExclusiveMode(      \r
+    HANDLE hDirectDraw,\r
+    PDD_SETEXCLUSIVEMODEDATA puSetExclusiveModeData\r
+);\r
+\r
+BOOL STDCALL NtGdiDdSetGammaRamp(      \r
+    HANDLE hDirectDraw,\r
+    HDC hdc,\r
+    LPVOID lpGammaRamp\r
+);\r
+\r
+DWORD STDCALL NtGdiDdSetOverlayPosition(      \r
+    HANDLE hSurfaceSource,\r
+    HANDLE hSurfaceDestination,\r
+    PDD_SETOVERLAYPOSITIONDATA puSetOverlayPositionData\r
+);\r
+\r
+VOID STDCALL NtGdiDdUnattachSurface(      \r
+    HANDLE hSurface,\r
+    HANDLE hSurfaceAttached\r
+);\r
+\r
+DWORD STDCALL NtGdiDdUnlock(      \r
+    HANDLE hSurface,\r
+    PDD_UNLOCKDATA puUnlockData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdUnlockD3D(      \r
+    HANDLE hSurface,\r
+    PDD_UNLOCKDATA puUnlockData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdUpdateOverlay(      \r
+    HANDLE hSurfaceDestination,\r
+    HANDLE hSurfaceSource,\r
+    PDD_UPDATEOVERLAYDATA puUpdateOverlayData\r
+);\r
+\r
+DWORD STDCALL NtGdiDdWaitForVerticalBlank(      \r
+    HANDLE hDirectDraw,\r
+    PDD_WAITFORVERTICALBLANKDATA puWaitForVerticalBlankData\r
+);\r
+\r
+#ifdef __cplusplus\r
+} /* extern "C" */\r
+#endif\r
+\r
+#endif // __D3D8THK_H\r
index 1c06369..524c21a 100644 (file)
 #include <prntfont.h>
 #include <ddrawgdi.h>
 #include <ndk/ntndk.h>
+#include <tchar.h>
 
 /* Win32K External Headers */
 #include <win32k/kapi.h>
 
+/* directdraw syscall */
+#include <ddentry.h>
+
+
 #define NtUserGetDCBrushColor(hbr) \
   (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_BRUSH, TWOPARAM_ROUTINE_GETDCCOLOR)
 
diff --git a/reactos/lib/gdi32/misc/gdientry.c b/reactos/lib/gdi32/misc/gdientry.c
new file mode 100644 (file)
index 0000000..d106f5f
--- /dev/null
@@ -0,0 +1,89 @@
+/*\r
+ *\r
+ * This library is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU Lesser General Public\r
+ * License as published by the Free Software Foundation; either\r
+ * version 2.1 of the License, or (at your option) any later version.\r
+ *\r
+ * This library is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+ * Lesser General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU Lesser General Public\r
+ * License along with this library; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+ */\r
+/*\r
+ * $Id:\r
+ * COPYRIGHT:        See COPYING in the top level directory\r
+ * PROJECT:          ReactOS GDI32\r
+ * PURPOSE:          Gdi DirectX inteface\r
+ * FILE:             lib/gdi32/misc/gdientry.c\r
+ * PROGRAMER:        Magnus Olsen (magnus@greatlord.com)\r
+ * REVISION HISTORY: \r
+ * NOTES:            \r
+ */\r
+\r
+\r
+#include "precomp.h"\r
+static LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobalInternal;\r
+\r
+\r
+/*\r
+ * @implemented\r
+ *\r
+ * GDIEntry 1 \r
+ */\r
+BOOL STDCALL DdCreateDirectDrawObject( \r
+LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,\r
+HDC hdc)\r
+{  \r
+  HDC newHdc;\r
+  /* check see if HDC is NULL or not  \r
+     if it null we need create the DC */\r
+\r
+  if (hdc != NULL) \r
+  {\r
+    pDirectDrawGlobal->hDD = (ULONG_PTR)NtGdiDdCreateDirectDrawObject(hdc); \r
+    \r
+    /* if hDD ==NULL */\r
+    if (!pDirectDrawGlobal->hDD) \r
+    {\r
+      return FALSE;\r
+    }\r
+    return TRUE;\r
+  }\r
+\r
+  /* The hdc was not null we need check see if we alread \r
+     have create a directdraw handler */\r
+\r
+  /* if hDD !=NULL */\r
+  if (pDirectDrawGlobalInternal->hDD)\r
+  {\r
+    /* we have create a directdraw handler already */\r
+\r
+    pDirectDrawGlobal->hDD = pDirectDrawGlobalInternal->hDD;\r
+    return TRUE;\r
+  }\r
+\r
+  /* Now we create the DC */\r
+  newHdc = CreateDC(L"DISPLAY\0", NULL, NULL, NULL);\r
+\r
+  /* we are checking if we got a hdc or not */\r
+  if ((ULONG_PTR)newHdc != pDirectDrawGlobalInternal->hDD)\r
+  {\r
+    pDirectDrawGlobalInternal->hDD = (ULONG_PTR) NtGdiDdCreateDirectDrawObject(newHdc);\r
+    NtGdiDeleteDC(newHdc);\r
+  }\r
+\r
+   pDirectDrawGlobal->hDD = pDirectDrawGlobalInternal->hDD;\r
+\r
+  /* test see if we got a handler */\r
+  if (!pDirectDrawGlobalInternal->hDD)\r
+  {       \r
+    return FALSE;\r
+  }\r
+\r
+  return TRUE;\r
+}\r
index 84d1122..a404595 100644 (file)
@@ -3862,18 +3862,6 @@ XLATEOBJ_piVector(XLATEOBJ *XlateObj)
        return 0;
 }
 
-/*
- * @unimplemented
- */
-BOOL STDCALL DdCreateDirectDrawObject( 
-LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
-HDC hdc
-)
-{
-       UNIMPLEMENTED;
-       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-       return 0;
-}
 
 /*
  * @unimplemented