Commit: 65834a0a503ecca2e51063f26cb6876f1c3baf9f
Author: Campbell Barton
Date:   Mon Jan 21 23:29:11 2019 +1100
Branches: temp-gpu-clip-fix
https://developer.blender.org/rB65834a0a503ecca2e51063f26cb6876f1c3baf9f

Avoid code duplication

===================================================================

M       source/blender/draw/modes/shaders/common_world_clip_lib.glsl
M       source/blender/draw/modes/shaders/edit_mesh_overlay_geom_edge.glsl
M       source/blender/draw/modes/shaders/edit_mesh_overlay_geom_tri.glsl
M       source/blender/draw/modes/shaders/edit_normals_geom.glsl
M       source/blender/draw/modes/shaders/overlay_face_wireframe_geom.glsl

===================================================================

diff --git a/source/blender/draw/modes/shaders/common_world_clip_lib.glsl 
b/source/blender/draw/modes/shaders/common_world_clip_lib.glsl
index a8963bf052f..e211def8eff 100644
--- a/source/blender/draw/modes/shaders/common_world_clip_lib.glsl
+++ b/source/blender/draw/modes/shaders/common_world_clip_lib.glsl
@@ -10,5 +10,16 @@ void world_clip_planes_calc_clip_distance(vec3 wpos)
        gl_ClipDistance[4] = dot(WorldClipPlanes[4].xyz, wpos) + 
WorldClipPlanes[4].w;
        gl_ClipDistance[5] = dot(WorldClipPlanes[5].xyz, wpos) + 
WorldClipPlanes[5].w;
 }
+
+#define world_clip_planes_set_clip_distance(c)
+{ \
+       gl_ClipDistance[0] = (c)[0]; \
+       gl_ClipDistance[1] = (c)[1]; \
+       gl_ClipDistance[2] = (c)[2]; \
+       gl_ClipDistance[3] = (c)[3]; \
+       gl_ClipDistance[4] = (c)[4]; \
+       gl_ClipDistance[5] = (c)[5]; \
+}
+
 #endif
 #endif
diff --git a/source/blender/draw/modes/shaders/edit_mesh_overlay_geom_edge.glsl 
b/source/blender/draw/modes/shaders/edit_mesh_overlay_geom_edge.glsl
index 8943292080a..76c53b3cf86 100644
--- a/source/blender/draw/modes/shaders/edit_mesh_overlay_geom_edge.glsl
+++ b/source/blender/draw/modes/shaders/edit_mesh_overlay_geom_edge.glsl
@@ -59,12 +59,7 @@ void doVertex(int v, vec4 pos)
        gl_Position = pos;
 
 #ifdef USE_WORLD_CLIP_PLANES
-       gl_ClipDistance[0] = gl_in[v].gl_ClipDistance[0];
-       gl_ClipDistance[1] = gl_in[v].gl_ClipDistance[1];
-       gl_ClipDistance[2] = gl_in[v].gl_ClipDistance[2];
-       gl_ClipDistance[3] = gl_in[v].gl_ClipDistance[3];
-       gl_ClipDistance[4] = gl_in[v].gl_ClipDistance[4];
-       gl_ClipDistance[5] = gl_in[v].gl_ClipDistance[5];
+       world_clip_planes_set_clip_distance(gl_in[v].gl_ClipDistance);
 #endif
 
        EmitVertex();
diff --git a/source/blender/draw/modes/shaders/edit_mesh_overlay_geom_tri.glsl 
b/source/blender/draw/modes/shaders/edit_mesh_overlay_geom_tri.glsl
index c475d564f29..1c88f1ff959 100644
--- a/source/blender/draw/modes/shaders/edit_mesh_overlay_geom_tri.glsl
+++ b/source/blender/draw/modes/shaders/edit_mesh_overlay_geom_tri.glsl
@@ -73,12 +73,7 @@ void doVertex(int v)
        gl_Position = pPos[v];
 
 #ifdef USE_WORLD_CLIP_PLANES
-       gl_ClipDistance[0] = gl_in[v].gl_ClipDistance[0];
-       gl_ClipDistance[1] = gl_in[v].gl_ClipDistance[1];
-       gl_ClipDistance[2] = gl_in[v].gl_ClipDistance[2];
-       gl_ClipDistance[3] = gl_in[v].gl_ClipDistance[3];
-       gl_ClipDistance[4] = gl_in[v].gl_ClipDistance[4];
-       gl_ClipDistance[5] = gl_in[v].gl_ClipDistance[5];
+       world_clip_planes_set_clip_distance(gl_in[v].gl_ClipDistance);
 #endif
 
        EmitVertex();
@@ -97,12 +92,7 @@ void doVertexOfs(int v, vec2 fixvec)
        gl_Position = pPos[v] + vec4(fixvec * pPos[v].w, z_ofs, 0.0);
 
 #ifdef USE_WORLD_CLIP_PLANES
-       gl_ClipDistance[0] = gl_in[v].gl_ClipDistance[0];
-       gl_ClipDistance[1] = gl_in[v].gl_ClipDistance[1];
-       gl_ClipDistance[2] = gl_in[v].gl_ClipDistance[2];
-       gl_ClipDistance[3] = gl_in[v].gl_ClipDistance[3];
-       gl_ClipDistance[4] = gl_in[v].gl_ClipDistance[4];
-       gl_ClipDistance[5] = gl_in[v].gl_ClipDistance[5];
+       world_clip_planes_set_clip_distance(gl_in[v].gl_ClipDistance);
 #endif
 
        EmitVertex();
diff --git a/source/blender/draw/modes/shaders/edit_normals_geom.glsl 
b/source/blender/draw/modes/shaders/edit_normals_geom.glsl
index 0d6c6fda915..91a57a79eb0 100644
--- a/source/blender/draw/modes/shaders/edit_normals_geom.glsl
+++ b/source/blender/draw/modes/shaders/edit_normals_geom.glsl
@@ -10,12 +10,7 @@ void main()
        for (int v = 0; v < 2; v++) {
                gl_Position = (v == 0) ? v1[0] : v2[0];
 #ifdef USE_WORLD_CLIP_PLANES
-               gl_ClipDistance[0] = gl_in[0].gl_ClipDistance[0];
-               gl_ClipDistance[1] = gl_in[0].gl_ClipDistance[1];
-               gl_ClipDistance[2] = gl_in[0].gl_ClipDistance[2];
-               gl_ClipDistance[3] = gl_in[0].gl_ClipDistance[3];
-               gl_ClipDistance[4] = gl_in[0].gl_ClipDistance[4];
-               gl_ClipDistance[5] = gl_in[0].gl_ClipDistance[5];
+               world_clip_planes_set_clip_distance(gl_in[0].gl_ClipDistance);
 #endif
                EmitVertex();
        }
diff --git a/source/blender/draw/modes/shaders/overlay_face_wireframe_geom.glsl 
b/source/blender/draw/modes/shaders/overlay_face_wireframe_geom.glsl
index d0fb0f531f1..d4d53b7d24d 100644
--- a/source/blender/draw/modes/shaders/overlay_face_wireframe_geom.glsl
+++ b/source/blender/draw/modes/shaders/overlay_face_wireframe_geom.glsl
@@ -21,12 +21,7 @@ void vert_from_gl_in(int v)
 {
        gl_Position = gl_in[v].gl_Position;
 #ifdef USE_WORLD_CLIP_PLANES
-       gl_ClipDistance[0] = gl_in[v].gl_ClipDistance[0];
-       gl_ClipDistance[1] = gl_in[v].gl_ClipDistance[1];
-       gl_ClipDistance[2] = gl_in[v].gl_ClipDistance[2];
-       gl_ClipDistance[3] = gl_in[v].gl_ClipDistance[3];
-       gl_ClipDistance[4] = gl_in[v].gl_ClipDistance[4];
-       gl_ClipDistance[5] = gl_in[v].gl_ClipDistance[5];
+       world_clip_planes_set_clip_distance(gl_in[v].gl_ClipDistance);
 #endif
 }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to