# HG changeset patch # User Teemu Piippo # Date 1655311622 -10800 # Node ID a9bf6bab5ea27eacb31286d132cae07a977db73d # Parent a1f3f7d9078bf5bab3bbff3530b8a3a6f1b7ed4b Add wireframe button diff -r a1f3f7d9078b -r a9bf6bab5ea2 src/gl/common.h --- a/src/gl/common.h Wed Jun 15 13:05:53 2022 +0300 +++ b/src/gl/common.h Wed Jun 15 19:47:02 2022 +0300 @@ -93,8 +93,6 @@ { // Normal rendering style Normal, - // Render all polygons as lines - Wireframe, // Use green colour for front faces and red colour for back faces BfcRedGreen, // Use a different colour for each object @@ -133,6 +131,7 @@ GLfloat lineThickness = 2.0f; bool lineAntiAliasing = true; bool drawAxes = true; + bool wireframe = false; }; } diff -r a1f3f7d9078b -r a9bf6bab5ea2 src/gl/partrenderer.cpp --- a/src/gl/partrenderer.cpp Wed Jun 15 13:05:53 2022 +0300 +++ b/src/gl/partrenderer.cpp Wed Jun 15 19:47:02 2022 +0300 @@ -189,6 +189,9 @@ this->renderVao(gl::ArrayClass::Quads); this->renderVao(gl::ArrayClass::Lines); }; + if (this->renderPreferences.wireframe and this->renderPreferences.style != gl::RenderStyle::PickScene) { + glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); + } switch (this->renderPreferences.style) { case gl::RenderStyle::Normal: @@ -223,13 +226,9 @@ this->setFragmentStyle(gl::FragmentStyle::Black); renderAllArrays(); break; - case gl::RenderStyle::Wireframe: - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - this->setFragmentStyle(gl::FragmentStyle::Normal); - renderAllArrays(); - break; } glDisable(GL_POLYGON_OFFSET_FILL); + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); } diff -r a1f3f7d9078b -r a9bf6bab5ea2 src/main.cpp --- a/src/main.cpp Wed Jun 15 13:05:53 2022 +0300 +++ b/src/main.cpp Wed Jun 15 19:47:02 2022 +0300 @@ -252,6 +252,7 @@ action->setChecked(renderPreferences->style == data.payload); } ui->actionDrawAxes->setChecked(renderPreferences->drawAxes); + ui->actionWireframe->setChecked(renderPreferences->wireframe); }; static gl::RenderPreferences loadRenderPreferences() @@ -264,6 +265,7 @@ .lineThickness = setting(), .lineAntiAliasing = setting(), .drawAxes = setting(), + .wireframe = setting(), }; } @@ -342,6 +344,7 @@ setSetting(recentlyOpenedFiles); setSetting(renderPreferences.style); setSetting(renderPreferences.drawAxes); + setSetting(renderPreferences.wireframe); libraries.storeToSettings(); }; const auto updateRecentlyOpenedDocumentsMenu = [&]{ @@ -562,6 +565,11 @@ saveSettings(); updateRenderPreferences(&ui, &renderPreferences, &documents); }); + QObject::connect(ui.actionWireframe, &QAction::triggered, [&](bool enabled){ + renderPreferences.wireframe = enabled; + saveSettings(); + updateRenderPreferences(&ui, &renderPreferences, &documents); + }); for (auto data : ::renderStyleButtons) { QAction* action = data.memberInstance(&ui); QObject::connect(action, &QAction::triggered, [&, data]{ diff -r a1f3f7d9078b -r a9bf6bab5ea2 src/mainwindow.ui --- a/src/mainwindow.ui Wed Jun 15 13:05:53 2022 +0300 +++ b/src/mainwindow.ui Wed Jun 15 19:47:02 2022 +0300 @@ -6,7 +6,7 @@ 0 0 - 800 + 729 600 @@ -38,7 +38,7 @@ 0 0 - 800 + 729 29 @@ -70,6 +70,7 @@ + @@ -125,6 +126,7 @@ + @@ -401,6 +403,18 @@ About Qt + + + true + + + + :/icons/renderstyle-wireframe.png:/icons/renderstyle-wireframe.png + + + Wireframe + + diff -r a1f3f7d9078b -r a9bf6bab5ea2 src/settings.h --- a/src/settings.h Wed Jun 15 13:05:53 2022 +0300 +++ b/src/settings.h Wed Jun 15 19:47:02 2022 +0300 @@ -37,7 +37,7 @@ SETTING(LineThickness, 2.0f) SETTING(LineAntiAliasing, true) SETTING(RenderStyle, gl::RenderStyle::Normal) -SETTING(DrawWireframe, false) +SETTING(Wireframe, false) SETTING(DrawAxes, true) SETTING(MainWindowGeometry, QByteArray{}) SETTING(MainSplitterState, QByteArray{})