renderGL: setting to set settings to set stencil a
nd buffer size it appears this may be the cause of visual glitches
This commit is contained in:
parent
e9acf42f8a
commit
f95336befe
|
@ -1996,6 +1996,7 @@ class FurnaceGUI {
|
||||||
int glBlueSize;
|
int glBlueSize;
|
||||||
int glAlphaSize;
|
int glAlphaSize;
|
||||||
int glDepthSize;
|
int glDepthSize;
|
||||||
|
int glSetBS;
|
||||||
int glStencilSize;
|
int glStencilSize;
|
||||||
int glBufferSize;
|
int glBufferSize;
|
||||||
int glDoubleBuffer;
|
int glDoubleBuffer;
|
||||||
|
@ -2248,6 +2249,7 @@ class FurnaceGUI {
|
||||||
glBlueSize(8),
|
glBlueSize(8),
|
||||||
glAlphaSize(0),
|
glAlphaSize(0),
|
||||||
glDepthSize(24),
|
glDepthSize(24),
|
||||||
|
glSetBS(0),
|
||||||
glStencilSize(0),
|
glStencilSize(0),
|
||||||
glBufferSize(32),
|
glBufferSize(32),
|
||||||
glDoubleBuffer(1),
|
glDoubleBuffer(1),
|
||||||
|
|
|
@ -625,8 +625,10 @@ void FurnaceGUIRenderGL::preInit(const DivConfig& conf) {
|
||||||
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE,conf.getInt("glAlphaSize",0));
|
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE,conf.getInt("glAlphaSize",0));
|
||||||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,conf.getInt("glDoubleBuffer",1));
|
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,conf.getInt("glDoubleBuffer",1));
|
||||||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE,conf.getInt("glDepthSize",24));
|
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE,conf.getInt("glDepthSize",24));
|
||||||
SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE,conf.getInt("glStencilSize",0));
|
if (conf.getInt("glSetBS",0)) {
|
||||||
SDL_GL_SetAttribute(SDL_GL_BUFFER_SIZE,conf.getInt("glBufferSize",32));
|
SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE,conf.getInt("glStencilSize",0));
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_BUFFER_SIZE,conf.getInt("glBufferSize",32));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LOAD_PROC_MANDATORY(_v,_t,_s) \
|
#define LOAD_PROC_MANDATORY(_v,_t,_s) \
|
||||||
|
|
|
@ -279,8 +279,10 @@ void FurnaceGUIRenderGL1::preInit(const DivConfig& conf) {
|
||||||
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE,conf.getInt("glAlphaSize",0));
|
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE,conf.getInt("glAlphaSize",0));
|
||||||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,conf.getInt("glDoubleBuffer",1));
|
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,conf.getInt("glDoubleBuffer",1));
|
||||||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE,conf.getInt("glDepthSize",24));
|
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE,conf.getInt("glDepthSize",24));
|
||||||
SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE,conf.getInt("glStencilSize",0));
|
if (conf.getInt("glSetBS",0)) {
|
||||||
SDL_GL_SetAttribute(SDL_GL_BUFFER_SIZE,conf.getInt("glBufferSize",32));
|
SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE,conf.getInt("glStencilSize",0));
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_BUFFER_SIZE,conf.getInt("glBufferSize",32));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LOAD_PROC_MANDATORY(_v,_t,_s) \
|
#define LOAD_PROC_MANDATORY(_v,_t,_s) \
|
||||||
|
|
|
@ -705,16 +705,26 @@ void FurnaceGUI::drawSettings() {
|
||||||
if (settings.glDepthSize>128) settings.glDepthSize=128;
|
if (settings.glDepthSize>128) settings.glDepthSize=128;
|
||||||
settingsChanged=true;
|
settingsChanged=true;
|
||||||
}
|
}
|
||||||
if (ImGui::InputInt(_("Stencil buffer size"),&settings.glStencilSize)) {
|
|
||||||
if (settings.glStencilSize<0) settings.glStencilSize=0;
|
bool glSetBSB=settings.glSetBS;
|
||||||
if (settings.glStencilSize>32) settings.glStencilSize=32;
|
if (ImGui::Checkbox(_("Set stencil and buffer sizes"),&glSetBSB)) {
|
||||||
|
settings.glSetBS=glSetBSB;
|
||||||
settingsChanged=true;
|
settingsChanged=true;
|
||||||
}
|
}
|
||||||
if (ImGui::InputInt(_("Buffer size"),&settings.glBufferSize)) {
|
|
||||||
if (settings.glBufferSize<0) settings.glBufferSize=0;
|
if (settings.glSetBS) {
|
||||||
if (settings.glBufferSize>128) settings.glBufferSize=128;
|
if (ImGui::InputInt(_("Stencil buffer size"),&settings.glStencilSize)) {
|
||||||
settingsChanged=true;
|
if (settings.glStencilSize<0) settings.glStencilSize=0;
|
||||||
|
if (settings.glStencilSize>32) settings.glStencilSize=32;
|
||||||
|
settingsChanged=true;
|
||||||
|
}
|
||||||
|
if (ImGui::InputInt(_("Buffer size"),&settings.glBufferSize)) {
|
||||||
|
if (settings.glBufferSize<0) settings.glBufferSize=0;
|
||||||
|
if (settings.glBufferSize>128) settings.glBufferSize=128;
|
||||||
|
settingsChanged=true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool glDoubleBufferB=settings.glDoubleBuffer;
|
bool glDoubleBufferB=settings.glDoubleBuffer;
|
||||||
if (ImGui::Checkbox(_("Double buffer"),&glDoubleBufferB)) {
|
if (ImGui::Checkbox(_("Double buffer"),&glDoubleBufferB)) {
|
||||||
settings.glDoubleBuffer=glDoubleBufferB;
|
settings.glDoubleBuffer=glDoubleBufferB;
|
||||||
|
@ -4841,6 +4851,7 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
|
||||||
settings.glBlueSize=conf.getInt("glBlueSize",8);
|
settings.glBlueSize=conf.getInt("glBlueSize",8);
|
||||||
settings.glAlphaSize=conf.getInt("glAlphaSize",0);
|
settings.glAlphaSize=conf.getInt("glAlphaSize",0);
|
||||||
settings.glDepthSize=conf.getInt("glDepthSize",24);
|
settings.glDepthSize=conf.getInt("glDepthSize",24);
|
||||||
|
settings.glSetBS=conf.getInt("glSetBS",0);
|
||||||
settings.glStencilSize=conf.getInt("glStencilSize",0);
|
settings.glStencilSize=conf.getInt("glStencilSize",0);
|
||||||
settings.glBufferSize=conf.getInt("glBufferSize",32);
|
settings.glBufferSize=conf.getInt("glBufferSize",32);
|
||||||
settings.glDoubleBuffer=conf.getInt("glDoubleBuffer",1);
|
settings.glDoubleBuffer=conf.getInt("glDoubleBuffer",1);
|
||||||
|
@ -5395,7 +5406,9 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
|
||||||
clampSetting(settings.glBlueSize,0,32);
|
clampSetting(settings.glBlueSize,0,32);
|
||||||
clampSetting(settings.glAlphaSize,0,32);
|
clampSetting(settings.glAlphaSize,0,32);
|
||||||
clampSetting(settings.glDepthSize,0,128);
|
clampSetting(settings.glDepthSize,0,128);
|
||||||
|
clampSetting(settings.glSetBS,0,1);
|
||||||
clampSetting(settings.glStencilSize,0,32);
|
clampSetting(settings.glStencilSize,0,32);
|
||||||
|
clampSetting(settings.glBufferSize,0,128);
|
||||||
clampSetting(settings.glDoubleBuffer,0,1);
|
clampSetting(settings.glDoubleBuffer,0,1);
|
||||||
clampSetting(settings.backupEnable,0,1);
|
clampSetting(settings.backupEnable,0,1);
|
||||||
clampSetting(settings.backupInterval,10,86400);
|
clampSetting(settings.backupInterval,10,86400);
|
||||||
|
@ -5432,7 +5445,9 @@ void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
|
||||||
conf.set("glBlueSize",settings.glBlueSize);
|
conf.set("glBlueSize",settings.glBlueSize);
|
||||||
conf.set("glAlphaSize",settings.glAlphaSize);
|
conf.set("glAlphaSize",settings.glAlphaSize);
|
||||||
conf.set("glDepthSize",settings.glDepthSize);
|
conf.set("glDepthSize",settings.glDepthSize);
|
||||||
|
conf.set("glSetBS",settings.glSetBS);
|
||||||
conf.set("glStencilSize",settings.glStencilSize);
|
conf.set("glStencilSize",settings.glStencilSize);
|
||||||
|
conf.set("glBufferSize",settings.glBufferSize);
|
||||||
conf.set("glDoubleBuffer",settings.glDoubleBuffer);
|
conf.set("glDoubleBuffer",settings.glDoubleBuffer);
|
||||||
|
|
||||||
conf.set("vsync",settings.vsync);
|
conf.set("vsync",settings.vsync);
|
||||||
|
|
Loading…
Reference in a new issue