summaryrefslogtreecommitdiff
path: root/win32/plugins/dfxvideo/winsrc/draw.c
diff options
context:
space:
mode:
Diffstat (limited to 'win32/plugins/dfxvideo/winsrc/draw.c')
-rw-r--r--win32/plugins/dfxvideo/winsrc/draw.c15
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;