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 glAlphaSize;
|
||||
int glDepthSize;
|
||||
int glSetBS;
|
||||
int glStencilSize;
|
||||
int glBufferSize;
|
||||
int glDoubleBuffer;
|
||||
|
@ -2248,6 +2249,7 @@ class FurnaceGUI {
|
|||
glBlueSize(8),
|
||||
glAlphaSize(0),
|
||||
glDepthSize(24),
|
||||
glSetBS(0),
|
||||
glStencilSize(0),
|
||||
glBufferSize(32),
|
||||
glDoubleBuffer(1),
|
||||
|
|
|
@ -625,9 +625,11 @@ void FurnaceGUIRenderGL::preInit(const DivConfig& conf) {
|
|||
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_DEPTH_SIZE,conf.getInt("glDepthSize",24));
|
||||
if (conf.getInt("glSetBS",0)) {
|
||||
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) \
|
||||
_v=(_t)SDL_GL_GetProcAddress(_s); \
|
||||
|
|
|
@ -279,9 +279,11 @@ void FurnaceGUIRenderGL1::preInit(const DivConfig& conf) {
|
|||
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_DEPTH_SIZE,conf.getInt("glDepthSize",24));
|
||||
if (conf.getInt("glSetBS",0)) {
|
||||
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) \
|
||||
_v=(_t)SDL_GL_GetProcAddress(_s); \
|
||||
|
|
|
@ -705,6 +705,14 @@ void FurnaceGUI::drawSettings() {
|
|||
if (settings.glDepthSize>128) settings.glDepthSize=128;
|
||||
settingsChanged=true;
|
||||
}
|
||||
|
||||
bool glSetBSB=settings.glSetBS;
|
||||
if (ImGui::Checkbox(_("Set stencil and buffer sizes"),&glSetBSB)) {
|
||||
settings.glSetBS=glSetBSB;
|
||||
settingsChanged=true;
|
||||
}
|
||||
|
||||
if (settings.glSetBS) {
|
||||
if (ImGui::InputInt(_("Stencil buffer size"),&settings.glStencilSize)) {
|
||||
if (settings.glStencilSize<0) settings.glStencilSize=0;
|
||||
if (settings.glStencilSize>32) settings.glStencilSize=32;
|
||||
|
@ -715,6 +723,8 @@ void FurnaceGUI::drawSettings() {
|
|||
if (settings.glBufferSize>128) settings.glBufferSize=128;
|
||||
settingsChanged=true;
|
||||
}
|
||||
}
|
||||
|
||||
bool glDoubleBufferB=settings.glDoubleBuffer;
|
||||
if (ImGui::Checkbox(_("Double buffer"),&glDoubleBufferB)) {
|
||||
settings.glDoubleBuffer=glDoubleBufferB;
|
||||
|
@ -4841,6 +4851,7 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
|
|||
settings.glBlueSize=conf.getInt("glBlueSize",8);
|
||||
settings.glAlphaSize=conf.getInt("glAlphaSize",0);
|
||||
settings.glDepthSize=conf.getInt("glDepthSize",24);
|
||||
settings.glSetBS=conf.getInt("glSetBS",0);
|
||||
settings.glStencilSize=conf.getInt("glStencilSize",0);
|
||||
settings.glBufferSize=conf.getInt("glBufferSize",32);
|
||||
settings.glDoubleBuffer=conf.getInt("glDoubleBuffer",1);
|
||||
|
@ -5395,7 +5406,9 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
|
|||
clampSetting(settings.glBlueSize,0,32);
|
||||
clampSetting(settings.glAlphaSize,0,32);
|
||||
clampSetting(settings.glDepthSize,0,128);
|
||||
clampSetting(settings.glSetBS,0,1);
|
||||
clampSetting(settings.glStencilSize,0,32);
|
||||
clampSetting(settings.glBufferSize,0,128);
|
||||
clampSetting(settings.glDoubleBuffer,0,1);
|
||||
clampSetting(settings.backupEnable,0,1);
|
||||
clampSetting(settings.backupInterval,10,86400);
|
||||
|
@ -5432,7 +5445,9 @@ void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
|
|||
conf.set("glBlueSize",settings.glBlueSize);
|
||||
conf.set("glAlphaSize",settings.glAlphaSize);
|
||||
conf.set("glDepthSize",settings.glDepthSize);
|
||||
conf.set("glSetBS",settings.glSetBS);
|
||||
conf.set("glStencilSize",settings.glStencilSize);
|
||||
conf.set("glBufferSize",settings.glBufferSize);
|
||||
conf.set("glDoubleBuffer",settings.glDoubleBuffer);
|
||||
|
||||
conf.set("vsync",settings.vsync);
|
||||
|
|
Loading…
Reference in a new issue