summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJanne Kangas <janne.kangas@qt.io>2019-07-26 14:49:10 +0300
committerJanne Kangas <janne.kangas@qt.io>2019-08-15 13:17:46 +0300
commit05aaa52fdb679ad13058bfa4bb0bffc9c11f8d81 (patch)
tree6c3d637fff3ce4c3a04c004e8b8583e7a69f11e6 /src
parent0b51ec6f7d98bd2bfbd115b91dd4fbd615e4d29e (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.cpp11
-rw-r--r--src/runtimerender/Qt3DSDistanceFieldRenderer.h2
-rw-r--r--src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h2
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);