Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/shaders/gpu_shader_2D_nodelink_vert.glsl
| Context not available. | |||||
| in vec2 P2; | in vec2 P2; | ||||
| in vec2 P3; | in vec2 P3; | ||||
| in ivec4 colid_doarrow; | in ivec4 colid_doarrow; | ||||
| in vec4 start_color; | |||||
| in vec4 end_color; | |||||
| uniform vec4 colors[6]; | uniform vec4 colors[6]; | ||||
| # define colStart colors[colid_doarrow[0]] | /* If colid is TH_WIRE or TH_WIRE_INNER (1-2) takes vbo color attr, else takes colid color. | ||||
| # define colEnd colors[colid_doarrow[1]] | * This way we preserve colors for active, selected and invalid states are right (and prior) | ||||
| * while having nodelink colors based on connected socket types. */ | |||||
| # define colStart (colid_doarrow[0] < 3 ? start_color : colors[colid_doarrow[0]]) | |||||
| # define colEnd (colid_doarrow[1] < 3 ? end_color : colors[colid_doarrow[1]]) | |||||
| # define colShadow colors[colid_doarrow[2]] | # define colShadow colors[colid_doarrow[2]] | ||||
| # define doArrow (colid_doarrow[3] != 0) | # define doArrow (colid_doarrow[3] != 0) | ||||
| Context not available. | |||||
| out float colorGradient; | out float colorGradient; | ||||
| out vec4 finalColor; | out vec4 finalColor; | ||||
| const float start_gradient_threshold = 0.25; /* Instead of 0.35-0.65, cause some visual shift issue. */ | |||||
| const float end_gradient_threshold = 0.55; | |||||
| void main(void) | void main(void) | ||||
| { | { | ||||
| float t = uv.x; | float t = uv.x; | ||||
| Context not available. | |||||
| } | } | ||||
| else { | else { | ||||
| /* Second pass */ | /* Second pass */ | ||||
| finalColor = mix(colStart, colEnd, uv.x); | if (uv.x < start_gradient_threshold) { | ||||
| finalColor = colStart; | |||||
| } | |||||
| else if (uv.x > end_gradient_threshold) { | |||||
| finalColor = colEnd; | |||||
| } | |||||
| else { | |||||
| finalColor = mix(colStart, colEnd, uv.x+0.1); /* +0.1 cause some visual shift issue. */ | |||||
| } | |||||
| expand_dist *= 0.5; | expand_dist *= 0.5; | ||||
| } | } | ||||
| Context not available. | |||||