diff options
author | Janne Kangas <janne.kangas@qt.io> | 2019-08-21 13:02:14 +0300 |
---|---|---|
committer | Janne Kangas <janne.kangas@qt.io> | 2019-10-01 10:46:43 +0300 |
commit | fdc856278f325a3a41f9db2f706df5332ebd4d5c (patch) | |
tree | 75ac8e5d6566e94c741f694133065d42d62237d9 /src/Authoring/Qt3DStudio/Palettes | |
parent | ea7d213f61d7784d9dad00d40dcf017f15a021e0 (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.cpp | 11 |
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}); |