Try again move to new redesign but now we take one step at time
authorMagnus Olsen <magnus@greatlord.com>
Sun, 7 May 2006 08:41:26 +0000 (08:41 +0000)
committerMagnus Olsen <magnus@greatlord.com>
Sun, 7 May 2006 08:41:26 +0000 (08:41 +0000)
svn path=/trunk/; revision=21820

reactos/dll/directx/ddraw/ddraw.rbuild
reactos/dll/directx/ddraw/helinterface.c [new file with mode: 0644]
reactos/dll/directx/ddraw/soft/ddraw_hel.c
reactos/dll/directx/ddraw/soft/surface_callbacks_hel.c

index f85f32d..ab1a4c7 100644 (file)
@@ -17,6 +17,7 @@
        <file>ddraw.rc</file>
        <file>main.c</file>
        <file>regsvr.c</file>
+      <file>helinterface.c</file>
 
       <file>clipper.c</file>
        <file>color.c</file>
diff --git a/reactos/dll/directx/ddraw/helinterface.c b/reactos/dll/directx/ddraw/helinterface.c
new file mode 100644 (file)
index 0000000..48226fa
--- /dev/null
@@ -0,0 +1,40 @@
+#include "rosdraw.h"
+
+HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 iface)
+{
+       IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
+
+       This->HELMemoryAvilable = HEL_GRAPHIC_MEMORY_MAX;
+
+    This->mCallbacks.HELDD.dwFlags = DDHAL_CB32_DESTROYDRIVER;
+    This->mCallbacks.HELDD.DestroyDriver = HelDdDestroyDriver;
+    
+    This->mCallbacks.HELDD.dwFlags += DDHAL_CB32_CREATESURFACE; 
+    This->mCallbacks.HELDD.CreateSurface = HelDdCreateSurface;
+    
+    // DDHAL_CB32_
+    //This->mCallbacks.HELDD.SetColorKey = HelDdSetColorKey;
+   
+    This->mCallbacks.HELDD.dwFlags += DDHAL_CB32_SETMODE;
+    This->mCallbacks.HELDD.SetMode = HelDdSetMode;
+    
+    This->mCallbacks.HELDD.dwFlags += DDHAL_CB32_WAITFORVERTICALBLANK;     
+    This->mCallbacks.HELDD.WaitForVerticalBlank = HelDdWaitForVerticalBlank;
+        
+    This->mCallbacks.HELDD.dwFlags += DDHAL_CB32_CANCREATESURFACE;
+    This->mCallbacks.HELDD.CanCreateSurface = HelDdCanCreateSurface;
+    
+    This->mCallbacks.HELDD.dwFlags += DDHAL_CB32_CREATEPALETTE;
+    This->mCallbacks.HELDD.CreatePalette = HelDdCreatePalette;
+    
+    This->mCallbacks.HELDD.dwFlags += DDHAL_CB32_GETSCANLINE;
+    This->mCallbacks.HELDD.GetScanLine = HelDdGetScanLine;
+    
+    This->mCallbacks.HELDD.dwFlags += DDHAL_CB32_SETEXCLUSIVEMODE;
+    This->mCallbacks.HELDD.SetExclusiveMode = HelDdSetExclusiveMode;
+
+    This->mCallbacks.HELDD.dwFlags += DDHAL_CB32_FLIPTOGDISURFACE;
+    This->mCallbacks.HELDD.FlipToGDISurface = HelDdFlipToGDISurface;
+   
+       return DD_OK;
+}
index 9a53f6c..61f4896 100644 (file)
@@ -11,7 +11,7 @@
 #include "rosdraw.h"
 
 
-
+/*
 HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 iface)
 {
        IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
@@ -25,7 +25,7 @@ HRESULT Hel_DirectDraw_Initialize (LPDIRECTDRAW7 iface)
     This->mCallbacks.HELDD.CreateSurface = HelDdCreateSurface;
 
        return DD_OK;
-}
+} */
 
 HRESULT Hel_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface)
 {
index e0961ea..d942e87 100644 (file)
 extern  DDPIXELFORMAT pixelformats[];\r
 extern DWORD pixelformatsCount;\r
 \r
-DWORD CALLBACK HelDdCanCreateSurface(LPDDHAL_CANCREATESURFACEDATA pccsd)\r
+/*\r
+ * Direct Draw Callbacks \r
+ */\r
\r
+DWORD CALLBACK  HelDdDestroyDriver(LPDDHAL_DESTROYDRIVERDATA lpDestroyDriver)\r
 {\r
-    DWORD count;\r
-    \r
-     // FIXME check the HAL pixelformat table if it exists \r
-\r
-     // FIXME check how big the surface in byte and report it can be create or not \r
-     // if we got egunt with HEL memmory \r
+       DX_STUB;\r
+}\r
 \r
-       \r
-     // HEL only support 16bits & 15bits Z-Buffer\r
-    if ((pccsd->lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_ZBUFFER) && \r
-        (pccsd->lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY))\r
-    {        \r
-        pccsd->ddRVal = DDERR_INVALIDPIXELFORMAT;\r
-        \r
-        if (DDSD_ZBUFFERBITDEPTH & pccsd->lpDDSurfaceDesc->dwFlags)\r
-        {            \r
-            if (pccsd->lpDDSurfaceDesc->dwZBufferBitDepth == 16)\r
-            {\r
-                pccsd->ddRVal = DD_OK;\r
-            }\r
-        }\r
-        else\r
-        {            \r
-            if (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwZBufferBitDepth == 16)\r
-            {\r
-                pccsd->ddRVal = DD_OK;\r
-            }\r
-        }                        \r
-        return DDHAL_DRIVER_HANDLED;\r
-    }\r
+DWORD CALLBACK  HelDdCreateSurface(LPDDHAL_CREATESURFACEDATA lpCreateSurface)\r
+{\r
+       DX_STUB;\r
+}\r
 \r
-    // Check diffent pixel format \r
-    if (pccsd->bIsDifferentPixelFormat)\r
-    {\r
-        //if(pccsd->ddpfPixelFormat.dwFlags & DDPF_FOURCC)\r
-        if(pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwFlags & 0)\r
-        {                                    \r
-            switch (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwFourCC)\r
-            {\r
-                //case FOURCC_YUV422:       \r
-                case 0:       \r
-                    // FIXME check if display is 8bmp or not if it return DDERR_INVALIDPIXELFORMAT\r
-                    pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwYUVBitCount = 16;\r
-                    pccsd->ddRVal = DD_OK;                \r
-                    return DDHAL_DRIVER_HANDLED;\r
+/*\r
+DWORD CALLBACK  HelDdSetColorKey(LPDDHAL_SETCOLORKEYDATA lpSetColorKey)\r
+{\r
+       DX_STUB;\r
+}\r
+*/\r
 \r
-                default:                \r
-                    pccsd->ddRVal = DDERR_INVALIDPIXELFORMAT;\r
-                    return DDHAL_DRIVER_HANDLED;\r
-            }\r
+DWORD CALLBACK  HelDdSetMode(LPDDHAL_SETMODEDATA SetMode)\r
+{\r
+       DX_STUB;\r
+}\r
 \r
-         }\r
-         else if((pccsd->lpDDSurfaceDesc->ddsCaps.dwCaps & DDSCAPS_TEXTURE))\r
-         {             \r
-             for(count=0;count< pixelformatsCount ;count++)\r
-             {\r
-                 if (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwFlags !=  pixelformats->dwFlags)\r
-                 {\r
-                     continue;\r
-                 }\r
+DWORD CALLBACK  HelDdWaitForVerticalBlank(LPDDHAL_WAITFORVERTICALBLANKDATA lpWaitForVerticalBlank)\r
+{\r
+       DX_STUB;\r
+}\r
 \r
-                 if (!(pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwFlags & (DDPF_YUV | DDPF_FOURCC)))\r
-                 {\r
-                     if (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwRGBBitCount != pixelformats->dwRGBBitCount )                     \r
-                     {\r
-                       continue;\r
-                     }\r
-                 }\r
+DWORD CALLBACK  HelDdCanCreateSurface(LPDDHAL_CANCREATESURFACEDATA lpCanCreateSurface)\r
+{\r
+       DX_STUB;\r
+}\r
 \r
-                 if (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwFlags & DDPF_RGB)\r
-                 {\r
-                    if ((pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwRBitMask != pixelformats->dwRBitMask) ||\r
-                        (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwGBitMask != pixelformats->dwGBitMask) ||\r
-                        (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwBBitMask != pixelformats->dwBBitMask) ||\r
-                        (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwRGBAlphaBitMask != pixelformats->dwRGBAlphaBitMask))\r
-                    { \r
-                       continue;\r
-                    }\r
-                 }\r
+DWORD CALLBACK  HelDdCreatePalette(LPDDHAL_CREATEPALETTEDATA lpCreatePalette)\r
+{\r
+       DX_STUB;\r
+}\r
 \r
-                 if (pccsd->lpDDSurfaceDesc->dwFlags & DDPF_YUV)       \r
-                 {\r
-                    if ((pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwFourCC != pixelformats->dwFourCC) ||\r
-                        (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwYUVBitCount != pixelformats->dwYUVBitCount) ||\r
-                        (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwYBitMask != pixelformats->dwYBitMask) ||\r
-                        (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwUBitMask != pixelformats->dwUBitMask) ||\r
-                        (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwVBitMask != pixelformats->dwVBitMask) ||\r
-                        (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwYUVAlphaBitMask != pixelformats->dwYUVAlphaBitMask))\r
-                        {\r
-                           continue;\r
-                        }\r
-                 }\r
-                 else if (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwFlags & DDPF_FOURCC)\r
-                 {\r
-    \r
-                    if (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwFourCC != pixelformats->dwFourCC)\r
-                    {\r
-                        continue;\r
-                    }\r
-                }                 \r
-                if (pccsd->lpDDSurfaceDesc->dwFlags & DDPF_ZPIXELS)\r
-                {\r
-                  if (pccsd->lpDDSurfaceDesc->ddpfPixelFormat.dwRGBZBitMask != pixelformats->dwRGBZBitMask)\r
-                  {\r
-                     continue;\r
-                  }\r
-                }\r
-                 \r
-                pccsd->ddRVal = DD_OK;                \r
-                return DDHAL_DRIVER_HANDLED;\r
-             } \r
+DWORD CALLBACK  HelDdGetScanLine(LPDDHAL_GETSCANLINEDATA lpGetScanLine)\r
+{\r
+       DX_STUB;\r
+}\r
 \r
-             // for did not found a pixel format \r
-             pccsd->ddRVal = DDERR_INVALIDPIXELFORMAT;                \r
-             return DDHAL_DRIVER_HANDLED;\r
-          } \r
-    } \r
-    \r
-    // no diffent pixel format was found so we return OK\r
-    pccsd->ddRVal = DD_OK;\r
-    return DDHAL_DRIVER_HANDLED;   \r
+DWORD CALLBACK  HelDdSetExclusiveMode(LPDDHAL_SETEXCLUSIVEMODEDATA lpSetExclusiveMode)\r
+{\r
+        DX_WINDBG_trace();\r
+        DX_STUB_str("Not implement yet, return DD_OK for not bsod\n");\r
+        return DD_OK;\r
 }\r
 \r
-DWORD CALLBACK HelDdCreateSurface(LPDDHAL_CREATESURFACEDATA  lpCreateSurface)\r
+DWORD CALLBACK  HelDdFlipToGDISurface(LPDDHAL_FLIPTOGDISURFACEDATA lpFlipToGDISurface)\r
 {\r
-       DX_STUB;\r
+       DX_STUB;\r
 }\r
+\r