DirectDraw now attempts fall back to system buffers if initialization has failed, patch from mainline PCem;
The WM_SIZE handler no longer resizes the window if the window is not set to resizable.
This commit is contained in:
@@ -2163,18 +2163,22 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
|
||||
break;
|
||||
}
|
||||
|
||||
winsizex = (lParam & 0xFFFF);
|
||||
winsizey = (lParam >> 16) - (17 + 6);
|
||||
|
||||
pause = 1;
|
||||
MoveWindow(hwndRender, 0, 0, winsizex, winsizey, TRUE);
|
||||
|
||||
if (vid_apis[video_fullscreen][vid_api].resize)
|
||||
if (vid_resize)
|
||||
{
|
||||
startblit();
|
||||
video_wait_for_blit();
|
||||
endblit();
|
||||
vid_apis[video_fullscreen][vid_api].resize(winsizex, winsizey);
|
||||
winsizex = (lParam & 0xFFFF);
|
||||
winsizey = (lParam >> 16) - (17 + 6);
|
||||
|
||||
pause = 1;
|
||||
MoveWindow(hwndRender, 0, 0, winsizex, winsizey, TRUE);
|
||||
|
||||
if (vid_apis[video_fullscreen][vid_api].resize)
|
||||
{
|
||||
startblit();
|
||||
video_wait_for_blit();
|
||||
endblit();
|
||||
vid_apis[video_fullscreen][vid_api].resize(winsizex, winsizey);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
MoveWindow(hwndStatus, 0, winsizey + 6, winsizex, 17, TRUE);
|
||||
|
||||
@@ -65,7 +65,14 @@ int ddraw_init(HWND h)
|
||||
ddsd.dwHeight = 2048;
|
||||
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;
|
||||
if (FAILED(lpdd7->CreateSurface(&ddsd, &lpdds_back, NULL)))
|
||||
return 0;
|
||||
{
|
||||
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
|
||||
ddsd.dwWidth = 2048;
|
||||
ddsd.dwHeight = 2048;
|
||||
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY;
|
||||
if (FAILED(lpdd7->CreateSurface(&ddsd, &lpdds_back, NULL)))
|
||||
fatal("CreateSurface back failed\n");
|
||||
}
|
||||
|
||||
memset(&ddsd, 0, sizeof(ddsd));
|
||||
ddsd.dwSize = sizeof(ddsd);
|
||||
@@ -75,7 +82,14 @@ int ddraw_init(HWND h)
|
||||
ddsd.dwHeight = 2048;
|
||||
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;
|
||||
if (FAILED(lpdd7->CreateSurface(&ddsd, &lpdds_back2, NULL)))
|
||||
return 0;
|
||||
{
|
||||
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
|
||||
ddsd.dwWidth = 2048;
|
||||
ddsd.dwHeight = 2048;
|
||||
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY;
|
||||
if (FAILED(lpdd7->CreateSurface(&ddsd, &lpdds_back2, NULL)))
|
||||
fatal("CreateSurface back failed\n");
|
||||
}
|
||||
|
||||
if (FAILED(lpdd7->CreateClipper(0, &lpdd_clipper, NULL)))
|
||||
return 0;
|
||||
|
||||
@@ -78,7 +78,14 @@ int ddraw_fs_init(HWND h)
|
||||
ddsd.dwHeight = 2048;
|
||||
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;
|
||||
if (FAILED(lpdd7->CreateSurface(&ddsd, &lpdds_back, NULL)))
|
||||
return 0;
|
||||
{
|
||||
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
|
||||
ddsd.dwWidth = 2048;
|
||||
ddsd.dwHeight = 2048;
|
||||
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY;
|
||||
if (FAILED(lpdd7->CreateSurface(&ddsd, &lpdds_back, NULL)))
|
||||
return 0;
|
||||
}
|
||||
|
||||
pclog("DDRAW_INIT complete\n");
|
||||
ddraw_hwnd = h;
|
||||
|
||||
Reference in New Issue
Block a user