-
-
Notifications
You must be signed in to change notification settings - Fork 991
/
default.vert
41 lines (36 loc) · 1.08 KB
/
default.vert
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
#version 130
// Make sure to keep this in sync with sdl/shader.hpp and default.frag!
#define EFFECT_FLIP 1
#define EFFECT_FLOP 2
#define EFFECT_GRAYSCALE 4
// Required by SDL_gpu
attribute vec4 vert_draw_color;
attribute vec3 vert_vertex;
attribute vec2 vert_texture_pos;
attribute vec4 vert_color_mod;
attribute float vert_submerge;
attribute int vert_effects;
uniform mat4 model_view_proj;
out vec4 frag_color_mod;
out vec2 frag_texture_pos;
out vec2 frag_overlay_pos;
out float frag_submerge;
out vec4 frag_draw_color;
flat out int frag_effects;
void main()
{
frag_texture_pos = vert_texture_pos;
if ((vert_effects & EFFECT_FLIP) != 0) {
frag_texture_pos.x = 1 - vert_texture_pos.x;
}
if ((vert_effects & EFFECT_FLOP) != 0) {
frag_texture_pos.y = 1 - vert_texture_pos.y;
}
frag_color_mod = vert_color_mod;
frag_draw_color = vert_draw_color;
frag_submerge = vert_submerge;
frag_effects = vert_effects;
gl_Position = model_view_proj * vec4(vert_vertex, 1.0);
frag_overlay_pos = vec4(model_view_proj * vec4(vert_vertex, 1.0)).xy/2 + 0.5;
frag_overlay_pos.y = 1 - frag_overlay_pos.y;
}