Changed the OpenGL part and the GLSL shaders to use UBO and
[demo] / vk_shaders / default.v.glsl
1 #version 450
2 //#extension GL_ARB_separate_shader_objects : enable
3
4 layout(std140, binding = 0) uniform matrix_state {
5         uniform mat4 mview;
6         uniform mat4 mmviewproj;
7         uniform mat4 mmod;
8 } m;
9
10 layout(location = 0) out vec3 pos;
11 layout(location = 1) out vec2 tex_coord;
12 layout(location = 2) out vec3 world_normal;
13
14 const vec3 lpos = vec3(-10.0, 100.0, 10.0);
15
16 /* attributes */
17 layout(location = 1) in vec3 attr_pos;
18 layout(location = 2) in vec3 attr_normal;
19 layout(location = 3) in vec2 attr_tex;
20
21 void main()
22 {
23         gl_Position = m.mmviewproj * vec4(attr_pos, 1.0);
24
25         pos = (m.mview * vec4(attr_pos, 1.0)).xyz;
26         tex_coord = attr_tex;
27
28         world_normal = (m.mmod * vec4(attr_normal, 1.0)).xyz;
29 }