From 00cf6e39efd0a39d09af2fb573063afaec81c78c Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sat, 30 Nov 2024 17:34:07 +0300 Subject: [PATCH 1/2] fix projected text frustum culling --- src/graphics/render/TextsRenderer.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/graphics/render/TextsRenderer.cpp b/src/graphics/render/TextsRenderer.cpp index ea9a69e4..fa24b61b 100644 --- a/src/graphics/render/TextsRenderer.cpp +++ b/src/graphics/render/TextsRenderer.cpp @@ -65,12 +65,7 @@ void TextsRenderer::renderNote( xvec *= 1.0f + scale; yvec *= 1.0f + scale; } - if (preset.displayMode != NoteDisplayMode::PROJECTED) { - if (!frustum.isBoxVisible(pos - xvec * (width * 0.5f), - pos + xvec * (width * 0.5f))) { - return; - } - } else { + if (preset.displayMode == NoteDisplayMode::PROJECTED) { float scale = 1.0f; if (glm::abs(preset.perspective) > 0.0001f) { float scale2 = scale / @@ -99,6 +94,9 @@ void TextsRenderer::renderNote( pos = screenPos / screenPos.w; } + } else if (!frustum.isBoxVisible(pos - xvec * (width * 0.5f * preset.scale), + pos + xvec * (width * 0.5f * preset.scale))) { + return; } auto color = preset.color; batch.setColor(glm::vec4(color.r, color.g, color.b, color.a * opacity)); From 3e949bd4994f1f326b83e7c64536120305995fe0 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sat, 30 Nov 2024 22:14:37 +0300 Subject: [PATCH 2/2] fix fatal error on invalid base64.decode input string --- src/util/stringutil.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util/stringutil.cpp b/src/util/stringutil.cpp index 588da4a4..ac80d134 100644 --- a/src/util/stringutil.cpp +++ b/src/util/stringutil.cpp @@ -349,7 +349,7 @@ std::string util::mangleid(uint64_t value) { util::Buffer util::base64_decode(const char* str, size_t size) { util::Buffer bytes((size / 4) * 3); ubyte* dst = bytes.data(); - for (size_t i = 0; i < size;) { + for (size_t i = 0; i < (size / 4) * 4;) { ubyte a = base64_decode_char(ubyte(str[i++])); ubyte b = base64_decode_char(ubyte(str[i++])); ubyte c = base64_decode_char(ubyte(str[i++]));