mirror of
https://github.com/reactos/reactos.git
synced 2024-08-02 01:21:00 +00:00
commit some bugfix for ddraw createsurface, fixing comping as well
svn path=/trunk/; revision=26738
This commit is contained in:
parent
e535eb641e
commit
053c08fc8e
|
@ -29,6 +29,7 @@ Main_DirectDraw_QueryInterface (LPDIRECTDRAW7 iface,
|
||||||
{
|
{
|
||||||
/* DirectDraw7 Vtable */
|
/* DirectDraw7 Vtable */
|
||||||
This->lpVtbl = &DirectDraw7_Vtable;
|
This->lpVtbl = &DirectDraw7_Vtable;
|
||||||
|
This->lpLcl->dwLocalFlags = This->lpLcl->dwLocalFlags + DDRAWILCL_DIRECTDRAW7;
|
||||||
*obj = &This->lpVtbl;
|
*obj = &This->lpVtbl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -155,11 +156,11 @@ HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDE
|
||||||
|
|
||||||
if (pDDSD->dwSize == sizeof(DDSURFACEDESC))
|
if (pDDSD->dwSize == sizeof(DDSURFACEDESC))
|
||||||
{
|
{
|
||||||
CopyDDSurfDescToDDSurfDesc2(&dd_desc_v2,pDDSD);
|
CopyDDSurfDescToDDSurfDesc2(&dd_desc_v2, (LPDDSURFACEDESC)pDDSD);
|
||||||
}
|
}
|
||||||
else if (pDDSD->dwSize == sizeof(DDSURFACEDESC2))
|
else if (pDDSD->dwSize == sizeof(DDSURFACEDESC2))
|
||||||
{
|
{
|
||||||
RtlCopyMemory(&dd_desc_v2,pDDSD,sizeof(DDSURFACEDESC2));
|
RtlCopyMemory(&dd_desc_v2, pDDSD,sizeof(DDSURFACEDESC2));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -168,13 +169,13 @@ HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDE
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check if this process belong to this ddraw */
|
/* check if this process belong to this ddraw */
|
||||||
if ( dd_int->lcl->dwProcessId != GetCurrentProcessId() )
|
if ( dd_int->lpLcl->dwProcessId != GetCurrentProcessId() )
|
||||||
{
|
{
|
||||||
/* FIXME send back right return code */
|
/* FIXME send back right return code */
|
||||||
return DDERR_GENERIC;
|
return DDERR_GENERIC;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = internal_CreateSurface(dd_int,dd_desc_v2,ppSurf,pUnkOuter);
|
ret = Internal_CreateSurface(dd_int,&dd_desc_v2, ppSurf,pUnkOuter);
|
||||||
|
|
||||||
LeaveCriticalSection(&ddcs);
|
LeaveCriticalSection(&ddcs);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -10,11 +10,19 @@
|
||||||
#include "rosdraw.h"
|
#include "rosdraw.h"
|
||||||
|
|
||||||
HRESULT
|
HRESULT
|
||||||
Internal_CreateSurface(LPDDRAWI_DIRECTDRAW_INT pDDraw,
|
Internal_CreateSurface( LPDDRAWI_DIRECTDRAW_INT pDDraw, LPDDSURFACEDESC2 pDDSD,
|
||||||
LPDDRAWI_DDRAWSURFACE_LCL *lpLcl,
|
LPDIRECTDRAWSURFACE7 *ppSurf, IUnknown *pUnkOuter)
|
||||||
LPDDSURFACEDESC2 pDDSD)
|
|
||||||
{
|
{
|
||||||
return DDERR_GENERIC;
|
if (!pDDraw->lpLcl->dwLocalFlags & DDRAWILCL_DIRECTDRAW7)
|
||||||
|
{
|
||||||
|
/* it is directdraw 1-6 so no DirectD3D support */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* directdraw 7 support */
|
||||||
|
}
|
||||||
|
|
||||||
|
return DDERR_GENERIC;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CopyDDSurfDescToDDSurfDesc2(LPDDSURFACEDESC2 dst_pDesc, LPDDSURFACEDESC src_pDesc)
|
void CopyDDSurfDescToDDSurfDesc2(LPDDSURFACEDESC2 dst_pDesc, LPDDSURFACEDESC src_pDesc)
|
||||||
|
|
|
@ -71,4 +71,4 @@ DWORD CALLBACK HelDdFlipToGDISurface(LPDDHAL_FLIPTOGDISURFACEDATA lpFlipToGDISu
|
||||||
HRESULT CreateOverlaySurface(LPDDRAWI_DIRECTDRAW_INT This, LPDDRAWI_DDRAWSURFACE_INT *That, LPDDSURFACEDESC2 pDDSD);
|
HRESULT CreateOverlaySurface(LPDDRAWI_DIRECTDRAW_INT This, LPDDRAWI_DDRAWSURFACE_INT *That, LPDDSURFACEDESC2 pDDSD);
|
||||||
HRESULT CreateBackBufferSurface(LPDDRAWI_DIRECTDRAW_INT This, LPDDRAWI_DDRAWSURFACE_INT *That, LPDDRAWI_DDRAWSURFACE_LCL *lpLcl, LPDDSURFACEDESC2 pDDSD);
|
HRESULT CreateBackBufferSurface(LPDDRAWI_DIRECTDRAW_INT This, LPDDRAWI_DDRAWSURFACE_INT *That, LPDDRAWI_DDRAWSURFACE_LCL *lpLcl, LPDDSURFACEDESC2 pDDSD);
|
||||||
HRESULT CreatePrimarySurface(LPDDRAWI_DIRECTDRAW_INT This, LPDDRAWI_DDRAWSURFACE_INT *That,LPDDRAWI_DDRAWSURFACE_LCL *lpLcl, LPDDSURFACEDESC2 pDDSD);
|
HRESULT CreatePrimarySurface(LPDDRAWI_DIRECTDRAW_INT This, LPDDRAWI_DDRAWSURFACE_INT *That,LPDDRAWI_DDRAWSURFACE_LCL *lpLcl, LPDDSURFACEDESC2 pDDSD);
|
||||||
HRESULT Internal_CreateSurface(LPDDRAWI_DIRECTDRAW_INT, LPDDRAWI_DDRAWSURFACE_LCL*, LPDDSURFACEDESC2);
|
|
||||||
|
|
|
@ -24,6 +24,8 @@ HRESULT WINAPI StartDirectDrawHal(LPDIRECTDRAW* iface, BOOL reenable);
|
||||||
HRESULT WINAPI StartDirectDrawHel(LPDIRECTDRAW* iface, BOOL reenable);
|
HRESULT WINAPI StartDirectDrawHel(LPDIRECTDRAW* iface, BOOL reenable);
|
||||||
HRESULT WINAPI Create_DirectDraw (LPGUID pGUID, LPDIRECTDRAW* pIface, REFIID id, BOOL ex);
|
HRESULT WINAPI Create_DirectDraw (LPGUID pGUID, LPDIRECTDRAW* pIface, REFIID id, BOOL ex);
|
||||||
HRESULT WINAPI ReCreateDirectDraw(LPDIRECTDRAW* iface);
|
HRESULT WINAPI ReCreateDirectDraw(LPDIRECTDRAW* iface);
|
||||||
|
HRESULT Internal_CreateSurface( LPDDRAWI_DIRECTDRAW_INT pDDraw, LPDDSURFACEDESC2 pDDSD,
|
||||||
|
LPDIRECTDRAWSURFACE7 *ppSurf, IUnknown *pUnkOuter);
|
||||||
|
|
||||||
/* convert DDSURFACEDESC to DDSURFACEDESC2 */
|
/* convert DDSURFACEDESC to DDSURFACEDESC2 */
|
||||||
void CopyDDSurfDescToDDSurfDesc2(LPDDSURFACEDESC2 dst_pDesc, LPDDSURFACEDESC src_pDesc);
|
void CopyDDSurfDescToDDSurfDesc2(LPDDSURFACEDESC2 dst_pDesc, LPDDSURFACEDESC src_pDesc);
|
||||||
|
|
Loading…
Reference in a new issue