blob: 42752511dbb5490a846c0c4825c9f89210e79209 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#version 450
// vertex
layout(location = 0) in vec2 in_position;
layout(location = 1) in vec2 in_uv;
layout(location = 2) in vec2 in_atlas_size;
// instance
layout(location = 3) in mat4 pos_scale;
layout(location = 7) in vec4 in_fg_color;
layout(location = 8) in vec4 in_bg_color;
layout(location = 9) in vec2 in_sprite_region_min;
layout(location = 10) in vec2 in_sprite_region_max;
layout(location = 11) in vec2 in_bounding_region_min;
layout(location = 12) in vec2 in_bounding_region_max;
layout(location = 13) in float in_width;
layout(location = 0) out vec4 out_fg_color;
layout(location = 1) out vec4 out_bg_color;
layout(location = 2) out vec2 out_bounding_region_min;
layout(location = 3) out vec2 out_bounding_region_max;
layout(location = 4) out vec2 out_uv;
layout(location = 5) out vec2 out_screen_px;
layout(location = 6) out float out_width;
out gl_PerVertex
{
vec4 gl_Position;
};
void main()
{
vec4 transformed_position = pos_scale * vec4(in_position, 0.0, 1.0);
gl_Position = vec4(transformed_position.xy, 0.0, 1.0);
out_fg_color = in_fg_color;
out_bg_color = in_bg_color;
out_bounding_region_min = in_bounding_region_min;
out_bounding_region_max = in_bounding_region_max;
out_uv = mix(in_sprite_region_min, in_sprite_region_max, in_uv) / in_atlas_size;
out_screen_px = gl_Position.xy;
out_width = in_width;
}
|