summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJari Karppinen <jari.karppinen@qt.io>2019-05-09 15:18:23 +0300
committerJari Karppinen <jari.karppinen@qt.io>2019-05-14 12:07:01 +0000
commitb9866ce98ab6844380a3c54d179c01591bd2e4aa (patch)
tree984df0c1280280b4804ae395cb0a08da27005bf9 /src
parentc46b03d90eedc1f13c178dd69e019fd2b6de9994 (diff)
Assume project fonts are in a subdirectory relative to project or presentation
Task-number: QT3DS-3353 Change-Id: Iee9719c00b0da9d6e28b0baade9fd26b35f88d79 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/Authoring/Studio/Render/StudioRenderer.cpp6
-rw-r--r--src/Runtime/Source/engine/Qt3DSRenderRuntimeBinding.cpp6
-rw-r--r--src/Runtime/Source/runtime/Qt3DSApplication.cpp7
-rw-r--r--src/Runtime/Source/runtimerender/Qt3DSDistanceFieldRenderer.cpp1
-rw-r--r--src/Runtime/Source/runtimerender/Qt3DSQtTextRenderer.cpp7
5 files changed, 16 insertions, 11 deletions
diff --git a/src/Authoring/Studio/Render/StudioRenderer.cpp b/src/Authoring/Studio/Render/StudioRenderer.cpp
index dde2d64c..f6361a69 100644
--- a/src/Authoring/Studio/Render/StudioRenderer.cpp
+++ b/src/Authoring/Studio/Render/StudioRenderer.cpp
@@ -725,16 +725,18 @@ struct SRendererImpl : public IStudioRenderer,
Q3DStudio::CString thePath(
Q3DStudio::CString::fromQString(
StudioUtils::resourcePath() + QStringLiteral("/Font")));
+ // For QT3DS-3353 assume project fonts are in a subdirectory relative to project.
+ QString projectFontPath = projectPath + QStringLiteral("/fonts");
m_Context->GetTextRenderer()->AddSystemFontDirectory(
m_Context->GetStringTable().RegisterStr(thePath.c_str()));
m_Context->GetTextRenderer()->AddProjectFontDirectory(
- m_Context->GetStringTable().RegisterStr(projectPath.toLatin1().data()));
+ m_Context->GetStringTable().RegisterStr(projectFontPath.toLatin1().data()));
if (m_Context->getDistanceFieldRenderer()) {
m_Context->getDistanceFieldRenderer()->AddSystemFontDirectory(
m_Context->GetStringTable().RegisterStr(thePath.c_str()));
m_Context->getDistanceFieldRenderer()->AddProjectFontDirectory(
m_Context->GetStringTable().RegisterStr(
- projectPath.toLatin1().data()));
+ projectFontPath.toLatin1().data()));
}
}
}
diff --git a/src/Runtime/Source/engine/Qt3DSRenderRuntimeBinding.cpp b/src/Runtime/Source/engine/Qt3DSRenderRuntimeBinding.cpp
index f737ec4a..1ffb7141 100644
--- a/src/Runtime/Source/engine/Qt3DSRenderRuntimeBinding.cpp
+++ b/src/Runtime/Source/engine/Qt3DSRenderRuntimeBinding.cpp
@@ -896,13 +896,15 @@ struct Qt3DSRenderSceneManager : public Q3DStudio::ISceneManager,
inPresentation.SetScene(&inScene);
if (m_ProjectInitialized == false) {
m_ProjectInitialized = true;
+ // For QT3DS-3353 assume project fonts are in a subdirectory relative to presentation.
+ QString projectFontDir = inPresentation.getProjectPath() + QStringLiteral("/fonts");
if (m_Context->m_Context->GetTextRenderer()) {
m_Context->m_Context->GetTextRenderer()->AddProjectFontDirectory(
- inScene.m_Presentation->m_PresentationDirectory);
+ projectFontDir.toUtf8().data());
}
if (m_Context->m_Context->getDistanceFieldRenderer()) {
m_Context->m_Context->getDistanceFieldRenderer()->AddProjectFontDirectory(
- inScene.m_Presentation->m_PresentationDirectory);
+ projectFontDir.toUtf8().data());
}
eastl::string theBinaryPath(inPresentation.GetFilePath().toLatin1().constData());
qt3ds::foundation::CFileTools::AppendDirectoryInPathToFile(theBinaryPath, "binary");
diff --git a/src/Runtime/Source/runtime/Qt3DSApplication.cpp b/src/Runtime/Source/runtime/Qt3DSApplication.cpp
index 07ca8e4c..dc7be311 100644
--- a/src/Runtime/Source/runtime/Qt3DSApplication.cpp
+++ b/src/Runtime/Source/runtime/Qt3DSApplication.cpp
@@ -1300,16 +1300,19 @@ struct SApp : public IApplication
m_CoreFactory->AddSearchPath(relativeProjectDir.c_str());
}
+ // For QT3DS-3353 assume project fonts are in a subdirectory relative to project.
+ eastl::string projectFontDirectory = projectDirectory + "/fonts";
+
NVFoundationBase &fnd(m_CoreFactory->GetFoundation());
if (m_CoreFactory->GetRenderContextCore().getDistanceFieldRenderer()) {
m_CoreFactory->GetRenderContextCore().getDistanceFieldRenderer()
- ->AddProjectFontDirectory(projectDirectory.c_str());
+ ->AddProjectFontDirectory(projectFontDirectory.c_str());
}
if (m_CoreFactory->GetRenderContextCore().GetTextRendererCore()) {
m_CoreFactory->GetRenderContextCore().GetTextRendererCore()->AddProjectFontDirectory(
- projectDirectory.c_str());
+ projectFontDirectory.c_str());
m_CoreFactory->GetRenderContextCore().GetTextRendererCore()->BeginPreloadFonts(
m_CoreFactory->GetRenderContextCore().GetThreadPool(),
m_CoreFactory->GetRenderContextCore().GetPerfTimer());
diff --git a/src/Runtime/Source/runtimerender/Qt3DSDistanceFieldRenderer.cpp b/src/Runtime/Source/runtimerender/Qt3DSDistanceFieldRenderer.cpp
index 731d6929..21a090a8 100644
--- a/src/Runtime/Source/runtimerender/Qt3DSDistanceFieldRenderer.cpp
+++ b/src/Runtime/Source/runtimerender/Qt3DSDistanceFieldRenderer.cpp
@@ -71,7 +71,6 @@ void Q3DSDistanceFieldRenderer::AddSystemFontDirectory(const char8_t *dir)
void Q3DSDistanceFieldRenderer::AddProjectFontDirectory(const char8_t *dir)
{
QString projectDir(dir);
- projectDir += QLatin1String("/fonts");
m_projectDirs += projectDir;
m_fontDatabase.registerFonts({ projectDir });
}
diff --git a/src/Runtime/Source/runtimerender/Qt3DSQtTextRenderer.cpp b/src/Runtime/Source/runtimerender/Qt3DSQtTextRenderer.cpp
index 17539e4a..4de7f9be 100644
--- a/src/Runtime/Source/runtimerender/Qt3DSQtTextRenderer.cpp
+++ b/src/Runtime/Source/runtimerender/Qt3DSQtTextRenderer.cpp
@@ -199,11 +199,10 @@ struct Qt3DSQtTextRenderer : public ITextRenderer
QString localDir = CFileTools::NormalizePathForQtUsage(stringToQString(*theIter));
QDir dir(localDir);
if (!dir.exists()) {
- qCCritical(INTERNAL_ERROR) << "Adding font directory:" << localDir;
+ qWarning("Attempted to register invalid font directory: %s",
+ qPrintable(localDir));
continue;
}
- if (fontInfos)
- dir.cd(QStringLiteral("fonts"));
QStringList entryList = dir.entryList(m_nameFilters);
for (QString entry : entryList) {
entry = dir.absoluteFilePath(entry);
@@ -222,7 +221,7 @@ struct Qt3DSQtTextRenderer : public ITextRenderer
fontFamily = families.at(0);
FontInfo fi(entry, fontName, fontFamily, fontId);
// Detect font style and weight using a dummy QRawFont
- QRawFont rawFont(rawData, 1.0);
+ QRawFont rawFont(rawData, 16);
if (rawFont.isValid()) {
if (rawFont.style() != QFont::StyleOblique) {
fi.font.setStyle(rawFont.style());