summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/video/sdl2_v.cpp5
-rw-r--r--src/video/win32_v.cpp7
2 files changed, 7 insertions, 5 deletions
diff --git a/src/video/sdl2_v.cpp b/src/video/sdl2_v.cpp
index 685610d2c..ede8a8486 100644
--- a/src/video/sdl2_v.cpp
+++ b/src/video/sdl2_v.cpp
@@ -258,8 +258,6 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h, bool resize)
DEBUG(driver, 1, "SDL2: using mode %ux%ux%d", w, h, bpp);
- if (bpp == 0) usererror("Can't use a blitter that blits 0 bpp for normal visuals");
-
/* Free any previously allocated shadow surface */
if (_sdl_surface != nullptr && _sdl_surface != _sdl_realscreen) SDL_FreeSurface(_sdl_surface);
@@ -664,6 +662,8 @@ int VideoDriver_SDL::PollEvent()
const char *VideoDriver_SDL::Start(const StringList &parm)
{
+ if (BlitterFactory::GetCurrentBlitter()->GetScreenDepth() == 0) return "Only real blitters supported";
+
/* Explicitly disable hardware acceleration. Enabling this causes
* UpdateWindowSurface() to update the window's texture instead of
* its surface. */
@@ -939,6 +939,7 @@ bool VideoDriver_SDL::ToggleFullscreen(bool fullscreen)
bool VideoDriver_SDL::AfterBlitterChange()
{
+ assert(BlitterFactory::GetCurrentBlitter()->GetScreenDepth() != 0);
int w, h;
SDL_GetWindowSize(_sdl_window, &w, &h);
return CreateMainSurface(w, h, false);
diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp
index 9e1df8473..c1b31d14a 100644
--- a/src/video/win32_v.cpp
+++ b/src/video/win32_v.cpp
@@ -1004,8 +1004,6 @@ static bool AllocateDibSection(int w, int h, bool force)
w = std::max(w, 64);
h = std::max(h, 64);
- if (bpp == 0) usererror("Can't use a blitter that blits 0 bpp for normal visuals");
-
if (!force && w == _screen.width && h == _screen.height) return false;
bi = (BITMAPINFO*)alloca(sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 256);
@@ -1016,7 +1014,7 @@ static bool AllocateDibSection(int w, int h, bool force)
bi->bmiHeader.biHeight = -(_wnd.height = h);
bi->bmiHeader.biPlanes = 1;
- bi->bmiHeader.biBitCount = BlitterFactory::GetCurrentBlitter()->GetScreenDepth();
+ bi->bmiHeader.biBitCount = bpp;
bi->bmiHeader.biCompression = BI_RGB;
if (_wnd.dib_sect) DeleteObject(_wnd.dib_sect);
@@ -1079,6 +1077,8 @@ static FVideoDriver_Win32 iFVideoDriver_Win32;
const char *VideoDriver_Win32::Start(const StringList &parm)
{
+ if (BlitterFactory::GetCurrentBlitter()->GetScreenDepth() == 0) return "Only real blitters supported";
+
this->UpdateAutoResolution();
memset(&_wnd, 0, sizeof(_wnd));
@@ -1288,6 +1288,7 @@ bool VideoDriver_Win32::ToggleFullscreen(bool full_screen)
bool VideoDriver_Win32::AfterBlitterChange()
{
+ assert(BlitterFactory::GetCurrentBlitter()->GetScreenDepth() != 0);
return AllocateDibSection(_screen.width, _screen.height, true) && this->MakeWindow(_fullscreen);
}