# HG changeset patch # User Teemu Piippo # Date 1646481312 -7200 # Node ID f6eab2bd46c2edb7f2c08e37460c5c0fa047ea22 # Parent 8305e2f968fb045eb022843ea55280d51460edb6 fixed the grid not being black on startup if settings has bright background color diff -r 8305e2f968fb -r f6eab2bd46c2 src/ui/canvas.cpp --- a/src/ui/canvas.cpp Sat Mar 05 13:38:22 2022 +0200 +++ b/src/ui/canvas.cpp Sat Mar 05 13:55:12 2022 +0200 @@ -107,17 +107,11 @@ connect(this, &PartRenderer::viewMatrixChanged, program, &AbstractBasicShaderProgram::setViewMatrix); } - connect(this, &PartRenderer::renderPreferencesChanged, [&]() - { - if (this->gridProgram.has_value()) - { - const bool isDark = luma(this->renderPreferences.backgroundColor) < 0.25; - this->gridProgram->setGridColor(isDark ? Qt::white : Qt::black); - } - }); + connect(this, &PartRenderer::renderPreferencesChanged, this, &Canvas::updateCanvasRenderPreferences); PartRenderer::initializeGL(); // Set up XZ grid matrix this->setGridMatrix({{1, 0, 0, 0}, {0, 0, 1, 0}, {0, 1, 0, 0}, {0, 0, 0, 1}}); + this->updateCanvasRenderPreferences(); } void Canvas::paintGL() @@ -344,6 +338,15 @@ return points2d; } +void Canvas::updateCanvasRenderPreferences() +{ + if (this->gridProgram.has_value()) + { + const bool isDark = luma(this->renderPreferences.backgroundColor) < 0.25; + this->gridProgram->setGridColor(isDark ? Qt::white : Qt::black); + } +} + /** * @brief Clears the selection. */ diff -r 8305e2f968fb -r f6eab2bd46c2 src/ui/canvas.h --- a/src/ui/canvas.h Sat Mar 05 13:38:22 2022 +0200 +++ b/src/ui/canvas.h Sat Mar 05 13:55:12 2022 +0200 @@ -44,6 +44,7 @@ glm::vec3 cameraVector() const; bool isGridPerpendicularToScreen(float threshold) const; QVector convertWorldPointsToScreenPoints(const std::vector& worldPoints); + Q_SLOT void updateCanvasRenderPreferences(); std::optional gridProgram; std::optional axesProgram; std::optional vertexProgram;