summaryrefslogtreecommitdiffstats
path: root/src/Runtime/ogl-runtime/src/runtimerender/Qt3DSDistanceFieldRenderer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Runtime/ogl-runtime/src/runtimerender/Qt3DSDistanceFieldRenderer.h')
m---------src/Runtime/ogl-runtime0
-rw-r--r--src/Runtime/ogl-runtime/src/runtimerender/Qt3DSDistanceFieldRenderer.h171
2 files changed, 0 insertions, 171 deletions
diff --git a/src/Runtime/ogl-runtime b/src/Runtime/ogl-runtime
new file mode 160000
+Subproject 2025912174c4cf99270b7439ec3b021e1d089ae
diff --git a/src/Runtime/ogl-runtime/src/runtimerender/Qt3DSDistanceFieldRenderer.h b/src/Runtime/ogl-runtime/src/runtimerender/Qt3DSDistanceFieldRenderer.h
deleted file mode 100644
index 3af19a98..00000000
--- a/src/Runtime/ogl-runtime/src/runtimerender/Qt3DSDistanceFieldRenderer.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QT3DSDISTANCEFIELDRENDERER_H
-#define QT3DSDISTANCEFIELDRENDERER_H
-
-#include "Qt3DSFontDatabase_p.h"
-
-#if QT_VERSION >= QT_VERSION_CHECK(5,12,2)
-
-#include "Qt3DSTextRenderer.h"
-#include "Qt3DSRenderText.h"
-#include "render/Qt3DSRenderShaderProgram.h"
-
-#include "Qt3DSDistanceFieldGlyphCacheManager_p.h"
-#include "Qt3DSDistanceFieldGlyphCache_p.h"
-
-namespace qt3ds {
-namespace render {
-
-struct GlyphInfo {
- QVector<float> vertexes;
- QVector<quint32> glyphIndexes;
- Q3DSDistanceFieldGlyphCache *cache;
- float fontScale;
- float shadowOffsetX;
- float shadowOffsetY;
- NVBounds3 bounds;
-};
-
-struct Q3DSDistanceFieldShader {
- NVRenderShaderProgram *program = nullptr;
- NVRenderCachedShaderProperty<QT3DSMat44> mvp;
- NVRenderCachedShaderProperty<QT3DSI32> textureWidth;
- NVRenderCachedShaderProperty<QT3DSI32> textureHeight;
- NVRenderCachedShaderProperty<QT3DSF32> fontScale;
- NVRenderCachedShaderProperty<NVRenderTexture2D *> texture;
- NVRenderCachedShaderProperty<QT3DSVec4> color;
-};
-
-struct Q3DSDistanceFieldDropShadowShader {
- NVRenderShaderProgram *program = nullptr;
- NVRenderCachedShaderProperty<QT3DSMat44> mvp;
- NVRenderCachedShaderProperty<QT3DSI32> textureWidth;
- NVRenderCachedShaderProperty<QT3DSI32> textureHeight;
- NVRenderCachedShaderProperty<QT3DSF32> fontScale;
- NVRenderCachedShaderProperty<QT3DSVec2> shadowOffset;
- NVRenderCachedShaderProperty<NVRenderTexture2D *> texture;
- NVRenderCachedShaderProperty<QT3DSVec4> color;
- NVRenderCachedShaderProperty<QT3DSVec4> shadowColor;
-};
-
-struct Q3DSDistanceFieldMesh
-{
- NVRenderAttribLayout *attribLayout = nullptr;
- NVRenderVertexBuffer *vertexBuffer = nullptr;
- NVRenderIndexBuffer *indexBuffer = nullptr;
- NVRenderInputAssembler *inputAssembler = nullptr;
-};
-
-class Q3DSDistanceFieldRenderer : public ITextRenderer
-{
-public:
- Q3DSDistanceFieldRenderer(NVFoundationBase &foundation);
- ~Q3DSDistanceFieldRenderer() override;
- QHash<Q3DSDistanceFieldGlyphCache::TextureInfo *, GlyphInfo> buildGlyphsPerTexture(
- const SText &textInfo);
- void buildShaders();
- Q3DSDistanceFieldMesh buildMesh(const GlyphInfo &glyphInfo, bool shadow);
- void renderMesh(NVRenderInputAssembler *inputAssembler, NVRenderTexture2D *texture,
- const QT3DSMat44 &mvp, QT3DSI32 textureWidth, QT3DSI32 textureHeight,
- QT3DSF32 fontScale, QT3DSVec4 color);
- void renderMeshWithDropShadow(NVRenderInputAssembler *inputAssembler,
- NVRenderTexture2D *texture, const QT3DSMat44 &mvp,
- QT3DSI32 textureWidth, QT3DSI32 textureHeight,
- QT3DSF32 fontScale, QT3DSVec2 shadowOffset,
- QT3DSVec4 color, QT3DSVec4 shadowColor);
- void renderText(SText &text, const QT3DSMat44 &mvp);
- void renderTextDepth(SText &text, const QT3DSMat44 &mvp);
- void setContext(IQt3DSRenderContext &context);
-
- bool checkAndBuildGlyphs(SText &text);
-
- QT3DS_IMPLEMENT_REF_COUNT_ADDREF_RELEASE_OVERRIDE(m_foundation.getAllocator())
-
- void AddSystemFontDirectory(const char8_t *dir) override;
- void AddProjectFontDirectory(const char8_t *dir) override;
- void ClearProjectFontDirectories() override;
- ITextRenderer &GetTextRenderer(NVRenderContext &) override;
- void EndFrame() override;
-
- // Unused methods:
- void PreloadFonts() override;
- void BeginPreloadFonts(IThreadPool &, IPerfTimer &) override;
- void EndPreloadFonts() override;
- void ReloadFonts() override;
-
- NVConstDataRef<SRendererFontEntry> GetProjectFontList() override;
-
- Option<CRegisteredString> GetFontNameForFont(CRegisteredString) override;
- Option<CRegisteredString> GetFontNameForFont(const char8_t *) override;
-
- STextDimensions MeasureText(const STextRenderInfo &, QT3DSF32,
- const char8_t *) override;
-
- STextTextureDetails RenderText(const STextRenderInfo &,
- NVRenderTexture2D &) override;
-
- STextTextureDetails RenderText(const STextRenderInfo &, NVRenderPathFontItem &,
- NVRenderPathFontSpecification &) override;
-
- SRenderTextureAtlasDetails RenderText(const STextRenderInfo &) override;
-
- void BeginFrame() override;
-
- QT3DSI32 CreateTextureAtlas() override;
- STextTextureAtlasEntryDetails RenderAtlasEntry(QT3DSU32, NVRenderTexture2D &) override;
-
-private:
- IQt3DSRenderContext *m_context = nullptr;
- QHash<size_t, QHash<Q3DSDistanceFieldGlyphCache::TextureInfo *, GlyphInfo>> m_glyphCache;
- QHash<size_t, Q3DSDistanceFieldMesh> m_meshCache;
-
- Q3DSFontDatabase m_fontDatabase;
- Q3DSDistanceFieldGlyphCacheManager m_glyphCacheManager;
-
- Q3DSDistanceFieldShader m_shader;
- Q3DSDistanceFieldDropShadowShader m_dropShadowShader;
- QVector<size_t> m_renderedGlyphs;
-
- QStringList m_systemDirs;
- QStringList m_projectDirs;
-
- qreal m_pixelRatio = 0.0;
-
- NVFoundationBase &m_foundation;
- volatile QT3DSI32 mRefCount = 0;
-};
-
-}
-}
-
-#endif // Qt version check
-
-#endif // QT3DSDISTANCEFIELDRENDERER_H