Fix initializing the graphics module after a window is opened.

This commit is contained in:
Alex Szpakowski
2021-12-26 12:34:47 -04:00
parent 19feec43f9
commit 045f5ff0a5
4 changed files with 13 additions and 16 deletions
+2 -7
View File
@@ -361,18 +361,13 @@ Graphics::Graphics()
{
window->setGraphics(this);
// Recreate the window using the current renderer, if needed.
if (window->isOpen())
{
int w, h;
love::window::WindowSettings settings;
window->getWindow(w, h, settings);
double dpiW = w;
double dpiH = h;
window->windowToDPICoords(&dpiW, &dpiH);
void *context = nullptr; // TODO
setMode(context, (int) dpiW, (int) dpiH, window->getPixelWidth(), window->getPixelHeight(), settings.stencil, settings.depth);
window->setWindow(w, h, &settings);
}
}
}}
+4 -9
View File
@@ -131,18 +131,13 @@ Graphics::Graphics()
{
window->setGraphics(this);
// Recreate the window using the current renderer, if needed.
if (window->isOpen())
{
int w, h;
love::window::WindowSettings s;
window->getWindow(w, h, s);
double dpiW = w;
double dpiH = h;
window->windowToDPICoords(&dpiW, &dpiH);
void *context = nullptr; // TODO
setMode(context, (int) dpiW, (int) dpiH, window->getPixelWidth(), window->getPixelHeight(), s.stencil, s.msaa);
love::window::WindowSettings settings;
window->getWindow(w, h, settings);
window->setWindow(w, h, &settings);
}
}
}
+5
View File
@@ -552,6 +552,9 @@ bool Window::setWindow(int width, int height, WindowSettings *settings)
}
}
if (renderer != windowRenderer && isOpen())
close();
if (isOpen())
{
if (SDL_SetWindowFullscreen(window, sdlflags) == 0 && renderer == graphics::Graphics::RENDERER_OPENGL)
@@ -613,6 +616,8 @@ bool Window::setWindow(int width, int height, WindowSettings *settings)
updateSettings(f, false);
windowRenderer = renderer;
if (graphics.get())
{
double scaledw, scaledh;
+2
View File
@@ -172,6 +172,8 @@ private:
SDL_MetalView metalView;
#endif
graphics::Graphics::Renderer windowRenderer = graphics::Graphics::RENDERER_NONE;
bool displayedWindowError;
bool hasSDL203orEarlier;
ContextAttribs contextAttribs;