[ros-diffs] [greatlrd] 27226: Fixed some smaller bugs

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Mon Jun 18 20:11:39 CEST 2007


Author: greatlrd
Date: Mon Jun 18 22:11:39 2007
New Revision: 27226

URL: http://svn.reactos.org/svn/reactos?rev=27226&view=rev
Log:
Fixed some smaller bugs

Modified:
    trunk/reactos/dll/directx/ddraw/Surface/createsurface.c
    trunk/reactos/dll/directx/ddraw/Surface/surface_main.c

Modified: trunk/reactos/dll/directx/ddraw/Surface/createsurface.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ddraw/Surface/createsurface.c?rev=27226&r1=27225&r2=27226&view=diff
==============================================================================
--- trunk/reactos/dll/directx/ddraw/Surface/createsurface.c (original)
+++ trunk/reactos/dll/directx/ddraw/Surface/createsurface.c Mon Jun 18 22:11:39 2007
@@ -24,8 +24,6 @@
 Internal_CreateSurface( LPDDRAWI_DIRECTDRAW_INT pDDraw, LPDDSURFACEDESC2 pDDSD,
                         LPDIRECTDRAWSURFACE7 *ppSurf, IUnknown *pUnkOuter)
 {
-    DDSURFACEDESC2 desc;
-
     DDHAL_CANCREATESURFACEDATA mDdCanCreateSurface = { 0 };
     DDHAL_CREATESURFACEDATA mDdCreateSurface = { 0 };
 
@@ -158,6 +156,16 @@
             ThisSurfaceGbl->wHeight = pDDraw->lpLcl->lpGbl->vmiData.dwDisplayHeight;
             ThisSurfaceGbl->lPitch  = pDDraw->lpLcl->lpGbl->vmiData.lDisplayPitch;
             ThisSurfaceGbl->dwLinearSize = pDDraw->lpLcl->lpGbl->vmiData.lDisplayPitch;
+
+
+            ThisSurfaceMore->dmiDDrawReserved7.wWidth = pDDraw->lpLcl->lpGbl->vmiData.dwDisplayWidth;
+            ThisSurfaceMore->dmiDDrawReserved7.wHeight = pDDraw->lpLcl->lpGbl->vmiData.dwDisplayHeight;
+            ThisSurfaceMore->dmiDDrawReserved7.wBPP    = pDDraw->lpLcl->lpGbl->dwMonitorFrequency;
+
+            /* FIXME  ThisSurfaceMore->dmiDDrawReserved7.wMonitorsAttachedToDesktop */
+            ThisSurfaceMore->dmiDDrawReserved7.wMonitorsAttachedToDesktop = 1;
+            pDDraw->lpLcl->lpPrimary = ThisSurfInt;
+            Main_DirectDraw_AddRef((LPDIRECTDRAW7)pDDraw);
         }
         else
         {
@@ -180,6 +188,8 @@
 
         /* FIXME the lpLnk */
         /* FIXME the ref counter */
+
+        Main_DDrawSurface_AddRef((LPDIRECTDRAWSURFACE7)ThisSurfInt);
     }
 
     /* Fixme call on DdCanCreate then on DdCreateSurface createsurface data here */
@@ -207,7 +217,7 @@
     mDdCreateSurface.lpDD = pDDraw->lpLcl->lpGbl;
     mDdCreateSurface.CreateSurface = pDDraw->lpLcl->lpGbl->lpDDCBtmp->HALDD.CreateSurface;
     mDdCreateSurface.ddRVal =  DDERR_GENERIC;
-    mDdCreateSurface.dwSCnt = slist_int[0]->dwIntRefCnt + 1; // is this correct 
+    mDdCreateSurface.dwSCnt = num_of_surf;
     mDdCreateSurface.lpDDSurfaceDesc = (LPDDSURFACEDESC) pDDSD;
     mDdCreateSurface.lplpSList = slist_lcl;
 
@@ -234,343 +244,4 @@
     dst_pDesc->dwSize =  sizeof(DDSURFACEDESC2);
 }
 
-HRESULT 
-CreatePrimarySurface(LPDDRAWI_DIRECTDRAW_INT This, 
-              LPDDRAWI_DDRAWSURFACE_INT That,
-              LPDDRAWI_DDRAWSURFACE_LCL lpLcl,
-              LPDDSURFACEDESC2 pDDSD)
-{
-    DDHAL_CANCREATESURFACEDATA mDdCanCreateSurface;
-    DDHAL_CREATESURFACEDATA mDdCreateSurface;
-
-
-    DxHeapMemAlloc( That->lpLcl->lpSurfMore, sizeof(DDRAWI_DDRAWSURFACE_MORE));
-    if (That->lpLcl->lpSurfMore == NULL)
-    {
-        DxHeapMemFree(That);
-        return DDERR_OUTOFMEMORY;
-    }
-
-    // That->lpLcl->lpSurfMore->slist = lpLcl;
-
-    That->lpVtbl = &DirectDrawSurface7_Vtable;
-    That->lpLcl->lpSurfMore->dwSize = sizeof(DDRAWI_DDRAWSURFACE_MORE);
-    That->lpLcl->lpSurfMore->lpDD_int = This;
-    That->lpLcl->lpSurfMore->lpDD_lcl = This->lpLcl;
-    That->lpLcl->lpSurfMore->slist[0] = That->lpLcl;
-    That->lpLcl->dwProcessId = GetCurrentProcessId();
-
-    mDdCanCreateSurface.lpDD = This->lpLcl->lpGbl;
-    if  (pDDSD->dwFlags & DDSD_PIXELFORMAT)
-    {
-        That->lpLcl->dwFlags |= DDRAWISURF_HASPIXELFORMAT;
-        mDdCanCreateSurface.bIsDifferentPixelFormat = TRUE; //isDifferentPixelFormat;
-    }
-    else
-    {
-        mDdCanCreateSurface.bIsDifferentPixelFormat = FALSE; //isDifferentPixelFormat;
-    }
-    mDdCanCreateSurface.lpDDSurfaceDesc = (LPDDSURFACEDESC) pDDSD;
-    mDdCanCreateSurface.CanCreateSurface = This->lpLcl->lpDDCB->cbDDCallbacks.CanCreateSurface;
-    mDdCanCreateSurface.ddRVal = DDERR_GENERIC;
-
-    mDdCreateSurface.lpDD = This->lpLcl->lpGbl;
-    mDdCreateSurface.CreateSurface = This->lpLcl->lpDDCB->cbDDCallbacks.CreateSurface;
-    mDdCreateSurface.ddRVal =  DDERR_GENERIC;
-    mDdCreateSurface.dwSCnt = That->dwIntRefCnt + 1; // is this correct 
-    mDdCreateSurface.lpDDSurfaceDesc = (LPDDSURFACEDESC) pDDSD;
-
-    mDdCreateSurface.lplpSList = That->lpLcl->lpSurfMore->slist;
-    
-    That->lpLcl->ddsCaps.dwCaps = pDDSD->ddsCaps.dwCaps;
-
-    This->lpLcl->lpPrimary = That;
-    if (mDdCanCreateSurface.CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED) 
-    {   
-        return DDERR_NOTINITIALIZED;
-    }
-
-    if (mDdCanCreateSurface.ddRVal != DD_OK)
-    {
-        return DDERR_NOTINITIALIZED;
-    }
-
-    mDdCreateSurface.lplpSList = That->lpLcl->lpSurfMore->slist;
-
-    if (mDdCreateSurface.CreateSurface(&mDdCreateSurface) == DDHAL_DRIVER_NOTHANDLED)
-    {
-        return DDERR_NOTINITIALIZED;
-    }
-
-    if (mDdCreateSurface.ddRVal != DD_OK) 
-    {   
-        return mDdCreateSurface.ddRVal;
-    }
-
-    That->lpLcl->lpSurfMore->slist = mDdCreateSurface.lplpSList ;
-
-    That->lpLink = This->lpLcl->lpGbl->dsList;
-    This->lpLcl->lpGbl->dsList = That;
-
-    return DD_OK;
-}
-
-HRESULT 
-CreateBackBufferSurface(LPDDRAWI_DIRECTDRAW_INT This, 
-              LPDDRAWI_DDRAWSURFACE_INT *That,
-              LPDDRAWI_DDRAWSURFACE_LCL *lpLcl,
-              LPDDSURFACEDESC2 pDDSD)
-{
-    DDHAL_CANCREATESURFACEDATA mDdCanCreateSurface;
-    DDHAL_CREATESURFACEDATA mDdCreateSurface;
-    DWORD t;
-
-
-    /* we are building the backbuffersurface pointer list 
-     * and create the backbuffer surface and set it up 
-     */
-
-    That[0]->lpLcl->dwBackBufferCount = pDDSD->dwBackBufferCount;
-
-    for (t=0;t<pDDSD->dwBackBufferCount+1;t++)
-    {
-        
-
-    DxHeapMemAlloc(That[t]->lpLcl->lpSurfMore, sizeof(DDRAWI_DDRAWSURFACE_MORE));
-    if (That[t]->lpLcl->lpSurfMore == NULL)
-    {
-        DxHeapMemFree(That);
-        return DDERR_OUTOFMEMORY;
-    }
-
-    That[t]->lpLcl->lpSurfMore->slist = lpLcl;
-
-    That[t]->lpVtbl = &DirectDrawSurface7_Vtable; 
-    That[t]->lpLcl->lpSurfMore->dwSize = sizeof(DDRAWI_DDRAWSURFACE_MORE);
-    That[t]->lpLcl->lpSurfMore->lpDD_int = This;
-    That[t]->lpLcl->lpSurfMore->lpDD_lcl = This->lpLcl;
-    That[t]->lpLcl->lpSurfMore->slist[0] = That[t]->lpLcl;
-    That[t]->lpLcl->dwProcessId = GetCurrentProcessId();
-
-    mDdCanCreateSurface.lpDD = This->lpLcl->lpGbl;
-    if  (pDDSD->dwFlags & DDSD_PIXELFORMAT)
-    {
-        That[t]->lpLcl->dwFlags |= DDRAWISURF_HASPIXELFORMAT;
-        mDdCanCreateSurface.bIsDifferentPixelFormat = TRUE; //isDifferentPixelFormat;
-    }
-    else
-    {
-        mDdCanCreateSurface.bIsDifferentPixelFormat = FALSE; //isDifferentPixelFormat;
-    }
-    mDdCanCreateSurface.lpDDSurfaceDesc = (LPDDSURFACEDESC) pDDSD;
-    mDdCanCreateSurface.CanCreateSurface = This->lpLcl->lpDDCB->cbDDCallbacks.CanCreateSurface;
-    mDdCanCreateSurface.ddRVal = DDERR_GENERIC;
-
-    mDdCreateSurface.lpDD = This->lpLcl->lpGbl;
-    mDdCreateSurface.CreateSurface = This->lpLcl->lpDDCB->cbDDCallbacks.CreateSurface;
-    mDdCreateSurface.ddRVal =  DDERR_GENERIC;
-    mDdCreateSurface.dwSCnt = That[t]->dwIntRefCnt + 1; // is this correct 
-    mDdCreateSurface.lpDDSurfaceDesc = (LPDDSURFACEDESC) pDDSD;
-
-    mDdCreateSurface.lplpSList = That[t]->lpLcl->lpSurfMore->slist;
-
-           That[t]->lpLcl->ddsCaps.dwCaps = pDDSD->ddsCaps.dwCaps;
-
-       This->lpLcl->lpPrimary = That[0];
-       if (mDdCanCreateSurface.CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED) 
-       {   
-           return DDERR_NOTINITIALIZED;
-       }
-
-       if (mDdCanCreateSurface.ddRVal != DD_OK)
-       {
-           return DDERR_NOTINITIALIZED;
-       }
-
-       mDdCreateSurface.lplpSList = That[t]->lpLcl->lpSurfMore->slist;
-
-       if (mDdCreateSurface.CreateSurface(&mDdCreateSurface) == DDHAL_DRIVER_NOTHANDLED)
-       {
-           return DDERR_NOTINITIALIZED;
-       }
-
-       if (mDdCreateSurface.ddRVal != DD_OK) 
-       {   
-           return mDdCreateSurface.ddRVal;
-       }
-
-      That[t]->lpLcl->lpSurfMore->slist = mDdCreateSurface.lplpSList ;
-
-        /* Build the linking buffer */
-        That[t]->lpLink = This->lpLcl->lpGbl->dsList;
-        This->lpLcl->lpGbl->dsList = That[t];
-DX_STUB_str( "ok");
-    }
-   return DD_OK;
-}
-
-
-
-HRESULT 
-CreateOverlaySurface(LPDDRAWI_DIRECTDRAW_INT This, 
-              LPDDRAWI_DDRAWSURFACE_INT *That,
-              LPDDSURFACEDESC2 pDDSD)
-{
-  DDSURFACEDESC mddsdOverlay;
-  DDRAWI_DDRAWSURFACE_GBL mOverlayGlobal;
-  DDRAWI_DDRAWSURFACE_LCL mOverlayLocal[6];
-  DDRAWI_DDRAWSURFACE_LCL *mpOverlayLocals[6];
-  DDRAWI_DDRAWSURFACE_MORE mOverlayMore[6];
-  DDHAL_CANCREATESURFACEDATA mDdCanCreateSurface;
-  DDHAL_CREATESURFACEDATA mDdCreateSurface;
-  INT i;
-  INT j;
-  INT cSurfaces;
-  DDHAL_UPDATEOVERLAYDATA      mDdUpdateOverlay;
-
-  /* create overlay surface now */  
-  ZeroMemory(&mddsdOverlay, sizeof(DDSURFACEDESC));
-  mddsdOverlay.dwSize = sizeof(DDSURFACEDESC);
-  mddsdOverlay.dwFlags = DDSD_CAPS | DDSD_PIXELFORMAT | DDSD_BACKBUFFERCOUNT | DDSD_WIDTH | DDSD_HEIGHT;
-
-  mddsdOverlay.ddsCaps.dwCaps = DDSCAPS_OVERLAY | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM | DDSCAPS_COMPLEX | DDSCAPS_FLIP;
-
-  mddsdOverlay.dwWidth = 100;  //pels;
-  mddsdOverlay.dwHeight = 100; // lines;
-  mddsdOverlay.dwBackBufferCount = 1; //cBuffers;
-
-  mddsdOverlay.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
-  mddsdOverlay.ddpfPixelFormat.dwFlags = DDPF_RGB; 
-  mddsdOverlay.ddpfPixelFormat.dwRGBBitCount = 32;
-  
-
-   //DDHAL_CANCREATESURFACEDATA   mDdCanCreateSurface;
-  mDdCanCreateSurface.lpDD = This->lpLcl->lpGbl;
-   mDdCanCreateSurface.CanCreateSurface = This->lpLcl->lpDDCB->cbDDCallbacks.CanCreateSurface;
-   mDdCanCreateSurface.bIsDifferentPixelFormat = TRUE; //isDifferentPixelFormat;
-   mDdCanCreateSurface.lpDDSurfaceDesc = &mddsdOverlay; // pDDSD;
-   
-   
-   if (mDdCanCreateSurface.CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED) 
-   {
-    // derr(L"DirectDrawImpl[%08x]::__createPrimary Cannot create primary [%08x]", this, rv);
-   // printf("Fail to mDdCanCreateSurface DDHAL_DRIVER_NOTHANDLED \n"); 
-       DX_STUB_str("mDdCanCreateSurface DDHAL_DRIVER_NOTHANDLED fail");
-    return DDERR_NOTINITIALIZED;
-   }
-
-   if (mDdCanCreateSurface.ddRVal != DD_OK)
-   {
-       DX_STUB_str("mDdCanCreateSurface fail");
-// printf("Fail to mDdCanCreateSurface mDdCanCreateSurface.ddRVal = %d:%s\n",(int)mDdCanCreateSurface.ddRVal,DDErrorString(mDdCanCreateSurface.ddRVal)); 
-     return DDERR_NOTINITIALIZED;
-   }
-
- 
-  ZeroMemory(&mOverlayGlobal, sizeof(DDRAWI_DDRAWSURFACE_GBL));
-  mOverlayGlobal.dwGlobalFlags = 0;
-  mOverlayGlobal.lpDD       = This->lpLcl->lpGbl;
-  mOverlayGlobal.lpDDHandle = This->lpLcl->lpGbl;
-  mOverlayGlobal.wWidth  = (WORD)mddsdOverlay.dwWidth;
-  mOverlayGlobal.wHeight = (WORD)mddsdOverlay.dwHeight;
-  mOverlayGlobal.lPitch  = -1;
-  mOverlayGlobal.ddpfSurface = mddsdOverlay.ddpfPixelFormat;
-
-  // setup front- and backbuffer surfaces
-  cSurfaces = mddsdOverlay.dwBackBufferCount + 1;
-  for ( i = 0; i < cSurfaces; i++)
-  {
-     ZeroMemory(&mOverlayMore[i], sizeof(DDRAWI_DDRAWSURFACE_MORE));
-     mOverlayMore[i].dwSize = sizeof(DDRAWI_DDRAWSURFACE_MORE);
-
-     ZeroMemory(&mOverlayLocal[i], sizeof(DDRAWI_DDRAWSURFACE_LCL));
-     mOverlayLocal[i].lpGbl = &mOverlayGlobal;
-     mOverlayLocal[i].lpSurfMore = &mOverlayMore[i];
-     mOverlayLocal[i].dwProcessId = GetCurrentProcessId();
-     mOverlayLocal[i].dwFlags = (i == 0) ?
-      (DDRAWISURF_IMPLICITROOT|DDRAWISURF_FRONTBUFFER):
-      (DDRAWISURF_IMPLICITCREATE|DDRAWISURF_BACKBUFFER);
-
-     mOverlayLocal[i].dwFlags |= 
-      DDRAWISURF_ATTACHED|DDRAWISURF_ATTACHED_FROM|
-      DDRAWISURF_HASPIXELFORMAT|
-      DDRAWISURF_HASOVERLAYDATA;
-
-     mOverlayLocal[i].ddsCaps.dwCaps = mddsdOverlay.ddsCaps.dwCaps;
-     mpOverlayLocals[i] = &mOverlayLocal[i];
-  }
-
-  for ( i = 0; i < cSurfaces; i++)
-  {
-    j = (i + 1) % cSurfaces;
-
-    
-    /*if (!mHALInfo.lpDDSurfaceCallbacks->AddAttachedSurface(mpOverlayLocals[i], mpOverlayLocals[j])) 
-    {
-     // derr(L"DirectDrawImpl[%08x]::__setupDevice DdAttachSurface(%d, %d) failed", this, i, j);
-      return DD_FALSE;
-    }*/
-
-    if (!DdAttachSurface(mpOverlayLocals[i], mpOverlayLocals[j])) 
-    {
-     // derr(L"DirectDrawImpl[%08x]::__setupDevice DdAttachSurface(%d, %d) failed", this, i, j);
-//printf("Fail to DdAttachSurface (%d:%d)\n", i, j);
-        DX_STUB_str("DdAttachSurface fail");
-      return DD_FALSE;
-    }
-    
-  }
-
-    // DDHAL_CREATESURFACEDATA      mDdCreateSurface;
-  mDdCreateSurface.lpDD = This->lpLcl->lpGbl;
-  mDdCreateSurface.CreateSurface = This->lpLcl->lpDDCB->cbDDCallbacks.CreateSurface;  
-  mDdCreateSurface.lpDDSurfaceDesc = &mddsdOverlay;//pDDSD;
-  mDdCreateSurface.lplpSList = mpOverlayLocals; //cSurfaces;
-  mDdCreateSurface.dwSCnt = 1 ;  //ppSurfaces;
-
-  if (mDdCreateSurface.CreateSurface(&mDdCreateSurface) == DDHAL_DRIVER_NOTHANDLED)
-  {
-    DX_STUB_str("mDdCreateSurface DDHAL_DRIVER_NOTHANDLED fail");
-    return DDERR_NOTINITIALIZED;
-  }
-  
-
-  if (mDdCreateSurface.ddRVal != DD_OK) 
-  {   
-     DX_STUB_str("mDdCreateSurface fail");
-     return mDdCreateSurface.ddRVal;
-  }
-
-  mDdUpdateOverlay.lpDD = This->lpLcl->lpGbl;
-  mDdUpdateOverlay.UpdateOverlay = This->lpLcl->lpDDCB->HALDDSurface.UpdateOverlay;
-  mDdUpdateOverlay.lpDDDestSurface = This->lpLcl->lpPrimary->lpLcl->lpSurfMore->slist[0];
-  mDdUpdateOverlay.lpDDSrcSurface = mpOverlayLocals[0];//pDDSurface;
-  mDdUpdateOverlay.dwFlags = DDOVER_SHOW;
-
-  mDdUpdateOverlay.rDest.top = 0;
-  mDdUpdateOverlay.rDest.left = 0;
-  mDdUpdateOverlay.rDest.right = 50;
-  mDdUpdateOverlay.rDest.bottom = 50;
-
-   mDdUpdateOverlay.rSrc.top = 0;
-  mDdUpdateOverlay.rSrc.left = 0;
-  mDdUpdateOverlay.rSrc.right = 50;
-  mDdUpdateOverlay.rSrc.bottom = 50;
-
-  if ( mDdUpdateOverlay.UpdateOverlay(&mDdUpdateOverlay) == DDHAL_DRIVER_NOTHANDLED)
-  {
-    DX_STUB_str("UpdateOverlay fail");
-     return DDERR_NOTINITIALIZED;
-  }
-  
-
-  if (mDdUpdateOverlay.ddRVal != DD_OK) 
-  {   
-      DX_STUB_str("mDdUpdateOverlay fail");
-      //printf("Fail to mDdUpdateOverlay mDdUpdateOverlay.ddRVal = %d:%s\n",(int)mDdUpdateOverlay.ddRVal,DDErrorString(mDdUpdateOverlay.ddRVal)); 
-      return mDdUpdateOverlay.ddRVal;
-  }
-
-  DX_STUB_str("OK");
-  return DD_OK;
-}
+

Modified: trunk/reactos/dll/directx/ddraw/Surface/surface_main.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ddraw/Surface/surface_main.c?rev=27226&r1=27225&r2=27226&view=diff
==============================================================================
--- trunk/reactos/dll/directx/ddraw/Surface/surface_main.c (original)
+++ trunk/reactos/dll/directx/ddraw/Surface/surface_main.c Mon Jun 18 22:11:39 2007
@@ -209,7 +209,7 @@
 	This->lpLcl->lpSurfMore->slist[0]->hDC = This->lpLcl->lpSurfMore->lpDD_lcl->hDC;
 	 
     mdLock.ddRVal = DDERR_NOTPALETTIZED;
-	mdLock.Lock = This->lpLcl->lpSurfMore->lpDD_lcl->lpDDCB->cbDDSurfaceCallbacks.Lock;
+    mdLock.Lock = This->lpLcl->lpSurfMore->lpDD_lcl->lpDDCB->HALDDSurface.Lock;
     mdLock.dwFlags = flags;
 	mdLock.lpDDSurface = This->lpLcl->lpSurfMore->slist[0];
 	mdLock.lpDD = This->lpLcl->lpSurfMore->lpDD_lcl->lpGbl;   
@@ -278,7 +278,7 @@
     mdUnLock.ddRVal = DDERR_NOTPALETTIZED;
     mdUnLock.lpDD = This->lpLcl->lpSurfMore->lpDD_lcl->lpGbl;
 	mdUnLock.lpDDSurface =  This->lpLcl->lpSurfMore->slist[0];
-	mdUnLock.Unlock = This->lpLcl->lpSurfMore->lpDD_lcl->lpDDCB->cbDDSurfaceCallbacks.Unlock;
+	mdUnLock.Unlock = This->lpLcl->lpSurfMore->lpDD_lcl->lpDDCB->HALDDSurface.Unlock;
 
     if (!DdResetVisrgn( mdUnLock.lpDDSurface, NULL)) 
     {   




More information about the Ros-diffs mailing list