41 lines
1.1 KiB
GLSL
41 lines
1.1 KiB
GLSL
#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;
|
|
}
|