From: Toni Wilen Date: Fri, 2 Aug 2024 19:11:25 +0000 (+0300) Subject: If texture allocation is called when device is not allocated (for example GUI entered... X-Git-Tag: 5310~24 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=701e38fa8671c919fe7a07ed0d0e599794a6abbf;p=francis%2Fwinuae.git If texture allocation is called when device is not allocated (for example GUI entered in fullscreen mode), return failure immediately. --- diff --git a/od-win32/direct3d.cpp b/od-win32/direct3d.cpp index 1d672f9a..75914e25 100644 --- a/od-win32/direct3d.cpp +++ b/od-win32/direct3d.cpp @@ -3086,10 +3086,15 @@ static const TCHAR *xD3D_init (HWND ahwnd, int monid, int w_w, int w_h, int dept static bool alloctextures (struct d3dstruct *d3d) { - if (!createtexture (d3d, d3d->tout_w, d3d->tout_h, d3d->window_w, d3d->window_h)) + if (!d3d->d3ddev) { return false; - if (!createamigatexture (d3d, d3d->tin_w, d3d->tin_h)) + } + if (!createtexture (d3d, d3d->tout_w, d3d->tout_h, d3d->window_w, d3d->window_h)) { + return false; + } + if (!createamigatexture (d3d, d3d->tin_w, d3d->tin_h)) { return false; + } return true; } diff --git a/od-win32/direct3d11.cpp b/od-win32/direct3d11.cpp index a8f0b0f7..0fcbc052 100644 --- a/od-win32/direct3d11.cpp +++ b/od-win32/direct3d11.cpp @@ -5046,8 +5046,9 @@ static bool xD3D11_alloctexture(int monid, int w, int h) recheck(d3d, monid); - if (d3d->invalidmode) + if (d3d->invalidmode || !d3d->m_device) { return false; + } d3d->m_bitmapWidth = w; d3d->m_bitmapHeight = h; diff --git a/od-win32/gdirender.cpp b/od-win32/gdirender.cpp index 0997fd43..56b99b47 100644 --- a/od-win32/gdirender.cpp +++ b/od-win32/gdirender.cpp @@ -242,6 +242,10 @@ static bool gdi_alloctexture(int monid, int w, int h) freetexture(monid); + if (!gdi->hwnd) { + return false; + } + gdi->hdc = GetDC(gdi->hwnd); if (gdi->hdc) { SelectObject(gdi->hdc, GetStockObject(DC_PEN));