Cleanup: replace attrib w/ attr
[blender.git] / source / blender / draw / modes / shaders / object_empty_axes_vert.glsl
1
2 uniform mat4 ViewProjectionMatrix;
3 uniform mat4 ModelMatrix;
4
5 uniform vec3 screenVecs[3];
6
7 /* ---- Instantiated Attrs ---- */
8 in float axis; /* position on the axis. [0.0-1.0] is X axis, [1.0-2.0] is Y, etc... */
9 in vec2 screenPos;
10
11 /* ---- Per instance Attrs ---- */
12 in vec3 color;
13 in float size;
14 in mat4 InstanceModelMatrix;
15
16 flat out vec4 finalColor;
17
18 void main()
19 {
20         float draw_size = 4.0 * size;
21         vec3 chosen_axis = InstanceModelMatrix[int(axis)].xyz;
22         vec3 loc = InstanceModelMatrix[3].xyz;
23         vec3 wpos = loc + chosen_axis * fract(axis) * draw_size;
24         vec3 spos = screenVecs[0].xyz * screenPos.x + screenVecs[1].xyz * screenPos.y;
25         /* Scale uniformly by axis length */
26         spos *= length(chosen_axis) * draw_size;
27
28         vec4 pos = vec4(wpos + spos, 1.0);
29         gl_Position = ViewProjectionMatrix * pos;
30
31         finalColor = vec4(color, 1.0);
32
33 #ifdef USE_WORLD_CLIP_PLANES
34         world_clip_planes_calc_clip_distance((ModelMatrix * pos).xyz);
35 #endif
36 }