summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Qt3DStudio/Palettes
diff options
context:
space:
mode:
authorJanne Kangas <janne.kangas@qt.io>2019-08-21 13:02:14 +0300
committerJanne Kangas <janne.kangas@qt.io>2019-10-01 10:46:43 +0300
commitfdc856278f325a3a41f9db2f706df5332ebd4d5c (patch)
tree75ac8e5d6566e94c741f694133065d42d62237d9 /src/Authoring/Qt3DStudio/Palettes
parentea7d213f61d7784d9dad00d40dcf017f15a021e0 (diff)
Indicate shader errors in Editor
Show a pop-up if a shader fails to compile. Compilation takes place when the effect is added to a object in timeline. Requires both editor and runtime commits. Task-id: QT3DS-3598 Change-Id: Icfd43cd77c72c929b0a88edf3655da818c78df5e Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/Authoring/Qt3DStudio/Palettes')
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Project/ProjectFileSystemModel.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/Authoring/Qt3DStudio/Palettes/Project/ProjectFileSystemModel.cpp b/src/Authoring/Qt3DStudio/Palettes/Project/ProjectFileSystemModel.cpp
index ab7d3e45..f11893b7 100644
--- a/src/Authoring/Qt3DStudio/Palettes/Project/ProjectFileSystemModel.cpp
+++ b/src/Authoring/Qt3DStudio/Palettes/Project/ProjectFileSystemModel.cpp
@@ -50,6 +50,7 @@
#include "IDragable.h"
#include "IObjectReferenceHelper.h"
#include "IDirectoryWatchingSystem.h"
+#include "IStudioRenderer.h"
ProjectFileSystemModel::ProjectFileSystemModel(QObject *parent) : QAbstractListModel(parent)
, m_model(new QFileSystemModel(this))
@@ -207,6 +208,16 @@ void ProjectFileSystemModel::updateReferences()
std::for_each(effectTextureList.begin(), effectTextureList.end(), addReferencesPresentation);
std::for_each(renderableList.begin(), renderableList.end(), addReferencesRenderable);
+ qt3dsdm::TInstanceHandleList theEffectInstances(bridge->GetEffectList());
+
+ for (const auto instance : theEffectInstances) {
+ auto err = g_StudioApp.getRenderer().getShaderError(instance);
+ if (!err.isEmpty()) {
+ err.prepend(bridge->GetSourcePath(instance) + QStringLiteral("\n\n"));
+ g_StudioApp.showShaderCompileError(err);
+ }
+ }
+
m_references.insert(projectPath);
updateRoles({IsReferencedRole, Qt::DecorationRole});