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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
winsizex = (lParam & 0xFFFF);
|
if (vid_resize)
|
||||||
winsizey = (lParam >> 16) - (17 + 6);
|
|
||||||
|
|
||||||
pause = 1;
|
|
||||||
MoveWindow(hwndRender, 0, 0, winsizex, winsizey, TRUE);
|
|
||||||
|
|
||||||
if (vid_apis[video_fullscreen][vid_api].resize)
|
|
||||||
{
|
{
|
||||||
startblit();
|
winsizex = (lParam & 0xFFFF);
|
||||||
video_wait_for_blit();
|
winsizey = (lParam >> 16) - (17 + 6);
|
||||||
endblit();
|
|
||||||
vid_apis[video_fullscreen][vid_api].resize(winsizex, winsizey);
|
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);
|
MoveWindow(hwndStatus, 0, winsizey + 6, winsizex, 17, TRUE);
|
||||||
|
|||||||
@@ -65,7 +65,14 @@ int ddraw_init(HWND h)
|
|||||||
ddsd.dwHeight = 2048;
|
ddsd.dwHeight = 2048;
|
||||||
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;
|
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;
|
||||||
if (FAILED(lpdd7->CreateSurface(&ddsd, &lpdds_back, NULL)))
|
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));
|
memset(&ddsd, 0, sizeof(ddsd));
|
||||||
ddsd.dwSize = sizeof(ddsd);
|
ddsd.dwSize = sizeof(ddsd);
|
||||||
@@ -75,7 +82,14 @@ int ddraw_init(HWND h)
|
|||||||
ddsd.dwHeight = 2048;
|
ddsd.dwHeight = 2048;
|
||||||
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;
|
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;
|
||||||
if (FAILED(lpdd7->CreateSurface(&ddsd, &lpdds_back2, NULL)))
|
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)))
|
if (FAILED(lpdd7->CreateClipper(0, &lpdd_clipper, NULL)))
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -78,7 +78,14 @@ int ddraw_fs_init(HWND h)
|
|||||||
ddsd.dwHeight = 2048;
|
ddsd.dwHeight = 2048;
|
||||||
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;
|
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;
|
||||||
if (FAILED(lpdd7->CreateSurface(&ddsd, &lpdds_back, NULL)))
|
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");
|
pclog("DDRAW_INIT complete\n");
|
||||||
ddraw_hwnd = h;
|
ddraw_hwnd = h;
|
||||||
|
|||||||
Reference in New Issue
Block a user