Add FlatProgram and RectProgram.
This commit is contained in:
parent
e215485293
commit
23cfdb1273
@ -8,8 +8,12 @@ import jes.gui.font;
|
||||
class Gui
|
||||
{
|
||||
jtk.Window[] m_windows;
|
||||
alias FlatProgram = gltk.Program!("viewport_size", "2i", "color", "4f", "position", "2i");
|
||||
alias TextProgram = gltk.Program!("viewport_size", "2i", "texture", "1i", "color", "4f", "position", "2i");
|
||||
alias RectProgram = gltk.Program!("viewport_size", "2i", "color", "4f", "position", "2i", "size", "2i");
|
||||
FlatProgram m_flat_program;
|
||||
TextProgram m_text_program;
|
||||
RectProgram m_rect_program;
|
||||
int width;
|
||||
int height;
|
||||
|
||||
@ -35,16 +39,30 @@ class Gui
|
||||
}
|
||||
}
|
||||
|
||||
private gltk.Shader build_shader(GLenum shader_type, string filename)
|
||||
{
|
||||
auto shader = new gltk.Shader(shader_type);
|
||||
shader.set_source_from_file(filename);
|
||||
return shader;
|
||||
}
|
||||
|
||||
private void load()
|
||||
{
|
||||
static bool loaded = false;
|
||||
if (!loaded)
|
||||
{
|
||||
auto v_shader = new gltk.Shader(GL_VERTEX_SHADER);
|
||||
v_shader.set_source_from_file("share/jes/shaders/text.v.glsl");
|
||||
auto f_shader = new gltk.Shader(GL_FRAGMENT_SHADER);
|
||||
f_shader.set_source_from_file("share/jes/shaders/text.f.glsl");
|
||||
m_text_program = new TextProgram(v_shader, f_shader, "coords", 0);
|
||||
m_flat_program = new FlatProgram(
|
||||
build_shader(GL_VERTEX_SHADER, "share/jes/shaders/flat.v.glsl"),
|
||||
build_shader(GL_FRAGMENT_SHADER, "share/jes/shaders/flat.f.glsl"),
|
||||
"coords", 0);
|
||||
m_text_program = new TextProgram(
|
||||
build_shader(GL_VERTEX_SHADER, "share/jes/shaders/text.v.glsl"),
|
||||
build_shader(GL_FRAGMENT_SHADER, "share/jes/shaders/text.f.glsl"),
|
||||
"coords", 0);
|
||||
m_rect_program = new RectProgram(
|
||||
build_shader(GL_VERTEX_SHADER, "share/jes/shaders/rect.v.glsl"),
|
||||
build_shader(GL_FRAGMENT_SHADER, "share/jes/shaders/rect.f.glsl"),
|
||||
"coords", 0);
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
Loading…
x
Reference in New Issue
Block a user