Categories of Settings to make things more clear.

This commit is contained in:
brunoherbelin
2020-06-29 20:26:36 +02:00
parent 3b9395b590
commit 1309a479b5
7 changed files with 130 additions and 89 deletions

View File

@@ -51,7 +51,7 @@ void FrameBuffer::init()
glBindFramebuffer(GL_FRAMEBUFFER, framebufferid_); glBindFramebuffer(GL_FRAMEBUFFER, framebufferid_);
// take settings into account: no multisampling for level 0 // take settings into account: no multisampling for level 0
use_multi_sampling_ &= Settings::application.render_multisampling > 0; use_multi_sampling_ &= Settings::application.render.multisampling > 0;
if (use_multi_sampling_){ if (use_multi_sampling_){
@@ -60,7 +60,7 @@ void FrameBuffer::init()
glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, intermediate_textureid_); glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, intermediate_textureid_);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, Settings::application.render_multisampling, glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, Settings::application.render.multisampling,
use_alpha_ ? GL_RGBA : GL_RGB, attrib_.viewport.x, attrib_.viewport.y, GL_TRUE); use_alpha_ ? GL_RGBA : GL_RGB, attrib_.viewport.x, attrib_.viewport.y, GL_TRUE);
glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, 0); glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, 0);

View File

@@ -286,7 +286,7 @@ void ImGuiVisitor::visit (MediaSource& s)
else { else {
ImGui::Text("Video File"); ImGui::Text("Video File");
if ( ImGui::Button(IMGUI_TITLE_MEDIAPLAYER, ImVec2(IMGUI_RIGHT_ALIGN, 0)) ) if ( ImGui::Button(IMGUI_TITLE_MEDIAPLAYER, ImVec2(IMGUI_RIGHT_ALIGN, 0)) )
Settings::application.media_player = true; Settings::application.widget.media_player = true;
} }
ImGuiToolkit::ButtonOpenUrl( SystemToolkit::path_filename(s.path()).c_str(), ImVec2(IMGUI_RIGHT_ALIGN, 0) ); ImGuiToolkit::ButtonOpenUrl( SystemToolkit::path_filename(s.path()).c_str(), ImVec2(IMGUI_RIGHT_ALIGN, 0) );
} }
@@ -306,7 +306,7 @@ void ImGuiVisitor::visit (RenderSource& s)
{ {
ImGui::Text("Rendering Output"); ImGui::Text("Rendering Output");
if ( ImGui::Button(IMGUI_TITLE_PREVIEW, ImVec2(IMGUI_RIGHT_ALIGN, 0)) ) if ( ImGui::Button(IMGUI_TITLE_PREVIEW, ImVec2(IMGUI_RIGHT_ALIGN, 0)) )
Settings::application.preview = true; Settings::application.widget.preview = true;
} }
void ImGuiVisitor::visit (CloneSource& s) void ImGuiVisitor::visit (CloneSource& s)

View File

@@ -135,7 +135,7 @@ bool Rendering::init()
// //
// OpenGL Multisampling main window // OpenGL Multisampling main window
// //
glfwWindowHint(GLFW_SAMPLES, Settings::application.render_multisampling); glfwWindowHint(GLFW_SAMPLES, Settings::application.render.multisampling);
main_.init(0); main_.init(0);
// set application icon // set application icon
main_.setIcon("images/vimix_256x256.png"); main_.setIcon("images/vimix_256x256.png");
@@ -594,7 +594,7 @@ bool RenderingWindow::init(int id, GLFWwindow *share)
// if not main window // if not main window
if ( master_ != NULL ) { if ( master_ != NULL ) {
// Disable vsync // Disable vsync
glfwSwapInterval(Settings::application.render_vsync); glfwSwapInterval(Settings::application.render.vsync);
// no need for multisampling // no need for multisampling
glDisable(GL_MULTISAMPLE); glDisable(GL_MULTISAMPLE);
// clear to black // clear to black
@@ -606,7 +606,7 @@ bool RenderingWindow::init(int id, GLFWwindow *share)
// Enable vsync on main window // Enable vsync on main window
glfwSwapInterval(0); glfwSwapInterval(0);
// enable Antialiasing multisampling // enable Antialiasing multisampling
if (Settings::application.render_multisampling > 0) { if (Settings::application.render.multisampling > 0) {
glEnable(GL_MULTISAMPLE); glEnable(GL_MULTISAMPLE);
glHint(GL_MULTISAMPLE_FILTER_HINT_NV, GL_NICEST); glHint(GL_MULTISAMPLE_FILTER_HINT_NV, GL_NICEST);
} }
@@ -665,7 +665,7 @@ void RenderingWindow::draw(FrameBuffer *fb)
glClear(GL_COLOR_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT);
// blit framebuffer // blit framebuffer
if (Settings::application.render_blit) { if (Settings::application.render.blit) {
if ( textureid_ != fb->texture()) { if ( textureid_ != fb->texture()) {

View File

@@ -51,28 +51,37 @@ void Settings::Save()
pRoot->InsertEndChild(windowsNode); pRoot->InsertEndChild(windowsNode);
} }
// General application preferences
XMLElement *applicationNode = xmlDoc.NewElement( "Application" ); XMLElement *applicationNode = xmlDoc.NewElement( "Application" );
applicationNode->SetAttribute("scale", application.scale); applicationNode->SetAttribute("scale", application.scale);
applicationNode->SetAttribute("accent_color", application.accent_color); applicationNode->SetAttribute("accent_color", application.accent_color);
applicationNode->SetAttribute("preview", application.preview);
applicationNode->SetAttribute("media_player", application.media_player);
applicationNode->SetAttribute("shader_editor", application.shader_editor);
applicationNode->SetAttribute("pannel_stick", application.pannel_stick); applicationNode->SetAttribute("pannel_stick", application.pannel_stick);
applicationNode->SetAttribute("stats", application.stats);
applicationNode->SetAttribute("stats_corner", application.stats_corner);
applicationNode->SetAttribute("logs", application.logs);
applicationNode->SetAttribute("toolbox", application.toolbox);
applicationNode->SetAttribute("framebuffer_ar", application.framebuffer_ar);
applicationNode->SetAttribute("framebuffer_h", application.framebuffer_h);
applicationNode->SetAttribute("render_vsync", application.render_vsync);
applicationNode->SetAttribute("render_multisampling", application.render_multisampling);
applicationNode->SetAttribute("render_blit", application.render_blit);
pRoot->InsertEndChild(applicationNode); pRoot->InsertEndChild(applicationNode);
// Widgets
XMLElement *widgetsNode = xmlDoc.NewElement( "Widgets" );
widgetsNode->SetAttribute("preview", application.widget.preview);
widgetsNode->SetAttribute("media_player", application.widget.media_player);
widgetsNode->SetAttribute("shader_editor", application.widget.shader_editor);
widgetsNode->SetAttribute("stats", application.widget.stats);
widgetsNode->SetAttribute("stats_corner", application.widget.stats_corner);
widgetsNode->SetAttribute("logs", application.widget.logs);
widgetsNode->SetAttribute("toolbox", application.widget.toolbox);
pRoot->InsertEndChild(widgetsNode);
// Render
XMLElement *RenderNode = xmlDoc.NewElement( "Render" );
RenderNode->SetAttribute("vsync", application.render.vsync);
RenderNode->SetAttribute("multisampling", application.render.multisampling);
RenderNode->SetAttribute("blit", application.render.blit);
pRoot->InsertEndChild(RenderNode);
// bloc views // bloc views
{ {
XMLElement *viewsNode = xmlDoc.NewElement( "Views" ); XMLElement *viewsNode = xmlDoc.NewElement( "Views" );
viewsNode->SetAttribute("current", application.current_view); viewsNode->SetAttribute("current", application.current_view);
viewsNode->SetAttribute("render_view_ar", application.render_view_ar);
viewsNode->SetAttribute("render_view_h", application.render_view_h);
map<int, Settings::ViewConfig>::iterator iter; map<int, Settings::ViewConfig>::iterator iter;
for (iter=application.views.begin(); iter != application.views.end(); iter++) for (iter=application.views.begin(); iter != application.views.end(); iter++)
@@ -157,23 +166,32 @@ void Settings::Load()
// different root name // different root name
return; return;
XMLElement * pElement = pRoot->FirstChildElement("Application"); XMLElement * applicationNode = pRoot->FirstChildElement("Application");
if (pElement == nullptr) return; if (applicationNode != nullptr) {
pElement->QueryFloatAttribute("scale", &application.scale); applicationNode->QueryFloatAttribute("scale", &application.scale);
pElement->QueryIntAttribute("accent_color", &application.accent_color); applicationNode->QueryIntAttribute("accent_color", &application.accent_color);
pElement->QueryBoolAttribute("preview", &application.preview); applicationNode->QueryBoolAttribute("pannel_stick", &application.pannel_stick);
pElement->QueryBoolAttribute("media_player", &application.media_player); }
pElement->QueryBoolAttribute("shader_editor", &application.shader_editor);
pElement->QueryBoolAttribute("pannel_stick", &application.pannel_stick); // Widgets
pElement->QueryBoolAttribute("stats", &application.stats); XMLElement * widgetsNode = pRoot->FirstChildElement("Widgets");
pElement->QueryBoolAttribute("logs", &application.logs); if (widgetsNode != nullptr) {
pElement->QueryBoolAttribute("toolbox", &application.toolbox); widgetsNode->QueryBoolAttribute("preview", &application.widget.preview);
pElement->QueryIntAttribute("stats_corner", &application.stats_corner); widgetsNode->QueryBoolAttribute("media_player", &application.widget.media_player);
pElement->QueryIntAttribute("framebuffer_ar", &application.framebuffer_ar); widgetsNode->QueryBoolAttribute("shader_editor", &application.widget.shader_editor);
pElement->QueryIntAttribute("framebuffer_h", &application.framebuffer_h); widgetsNode->QueryBoolAttribute("stats", &application.widget.stats);
pElement->QueryIntAttribute("render_vsync", &application.render_vsync); widgetsNode->QueryIntAttribute("stats_corner", &application.widget.stats_corner);
pElement->QueryIntAttribute("render_multisampling", &application.render_multisampling); widgetsNode->QueryBoolAttribute("logs", &application.widget.logs);
pElement->QueryBoolAttribute("render_blit", &application.render_blit); widgetsNode->QueryBoolAttribute("toolbox", &application.widget.toolbox);
}
// Render
XMLElement * rendernode = pRoot->FirstChildElement("Render");
if (rendernode != nullptr) {
rendernode->QueryIntAttribute("vsync", &application.render.vsync);
rendernode->QueryIntAttribute("multisampling", &application.render.multisampling);
rendernode->QueryBoolAttribute("blit", &application.render.blit);
}
// bloc windows // bloc windows
{ {
@@ -206,6 +224,8 @@ void Settings::Load()
if (pElement) if (pElement)
{ {
pElement->QueryIntAttribute("current", &application.current_view); pElement->QueryIntAttribute("current", &application.current_view);
pElement->QueryIntAttribute("render_view_ar", &application.render_view_ar);
pElement->QueryIntAttribute("render_view_h", &application.render_view_h);
XMLElement* viewNode = pElement->FirstChildElement("View"); XMLElement* viewNode = pElement->FirstChildElement("View");
for( ; viewNode ; viewNode=viewNode->NextSiblingElement()) for( ; viewNode ; viewNode=viewNode->NextSiblingElement())

View File

@@ -11,6 +11,27 @@
namespace Settings { namespace Settings {
struct WidgetsConfig
{
bool stats;
int stats_corner;
bool logs;
bool preview;
bool media_player;
bool shader_editor;
bool toolbox;
WidgetsConfig() {
stats = false;
stats_corner = 1;
logs = false;
preview = false;
media_player = false;
shader_editor = false;
toolbox = false;
}
};
struct WindowConfig struct WindowConfig
{ {
std::string name; std::string name;
@@ -55,6 +76,19 @@ struct History
} }
}; };
struct RenderConfig
{
int vsync;
int multisampling;
bool blit;
RenderConfig() {
vsync = 1; // todo GUI selection
multisampling = 2; // todo GUI selection
blit = false;
}
};
struct Application struct Application
{ {
// Verification // Verification
@@ -63,23 +97,19 @@ struct Application
// Global settings Application interface // Global settings Application interface
float scale; float scale;
int accent_color; int accent_color;
bool stats;
int stats_corner;
bool logs;
bool preview;
bool media_player;
bool shader_editor;
bool pannel_stick; bool pannel_stick;
bool toolbox;
// Settings of widgets
WidgetsConfig widget;
// Settings of Views // Settings of Views
int current_view; int current_view;
int render_view_ar;
int render_view_h;
std::map<int, ViewConfig> views; std::map<int, ViewConfig> views;
int framebuffer_ar;
int framebuffer_h; // settings render
int render_vsync; RenderConfig render;
int render_multisampling;
bool render_blit;
// multiple windows handling // multiple windows handling
std::vector<WindowConfig> windows; std::vector<WindowConfig> windows;
@@ -91,21 +121,12 @@ struct Application
Application() : name(APP_NAME){ Application() : name(APP_NAME){
scale = 1.f; scale = 1.f;
accent_color = 0; accent_color = 0;
stats = false;
stats_corner = 1;
logs = false;
preview = false;
media_player = false;
shader_editor = false;
pannel_stick = false; pannel_stick = false;
toolbox = false;
current_view = 1; current_view = 1;
framebuffer_ar = 3; render_view_ar = 3;
framebuffer_h = 1; render_view_h = 1;
render_vsync = 1; // todo GUI selection
render_multisampling = 2; // todo GUI selection
render_blit = false;
std::vector<int> second (4,100);
windows = std::vector<WindowConfig>(3); windows = std::vector<WindowConfig>(3);
windows[0].name = APP_NAME APP_TITLE; windows[0].name = APP_NAME APP_TITLE;
windows[0].w = 1600; windows[0].w = 1600;

View File

@@ -235,19 +235,19 @@ void UserInterface::handleKeyboard()
} }
else if (ImGui::IsKeyPressed( GLFW_KEY_L )) { else if (ImGui::IsKeyPressed( GLFW_KEY_L )) {
// Logs // Logs
Settings::application.logs = !Settings::application.logs; Settings::application.widget.logs = !Settings::application.widget.logs;
} }
else if (ImGui::IsKeyPressed( GLFW_KEY_T )) { else if (ImGui::IsKeyPressed( GLFW_KEY_T )) {
// Logs // Logs
Settings::application.toolbox = !Settings::application.toolbox; Settings::application.widget.toolbox = !Settings::application.widget.toolbox;
} }
else if (ImGui::IsKeyPressed( GLFW_KEY_P )) { else if (ImGui::IsKeyPressed( GLFW_KEY_P )) {
// Logs // Logs
Settings::application.preview = !Settings::application.preview; Settings::application.widget.preview = !Settings::application.widget.preview;
} }
else if (ImGui::IsKeyPressed( GLFW_KEY_M )) { else if (ImGui::IsKeyPressed( GLFW_KEY_M )) {
// Logs // Logs
Settings::application.media_player = !Settings::application.media_player; Settings::application.widget.media_player = !Settings::application.widget.media_player;
} }
else if (ImGui::IsKeyPressed( GLFW_KEY_A )) { else if (ImGui::IsKeyPressed( GLFW_KEY_A )) {
// select all // select all
@@ -536,18 +536,18 @@ void UserInterface::Render()
Log::Render(); Log::Render();
// windows // windows
if (Settings::application.toolbox) if (Settings::application.widget.toolbox)
toolbox.Render(); toolbox.Render();
if (Settings::application.preview) if (Settings::application.widget.preview)
RenderPreview(); RenderPreview();
if (Settings::application.media_player) if (Settings::application.widget.media_player)
RenderMediaPlayer(); RenderMediaPlayer();
if (Settings::application.shader_editor) if (Settings::application.widget.shader_editor)
RenderShaderEditor(); RenderShaderEditor();
if (Settings::application.stats) if (Settings::application.widget.stats)
ImGuiToolkit::ShowStats(&Settings::application.stats, &Settings::application.stats_corner); ImGuiToolkit::ShowStats(&Settings::application.widget.stats, &Settings::application.widget.stats_corner);
if (Settings::application.logs) if (Settings::application.widget.logs)
Log::ShowLogWindow(&Settings::application.logs); Log::ShowLogWindow(&Settings::application.widget.logs);
// about // about
if (show_about) if (show_about)
@@ -582,9 +582,9 @@ void UserInterface::showMenuFile()
navigator.hidePannel(); navigator.hidePannel();
} }
ImGui::SetNextItemWidth( ImGui::GetContentRegionAvail().x ); ImGui::SetNextItemWidth( ImGui::GetContentRegionAvail().x );
ImGui::Combo("##AR", &Settings::application.framebuffer_ar, FrameBuffer::aspect_ratio_name, IM_ARRAYSIZE(FrameBuffer::aspect_ratio_name) ); ImGui::Combo("##AR", &Settings::application.render_view_ar, FrameBuffer::aspect_ratio_name, IM_ARRAYSIZE(FrameBuffer::aspect_ratio_name) );
ImGui::SetNextItemWidth( ImGui::GetContentRegionAvail().x ); ImGui::SetNextItemWidth( ImGui::GetContentRegionAvail().x );
ImGui::Combo("##HEIGHT", &Settings::application.framebuffer_h, FrameBuffer::resolution_name, IM_ARRAYSIZE(FrameBuffer::resolution_name) ); ImGui::Combo("##HEIGHT", &Settings::application.render_view_h, FrameBuffer::resolution_name, IM_ARRAYSIZE(FrameBuffer::resolution_name) );
ImGui::Separator(); ImGui::Separator();
@@ -672,7 +672,7 @@ void ToolBox::Render()
ImGui::SetNextWindowPos(ImVec2(40, 40), ImGuiCond_FirstUseEver); ImGui::SetNextWindowPos(ImVec2(40, 40), ImGuiCond_FirstUseEver);
ImGui::SetNextWindowSize(ImVec2(400, 300), ImGuiCond_FirstUseEver); ImGui::SetNextWindowSize(ImVec2(400, 300), ImGuiCond_FirstUseEver);
ImGui::SetNextWindowSizeConstraints(ImVec2(350, 300), ImVec2(FLT_MAX, FLT_MAX)); ImGui::SetNextWindowSizeConstraints(ImVec2(350, 300), ImVec2(FLT_MAX, FLT_MAX));
if ( !ImGui::Begin(IMGUI_TITLE_TOOLBOX, &Settings::application.toolbox, ImGuiWindowFlags_MenuBar) ) if ( !ImGui::Begin(IMGUI_TITLE_TOOLBOX, &Settings::application.widget.toolbox, ImGuiWindowFlags_MenuBar) )
{ {
ImGui::End(); ImGui::End();
return; return;
@@ -686,8 +686,8 @@ void ToolBox::Render()
if ( ImGui::MenuItem( ICON_FA_CAMERA_RETRO " Screenshot") ) if ( ImGui::MenuItem( ICON_FA_CAMERA_RETRO " Screenshot") )
UserInterface::manager().StartScreenshot(); UserInterface::manager().StartScreenshot();
ImGui::MenuItem("Blit", nullptr, &Settings::application.render_blit); ImGui::MenuItem("Blit", nullptr, &Settings::application.render.blit);
ImGui::MenuItem("Multisampling", nullptr, (Settings::application.render_multisampling > 0), false); ImGui::MenuItem("Multisampling", nullptr, (Settings::application.render.multisampling > 0), false);
ImGui::EndMenu(); ImGui::EndMenu();
} }
@@ -714,8 +714,8 @@ void ToolBox::Render()
const GLFWvidmode* mode = glfwGetVideoMode(Rendering::manager().outputWindow().monitor()); const GLFWvidmode* mode = glfwGetVideoMode(Rendering::manager().outputWindow().monitor());
refresh_rate = float(mode->refreshRate); refresh_rate = float(mode->refreshRate);
if (Settings::application.render_vsync > 0) if (Settings::application.render.vsync > 0)
refresh_rate /= Settings::application.render_vsync; refresh_rate /= Settings::application.render.vsync;
else else
refresh_rate = 0.f; refresh_rate = 0.f;
max_fps = refresh_rate + 5.f; max_fps = refresh_rate + 5.f;
@@ -787,7 +787,7 @@ void UserInterface::RenderPreview()
ImGui::SetNextWindowPos(ImVec2(1180, 20), ImGuiCond_FirstUseEver); ImGui::SetNextWindowPos(ImVec2(1180, 20), ImGuiCond_FirstUseEver);
ImGui::SetNextWindowSize(ImVec2(400, 260), ImGuiCond_FirstUseEver); ImGui::SetNextWindowSize(ImVec2(400, 260), ImGuiCond_FirstUseEver);
ImGui::SetNextWindowSizeConstraints(ImVec2(300, 200), ImVec2(FLT_MAX, FLT_MAX), CustomConstraints::AspectRatio, &ar); ImGui::SetNextWindowSizeConstraints(ImVec2(300, 200), ImVec2(FLT_MAX, FLT_MAX), CustomConstraints::AspectRatio, &ar);
ImGui::Begin(ICON_FA_LAPTOP " Preview", &Settings::application.preview, ImGuiWindowFlags_NoScrollbar); ImGui::Begin(ICON_FA_LAPTOP " Preview", &Settings::application.widget.preview, ImGuiWindowFlags_NoScrollbar);
float width = ImGui::GetContentRegionAvail().x; float width = ImGui::GetContentRegionAvail().x;
ImVec2 imagesize ( width, width / ar); ImVec2 imagesize ( width, width / ar);
@@ -829,7 +829,7 @@ void UserInterface::RenderMediaPlayer()
ImGui::SetNextWindowPos(ImVec2(1180, 400), ImGuiCond_FirstUseEver); ImGui::SetNextWindowPos(ImVec2(1180, 400), ImGuiCond_FirstUseEver);
ImGui::SetNextWindowSize(ImVec2(400, 400), ImGuiCond_FirstUseEver); ImGui::SetNextWindowSize(ImVec2(400, 400), ImGuiCond_FirstUseEver);
ImGui::SetNextWindowSizeConstraints(ImVec2(350, 300), ImVec2(FLT_MAX, FLT_MAX)); ImGui::SetNextWindowSizeConstraints(ImVec2(350, 300), ImVec2(FLT_MAX, FLT_MAX));
if ( !ImGui::Begin(IMGUI_TITLE_MEDIAPLAYER, &Settings::application.media_player, ImGuiWindowFlags_NoScrollbar ) || !show) if ( !ImGui::Begin(IMGUI_TITLE_MEDIAPLAYER, &Settings::application.widget.media_player, ImGuiWindowFlags_NoScrollbar ) || !show)
{ {
ImGui::End(); ImGui::End();
return; return;
@@ -986,7 +986,7 @@ void UserInterface::RenderShaderEditor()
{ {
static bool show_statusbar = true; static bool show_statusbar = true;
ImGui::Begin(IMGUI_TITLE_SHADEREDITOR, &Settings::application.shader_editor, ImGuiWindowFlags_HorizontalScrollbar | ImGuiWindowFlags_MenuBar); ImGui::Begin(IMGUI_TITLE_SHADEREDITOR, &Settings::application.widget.shader_editor, ImGuiWindowFlags_HorizontalScrollbar | ImGuiWindowFlags_MenuBar);
ImGui::SetWindowSize(ImVec2(800, 600), ImGuiCond_FirstUseEver); ImGui::SetWindowSize(ImVec2(800, 600), ImGuiCond_FirstUseEver);
if (ImGui::BeginMenuBar()) if (ImGui::BeginMenuBar())
{ {
@@ -1495,14 +1495,14 @@ void Navigator::RenderMainPannel()
ImGui::Text(" "); ImGui::Text(" ");
ImGui::Text("Windows"); ImGui::Text("Windows");
ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_PREVIEW, &Settings::application.preview, CTRL_MOD "P"); ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_PREVIEW, &Settings::application.widget.preview, CTRL_MOD "P");
ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_MEDIAPLAYER, &Settings::application.media_player, CTRL_MOD "M"); ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_MEDIAPLAYER, &Settings::application.widget.media_player, CTRL_MOD "M");
#ifndef NDEBUG #ifndef NDEBUG
ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_SHADEREDITOR, &Settings::application.shader_editor); ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_SHADEREDITOR, &Settings::application.shader_editor);
ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_TOOLBOX, &Settings::application.toolbox, CTRL_MOD "T"); ImGuiToolkit::ButtonSwitch( IMGUI_TITLE_TOOLBOX, &Settings::application.toolbox, CTRL_MOD "T");
#endif #endif
ImGuiToolkit::ButtonSwitch( ICON_FA_LIST " Logs", &Settings::application.logs, CTRL_MOD "L"); ImGuiToolkit::ButtonSwitch( ICON_FA_LIST " Logs", &Settings::application.widget.logs, CTRL_MOD "L");
ImGuiToolkit::ButtonSwitch( ICON_FA_TACHOMETER_ALT " Metrics", &Settings::application.stats); ImGuiToolkit::ButtonSwitch( ICON_FA_TACHOMETER_ALT " Metrics", &Settings::application.widget.stats);
ImGui::Text(" "); ImGui::Text(" ");
ImGui::Text("Appearance"); ImGui::Text("Appearance");

View File

@@ -306,7 +306,7 @@ RenderView::~RenderView()
void RenderView::setResolution(glm::vec3 resolution) void RenderView::setResolution(glm::vec3 resolution)
{ {
if (resolution.x < 128.f || resolution.y < 128.f) if (resolution.x < 128.f || resolution.y < 128.f)
resolution = FrameBuffer::getResolutionFromParameters(Settings::application.framebuffer_ar, Settings::application.framebuffer_h); resolution = FrameBuffer::getResolutionFromParameters(Settings::application.render_view_ar, Settings::application.render_view_h);
if (frame_buffer_) if (frame_buffer_)
delete frame_buffer_; delete frame_buffer_;