Commit: c614aa2c19a0180323109c822880458f2c7a7e14
Author: Sergey Sharybin
Date:   Thu Jul 17 13:32:29 2014 +0600
https://developer.blender.org/rBc614aa2c19a0180323109c822880458f2c7a7e14

OpenSubdiv: Simplify code around wireframe mittion

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

M       intern/opensubdiv/gpu_shader_opensubd_display.glsl

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

diff --git a/intern/opensubdiv/gpu_shader_opensubd_display.glsl 
b/intern/opensubdiv/gpu_shader_opensubd_display.glsl
index d1cb670..1741b01 100644
--- a/intern/opensubdiv/gpu_shader_opensubd_display.glsl
+++ b/intern/opensubdiv/gpu_shader_opensubd_display.glsl
@@ -107,6 +107,15 @@ void emit(int index, vec3 normal)
        gl_Position = projectionMatrix * inpt[index].v.position;
        EmitVertex();
 }
+
+#  ifdef WIREFRAME
+void emit_edge(int v0, int v1, vec3 normal)
+{
+       emit(v0, normal);
+       emit(v1, normal);
+}
+#  endif
+
 #else
 void emit(int index)
 {
@@ -122,6 +131,15 @@ void emit(int index)
        gl_Position = projectionMatrix * inpt[index].v.position;
        EmitVertex();
 }
+
+#  ifdef WIREFRAME
+void emit_edge(int v0, int v1)
+{
+       emit(v0);
+       emit(v1);
+}
+#  endif
+
 #endif
 
 void main()
@@ -131,21 +149,17 @@ void main()
 #ifdef FLAT_SHADING
        vec3 A = (inpt[0].v.position - inpt[1].v.position).xyz;
        vec3 B = (inpt[3].v.position - inpt[1].v.position).xyz;
-       vec3 n0 = normalize(cross(B, A));
+       vec3 flat_normal = normalize(cross(B, A));
 #  ifndef WIREFRAME
-       emit(0, n0);
-       emit(1, n0);
-       emit(3, n0);
-       emit(2, n0);
+       emit(0, flat_normal);
+       emit(1, flat_normal);
+       emit(3, flat_normal);
+       emit(2, flat_normal);
 #  else
-       emit(0, n0);
-       emit(1, n0);
-       emit(1, n0);
-       emit(2, n0);
-       emit(2, n0);
-       emit(3, n0);
-       emit(3, n0);
-       emit(0, n0);
+       emit_edge(0, 1, flat_normal);
+       emit_edge(1, 2, flat_normal);
+       emit_edge(2, 3, flat_normal);
+       emit_edge(3, 0, flat_normal);
 #  endif
 #else
 #  ifndef WIREFRAME
@@ -154,14 +168,10 @@ void main()
        emit(3);
        emit(2);
 #  else
-       emit(0);
-       emit(1);
-       emit(1);
-       emit(2);
-       emit(2);
-       emit(3);
-       emit(3);
-       emit(0);
+       emit_edge(0, 1);
+       emit_edge(1, 2);
+       emit_edge(2, 3);
+       emit_edge(3, 0);
 #  endif
 #endif

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

Reply via email to