diff options
Diffstat (limited to 'win32/plugins/dfxvideo/winsrc/draw.c')
| -rw-r--r-- | win32/plugins/dfxvideo/winsrc/draw.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/win32/plugins/dfxvideo/winsrc/draw.c b/win32/plugins/dfxvideo/winsrc/draw.c index d25104d6..81a71142 100644 --- a/win32/plugins/dfxvideo/winsrc/draw.c +++ b/win32/plugins/dfxvideo/winsrc/draw.c @@ -3656,6 +3656,8 @@ int DXinitialize() DDSCAPS ddscaps; DDBLTFX ddbltfx; DDPIXELFORMAT dd; + HRESULT (WINAPI *pDDrawCreateFn)(GUID *,LPDIRECTDRAW *,IUnknown *);
+ HMODULE hDDrawDLL;
// init some DX vars DX.hWnd = (HWND)hWGPU; @@ -3665,10 +3667,19 @@ int DXinitialize() // make guid ! c=(unsigned char *)&guiDev; for(i=0;i<sizeof(GUID);i++,c++) - {if(*c) {guid=&guiDev;break;}} + {if(*c) {guid=&guiDev;break;}}
+ + hDDrawDLL = GetModuleHandle("DDRAW.DLL");
+ if(NULL == hDDrawDLL)
+ {
+ MessageBox(NULL, "This GPU requires DirectX!", "Error", MB_OK);
+ return 0;
+ }
+
+ pDDrawCreateFn = (LPVOID)GetProcAddress( hDDrawDLL, "DirectDrawCreate" );
// create dd - if(DirectDrawCreate(guid,&DD,0)) + if(pDDrawCreateFn == NULL || pDDrawCreateFn(guid,&DD,0)) { MessageBox(NULL, "This GPU requires DirectX!", "Error", MB_OK); return 0; |
