diff options
-rw-r--r-- | src/video/sdl2_v.cpp | 5 | ||||
-rw-r--r-- | src/video/win32_v.cpp | 7 |
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); } |