diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:17:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:21:24 +0300 |
commit | e12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch) | |
tree | 8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/draw/modes/shaders/edit_curve_overlay_handle_geom.glsl | |
parent | b3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff) |
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.
For details on usage and instructions for migrating branches
without conflicts, see:
https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/draw/modes/shaders/edit_curve_overlay_handle_geom.glsl')
-rw-r--r-- | source/blender/draw/modes/shaders/edit_curve_overlay_handle_geom.glsl | 160 |
1 files changed, 84 insertions, 76 deletions
diff --git a/source/blender/draw/modes/shaders/edit_curve_overlay_handle_geom.glsl b/source/blender/draw/modes/shaders/edit_curve_overlay_handle_geom.glsl index c2ab0ecfd40..0a152cefaed 100644 --- a/source/blender/draw/modes/shaders/edit_curve_overlay_handle_geom.glsl +++ b/source/blender/draw/modes/shaders/edit_curve_overlay_handle_geom.glsl @@ -1,7 +1,7 @@ /* Keep the same value of `ACTIVE_NURB` in `draw_cache_imp_curve.c` */ -#define ACTIVE_NURB 1 << 2 -#define EVEN_U_BIT 1 << 3 +#define ACTIVE_NURB 1 << 2 +#define EVEN_U_BIT 1 << 3 layout(lines) in; layout(triangle_strip, max_vertices = 10) out; @@ -15,88 +15,96 @@ out vec4 finalColor; void output_line(vec2 offset, vec4 color) { - finalColor = color; + finalColor = color; - gl_Position = gl_in[0].gl_Position; - gl_Position.xy += offset * gl_in[0].gl_Position.w; + gl_Position = gl_in[0].gl_Position; + gl_Position.xy += offset * gl_in[0].gl_Position.w; #ifdef USE_WORLD_CLIP_PLANES - world_clip_planes_set_clip_distance(gl_in[0].gl_ClipDistance); + world_clip_planes_set_clip_distance(gl_in[0].gl_ClipDistance); #endif - EmitVertex(); + EmitVertex(); - gl_Position = gl_in[1].gl_Position; - gl_Position.xy += offset * gl_in[1].gl_Position.w; + gl_Position = gl_in[1].gl_Position; + gl_Position.xy += offset * gl_in[1].gl_Position.w; #ifdef USE_WORLD_CLIP_PLANES - world_clip_planes_set_clip_distance(gl_in[1].gl_ClipDistance); + world_clip_planes_set_clip_distance(gl_in[1].gl_ClipDistance); #endif - EmitVertex(); + EmitVertex(); } void main() { - vec4 v1 = gl_in[0].gl_Position; - vec4 v2 = gl_in[1].gl_Position; - - int is_active_nurb = (vertFlag[1] & ACTIVE_NURB); - int color_id = (vertFlag[1] >> 4); - - /* Don't output any edges if we don't show handles */ - if (!showCurveHandles && (color_id < 5)) { - return; - } - - bool edge_selected = (((vertFlag[1] | vertFlag[0]) & VERT_SELECTED) != 0); - - vec4 inner_color; - if (color_id == 0) inner_color = (edge_selected) ? colorHandleSelFree : colorHandleFree; - else if (color_id == 1) inner_color = (edge_selected) ? colorHandleSelAuto : colorHandleAuto; - else if (color_id == 2) inner_color = (edge_selected) ? colorHandleSelVect : colorHandleVect; - else if (color_id == 3) inner_color = (edge_selected) ? colorHandleSelAlign : colorHandleAlign; - else if (color_id == 4) inner_color = (edge_selected) ? colorHandleSelAutoclamp : colorHandleAutoclamp; - else { - bool is_selected = (((vertFlag[1] & vertFlag[0]) & VERT_SELECTED) != 0); - bool is_u_segment = (((vertFlag[1] ^ vertFlag[0]) & EVEN_U_BIT) != 0); - if (is_u_segment) { - inner_color = (is_selected) ? colorNurbSelUline : colorNurbUline; - } - else { - inner_color = (is_selected) ? colorNurbSelVline : colorNurbVline; - } - } - - vec4 outer_color = (is_active_nurb != 0) - ? mix(colorActiveSpline, inner_color, 0.25) /* Minimize active color bleeding on inner_color. */ - : vec4(inner_color.rgb, 0.0); - - vec2 v1_2 = (v2.xy/v2.w - v1.xy/v1.w); - vec2 offset = sizeEdge * 4.0 / viewportSize; /* 4.0 is eyeballed */ - - if (abs(v1_2.x * viewportSize.x) < abs(v1_2.y * viewportSize.y)) { - offset.y = 0.0; - } - else { - offset.x = 0.0; - } - - /* draw the transparent border (AA). */ - if (is_active_nurb != 0) { - offset *= 0.75; /* Don't make the active "halo" appear very thick. */ - output_line(offset * 2.0, vec4(colorActiveSpline.rgb, 0.0)); - } - - /* draw the outline. */ - output_line(offset, outer_color); - - /* draw the core of the line. */ - output_line(vec2(0.0), inner_color); - - /* draw the outline. */ - output_line(-offset, outer_color); - - /* draw the transparent border (AA). */ - if (is_active_nurb != 0) { - output_line(offset * -2.0, vec4(colorActiveSpline.rgb, 0.0)); - } - - EndPrimitive(); + vec4 v1 = gl_in[0].gl_Position; + vec4 v2 = gl_in[1].gl_Position; + + int is_active_nurb = (vertFlag[1] & ACTIVE_NURB); + int color_id = (vertFlag[1] >> 4); + + /* Don't output any edges if we don't show handles */ + if (!showCurveHandles && (color_id < 5)) { + return; + } + + bool edge_selected = (((vertFlag[1] | vertFlag[0]) & VERT_SELECTED) != 0); + + vec4 inner_color; + if (color_id == 0) + inner_color = (edge_selected) ? colorHandleSelFree : colorHandleFree; + else if (color_id == 1) + inner_color = (edge_selected) ? colorHandleSelAuto : colorHandleAuto; + else if (color_id == 2) + inner_color = (edge_selected) ? colorHandleSelVect : colorHandleVect; + else if (color_id == 3) + inner_color = (edge_selected) ? colorHandleSelAlign : colorHandleAlign; + else if (color_id == 4) + inner_color = (edge_selected) ? colorHandleSelAutoclamp : colorHandleAutoclamp; + else { + bool is_selected = (((vertFlag[1] & vertFlag[0]) & VERT_SELECTED) != 0); + bool is_u_segment = (((vertFlag[1] ^ vertFlag[0]) & EVEN_U_BIT) != 0); + if (is_u_segment) { + inner_color = (is_selected) ? colorNurbSelUline : colorNurbUline; + } + else { + inner_color = (is_selected) ? colorNurbSelVline : colorNurbVline; + } + } + + vec4 outer_color = (is_active_nurb != 0) ? + mix(colorActiveSpline, + inner_color, + 0.25) /* Minimize active color bleeding on inner_color. */ + : + vec4(inner_color.rgb, 0.0); + + vec2 v1_2 = (v2.xy / v2.w - v1.xy / v1.w); + vec2 offset = sizeEdge * 4.0 / viewportSize; /* 4.0 is eyeballed */ + + if (abs(v1_2.x * viewportSize.x) < abs(v1_2.y * viewportSize.y)) { + offset.y = 0.0; + } + else { + offset.x = 0.0; + } + + /* draw the transparent border (AA). */ + if (is_active_nurb != 0) { + offset *= 0.75; /* Don't make the active "halo" appear very thick. */ + output_line(offset * 2.0, vec4(colorActiveSpline.rgb, 0.0)); + } + + /* draw the outline. */ + output_line(offset, outer_color); + + /* draw the core of the line. */ + output_line(vec2(0.0), inner_color); + + /* draw the outline. */ + output_line(-offset, outer_color); + + /* draw the transparent border (AA). */ + if (is_active_nurb != 0) { + output_line(offset * -2.0, vec4(colorActiveSpline.rgb, 0.0)); + } + + EndPrimitive(); } |