adding check if it is IID_IDirectDraw7 on right place and learn it is lpDD->QueryInterface that optain the d3d interface.

svn path=/trunk/; revision=25015
This commit is contained in:
Magnus Olsen 2006-12-02 10:27:56 +00:00
parent 1c7d9c3cb9
commit 1c4a115ec0
3 changed files with 68 additions and 60 deletions

View file

@ -28,6 +28,10 @@ Main_DirectDraw_QueryInterface (LPDIRECTDRAW7 iface,
DX_WINDBG_trace();
/* fixme
the D3D object cab be optain from here
Direct3D7
*/
if (IsEqualGUID(&IID_IDirectDraw7, id))
{
/* DirectDraw7 Vtable */

View file

@ -620,11 +620,11 @@ DWORD CALLBACK HelDdSurfUpdateOverlay(LPDDHAL_UPDATEOVERLAYDATA lpUpDateOveryLay
*/
#define DX_WINDBG_trace()
#define DX_STUB
#define DX_STUB_DD_OK return DD_OK;
#define DX_STUB_str(x) printf("%s",x);
#define DX_WINDBG_trace_res
//#define DX_WINDBG_trace()
//#define DX_STUB
//#define DX_STUB_DD_OK return DD_OK;
//#define DX_STUB_str(x) printf("%s",x);
//#define DX_WINDBG_trace_res
/*
use this if want doing a trace from a program
@ -635,58 +635,58 @@ DWORD CALLBACK HelDdSurfUpdateOverlay(LPDDHAL_UPDATEOVERLAYDATA lpUpDateOveryLay
This marco does not create warings when you compile
*/
//#define DX_STUB \
//{ \
// static BOOL firstcall = TRUE; \
// if (firstcall) \
// { \
// char buffer[1024]; \
// sprintf ( buffer, "Function %s is not implemented yet (%s:%d)\n", __FUNCTION__,__FILE__,__LINE__ ); \
// OutputDebugStringA(buffer); \
// firstcall = FALSE; \
// } \
//} \
// return DDERR_UNSUPPORTED;
//
//#define DX_STUB_DD_OK \
//{ \
// static BOOL firstcall = TRUE; \
// if (firstcall) \
// { \
// char buffer[1024]; \
// sprintf ( buffer, "Function %s is not implemented yet (%s:%d)\n", __FUNCTION__,__FILE__,__LINE__ ); \
// OutputDebugStringA(buffer); \
// firstcall = FALSE; \
// } \
//} \
// return DD_OK;
//
//
//#define DX_STUB_str(x) \
// { \
// char buffer[1024]; \
// sprintf ( buffer, "Function %s %s (%s:%d)\n", __FUNCTION__,x,__FILE__,__LINE__ ); \
// OutputDebugStringA(buffer); \
// }
//
//#define DX_WINDBG_trace() \
// static BOOL firstcallx = TRUE; \
// if (firstcallx) \
// { \
// char buffer[1024]; \
// sprintf ( buffer, "Enter Function %s (%s:%d)\n", __FUNCTION__,__FILE__,__LINE__ ); \
// OutputDebugStringA(buffer); \
// firstcallx = TRUE; \
// }
//
//#define DX_WINDBG_trace_res(width,height,bpp) \
// static BOOL firstcallxx = TRUE; \
// if (firstcallxx) \
// { \
// char buffer[1024]; \
// sprintf ( buffer, "Setmode have been req width=%d, height=%d bpp=%d\n",width,height,bpp); \
// OutputDebugStringA(buffer); \
// firstcallxx = FALSE; \
// }
#define DX_STUB \
{ \
static BOOL firstcall = TRUE; \
if (firstcall) \
{ \
char buffer[1024]; \
sprintf ( buffer, "Function %s is not implemented yet (%s:%d)\n", __FUNCTION__,__FILE__,__LINE__ ); \
OutputDebugStringA(buffer); \
firstcall = FALSE; \
} \
} \
return DDERR_UNSUPPORTED;
#define DX_STUB_DD_OK \
{ \
static BOOL firstcall = TRUE; \
if (firstcall) \
{ \
char buffer[1024]; \
sprintf ( buffer, "Function %s is not implemented yet (%s:%d)\n", __FUNCTION__,__FILE__,__LINE__ ); \
OutputDebugStringA(buffer); \
firstcall = FALSE; \
} \
} \
return DD_OK;
#define DX_STUB_str(x) \
{ \
char buffer[1024]; \
sprintf ( buffer, "Function %s %s (%s:%d)\n", __FUNCTION__,x,__FILE__,__LINE__ ); \
OutputDebugStringA(buffer); \
}
#define DX_WINDBG_trace() \
static BOOL firstcallx = TRUE; \
if (firstcallx) \
{ \
char buffer[1024]; \
sprintf ( buffer, "Enter Function %s (%s:%d)\n", __FUNCTION__,__FILE__,__LINE__ ); \
OutputDebugStringA(buffer); \
firstcallx = TRUE; \
}
#define DX_WINDBG_trace_res(width,height,bpp) \
static BOOL firstcallxx = TRUE; \
if (firstcallxx) \
{ \
char buffer[1024]; \
sprintf ( buffer, "Setmode have been req width=%d, height=%d bpp=%d\n",width,height,bpp); \
OutputDebugStringA(buffer); \
firstcallxx = FALSE; \
}
#endif /* __DDRAW_PRIVATE */

View file

@ -881,14 +881,18 @@ Create_DirectDraw (LPGUID pGUID,
BOOL ex)
{
LPDDRAWI_DIRECTDRAW_INT This;
DX_WINDBG_trace();
if (!IsEqualGUID(&IID_IDirectDraw7, id))
{
return DDERR_INVALIDDIRECTDRAWGUID;
}
This = DxHeapMemAlloc(sizeof(DDRAWI_DIRECTDRAW_INT));
if (This == NULL)
{
return E_OUTOFMEMORY;
return DDERR_OUTOFMEMORY;
}
This->lpLcl = DxHeapMemAlloc(sizeof(DDRAWI_DIRECTDRAW_INT));