mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-24 22:59:58 -06:00
properly recreate window based on changes to either video output method or 3D renderer
This commit is contained in:
@ -80,10 +80,16 @@ int OnCloseWindow(uiWindow* window, void* blarg)
|
|||||||
void OnRendererChanged(uiRadioButtons* rb, void* blarg)
|
void OnRendererChanged(uiRadioButtons* rb, void* blarg)
|
||||||
{
|
{
|
||||||
int id = uiRadioButtonsSelected(rb);
|
int id = uiRadioButtonsSelected(rb);
|
||||||
printf("RENDERER CHANGE: %d\n", id);
|
bool old_usegl = (Config::ScreenUseGL != 0) || (Config::_3DRenderer != 0);
|
||||||
|
|
||||||
Config::_3DRenderer = id;
|
Config::_3DRenderer = id;
|
||||||
UpdateControls();
|
UpdateControls();
|
||||||
ApplyNewSettings(3);
|
|
||||||
|
bool new_usegl = (Config::ScreenUseGL != 0) || (Config::_3DRenderer != 0);
|
||||||
|
if (new_usegl != old_usegl)
|
||||||
|
ApplyNewSettings(2);
|
||||||
|
else
|
||||||
|
ApplyNewSettings(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnGLDisplayChanged(uiCheckbox* cb, void* blarg)
|
void OnGLDisplayChanged(uiCheckbox* cb, void* blarg)
|
||||||
@ -116,17 +122,25 @@ void OnAntialiasChanged(uiCheckbox* cb, void* blarg)
|
|||||||
void OnCancel(uiButton* btn, void* blarg)
|
void OnCancel(uiButton* btn, void* blarg)
|
||||||
{
|
{
|
||||||
bool apply0 = false;
|
bool apply0 = false;
|
||||||
|
bool apply2 = false;
|
||||||
|
bool apply3 = false;
|
||||||
|
|
||||||
|
bool old_usegl = (old_gldisplay != 0) || (old_renderer != 0);
|
||||||
|
bool new_usegl = (Config::ScreenUseGL != 0) || (Config::_3DRenderer != 0);
|
||||||
|
|
||||||
if (old_renderer != Config::_3DRenderer)
|
if (old_renderer != Config::_3DRenderer)
|
||||||
{
|
{
|
||||||
Config::_3DRenderer = old_renderer;
|
Config::_3DRenderer = old_renderer;
|
||||||
ApplyNewSettings(3);
|
apply3 = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (old_gldisplay != Config::ScreenUseGL)
|
if (old_gldisplay != Config::ScreenUseGL)
|
||||||
{
|
{
|
||||||
Config::ScreenUseGL = old_gldisplay;
|
Config::ScreenUseGL = old_gldisplay;
|
||||||
ApplyNewSettings(2);
|
}
|
||||||
|
if (old_usegl != new_usegl)
|
||||||
|
{
|
||||||
|
apply2 = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (old_threaded3D != Config::Threaded3D)
|
if (old_threaded3D != Config::Threaded3D)
|
||||||
@ -143,6 +157,8 @@ void OnCancel(uiButton* btn, void* blarg)
|
|||||||
apply0 = true;
|
apply0 = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (apply2) ApplyNewSettings(2);
|
||||||
|
else if (apply3) ApplyNewSettings(3);
|
||||||
if (apply0) ApplyNewSettings(0);
|
if (apply0) ApplyNewSettings(0);
|
||||||
|
|
||||||
uiControlDestroy(uiControl(win));
|
uiControlDestroy(uiControl(win));
|
||||||
|
Reference in New Issue
Block a user