Add FlatProgram and RectProgram.
This commit is contained in:
parent
e215485293
commit
23cfdb1273
@ -8,8 +8,12 @@ import jes.gui.font;
|
|||||||
class Gui
|
class Gui
|
||||||
{
|
{
|
||||||
jtk.Window[] m_windows;
|
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 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;
|
TextProgram m_text_program;
|
||||||
|
RectProgram m_rect_program;
|
||||||
int width;
|
int width;
|
||||||
int height;
|
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()
|
private void load()
|
||||||
{
|
{
|
||||||
static bool loaded = false;
|
static bool loaded = false;
|
||||||
if (!loaded)
|
if (!loaded)
|
||||||
{
|
{
|
||||||
auto v_shader = new gltk.Shader(GL_VERTEX_SHADER);
|
m_flat_program = new FlatProgram(
|
||||||
v_shader.set_source_from_file("share/jes/shaders/text.v.glsl");
|
build_shader(GL_VERTEX_SHADER, "share/jes/shaders/flat.v.glsl"),
|
||||||
auto f_shader = new gltk.Shader(GL_FRAGMENT_SHADER);
|
build_shader(GL_FRAGMENT_SHADER, "share/jes/shaders/flat.f.glsl"),
|
||||||
f_shader.set_source_from_file("share/jes/shaders/text.f.glsl");
|
"coords", 0);
|
||||||
m_text_program = new TextProgram(v_shader, f_shader, "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);
|
glActiveTexture(GL_TEXTURE0);
|
||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user