Author: greatlrd Date: Tue Jul 25 23:20:49 2006 New Revision: 23289
URL: http://svn.reactos.org/svn/reactos?rev=23289&view=rev Log: Move some stuff from createsurface to startup.c Bugfix some other stuff
Modified: trunk/reactos/dll/directx/ddraw/main/ddraw_main.c trunk/reactos/dll/directx/ddraw/startup.c
Modified: trunk/reactos/dll/directx/ddraw/main/ddraw_main.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ddraw/main/ddra... ============================================================================== --- trunk/reactos/dll/directx/ddraw/main/ddraw_main.c (original) +++ trunk/reactos/dll/directx/ddraw/main/ddraw_main.c Tue Jul 25 23:20:49 2006 @@ -250,8 +250,9 @@ if (This->mDdCreatePalette.CreatePalette(&This->mDdCreatePalette) == DDHAL_DRIVER_HANDLED); { - if (This->mDdSetMode.ddRVal == DD_OK) + if (This->mDdCreatePalette.ddRVal == DD_OK) { + Main_DirectDraw_AddRef(iface); return That->lpVtbl->Initialize (*ppPalette, (LPDIRECTDRAW)iface, dwFlags, palent); } @@ -305,12 +306,9 @@ That->lpVtbl_v3 = &DDRAW_IDDS3_Thunk_VTable; *ppSurf = (LPDIRECTDRAWSURFACE7)That;
- // FIXME free This->mDDrawGlobal.dsList on release - This->mDDrawGlobal.dsList = (LPDDRAWI_DDRAWSURFACE_INT)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(DDRAWI_DDRAWSURFACE_INT)); + That->Owner = (IDirectDrawImpl *)This; - That->Owner->mDDrawGlobal.dsList->dwIntRefCnt =1; - + /* we alwasy set to use the DirectDrawSurface7_Vtable as internel */ That->Owner->mDDrawGlobal.dsList->lpVtbl = (PVOID) &DirectDrawSurface7_Vtable;
@@ -1101,9 +1099,16 @@ This->mDdSetMode.ddRVal = DDERR_NOTPALETTIZED; This->mDdSetMode.dwModeIndex = iMode; - This->mDdSetMode.SetMode(&This->mDdSetMode); - - DdReenableDirectDrawObject(&This->mDDrawGlobal, &dummy); + + if (This->mDdSetMode.SetMode(&This->mDdSetMode) == DDHAL_DRIVER_HANDLED) + { + if (This->mDdSetMode.ddRVal == DD_OK) + //DdReenableDirectDrawObject(&This->mDDrawGlobal, &dummy); + } + } + + +
/* FIXME fill the This->DirectDrawGlobal.vmiData right */ //This->mDDrawGlobal.lpExclusiveOwner->hDC = (ULONG_PTR)GetDC( (HWND)This->mDDrawGlobal.lpExclusiveOwner->hWnd);
Modified: trunk/reactos/dll/directx/ddraw/startup.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ddraw/startup.c... ============================================================================== --- trunk/reactos/dll/directx/ddraw/startup.c (original) +++ trunk/reactos/dll/directx/ddraw/startup.c Tue Jul 25 23:20:49 2006 @@ -212,6 +212,19 @@ /* Setup calback struct so we do not need refill same info again */ This->mDdCreateSurface.lpDD = &This->mDDrawGlobal; This->mDdCanCreateSurface.lpDD = &This->mDDrawGlobal; + + + /* Setup global surface */ + // FIXME free dsList when we exist + This->mDDrawGlobal.dsList = (LPDDRAWI_DDRAWSURFACE_INT)DxHeapMemAlloc(sizeof(DDRAWI_DDRAWSURFACE_INT)); + This->mDDrawGlobal.dsList->dwIntRefCnt =1; + + This->mPrimaryGlobal.dwGlobalFlags = DDRAWISURFGBL_ISGDISURFACE; + This->mPrimaryGlobal.lpDD = &This->mDDrawGlobal; + This->mPrimaryGlobal.lpDDHandle = &This->mDDrawGlobal; + This->mPrimaryGlobal.wWidth = (WORD)This->mpModeInfos[0].dwWidth; + This->mPrimaryGlobal.wHeight = (WORD)This->mpModeInfos[0].dwHeight; + This->mPrimaryGlobal.lPitch = This->mpModeInfos[0].lPitch;
return DD_OK; } @@ -364,13 +377,7 @@ DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS); This->mHALInfo.GetDriverInfo(&DriverInfo);
- /* Setup global surface */ - /*This->mPrimaryGlobal.dwGlobalFlags = DDRAWISURFGBL_ISGDISURFACE; - This->mPrimaryGlobal.lpDD = &This->mDDrawGlobal; - This->mPrimaryGlobal.lpDDHandle = &This->mDDrawGlobal; - This->mPrimaryGlobal.wWidth = (WORD)This->mpModeInfos[0].dwWidth; - This->mPrimaryGlobal.wHeight = (WORD)This->mpModeInfos[0].dwHeight; - This->mPrimaryGlobal.lPitch = This->mpModeInfos[0].lPitch;*/ +
/* FIXME free it in cleanup */ // This->mDDrawGlobal.dsList = (LPDDRAWI_DDRAWSURFACE_INT)DxHeapMemAlloc(sizeof(DDRAWI_DDRAWSURFACE_INT));