cursor;
SDL_Cursor *cursor_map[ k_ui_cursor_max ];
+
+ v4f colour;
}
static vg_ui = {
.scheme = {
[ k_ui_purple + k_ui_brighter ] = UI_RGB( 0xd3869b ),
[ k_ui_gray + k_ui_brighter ] = UI_RGB( 0xa89984 ),
},
- .font = &vg_ui_font_small
+ .font = &vg_ui_font_small,
+ .colour = {1.0f,1.0f,1.0f,1.0f}
};
static struct vg_shader _shader_ui =
.orig_file = NULL,
.static_src =
"uniform sampler2D uTexGlyphs;"
+ "uniform vec4 uColour;"
"out vec4 FragColor;"
""
"in vec2 aTexCoords;"
"diffuse.a = texture( uTexGlyphs, aTexCoords ).r;"
"}"
- "FragColor = diffuse;"
+ "FragColor = diffuse * uColour;"
"}"
}
};
.orig_file = NULL,
.static_src =
"uniform sampler2D uTexImage;"
+ "uniform vec4 uColour;"
"out vec4 FragColor;"
"in vec2 aTexCoords;"
"void main()"
"{"
"vec4 colour = texture( uTexImage, aTexCoords );"
- "FragColor = colour;"
+ "FragColor = colour * uColour;"
"}"
}
};
glUniformMatrix3fv( glGetUniformLocation( _shader_ui.id, "uPv" ), 1,
GL_FALSE, (float *)view );
+ glUniform4fv( glGetUniformLocation( _shader_ui.id, "uColour" ), 1,
+ vg_ui.colour );
glActiveTexture( GL_TEXTURE0 );
glBindTexture( GL_TEXTURE_2D, vg_ui.tex_glyphs );
glUniformMatrix3fv( glGetUniformLocation( _shader_ui_image.id, "uPv" ), 1,
GL_FALSE, (float *)view );
glUniform1i( glGetUniformLocation(_shader_ui_image.id,"uTexImage"), 0 );
+ glUniform4fv( glGetUniformLocation( _shader_ui_image.id, "uColour" ), 1,
+ vg_ui.colour );
}
else
vg_fatal_error( "Invalid UI shader (%d)\n", shader );