Overlays: Use common_view_lib.glsl
[blender.git] / source / blender / draw / modes / shaders / edit_lattice_overlay_loosevert_vert.glsl
1
2 /* Draw Lattice Vertices */
3
4 uniform mat4 ModelMatrix;
5
6 uniform vec2 viewportSize;
7
8 in vec3 pos;
9 in int data;
10
11 /* these are the same for all vertices
12  * and does not need interpolation */
13 flat out int vertFlag;
14 flat out int clipCase;
15
16 /* See fragment shader */
17 noperspective out vec4 eData1;
18 flat out vec4 eData2;
19
20 /* project to screen space */
21 vec2 proj(vec4 pos)
22 {
23   return (0.5 * (pos.xy / pos.w) + 0.5) * viewportSize;
24 }
25
26 void main()
27 {
28   clipCase = 0;
29
30   vec3 world_pos = point_object_to_world(pos);
31   vec4 pPos = point_world_to_ndc(world_pos);
32
33   /* only vertex position 0 is used */
34   eData1 = eData2 = vec4(1e10);
35   eData2.zw = proj(pPos);
36
37   vertFlag = data;
38
39   gl_PointSize = sizeVertex;
40   gl_Position = pPos;
41
42 #ifdef USE_WORLD_CLIP_PLANES
43   world_clip_planes_calc_clip_distance(world_pos);
44 #endif
45 }