From 348f7525937c4632b20a5187100ec21bca14303a Mon Sep 17 00:00:00 2001
From: Artur Wasmut <awasmut@uni-koblenz.de>
Date: Sat, 3 Jul 2021 16:14:41 +0200
Subject: [PATCH] add camera push constant.

---
 .../mesh_shader/resources/shaders/shader.mesh    | 16 ++++++++++------
 projects/mesh_shader/src/main.cpp                |  2 +-
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/projects/mesh_shader/resources/shaders/shader.mesh b/projects/mesh_shader/resources/shaders/shader.mesh
index c9039c11..4f6e1fa5 100644
--- a/projects/mesh_shader/resources/shaders/shader.mesh
+++ b/projects/mesh_shader/resources/shaders/shader.mesh
@@ -7,12 +7,16 @@ layout(local_size_x=32) in;
 layout(triangles) out;
 layout(max_vertices=64, max_primitives=126) out;
 
+layout( push_constant ) uniform constants{
+    mat4 mvp;
+};
+
 // out uint gl_PrimitiveCountNV;
 // out uint gl_PrimitiveIndicesNV[];
 
-out gl_MeshPerVertexNV {
-    vec4 gl_Position;
-} gl_MeshVerticesNV[];
+//out gl_MeshPerVertexNV {
+//    vec4 gl_Position;
+//} gl_MeshVerticesNV[];
 
 void main()	{
 	if(gl_LocalInvocationID.x == 0)
@@ -22,8 +26,8 @@ void main()	{
 		gl_PrimitiveIndicesNV[1] = 1;
 		gl_PrimitiveIndicesNV[2] = 2;
 		
-		gl_MeshVerticesNV[0].gl_Position = vec4(-0.5,  0.5, 0.5, 1);
-		gl_MeshVerticesNV[1].gl_Position = vec4( 0.5,  0.5, 0.5, 1);
-		gl_MeshVerticesNV[2].gl_Position = vec4( 0  , -0.5, 0.5, 1);
+		gl_MeshVerticesNV[0].gl_Position = mvp * vec4(-0.5,  0.5, 0.5, 1);
+		gl_MeshVerticesNV[1].gl_Position = mvp * vec4( 0.5,  0.5, 0.5, 1);
+		gl_MeshVerticesNV[2].gl_Position = mvp * vec4( 0  , -0.5, 0.5, 1);
 	}
 }
\ No newline at end of file
diff --git a/projects/mesh_shader/src/main.cpp b/projects/mesh_shader/src/main.cpp
index 6fa6c8f6..8a423345 100644
--- a/projects/mesh_shader/src/main.cpp
+++ b/projects/mesh_shader/src/main.cpp
@@ -152,7 +152,7 @@ int main(int argc, const char** argv) {
 			cmdStream,
 			renderPass,
 			meshShaderPipeline,
-			vkcv::PushConstantData(nullptr, 0),
+			pushConstantData,
 			{ vkcv::MeshShaderDrawcall({}, 1) },
 			{ swapchainInput });
 
-- 
GitLab