summaryrefslogtreecommitdiffstats
path: root/tests/manual/compute-particles/ComputeMaterial.qml
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/compute-particles/ComputeMaterial.qml')
-rw-r--r--tests/manual/compute-particles/ComputeMaterial.qml108
1 files changed, 108 insertions, 0 deletions
diff --git a/tests/manual/compute-particles/ComputeMaterial.qml b/tests/manual/compute-particles/ComputeMaterial.qml
new file mode 100644
index 000000000..90f9a7c2e
--- /dev/null
+++ b/tests/manual/compute-particles/ComputeMaterial.qml
@@ -0,0 +1,108 @@
+// Copyright (C) 2015 Klaralvdalens Datakonsult AB (KDAB).
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import Qt3D.Core 2.0
+import Qt3D.Render 2.0
+
+Material {
+ property Buffer dataBuffer;
+ property real particleStep: 0.4
+ property real finalCollisionFactor: 0.2
+
+ parameters: [
+ Parameter { name: "particleStep"; value: particleStep },
+ Parameter { name: "finalCollisionFactor"; value: finalCollisionFactor }
+ ]
+
+ effect: Effect {
+ techniques: [
+ Technique {
+ renderPasses: [
+ RenderPass {
+ shaderProgram: ShaderProgram {
+ computeShaderCode: loadSource("qrc:/shaders/gl43/particles.comp")
+ }
+ // We set the buffer as the parameter data
+ parameters: [
+ Parameter { name: "Particles"; value: dataBuffer }
+ ]
+ }
+ ]
+ filterKeys: [
+ FilterKey { name: "type"; value: "compute" }
+ ]
+ graphicsApiFilter {
+ api: GraphicsApiFilter.OpenGL
+ profile: GraphicsApiFilter.CoreProfile
+ majorVersion: 4
+ minorVersion: 3
+ }
+ },
+ Technique {
+ renderPasses: [
+ RenderPass {
+ shaderProgram: ShaderProgram {
+ vertexShaderCode: loadSource("qrc:/shaders/gl43/particles.vert")
+ fragmentShaderCode: loadSource("qrc:/shaders/gl43/particles.frag")
+ }
+ // We assume the mesh to be drawn will also receive
+ // Vertex buffers attributes that will be used to position and color
+ }
+ ]
+ filterKeys: [
+ FilterKey { name: "type"; value: "draw" }
+ ]
+ graphicsApiFilter {
+ api: GraphicsApiFilter.OpenGL
+ profile: GraphicsApiFilter.CoreProfile
+ majorVersion: 4
+ minorVersion: 3
+ }
+ },
+ Technique {
+ renderPasses: [
+ RenderPass {
+ shaderProgram: ShaderProgram {
+ computeShaderCode: loadSource("qrc:/shaders/gl45/particles.comp")
+ }
+ // We set the buffer as the parameter data
+ parameters: [
+ Parameter { name: "Particles"; value: dataBuffer }
+ ]
+ }
+ ]
+ filterKeys: [
+ FilterKey { name: "type"; value: "compute" }
+ ]
+ graphicsApiFilter {
+ api: GraphicsApiFilter.RHI
+ profile: GraphicsApiFilter.NoProfile
+ majorVersion: 1
+ minorVersion: 0
+ }
+ },
+ Technique {
+ renderPasses: [
+ RenderPass {
+ shaderProgram: ShaderProgram {
+ vertexShaderCode: loadSource("qrc:/shaders/gl45/particles.vert")
+ fragmentShaderCode: loadSource("qrc:/shaders/gl45/particles.frag")
+ }
+ // We assume the mesh to be drawn will also receive
+ // Vertex buffers attributes that will be used to position and color
+ }
+ ]
+ filterKeys: [
+ FilterKey { name: "type"; value: "draw" }
+ ]
+ graphicsApiFilter {
+ api: GraphicsApiFilter.RHI
+ profile: GraphicsApiFilter.NoProfile
+ majorVersion: 1
+ minorVersion: 0
+ }
+ }
+ ] // techniques
+ }
+}
+