update DrawRect2D shaders

This commit is contained in:
hyzboy 2020-07-08 15:43:51 +08:00
parent 09f5818143
commit 9ce56221ff
2 changed files with 16 additions and 6 deletions

View File

@ -3,15 +3,20 @@
layout (points) in; layout (points) in;
layout (triangle_strip,max_vertices=4) out; layout (triangle_strip,max_vertices=4) out;
layout(location=0) in vec4 GeometryTexCoord[];
layout(location=0) out vec2 FragmentTexCoord;
void main() void main()
{ {
vec2 lt=gl_in[0].gl_Position.xy; vec2 vlt=gl_in[0].gl_Position.xy;
vec2 rb=gl_in[0].gl_Position.zw; vec2 vrb=gl_in[0].gl_Position.zw;
vec2 tlt=GeometryTexCoord[0].xy;
vec2 trb=GeometryTexCoord[0].zw;
gl_Position=vec4(lt, vec2(0,1));EmitVertex(); gl_Position=vec4(vlt, vec2(0,1));FragmentTexCoord=tlt; EmitVertex();
gl_Position=vec4(lt.x,rb.y, vec2(0,1));EmitVertex(); gl_Position=vec4(vlt.x, vrb.y, vec2(0,1));FragmentTexCoord=vec2(tlt.x,trb.y); EmitVertex();
gl_Position=vec4(rb.x,lt.y, vec2(0,1));EmitVertex(); gl_Position=vec4(vrb.x, vlt.y, vec2(0,1));FragmentTexCoord=vec2(trb.x,tlt.y); EmitVertex();
gl_Position=vec4(rb, vec2(0,1));EmitVertex(); gl_Position=vec4(vrb, vec2(0,1));FragmentTexCoord=trb; EmitVertex();
EndPrimitive(); EndPrimitive();
} }

View File

@ -1,6 +1,7 @@
#version 450 core #version 450 core
layout(location = 0) in vec4 Vertex; layout(location = 0) in vec4 Vertex;
layout(location = 1) in vec4 TexCoord;
layout(binding=0) uniform WorldMatrix // hgl/math/Math.h layout(binding=0) uniform WorldMatrix // hgl/math/Math.h
{ {
@ -20,6 +21,8 @@ layout(binding=0) uniform WorldMatrix // hgl/math/Math.h
vec2 viewport_resolution; vec2 viewport_resolution;
}world; }world;
layout(location=0) out vec4 GeometryTexCoord;
void main() void main()
{ {
vec4 lt=vec4(Vertex.xy,vec2(0,1)); vec4 lt=vec4(Vertex.xy,vec2(0,1));
@ -28,5 +31,7 @@ void main()
vec4 lt_fin=lt*world.ortho; vec4 lt_fin=lt*world.ortho;
vec4 rb_fin=rb*world.ortho; vec4 rb_fin=rb*world.ortho;
GeometryTexCoord=TexCoord;
gl_Position=vec4(lt_fin.xy,rb_fin.xy); gl_Position=vec4(lt_fin.xy,rb_fin.xy);
} }