From 202844c1b571f3e082dba80461a370a07f3df235 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Tue, 1 Oct 2024 19:49:08 -0400 Subject: [PATCH] Don't apply invalid colors in VBORenderer. Fixes #5216 (#5347) --- src/glview/VBORenderer.cc | 7 ++++++- tests/CMakeLists.txt | 1 + tests/data/scad/3D/issues/issue5216.scad | 1 + .../previewtest/issue5216-expected.png | Bin 0 -> 8356 bytes .../issue5216-expected.png | Bin 0 -> 8356 bytes .../regression/rendertest/issue5216-expected.png | Bin 0 -> 8356 bytes .../throwntogethertest/issue5216-expected.png | Bin 0 -> 8359 bytes 7 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 tests/data/scad/3D/issues/issue5216.scad create mode 100644 tests/regression/previewtest/issue5216-expected.png create mode 100644 tests/regression/rendermanifoldtest-different/issue5216-expected.png create mode 100644 tests/regression/rendertest/issue5216-expected.png create mode 100644 tests/regression/throwntogethertest/issue5216-expected.png diff --git a/src/glview/VBORenderer.cc b/src/glview/VBORenderer.cc index 7e29f3e1887..83ffa382c72 100644 --- a/src/glview/VBORenderer.cc +++ b/src/glview/VBORenderer.cc @@ -275,7 +275,12 @@ void VBORenderer::create_surface(const PolySet& ps, VertexArray& vertex_array, for (int i = 0, n = ps.indices.size(); i < n; i++) { const auto& poly = ps.indices[i]; const auto color_index = has_colors && i < ps.color_indices.size() ? ps.color_indices[i] : -1; - const auto& color = !force_default_color && color_index >= 0 && color_index < ps.colors.size() ? ps.colors[color_index] : default_color; + const auto& color = + !force_default_color && + color_index >= 0 && + color_index < ps.colors.size() && + ps.colors[color_index].isValid() ? + ps.colors[color_index] : default_color; if (poly.size() == 3) { Vector3d p0 = uniqueMultiply(vert_mult_map, ps.vertices[poly.at(0)], m); Vector3d p1 = uniqueMultiply(vert_mult_map, ps.vertices[poly.at(1)], m); diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 4041a09a1d1..4cd09a575ec 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -857,6 +857,7 @@ list(APPEND SCADFILES_WITH_COLOR ${EXAMPLES_DIR}/Basics/rotate_extrude.scad ${EXAMPLES_DIR}/Old/example017.scad + ${TEST_SCAD_DIR}/3D/issues/issue5216.scad ${TEST_SCAD_DIR}/3D/issues/issue5217.scad #${TEST_SCAD_DIR}/bugs/issue1000.scad diff --git a/tests/data/scad/3D/issues/issue5216.scad b/tests/data/scad/3D/issues/issue5216.scad new file mode 100644 index 00000000000..5f3b062430f --- /dev/null +++ b/tests/data/scad/3D/issues/issue5216.scad @@ -0,0 +1 @@ +color() cube(); diff --git a/tests/regression/previewtest/issue5216-expected.png b/tests/regression/previewtest/issue5216-expected.png new file mode 100644 index 0000000000000000000000000000000000000000..9f12cf8f6b07c0aee78d08a820d4e3c0ab67630f GIT binary patch literal 8356 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 Hlo$42ejF+M literal 0 HcmV?d00001