diff options
author | Janne Kangas <janne.kangas@qt.io> | 2019-07-26 14:49:10 +0300 |
---|---|---|
committer | Janne Kangas <janne.kangas@qt.io> | 2019-08-15 13:17:46 +0300 |
commit | 05aaa52fdb679ad13058bfa4bb0bffc9c11f8d81 (patch) | |
tree | 6c3d637fff3ce4c3a04c004e8b8583e7a69f11e6 /src | |
parent | 0b51ec6f7d98bd2bfbd115b91dd4fbd615e4d29e (diff) |
Do not build glyphs needlessly
Change-Id: I863bcc161438422fd05d0df33de91b2e7ca4fa83
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/runtimerender/Qt3DSDistanceFieldRenderer.cpp | 11 | ||||
-rw-r--r-- | src/runtimerender/Qt3DSDistanceFieldRenderer.h | 2 | ||||
-rw-r--r-- | src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h | 2 |
3 files changed, 5 insertions, 10 deletions
diff --git a/src/runtimerender/Qt3DSDistanceFieldRenderer.cpp b/src/runtimerender/Qt3DSDistanceFieldRenderer.cpp index 5c17fb1..602ca60 100644 --- a/src/runtimerender/Qt3DSDistanceFieldRenderer.cpp +++ b/src/runtimerender/Qt3DSDistanceFieldRenderer.cpp @@ -992,16 +992,11 @@ ITextRendererCore &ITextRendererCore::createDistanceFieldRenderer(NVFoundationBa return *QT3DS_NEW(fnd.getAllocator(), Q3DSDistanceFieldRenderer)(fnd); } -bool Q3DSDistanceFieldRenderer::checkAndBuildGlyphs(SText &text) +void Q3DSDistanceFieldRenderer::checkAndAddRenderedTexts(SText &text) { auto hashVal = getTextHashValue(text); - m_renderedTexts += hashVal; - if (!m_glyphCache.contains(hashVal)) { - m_glyphCache[hashVal] = buildGlyphsPerTexture(text); - return true; - } - - return false; + if (m_glyphCache.contains(hashVal)) + m_renderedTexts += hashVal; } // Unused methods: diff --git a/src/runtimerender/Qt3DSDistanceFieldRenderer.h b/src/runtimerender/Qt3DSDistanceFieldRenderer.h index a64fddd..5399a0e 100644 --- a/src/runtimerender/Qt3DSDistanceFieldRenderer.h +++ b/src/runtimerender/Qt3DSDistanceFieldRenderer.h @@ -105,7 +105,7 @@ public: void renderTextDepth(SText &text, const QT3DSMat44 &mvp); void setContext(IQt3DSRenderContext &context); - bool checkAndBuildGlyphs(SText &text); + void checkAndAddRenderedTexts(SText &text); QT3DS_IMPLEMENT_REF_COUNT_ADDREF_RELEASE_OVERRIDE(m_foundation.getAllocator()) diff --git a/src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h b/src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h index a369f7a..6924f9e 100644 --- a/src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h +++ b/src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h @@ -413,7 +413,7 @@ namespace render { m_RenderableFlags.SetCustom(false); m_RenderableFlags.SetText(false); m_RenderableFlags.setDistanceField(true); - m_distanceFieldText.checkAndBuildGlyphs(text); + m_distanceFieldText.checkAndAddRenderedTexts(text); } void Render(const QT3DSVec2 &inCameraVec); |