1 #ifndef SHADER_tile_colour_H
2 #define SHADER_tile_colour_H
3 static void shader_tile_colour_link(void);
4 static void shader_tile_colour_register(void);
5 static struct vg_shader _shader_tile_colour
= {
7 .link
= shader_tile_colour_link
,
10 .orig_file
= "shaders/tile_colour.vs.glsl",
12 "layout (location=0) in vec2 a_co;\n"
14 "uniform vec3 uOffset;\n"
17 " gl_Position = vec4( uPv * vec3( a_co * uOffset.z + uOffset.xy, 1.0 ), 1.0 );\n"
22 .orig_file
= "shaders/tile_colour.fs.glsl",
24 "out vec4 FragColor;\n"
25 "uniform vec4 uColour;\n"
27 " FragColor = uColour;\n"
32 static GLuint _uniform_tile_colour_uPv
;
33 static GLuint _uniform_tile_colour_uOffset
;
34 static GLuint _uniform_tile_colour_uColour
;
35 static void shader_tile_colour_uPv(m3x3f m
){
36 glUniformMatrix3fv(_uniform_tile_colour_uPv
,1,GL_FALSE
,(float*)m
);
38 static void shader_tile_colour_uOffset(v3f
const v
){
39 glUniform3fv(_uniform_tile_colour_uOffset
,1,v
);
41 static void shader_tile_colour_uColour(v4f
const v
){
42 glUniform4fv(_uniform_tile_colour_uColour
,1,v
);
44 static void shader_tile_colour_register(void){
45 vg_shader_register( &_shader_tile_colour
);
47 static void shader_tile_colour_use(void){ glUseProgram(_shader_tile_colour
.id
); }
48 static void shader_tile_colour_link(void){
49 _uniform_tile_colour_uPv
= glGetUniformLocation( _shader_tile_colour
.id
, "uPv" );
50 _uniform_tile_colour_uOffset
= glGetUniformLocation( _shader_tile_colour
.id
, "uOffset" );
51 _uniform_tile_colour_uColour
= glGetUniformLocation( _shader_tile_colour
.id
, "uColour" );
53 #endif /* SHADER_tile_colour_H */