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