mirror of
https://bitbucket.org/CPMADevs/cnq3
synced 2024-11-10 06:31:48 +00:00
fixed incorrect ImGui::EndTabBar usage
This commit is contained in:
parent
eee321a641
commit
4955060c9f
3 changed files with 185 additions and 180 deletions
|
@ -1622,153 +1622,154 @@ void VolumetricLight::DrawGUI()
|
||||||
|
|
||||||
const char* axisNames[3] = { "X", "Y", "Z" };
|
const char* axisNames[3] = { "X", "Y", "Z" };
|
||||||
|
|
||||||
ImGui::BeginTabBar("Tabs#Fogs", ImGuiTabBarFlags_AutoSelectNewTabs);
|
if(ImGui::BeginTabBar("Tabs#Fogs", ImGuiTabBarFlags_AutoSelectNewTabs))
|
||||||
|
|
||||||
for(int i = 0; i < fogCount; i++)
|
|
||||||
{
|
{
|
||||||
if(ImGui::BeginTabItem(va("#%d", i + 1)))
|
for(int i = 0; i < fogCount; i++)
|
||||||
{
|
{
|
||||||
Fog& fog = fogs[i];
|
if(ImGui::BeginTabItem(va("#%d", i + 1)))
|
||||||
ImGui::Checkbox("Global fog", &fog.isGlobalFog);
|
|
||||||
if(!fog.isGlobalFog)
|
|
||||||
{
|
{
|
||||||
for(int a = 0; a < 3; a++)
|
Fog& fog = fogs[i];
|
||||||
|
ImGui::Checkbox("Global fog", &fog.isGlobalFog);
|
||||||
|
if(!fog.isGlobalFog)
|
||||||
{
|
{
|
||||||
ImGui::SliderFloat(va("Box min %s", axisNames[a]), &fog.boxMin[a], mapBoxMin[a], mapBoxMax[a], "%g");
|
for(int a = 0; a < 3; a++)
|
||||||
ImGui::SliderFloat(va("Box max %s", axisNames[a]), &fog.boxMax[a], mapBoxMin[a], mapBoxMax[a], "%g");
|
{
|
||||||
|
ImGui::SliderFloat(va("Box min %s", axisNames[a]), &fog.boxMin[a], mapBoxMin[a], mapBoxMax[a], "%g");
|
||||||
|
ImGui::SliderFloat(va("Box max %s", axisNames[a]), &fog.boxMax[a], mapBoxMin[a], mapBoxMax[a], "%g");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
float opaqueDistance = ExtinctionToOpaqueDistance(fog.extinction);
|
||||||
|
ImGui::SliderFloat("Distance to opaque", &opaqueDistance, 1.0f, 10000.0f, "%g");
|
||||||
|
fog.extinction = OpaqueDistanceToExtinction(opaqueDistance);
|
||||||
|
ImGui::ColorEdit3("Reflective (scatter) color", fog.scatterColor, colorEditFlags);
|
||||||
|
ImGui::SliderFloat("Reflectivity (albedo)", &fog.albedo, 0.0f, 1.0f, "%g");
|
||||||
|
ImGui::SliderFloat("Directionality (anisotropy)", &fog.anisotropy, 0.0f, 1.0f, "%g");
|
||||||
|
ImGui::SliderFloat("Emissive strength", &fog.emissive, 0.0f, 0.001f, "%g");
|
||||||
|
ImGui::ColorEdit3("Emissive color", fog.emissiveColor, colorEditFlags);
|
||||||
|
ImGui::SliderFloat("Noise strength", &fog.noiseStrength, 1.0f, 10.0f, "%g");
|
||||||
|
ImGui::SliderFloat("Noise space period", &fog.noiseSpatialPeriod, 0.0f, 200.0f, "%g");
|
||||||
|
ImGui::SliderFloat("Noise time period", &fog.noiseTimePeriod, 0.0f, 20.0f, "%g");
|
||||||
|
ImGui::Checkbox("Height fog", &fog.isHeightFog);
|
||||||
|
ImGui::EndTabItem();
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
if(ImGui::Button("Remove"))
|
||||||
|
{
|
||||||
|
if(i < fogCount - 1)
|
||||||
|
{
|
||||||
|
memmove(&fogs[i], &fogs[i + 1], (fogCount - 1 - i) * sizeof(fogs[0]));
|
||||||
|
}
|
||||||
|
fogCount--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
float opaqueDistance = ExtinctionToOpaqueDistance(fog.extinction);
|
}
|
||||||
ImGui::SliderFloat("Distance to opaque", &opaqueDistance, 1.0f, 10000.0f, "%g");
|
|
||||||
fog.extinction = OpaqueDistanceToExtinction(opaqueDistance);
|
if(ImGui::BeginTabItem("Main"))
|
||||||
ImGui::ColorEdit3("Reflective (scatter) color", fog.scatterColor, colorEditFlags);
|
{
|
||||||
ImGui::SliderFloat("Reflectivity (albedo)", &fog.albedo, 0.0f, 1.0f, "%g");
|
bool enableVL = crp_volLight->integer != 0;
|
||||||
ImGui::SliderFloat("Directionality (anisotropy)", &fog.anisotropy, 0.0f, 1.0f, "%g");
|
if(ImGui::Checkbox("Enable volumetric lighting", &enableVL))
|
||||||
ImGui::SliderFloat("Emissive strength", &fog.emissive, 0.0f, 0.001f, "%g");
|
{
|
||||||
ImGui::ColorEdit3("Emissive color", fog.emissiveColor, colorEditFlags);
|
Cvar_Set(crp_volLight->name, enableVL ? "1" : "0");
|
||||||
ImGui::SliderFloat("Noise strength", &fog.noiseStrength, 1.0f, 10.0f, "%g");
|
}
|
||||||
ImGui::SliderFloat("Noise space period", &fog.noiseSpatialPeriod, 0.0f, 200.0f, "%g");
|
ImGui::Checkbox("Enable sunlight", &drawSunlight);
|
||||||
ImGui::SliderFloat("Noise time period", &fog.noiseTimePeriod, 0.0f, 20.0f, "%g");
|
|
||||||
ImGui::Checkbox("Height fog", &fog.isHeightFog);
|
|
||||||
ImGui::EndTabItem();
|
|
||||||
|
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
if(ImGui::Button("Remove"))
|
ImGui::Checkbox("Enable light grid", &enableLightGrid);
|
||||||
|
ImGui::ColorEdit3("Ambient light color", ambientColorGUI, colorEditFlags);
|
||||||
|
ImGui::SliderFloat("Ambient light intensity", &ambientIntensity, 0.0f, 1.0f);
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
ImGui::SliderFloat("Sunlight intensity", &crp.sunlightData.intensityVL, 0.0f, 200.0f);
|
||||||
|
ImGui::SliderFloat("Point light intensity", &pointLightIntensity, 0.0f, 200.0f);
|
||||||
|
|
||||||
|
const float brightness = Brightness(ambientColorGUI);
|
||||||
|
if(brightness > 0.000001f)
|
||||||
{
|
{
|
||||||
if(i < fogCount - 1)
|
const float scale = 0.5f / brightness;
|
||||||
|
for(int i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
memmove(&fogs[i], &fogs[i + 1], (fogCount - 1 - i) * sizeof(fogs[0]));
|
ambientColor[i] = ambientColorGUI[i] * scale;
|
||||||
}
|
}
|
||||||
fogCount--;
|
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
}
|
|
||||||
|
|
||||||
if(ImGui::BeginTabItem("Main"))
|
|
||||||
{
|
|
||||||
bool enableVL = crp_volLight->integer != 0;
|
|
||||||
if(ImGui::Checkbox("Enable volumetric lighting", &enableVL))
|
|
||||||
{
|
|
||||||
Cvar_Set(crp_volLight->name, enableVL ? "1" : "0");
|
|
||||||
}
|
|
||||||
ImGui::Checkbox("Enable sunlight", &drawSunlight);
|
|
||||||
|
|
||||||
ImGui::Separator();
|
|
||||||
ImGui::Checkbox("Enable light grid", &enableLightGrid);
|
|
||||||
ImGui::ColorEdit3("Ambient light color", ambientColorGUI, colorEditFlags);
|
|
||||||
ImGui::SliderFloat("Ambient light intensity", &ambientIntensity, 0.0f, 1.0f);
|
|
||||||
|
|
||||||
ImGui::Separator();
|
|
||||||
ImGui::SliderFloat("Sunlight intensity", &crp.sunlightData.intensityVL, 0.0f, 200.0f);
|
|
||||||
ImGui::SliderFloat("Point light intensity", &pointLightIntensity, 0.0f, 200.0f);
|
|
||||||
|
|
||||||
const float brightness = Brightness(ambientColorGUI);
|
|
||||||
if(brightness > 0.000001f)
|
|
||||||
{
|
|
||||||
const float scale = 0.5f / brightness;
|
|
||||||
for(int i = 0; i < 3; i++)
|
|
||||||
{
|
{
|
||||||
ambientColor[i] = ambientColorGUI[i] * scale;
|
VectorSet(ambientColor, 0.5f, 0.5f, 0.5f);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
ImGui::EndTabItem();
|
||||||
{
|
|
||||||
VectorSet(ambientColor, 0.5f, 0.5f, 0.5f);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::EndTabItem();
|
if(ImGui::BeginTabItem("Resolution"))
|
||||||
}
|
|
||||||
|
|
||||||
if(ImGui::BeginTabItem("Resolution"))
|
|
||||||
{
|
|
||||||
const float titleWidth = 14.0f * ImGui::GetFontSize();
|
|
||||||
RadioButton(&xySubsampling, titleWidth, "X/Y sub-sampling", 3, "2x", 1, "4x", 2, "8x", 3);
|
|
||||||
RadioButton(&zResolution, titleWidth, "Z resolution", 3, "128", 128, "256", 256, "512", 512);
|
|
||||||
RadioButton(&extinctionResolution, titleWidth, "Extinction resolution", 3, "64", 64, "128", 128, "256", 256);
|
|
||||||
RadioButton(&sunShadowResolution, titleWidth, "Sun shadow resolution", 3, "64", 64, "128", 128, "256", 256);
|
|
||||||
RadioButton(&pointShadowResolution, titleWidth, "Point shadow resolution", 3, "32", 32, "64", 64, "128", 128);
|
|
||||||
|
|
||||||
int divisor = 1;
|
|
||||||
for(int i = 0; i < xySubsampling; i++)
|
|
||||||
{
|
{
|
||||||
divisor *= 2;
|
const float titleWidth = 14.0f * ImGui::GetFontSize();
|
||||||
}
|
RadioButton(&xySubsampling, titleWidth, "X/Y sub-sampling", 3, "2x", 1, "4x", 2, "8x", 3);
|
||||||
|
RadioButton(&zResolution, titleWidth, "Z resolution", 3, "128", 128, "256", 256, "512", 512);
|
||||||
|
RadioButton(&extinctionResolution, titleWidth, "Extinction resolution", 3, "64", 64, "128", 128, "256", 256);
|
||||||
|
RadioButton(&sunShadowResolution, titleWidth, "Sun shadow resolution", 3, "64", 64, "128", 128, "256", 256);
|
||||||
|
RadioButton(&pointShadowResolution, titleWidth, "Point shadow resolution", 3, "32", 32, "64", 64, "128", 128);
|
||||||
|
|
||||||
if((glConfig.vidWidth / divisor) != frustumSize[0] ||
|
int divisor = 1;
|
||||||
(glConfig.vidHeight / divisor) != frustumSize[1] ||
|
for(int i = 0; i < xySubsampling; i++)
|
||||||
zResolution != frustumSize[2] ||
|
|
||||||
extinctionResolution != extinctionSize[0] ||
|
|
||||||
sunShadowResolution != sunShadowSize[0] ||
|
|
||||||
pointShadowResolution != shadowPixelCount)
|
|
||||||
{
|
|
||||||
if(ImGui::Button("Video restart"))
|
|
||||||
{
|
{
|
||||||
Cbuf_AddText("vid_restart\n");
|
divisor *= 2;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
ImGui::EndTabItem();
|
if((glConfig.vidWidth / divisor) != frustumSize[0] ||
|
||||||
}
|
(glConfig.vidHeight / divisor) != frustumSize[1] ||
|
||||||
|
zResolution != frustumSize[2] ||
|
||||||
if(ImGui::BeginTabItem("Debug"))
|
extinctionResolution != extinctionSize[0] ||
|
||||||
{
|
sunShadowResolution != sunShadowSize[0] ||
|
||||||
if(tr.world->lightGridData != NULL)
|
pointShadowResolution != shadowPixelCount)
|
||||||
{
|
|
||||||
ImGui::Checkbox("Draw ambient light grid", &drawAmbientDebug);
|
|
||||||
if(drawAmbientDebug)
|
|
||||||
{
|
{
|
||||||
ImGui::SliderFloat("Voxel sphere scale", &debugSphereScale, 0.25f, 1.0f);
|
if(ImGui::Button("Video restart"))
|
||||||
|
{
|
||||||
|
Cbuf_AddText("vid_restart\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImGui::EndTabItem();
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if(ImGui::BeginTabItem("Debug"))
|
||||||
{
|
{
|
||||||
ImGui::TextColored(ImVec4(1.0f, 0.5f, 0.0f, 1.0f), "No valid light grid was found for this map");
|
if(tr.world->lightGridData != NULL)
|
||||||
|
{
|
||||||
|
ImGui::Checkbox("Draw ambient light grid", &drawAmbientDebug);
|
||||||
|
if(drawAmbientDebug)
|
||||||
|
{
|
||||||
|
ImGui::SliderFloat("Voxel sphere scale", &debugSphereScale, 0.25f, 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ImGui::TextColored(ImVec4(1.0f, 0.5f, 0.0f, 1.0f), "No valid light grid was found for this map");
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
ImGui::Checkbox("Draw extinction volume", &drawExtinctionDebug);
|
||||||
|
if(drawExtinctionDebug)
|
||||||
|
{
|
||||||
|
ImGui::SliderInt("Extinction cascade", &debugExtinctionCascadeIndex, 0, 3);
|
||||||
|
ImGui::SliderFloat("Extinction value scale", &debugExtinctionScale, 1.0f, 1000.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
ImGui::Checkbox("Draw sun shadow volume", &drawSunShadowDebug);
|
||||||
|
if(drawSunShadowDebug)
|
||||||
|
{
|
||||||
|
ImGui::SliderInt("Sun shadow cascade", &debugSunShadowCascadeIndex, 0, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
ImGui::Checkbox("Lock camera position", &lockCameraPosition);
|
||||||
|
ImGui::SliderFloat("Voxel box scale", &debugBoxScale, 0.25f, 1.0f);
|
||||||
|
|
||||||
|
ImGui::EndTabItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::Separator();
|
ImGui::EndTabBar();
|
||||||
ImGui::Checkbox("Draw extinction volume", &drawExtinctionDebug);
|
|
||||||
if(drawExtinctionDebug)
|
|
||||||
{
|
|
||||||
ImGui::SliderInt("Extinction cascade", &debugExtinctionCascadeIndex, 0, 3);
|
|
||||||
ImGui::SliderFloat("Extinction value scale", &debugExtinctionScale, 1.0f, 1000.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
ImGui::Separator();
|
|
||||||
ImGui::Checkbox("Draw sun shadow volume", &drawSunShadowDebug);
|
|
||||||
if(drawSunShadowDebug)
|
|
||||||
{
|
|
||||||
ImGui::SliderInt("Sun shadow cascade", &debugSunShadowCascadeIndex, 0, 3);
|
|
||||||
}
|
|
||||||
|
|
||||||
ImGui::Separator();
|
|
||||||
ImGui::Checkbox("Lock camera position", &lockCameraPosition);
|
|
||||||
ImGui::SliderFloat("Voxel box scale", &debugBoxScale, 0.25f, 1.0f);
|
|
||||||
|
|
||||||
ImGui::EndTabItem();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::EndTabBar();
|
|
||||||
|
|
||||||
if(SaveFileDialog_Do())
|
if(SaveFileDialog_Do())
|
||||||
{
|
{
|
||||||
SaveFogFile(SaveFileDialog_GetPath());
|
SaveFogFile(SaveFileDialog_GetPath());
|
||||||
|
|
|
@ -3137,12 +3137,14 @@ namespace RHI
|
||||||
{
|
{
|
||||||
if(ImGui::Begin("Direct3D 12 RHI", &resourcesActive))
|
if(ImGui::Begin("Direct3D 12 RHI", &resourcesActive))
|
||||||
{
|
{
|
||||||
ImGui::BeginTabBar("Tabs#RHI");
|
if(ImGui::BeginTabBar("Tabs#RHI"))
|
||||||
DrawSection("Resources", &DrawResourceUsage);
|
{
|
||||||
DrawSection("Caps", &DrawCaps);
|
DrawSection("Resources", &DrawResourceUsage);
|
||||||
DrawSection("Textures", &DrawTextures);
|
DrawSection("Caps", &DrawCaps);
|
||||||
DrawSection("Buffers", &DrawBuffers);
|
DrawSection("Textures", &DrawTextures);
|
||||||
ImGui::EndTabBar();
|
DrawSection("Buffers", &DrawBuffers);
|
||||||
|
ImGui::EndTabBar();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1802,64 +1802,66 @@ static void DrawSettings()
|
||||||
DrawFilter(cvarFilter, sizeof(cvarFilter));
|
DrawFilter(cvarFilter, sizeof(cvarFilter));
|
||||||
ImGui::NewLine();
|
ImGui::NewLine();
|
||||||
|
|
||||||
ImGui::BeginTabBar("Tabs#ClientSettings");
|
if(ImGui::BeginTabBar("Tabs#ClientSettings"))
|
||||||
if(ImGui::BeginTabItem("All"))
|
|
||||||
{
|
{
|
||||||
DrawCVarTable(&restartNeeded, "All settings", -1);
|
if(ImGui::BeginTabItem("All"))
|
||||||
ImGui::EndTabItem();
|
{
|
||||||
|
DrawCVarTable(&restartNeeded, "All settings", -1);
|
||||||
|
ImGui::EndTabItem();
|
||||||
|
}
|
||||||
|
if(ImGui::BeginTabItem("General"))
|
||||||
|
{
|
||||||
|
DrawCVarTable(&restartNeeded, "General settings", CVARCAT_GENERAL);
|
||||||
|
ImGui::EndTabItem();
|
||||||
|
}
|
||||||
|
if(ImGui::BeginTabItem("Gameplay"))
|
||||||
|
{
|
||||||
|
DrawCVarTable(&restartNeeded, "Gameplay settings", CVARCAT_GAMEPLAY);
|
||||||
|
ImGui::EndTabItem();
|
||||||
|
}
|
||||||
|
if(ImGui::BeginTabItem("HUD"))
|
||||||
|
{
|
||||||
|
DrawCVarTable(&restartNeeded, "HUD settings", CVARCAT_HUD);
|
||||||
|
ImGui::EndTabItem();
|
||||||
|
}
|
||||||
|
if(ImGui::BeginTabItem("Video"))
|
||||||
|
{
|
||||||
|
DrawCVarTable(&restartNeeded, "Display settings", CVARCAT_DISPLAY);
|
||||||
|
DrawCVarTable(&restartNeeded, "Graphics settings", CVARCAT_GRAPHICS);
|
||||||
|
ImGui::EndTabItem();
|
||||||
|
}
|
||||||
|
if(ImGui::BeginTabItem("Audio"))
|
||||||
|
{
|
||||||
|
DrawCVarTable(&restartNeeded, "Sound settings", CVARCAT_SOUND);
|
||||||
|
ImGui::EndTabItem();
|
||||||
|
}
|
||||||
|
if(ImGui::BeginTabItem("Input"))
|
||||||
|
{
|
||||||
|
DrawCVarTable(&restartNeeded, "Input settings", CVARCAT_INPUT);
|
||||||
|
ImGui::EndTabItem();
|
||||||
|
}
|
||||||
|
if(ImGui::BeginTabItem("Network"))
|
||||||
|
{
|
||||||
|
DrawCVarTable(&restartNeeded, "Network and client-side prediction settings", CVARCAT_NETWORK);
|
||||||
|
ImGui::EndTabItem();
|
||||||
|
}
|
||||||
|
if(ImGui::BeginTabItem("Console"))
|
||||||
|
{
|
||||||
|
DrawCVarTable(&restartNeeded, "Console settings", CVARCAT_CONSOLE);
|
||||||
|
ImGui::EndTabItem();
|
||||||
|
}
|
||||||
|
if(ImGui::BeginTabItem("Demo"))
|
||||||
|
{
|
||||||
|
DrawCVarTable(&restartNeeded, "Demo playback settings", CVARCAT_DEMO);
|
||||||
|
ImGui::EndTabItem();
|
||||||
|
}
|
||||||
|
if(ImGui::BeginTabItem("Performance"))
|
||||||
|
{
|
||||||
|
DrawCVarTable(&restartNeeded, "Performance settings", CVARCAT_PERFORMANCE);
|
||||||
|
ImGui::EndTabItem();
|
||||||
|
}
|
||||||
|
ImGui::EndTabBar();
|
||||||
}
|
}
|
||||||
if(ImGui::BeginTabItem("General"))
|
|
||||||
{
|
|
||||||
DrawCVarTable(&restartNeeded, "General settings", CVARCAT_GENERAL);
|
|
||||||
ImGui::EndTabItem();
|
|
||||||
}
|
|
||||||
if(ImGui::BeginTabItem("Gameplay"))
|
|
||||||
{
|
|
||||||
DrawCVarTable(&restartNeeded, "Gameplay settings", CVARCAT_GAMEPLAY);
|
|
||||||
ImGui::EndTabItem();
|
|
||||||
}
|
|
||||||
if(ImGui::BeginTabItem("HUD"))
|
|
||||||
{
|
|
||||||
DrawCVarTable(&restartNeeded, "HUD settings", CVARCAT_HUD);
|
|
||||||
ImGui::EndTabItem();
|
|
||||||
}
|
|
||||||
if(ImGui::BeginTabItem("Video"))
|
|
||||||
{
|
|
||||||
DrawCVarTable(&restartNeeded, "Display settings", CVARCAT_DISPLAY);
|
|
||||||
DrawCVarTable(&restartNeeded, "Graphics settings", CVARCAT_GRAPHICS);
|
|
||||||
ImGui::EndTabItem();
|
|
||||||
}
|
|
||||||
if(ImGui::BeginTabItem("Audio"))
|
|
||||||
{
|
|
||||||
DrawCVarTable(&restartNeeded, "Sound settings", CVARCAT_SOUND);
|
|
||||||
ImGui::EndTabItem();
|
|
||||||
}
|
|
||||||
if(ImGui::BeginTabItem("Input"))
|
|
||||||
{
|
|
||||||
DrawCVarTable(&restartNeeded, "Input settings", CVARCAT_INPUT);
|
|
||||||
ImGui::EndTabItem();
|
|
||||||
}
|
|
||||||
if(ImGui::BeginTabItem("Network"))
|
|
||||||
{
|
|
||||||
DrawCVarTable(&restartNeeded, "Network and client-side prediction settings", CVARCAT_NETWORK);
|
|
||||||
ImGui::EndTabItem();
|
|
||||||
}
|
|
||||||
if(ImGui::BeginTabItem("Console"))
|
|
||||||
{
|
|
||||||
DrawCVarTable(&restartNeeded, "Console settings", CVARCAT_CONSOLE);
|
|
||||||
ImGui::EndTabItem();
|
|
||||||
}
|
|
||||||
if(ImGui::BeginTabItem("Demo"))
|
|
||||||
{
|
|
||||||
DrawCVarTable(&restartNeeded, "Demo playback settings", CVARCAT_DEMO);
|
|
||||||
ImGui::EndTabItem();
|
|
||||||
}
|
|
||||||
if(ImGui::BeginTabItem("Performance"))
|
|
||||||
{
|
|
||||||
DrawCVarTable(&restartNeeded, "Performance settings", CVARCAT_PERFORMANCE);
|
|
||||||
ImGui::EndTabItem();
|
|
||||||
}
|
|
||||||
ImGui::EndTabBar();
|
|
||||||
|
|
||||||
DrawVideoRestart(restartNeeded);
|
DrawVideoRestart(restartNeeded);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue