summaryrefslogtreecommitdiff
path: root/glsl
diff options
context:
space:
mode:
authorFrederico Linhares <fred@linhares.blue>2022-08-02 16:52:33 -0300
committerFrederico Linhares <fred@linhares.blue>2022-08-02 16:52:33 -0300
commitf88712a929ee3543f8e1d45c6071f676df339cdb (patch)
treead4c9272ead49eb205b1c655bb1d878654863e26 /glsl
parent9c6a166fa2b00a1ab177d9e9216a839b87e36ca7 (diff)
refa Use Vulkan for graphics
This is a partial refactory. Some functionalities implemented in SDL were removed and need reimplementation.
Diffstat (limited to 'glsl')
-rw-r--r--glsl/shader.frag14
-rw-r--r--glsl/shader.vert30
2 files changed, 44 insertions, 0 deletions
diff --git a/glsl/shader.frag b/glsl/shader.frag
new file mode 100644
index 0000000..39aa83c
--- /dev/null
+++ b/glsl/shader.frag
@@ -0,0 +1,14 @@
+#version 450
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(location = 0) in vec3 in_frag_color;
+layout(location = 1) in vec2 in_frag_texture_coord;
+
+layout(location = 0) out vec4 out_color;
+
+layout(set = 0, binding = 1) uniform sampler2D texture_sampler;
+
+void main()
+{
+ out_color = texture(texture_sampler, in_frag_texture_coord);
+}
diff --git a/glsl/shader.vert b/glsl/shader.vert
new file mode 100644
index 0000000..2407255
--- /dev/null
+++ b/glsl/shader.vert
@@ -0,0 +1,30 @@
+#version 450
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(location = 0) in vec3 in_position;
+layout(location = 1) in vec3 in_normal;
+layout(location = 2) in vec3 in_color;
+layout(location = 3) in vec2 in_texture_coord;
+
+layout(location = 0) out vec3 frag_color;
+layout(location = 1) out vec2 frag_texture_coord;
+
+layout(set = 0, binding = 0) uniform UBOModelInstance
+{
+ mat4 model[128];
+} ubo_model_instance;
+
+layout(set = 1, binding = 0) uniform UBOViewProjection
+{
+ mat4 view;
+ mat4 proj;
+} ubo_view_projection;
+
+void main()
+{
+ gl_Position =
+ ubo_view_projection.proj * ubo_view_projection.view *
+ ubo_model_instance.model[gl_InstanceIndex] * vec4(in_position, 1.0);
+ frag_color = in_color;
+ frag_texture_coord = in_texture_coord;
+}