diff --git a/src/screen.c b/src/screen.c index 1017706eb37889f6dc8181af783b174a95dd7399..89e03e03dc1a3787ba2bf889fffe17d5bc12a502 100644 --- a/src/screen.c +++ b/src/screen.c @@ -516,13 +516,17 @@ void SCR_ChangeRenderer(void) return; } - if (rendermode == render_opengl && (vid.glstate == VID_GL_LIBRARY_LOADED)) // Clear these out before switching to software + // Clear these out before switching to software + if (rendermode == render_opengl && vid.glstate == VID_GL_LIBRARY_LOADED) HWR_ClearAllTextures(); #endif // Set the new render mode vid.change.renderer = cv_renderer.value; - vid.change.set = VID_RESOLUTION_CHANGED; + + // Don't reposition the window + if (vid.change.set == VID_RESOLUTION_UNCHANGED) + vid.change.set = VID_RESOLUTION_RESIZED_WINDOW; } boolean SCR_IsAspectCorrect(INT32 width, INT32 height)