summaryrefslogtreecommitdiffstats
path: root/src/render/Qt3DSRenderShaderProgram.cpp
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-09-30 11:35:54 +0300
commit2902563f2f97fe18e3a547e72e66ee57d443df4f (patch)
tree99edb279806189ee3f91b95d6adfb1b4ec2d0b1d /src/render/Qt3DSRenderShaderProgram.cpp
parentd7b5007145a82f9dd855a6417ad6ec9be960e422 (diff)
Indicate effect shader errors in Editorv2.5.0-beta2
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: Ie9b5a960773c16e00ef99bd0a05e581daf008365 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/render/Qt3DSRenderShaderProgram.cpp')
-rw-r--r--src/render/Qt3DSRenderShaderProgram.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/render/Qt3DSRenderShaderProgram.cpp b/src/render/Qt3DSRenderShaderProgram.cpp
index cc8c1fd..b5f2a77 100644
--- a/src/render/Qt3DSRenderShaderProgram.cpp
+++ b/src/render/Qt3DSRenderShaderProgram.cpp
@@ -1115,20 +1115,23 @@ namespace render {
if (!vertexValid || !fragValid || !tcValid || !teValid || !geValid || !bProgramIsValid) {
NVFoundationBase &foundation(context.GetFoundation());
+ const char *err;
if (!vertexValid) {
qCCritical(INTERNAL_ERROR, "Failed to generate vertex shader!!");
qCCritical(INTERNAL_ERROR, "Vertex source:\n%s",
nonNull((const char *)vertShaderSource.begin()));
- WriteErrorMessage(foundation, "Vertex compilation output:",
- vtxShader.getValue()->GetErrorMessage());
+ err = vtxShader.getValue()->GetErrorMessage();
+ result.errors.append(err);
+ WriteErrorMessage(foundation, "Vertex compilation output:", err);
}
if (!fragValid) {
qCCritical(INTERNAL_ERROR, "Failed to generate fragment shader!!");
qCCritical(INTERNAL_ERROR, "Fragment source:\n%s",
nonNull((const char *)fragShaderSource.begin()));
- WriteErrorMessage(foundation, "Fragment compilation output:",
- fragShader.getValue()->GetErrorMessage());
+ err = fragShader.getValue()->GetErrorMessage();
+ result.errors.append(err);
+ WriteErrorMessage(foundation, "Fragment compilation output:", err);
}
if (!tcValid) {
@@ -1136,8 +1139,9 @@ namespace render {
"Failed to generate tessellation control shader!!");
qCCritical(INTERNAL_ERROR, "Tessellation control source:\n%s",
nonNull((const char *)tessControlShaderSource.begin()));
- WriteErrorMessage(foundation, "Tessellation control compilation output:",
- tcShader.getValue()->GetErrorMessage());
+ err = tcShader.getValue()->GetErrorMessage();
+ result.errors.append(err);
+ WriteErrorMessage(foundation, "Tessellation control compilation output:", err);
}
if (!teValid) {
@@ -1145,16 +1149,18 @@ namespace render {
"Failed to generate tessellation evaluation shader!!");
qCCritical(INTERNAL_ERROR, "Tessellation evaluation source:\n%s",
nonNull((const char *)tessEvaluationShaderSource.begin()));
- WriteErrorMessage(foundation, "Tessellation evaluation compilation output:",
- teShader.getValue()->GetErrorMessage());
+ err = teShader.getValue()->GetErrorMessage();
+ result.errors.append(err);
+ WriteErrorMessage(foundation, "Tessellation evaluation compilation output:", err);
}
if (!geValid) {
qCCritical(INTERNAL_ERROR, "Failed to generate geometry shader!!");
qCCritical(INTERNAL_ERROR, "Geometry source:\n%s",
nonNull((const char *)geometryShaderSource.begin()));
- WriteErrorMessage(foundation, "Geometry compilation output:",
- geShader.getValue()->GetErrorMessage());
+ err = geShader.getValue()->GetErrorMessage();
+ result.errors.append(err);
+ WriteErrorMessage(foundation, "Geometry compilation output:", err);
}
if (!bProgramIsValid && pProgram) {