Object Mode Engine: Small cleanup
[blender.git] / source / blender / draw / modes / shaders / edit_mesh_overlay_facedot_vert.glsl
1
2 uniform mat4 ModelViewProjectionMatrix;
3
4 in vec3 pos;
5 in vec4 norAndFlag;
6
7 flat out int isSelected;
8
9 #ifdef VERTEX_FACING
10 uniform mat4 ProjectionMatrix;
11 uniform mat4 ModelViewMatrix;
12 uniform mat3 NormalMatrix;
13
14 flat out float facing;
15 #endif
16
17 void main()
18 {
19         gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0);
20         /* Bias Facedot Z position in clipspace. */
21         gl_Position.z -= 0.0002;
22         gl_PointSize = sizeFaceDot;
23         isSelected = int(norAndFlag.w);
24 #ifdef VERTEX_FACING
25         vec3 view_normal = normalize(NormalMatrix * norAndFlag.xyz);
26         vec3 view_vec = (ProjectionMatrix[3][3] == 0.0)
27                 ? normalize((ModelViewMatrix * vec4(pos, 1.0)).xyz)
28                 : vec3(0.0, 0.0, 1.0);
29         facing = dot(view_vec, view_normal);
30 #endif
31 }