mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 04:13:31 +00:00
patch from Kamil Hornicek tykef at atlas dot cz (irc nick : Pigglesworth)
fix one fixme in createsurface.c support more that only dx7 surface in createsurface.c svn path=/trunk/; revision=31189
This commit is contained in:
@@ -30,11 +30,18 @@ Main_DirectDraw_CreatePalette(
|
||||
LPDIRECTDRAWPALETTE* ppPalette,
|
||||
LPUNKNOWN pUnkOuter);
|
||||
|
||||
HRESULT WINAPI
|
||||
Main_DirectDraw_CreateSurface(
|
||||
LPDDRAWI_DIRECTDRAW_INT This,
|
||||
LPDDSURFACEDESC pDDSD,
|
||||
LPDDRAWI_DDRAWSURFACE_INT *ppSurf,
|
||||
IUnknown *pUnkOuter);
|
||||
|
||||
HRESULT WINAPI
|
||||
Main_DirectDraw_CreateSurface4(
|
||||
LPDDRAWI_DIRECTDRAW_INT This,
|
||||
LPDDSURFACEDESC2 pDDSD,
|
||||
LPDIRECTDRAWSURFACE7 *ppSurf,
|
||||
LPDDRAWI_DDRAWSURFACE_INT *ppSurf,
|
||||
IUnknown *pUnkOuter);
|
||||
|
||||
HRESULT WINAPI
|
||||
@@ -209,3 +216,4 @@ DWORD CALLBACK HelDdSurfUnlock(LPDDHAL_UNLOCKDATA lpUnLockData);
|
||||
DWORD CALLBACK HelDdSurfUpdateOverlay(LPDDHAL_UPDATEOVERLAYDATA lpUpDateOveryLayData);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -434,7 +434,7 @@ Main_DirectDraw_GetFourCCCodes(LPDDRAWI_DIRECTDRAW_INT This, LPDWORD lpNumCodes,
|
||||
/* For DirectDraw 1 - 3 */
|
||||
HRESULT WINAPI
|
||||
Main_DirectDraw_CreateSurface (LPDDRAWI_DIRECTDRAW_INT This, LPDDSURFACEDESC pDDSD,
|
||||
LPDIRECTDRAWSURFACE *ppSurf, IUnknown *pUnkOuter)
|
||||
LPDDRAWI_DDRAWSURFACE_INT *ppSurf, IUnknown *pUnkOuter)
|
||||
{
|
||||
HRESULT ret = DDERR_GENERIC;
|
||||
DDSURFACEDESC2 dd_desc_v2;
|
||||
@@ -449,7 +449,7 @@ Main_DirectDraw_CreateSurface (LPDDRAWI_DIRECTDRAW_INT This, LPDDSURFACEDESC pDD
|
||||
CopyDDSurfDescToDDSurfDesc2(&dd_desc_v2, (LPDDSURFACEDESC)pDDSD);
|
||||
ret = Internal_CreateSurface(This,
|
||||
&dd_desc_v2,
|
||||
(LPDIRECTDRAWSURFACE7 *)ppSurf,
|
||||
ppSurf,
|
||||
pUnkOuter);
|
||||
}
|
||||
else
|
||||
@@ -470,14 +470,14 @@ Main_DirectDraw_CreateSurface (LPDDRAWI_DIRECTDRAW_INT This, LPDDSURFACEDESC pDD
|
||||
/* For DirectDraw 4 - 7 */
|
||||
HRESULT WINAPI
|
||||
Main_DirectDraw_CreateSurface4(LPDDRAWI_DIRECTDRAW_INT This, LPDDSURFACEDESC2 pDDSD,
|
||||
LPDIRECTDRAWSURFACE7 *ppSurf, IUnknown *pUnkOuter)
|
||||
LPDDRAWI_DDRAWSURFACE_INT *ppSurf, IUnknown *pUnkOuter)
|
||||
{
|
||||
HRESULT ret;
|
||||
DX_WINDBG_trace();
|
||||
// EnterCriticalSection(&ddcs);
|
||||
_SEH_TRY
|
||||
{
|
||||
ret = Internal_CreateSurface(This, pDDSD, ppSurf,pUnkOuter);
|
||||
ret = Internal_CreateSurface(This, pDDSD, ppSurf, pUnkOuter);
|
||||
}
|
||||
_SEH_HANDLE
|
||||
{
|
||||
@@ -499,3 +499,4 @@ Main_DirectDraw_CreateSurface4(LPDDRAWI_DIRECTDRAW_INT This, LPDDSURFACEDESC2 pD
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
HRESULT
|
||||
Internal_CreateSurface( LPDDRAWI_DIRECTDRAW_INT pDDraw, LPDDSURFACEDESC2 pDDSD,
|
||||
LPDIRECTDRAWSURFACE7 *ppSurf, IUnknown *pUnkOuter)
|
||||
LPDDRAWI_DDRAWSURFACE_INT *ppSurf, IUnknown *pUnkOuter)
|
||||
{
|
||||
DDHAL_CANCREATESURFACEDATA mDdCanCreateSurface = { 0 };
|
||||
DDHAL_CREATESURFACEDATA mDdCreateSurface = { 0 };
|
||||
@@ -175,8 +175,26 @@ Internal_CreateSurface( LPDDRAWI_DIRECTDRAW_INT pDDraw, LPDDSURFACEDESC2 pDDSD,
|
||||
ThisSurfaceGbl->dwLinearSize = pDDSD->lPitch;
|
||||
}
|
||||
|
||||
/* FIXME set right version */
|
||||
ThisSurfInt->lpVtbl = &DirectDrawSurface7_Vtable;
|
||||
if(pDDraw->lpVtbl == &DirectDraw7_Vtable)
|
||||
{
|
||||
ThisSurfInt->lpVtbl = &DirectDrawSurface7_Vtable;
|
||||
}
|
||||
else if(pDDraw->lpVtbl == &DirectDraw4_Vtable)
|
||||
{
|
||||
ThisSurfInt->lpVtbl = &DirectDrawSurface4_Vtable;
|
||||
}
|
||||
else if(pDDraw->lpVtbl == &DirectDraw2_Vtable)
|
||||
{
|
||||
ThisSurfInt->lpVtbl = &DirectDrawSurface2_Vtable;
|
||||
}
|
||||
else if(pDDraw->lpVtbl == &DirectDraw_Vtable)
|
||||
{
|
||||
ThisSurfInt->lpVtbl = &DirectDrawSurface_Vtable;
|
||||
}
|
||||
else
|
||||
{
|
||||
return DDERR_NOTINITIALIZED;
|
||||
}
|
||||
|
||||
ThisSurfLcl->lpSurfMore = ThisSurfaceMore;
|
||||
ThisSurfaceMore->dwSize = sizeof(DDRAWI_DDRAWSURFACE_MORE);
|
||||
@@ -232,7 +250,7 @@ Internal_CreateSurface( LPDDRAWI_DIRECTDRAW_INT pDDraw, LPDDSURFACEDESC2 pDDSD,
|
||||
return mDdCreateSurface.ddRVal;
|
||||
}
|
||||
|
||||
*ppSurf = (LPDIRECTDRAWSURFACE7) &slist_int[0]->lpVtbl;
|
||||
*ppSurf = (LPDDRAWI_DDRAWSURFACE_INT) &slist_int[0]->lpVtbl;
|
||||
return DD_OK;
|
||||
}
|
||||
|
||||
@@ -248,3 +266,4 @@ void CopyDDSurfDescToDDSurfDesc2(LPDDSURFACEDESC2 dst_pDesc, LPDDSURFACEDESC src
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ HRESULT
|
||||
Internal_CreateSurface(
|
||||
LPDDRAWI_DIRECTDRAW_INT pDDraw,
|
||||
LPDDSURFACEDESC2 pDDSD,
|
||||
LPDIRECTDRAWSURFACE7 *ppSurf,
|
||||
LPDDRAWI_DDRAWSURFACE_INT *ppSurf,
|
||||
IUnknown *pUnkOuter);
|
||||
|
||||
/* convert DDSURFACEDESC to DDSURFACEDESC2 */
|
||||
|
||||
Reference in New Issue
Block a user