implemented instanced rendering
This commit is contained in:
parent
0ef2bceeec
commit
f30db0dd47
9 changed files with 190 additions and 203 deletions
|
|
@ -5,26 +5,25 @@ layout(set = 1, binding = 0) uniform Viewport {
|
|||
};
|
||||
|
||||
layout(location = 0) in ivec2 position;
|
||||
layout(location = 1) in ivec2 uv;
|
||||
layout(location = 2) in ivec4 color;
|
||||
layout(location = 1) in ivec4 attr; // quad x,y,w,h
|
||||
layout(location = 2) in ivec2 uv; // x,y in the texture
|
||||
layout(location = 3) in ivec4 color;
|
||||
|
||||
layout(location = 0) out vec4 col;
|
||||
layout(location = 1) out vec2 local_position;
|
||||
layout(location = 2) out vec2 global_position;
|
||||
layout(location = 3) out float radius;
|
||||
layout(location = 0) out vec4 out_color;
|
||||
layout(location = 1) out vec4 out_quad_size;
|
||||
layout(location = 2) out float out_radius;
|
||||
|
||||
void main()
|
||||
{
|
||||
// vertex position
|
||||
vec2 pos;
|
||||
pos.x = float(position.x)*2.0 / view.x - 1.0;
|
||||
pos.y = -(float(position.y)*2.0 / view.y - 1.0);
|
||||
ivec2 px_pos = attr.xy + position.xy * attr.zw;
|
||||
vec2 clip_pos;
|
||||
clip_pos.x = float(px_pos.x)*2.0 / view.x - 1.0;
|
||||
clip_pos.y = -(float(px_pos.y)*2.0 / view.y - 1.0);
|
||||
|
||||
gl_Position = vec4(pos, 0.0, 1.0);
|
||||
gl_Position = vec4(clip_pos, 0.0, 1.0);
|
||||
|
||||
local_position = vec2(sign(uv));
|
||||
global_position = gl_Position.xy;
|
||||
radius = abs(float(uv.x));
|
||||
|
||||
col = vec4(color) / 255.0;
|
||||
out_color = vec4(color) / 255.0;
|
||||
out_quad_size = vec4(attr);
|
||||
out_radius = float(abs(uv.x));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue