forked from bartvdbraak/blender
Cleanup: indentation
This commit is contained in:
parent
e1dd83b399
commit
800de8bffd
@ -24,72 +24,72 @@ uniform int stipple_factor;
|
||||
|
||||
void main(void)
|
||||
{
|
||||
vec2 window_size = viewport.zw;
|
||||
vec4 start = gl_in[0].gl_Position;
|
||||
vec4 end = gl_in[1].gl_Position;
|
||||
vec2 window_size = viewport.zw;
|
||||
vec4 start = gl_in[0].gl_Position;
|
||||
vec4 end = gl_in[1].gl_Position;
|
||||
#if PASSTHROUGH
|
||||
gl_Position = start; EmitVertex();
|
||||
gl_Position = end; EmitVertex();
|
||||
EndPrimitive();
|
||||
return;
|
||||
gl_Position = start; EmitVertex();
|
||||
gl_Position = end; EmitVertex();
|
||||
EndPrimitive();
|
||||
return;
|
||||
#endif
|
||||
|
||||
/* t = 0 t = ~(len(end - start) + 2*line_width)
|
||||
* A-------------------------------------B
|
||||
* | | | |
|
||||
* | side | |
|
||||
* | | | |
|
||||
* |--axis--*start--------------*end-----|
|
||||
* | | | |
|
||||
* | | | |
|
||||
* | | | |
|
||||
* D-------------------------------------C
|
||||
*/
|
||||
/* t = 0 t = ~(len(end - start) + 2*line_width)
|
||||
* A-------------------------------------B
|
||||
* | | | |
|
||||
* | side | |
|
||||
* | | | |
|
||||
* |--axis--*start--------------*end-----|
|
||||
* | | | |
|
||||
* | | | |
|
||||
* | | | |
|
||||
* D-------------------------------------C
|
||||
*/
|
||||
|
||||
/* Clip the line before homogenization.
|
||||
* Compute line start and end distances to nearplane in clipspace
|
||||
* Distances are t0 = dot(start, plane) and t1 = dot(end, plane)
|
||||
*/
|
||||
float t0 = start.z + start.w;
|
||||
float t1 = end.z + end.w;
|
||||
if (t0 < 0.0) {
|
||||
if (t1 < 0.0) {
|
||||
return;
|
||||
}
|
||||
start = mix(start, end, (0 - t0) / (t1 - t0));
|
||||
}
|
||||
if (t1 < 0.0) {
|
||||
end = mix(start, end, (0 - t0) / (t1 - t0));
|
||||
}
|
||||
/* Clip the line before homogenization.
|
||||
* Compute line start and end distances to nearplane in clipspace
|
||||
* Distances are t0 = dot(start, plane) and t1 = dot(end, plane)
|
||||
*/
|
||||
float t0 = start.z + start.w;
|
||||
float t1 = end.z + end.w;
|
||||
if (t0 < 0.0) {
|
||||
if (t1 < 0.0) {
|
||||
return;
|
||||
}
|
||||
start = mix(start, end, (0 - t0) / (t1 - t0));
|
||||
}
|
||||
if (t1 < 0.0) {
|
||||
end = mix(start, end, (0 - t0) / (t1 - t0));
|
||||
}
|
||||
|
||||
/* Compute line axis and side vector in screen space */
|
||||
vec2 startInNDC = start.xy / start.w; /* clip to NDC: homogenize and drop z */
|
||||
vec2 endInNDC = end.xy / end.w;
|
||||
vec2 lineInNDC = endInNDC - startInNDC;
|
||||
vec2 lineInScreen = lineInNDC * window_size; /* ndc to screen (direction vector) */
|
||||
/* Compute line axis and side vector in screen space */
|
||||
vec2 startInNDC = start.xy / start.w; /* clip to NDC: homogenize and drop z */
|
||||
vec2 endInNDC = end.xy / end.w;
|
||||
vec2 lineInNDC = endInNDC - startInNDC;
|
||||
vec2 lineInScreen = lineInNDC * window_size; /* ndc to screen (direction vector) */
|
||||
|
||||
vec2 axisInScreen = normalize(lineInScreen);
|
||||
vec2 sideInScreen = vec2(-axisInScreen.y, axisInScreen.x); /* rotate */
|
||||
vec2 axisInNDC = axisInScreen / window_size; /* screen to NDC */
|
||||
vec2 sideInNDC = sideInScreen / window_size;
|
||||
vec4 axis = vec4(axisInNDC, 0.0, 0.0) * line_width; /* NDC to clip (delta vector) */
|
||||
vec4 side = vec4(sideInNDC, 0.0, 0.0) * line_width;
|
||||
vec2 axisInScreen = normalize(lineInScreen);
|
||||
vec2 sideInScreen = vec2(-axisInScreen.y, axisInScreen.x); /* rotate */
|
||||
vec2 axisInNDC = axisInScreen / window_size; /* screen to NDC */
|
||||
vec2 sideInNDC = sideInScreen / window_size;
|
||||
vec4 axis = vec4(axisInNDC, 0.0, 0.0) * line_width; /* NDC to clip (delta vector) */
|
||||
vec4 side = vec4(sideInNDC, 0.0, 0.0) * line_width;
|
||||
|
||||
vec4 A = (start + (side - axis) * start.w);
|
||||
vec4 B = (end + (side + axis) * end.w);
|
||||
vec4 C = (end - (side - axis) * end.w);
|
||||
vec4 D = (start - (side + axis) * start.w);
|
||||
vec4 A = (start + (side - axis) * start.w);
|
||||
vec4 B = (end + (side + axis) * end.w);
|
||||
vec4 C = (end - (side - axis) * end.w);
|
||||
vec4 D = (start - (side + axis) * start.w);
|
||||
|
||||
/* There is no relation between lines yet */
|
||||
/* TODO Pass here t0 to make continuous pattern. */
|
||||
t0 = 0;
|
||||
t1 = (length(lineInScreen) + 2*line_width)/ (2*line_width * stipple_factor);
|
||||
/* There is no relation between lines yet */
|
||||
/* TODO Pass here t0 to make continuous pattern. */
|
||||
t0 = 0;
|
||||
t1 = (length(lineInScreen) + 2 * line_width) / (2 * line_width * stipple_factor);
|
||||
|
||||
gl_Position = A; t = t0; varying_vertex_color = varying_vertex_color_line[0]; EmitVertex();
|
||||
gl_Position = D; t = t0; varying_vertex_color = varying_vertex_color_line[0]; EmitVertex();
|
||||
gl_Position = B; t = t1; varying_vertex_color = varying_vertex_color_line[1]; EmitVertex();
|
||||
gl_Position = C; t = t1; varying_vertex_color = varying_vertex_color_line[1]; EmitVertex();
|
||||
EndPrimitive();
|
||||
gl_Position = A; t = t0; varying_vertex_color = varying_vertex_color_line[0]; EmitVertex();
|
||||
gl_Position = D; t = t0; varying_vertex_color = varying_vertex_color_line[0]; EmitVertex();
|
||||
gl_Position = B; t = t1; varying_vertex_color = varying_vertex_color_line[1]; EmitVertex();
|
||||
gl_Position = C; t = t1; varying_vertex_color = varying_vertex_color_line[1]; EmitVertex();
|
||||
EndPrimitive();
|
||||
}
|
||||
|
||||
#else
|
||||
|
@ -1,6 +1,6 @@
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = ftransform();
|
||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||
gl_Position = ftransform();
|
||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user