DirectDraw code now falls back to backbuffer in system memory if it can't allocate backbuffer in video memory.
This commit is contained in:
parent
f928b153e2
commit
8aa5c86386
2 changed files with 24 additions and 3 deletions
|
|
@ -72,7 +72,14 @@ void 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(lpdd4->CreateSurface(&ddsd, &lpdds_back, NULL)))
|
if (FAILED(lpdd4->CreateSurface(&ddsd, &lpdds_back, NULL)))
|
||||||
fatal("CreateSurface back failed\n");
|
{
|
||||||
|
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
|
||||||
|
ddsd.dwWidth = 2048;
|
||||||
|
ddsd.dwHeight = 2048;
|
||||||
|
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY;
|
||||||
|
if (FAILED(lpdd4->CreateSurface(&ddsd, &lpdds_back, NULL)))
|
||||||
|
fatal("CreateSurface back failed\n");
|
||||||
|
}
|
||||||
|
|
||||||
pclog("DDRAW_INIT complete\n");
|
pclog("DDRAW_INIT complete\n");
|
||||||
ddraw_hwnd = h;
|
ddraw_hwnd = h;
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,14 @@ void 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(lpdd4->CreateSurface(&ddsd, &lpdds_back, NULL)))
|
if (FAILED(lpdd4->CreateSurface(&ddsd, &lpdds_back, NULL)))
|
||||||
fatal("CreateSurface back failed\n");
|
{
|
||||||
|
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
|
||||||
|
ddsd.dwWidth = 2048;
|
||||||
|
ddsd.dwHeight = 2048;
|
||||||
|
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY;
|
||||||
|
if (FAILED(lpdd4->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);
|
||||||
|
|
@ -69,7 +76,14 @@ void 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(lpdd4->CreateSurface(&ddsd, &lpdds_back2, NULL)))
|
if (FAILED(lpdd4->CreateSurface(&ddsd, &lpdds_back2, NULL)))
|
||||||
fatal("CreateSurface back failed\n");
|
{
|
||||||
|
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
|
||||||
|
ddsd.dwWidth = 2048;
|
||||||
|
ddsd.dwHeight = 2048;
|
||||||
|
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY;
|
||||||
|
if (FAILED(lpdd4->CreateSurface(&ddsd, &lpdds_back2, NULL)))
|
||||||
|
fatal("CreateSurface back failed\n");
|
||||||
|
}
|
||||||
|
|
||||||
if (FAILED(lpdd4->CreateClipper(0, &lpdd_clipper, NULL)))
|
if (FAILED(lpdd4->CreateClipper(0, &lpdd_clipper, NULL)))
|
||||||
fatal("CreateClipper failed\n");
|
fatal("CreateClipper failed\n");
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue