wesnoth/data/shaders/default.vert
2014-08-12 00:30:16 +02:00

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;
}