diff --git a/graphics/VectorRendererSpec.cpp b/graphics/VectorRendererSpec.cpp index c60d9ca2319..1e01744fad4 100644 --- a/graphics/VectorRendererSpec.cpp +++ b/graphics/VectorRendererSpec.cpp @@ -283,10 +283,16 @@ VectorRenderer *createRenderer(int mode) { PixelFormat format = g_system->getOverlayFormat(); switch (mode) { case GUI::ThemeEngine::kGfxStandard: - return new VectorRendererSpec(format); + if (g_system->getOverlayFormat().bytesPerPixel == 4) + return new VectorRendererSpec(format); + else if (g_system->getOverlayFormat().bytesPerPixel == 2) + return new VectorRendererSpec(format); #ifndef DISABLE_FANCY_THEMES case GUI::ThemeEngine::kGfxAntialias: - return new VectorRendererAA(format); + if (g_system->getOverlayFormat().bytesPerPixel == 4) + return new VectorRendererAA(format); + else if (g_system->getOverlayFormat().bytesPerPixel == 2) + return new VectorRendererAA(format); #endif default: break; diff --git a/gui/ThemeEngine.cpp b/gui/ThemeEngine.cpp index b7199fbf686..561c0244a2c 100644 --- a/gui/ThemeEngine.cpp +++ b/gui/ThemeEngine.cpp @@ -498,9 +498,13 @@ void ThemeEngine::setGraphicsMode(GraphicsMode mode) { #ifndef DISABLE_FANCY_THEMES case kGfxAntialias: #endif - _bytesPerPixel = sizeof(uint16); - break; - + if (g_system->getOverlayFormat().bytesPerPixel == 4) { + _bytesPerPixel = sizeof(uint32); + break; + } else if (g_system->getOverlayFormat().bytesPerPixel == 2) { + _bytesPerPixel = sizeof(uint16); + break; + } default: error("Invalid graphics mode"); }