create a second GLSL program for testing drawing the logo
This commit is contained in:
parent
f328282289
commit
e84a0f17a4
30
src/gss.d
30
src/gss.d
@ -11,9 +11,14 @@ enum int WIDTH = 1920;
|
|||||||
enum int HEIGHT = 1080;
|
enum int HEIGHT = 1080;
|
||||||
|
|
||||||
GLint position_idx;
|
GLint position_idx;
|
||||||
|
GLint position2_idx;
|
||||||
GLint color_idx;
|
GLint color_idx;
|
||||||
GLint view_idx;
|
GLint view_idx;
|
||||||
|
GLint view2_idx;
|
||||||
mat4 view_matrix;
|
mat4 view_matrix;
|
||||||
|
Shader program;
|
||||||
|
Shader program2;
|
||||||
|
VAO vao;
|
||||||
|
|
||||||
void init()
|
void init()
|
||||||
{
|
{
|
||||||
@ -38,10 +43,27 @@ fragment:
|
|||||||
gl_FragColor = vec4(color_i, 1.0);
|
gl_FragColor = vec4(color_i, 1.0);
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
VAO vao = new VAO();
|
immutable string shader2_src = `
|
||||||
Shader program = new Shader("program", shader_src);
|
vertex:
|
||||||
|
uniform mat4 view;
|
||||||
|
in vec2 position;
|
||||||
|
void main(void)
|
||||||
|
{
|
||||||
|
gl_Position = view * vec4(position, 0.0, 1.0);
|
||||||
|
}
|
||||||
|
fragment:
|
||||||
|
void main(void)
|
||||||
|
{
|
||||||
|
gl_FragColor = vec4(0, 0.3, 0.8, 1.0);
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
vao = new VAO();
|
||||||
|
vao.bind();
|
||||||
|
program = new Shader("program", shader_src);
|
||||||
|
program2 = new Shader("program2", shader2_src);
|
||||||
program.bind();
|
program.bind();
|
||||||
position_idx = program.get_attrib_location("position");
|
position_idx = program.get_attrib_location("position");
|
||||||
|
position2_idx = program2.get_attrib_location("position");
|
||||||
color_idx = program.get_attrib_location("color");
|
color_idx = program.get_attrib_location("color");
|
||||||
float[] vertices = [0.4, 0.4, -0.4, 0.4, -0.4, -0.4, 0.4, -0.4];
|
float[] vertices = [0.4, 0.4, -0.4, 0.4, -0.4, -0.4, 0.4, -0.4];
|
||||||
float[] colors = [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0];
|
float[] colors = [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0];
|
||||||
@ -57,6 +79,7 @@ fragment:
|
|||||||
ElementBuffer ibo = new ElementBuffer(indices);
|
ElementBuffer ibo = new ElementBuffer(indices);
|
||||||
ibo.bind();
|
ibo.bind();
|
||||||
view_idx = program.get_uniform_location("view");
|
view_idx = program.get_uniform_location("view");
|
||||||
|
view2_idx = program2.get_uniform_location("view");
|
||||||
}
|
}
|
||||||
|
|
||||||
void display(SDL_Window * window)
|
void display(SDL_Window * window)
|
||||||
@ -66,6 +89,9 @@ void display(SDL_Window * window)
|
|||||||
view_matrix.make_identity();
|
view_matrix.make_identity();
|
||||||
view_matrix.rotatez(SDL_GetTicks() / 500.0);
|
view_matrix.rotatez(SDL_GetTicks() / 500.0);
|
||||||
view_matrix.scale(HEIGHT / cast(float)WIDTH, 1.0, 1.0);
|
view_matrix.scale(HEIGHT / cast(float)WIDTH, 1.0, 1.0);
|
||||||
|
|
||||||
|
program.bind();
|
||||||
|
vao.bind();
|
||||||
glUniformMatrix4fv(view_idx, 1, GL_TRUE, view_matrix.value_ptr);
|
glUniformMatrix4fv(view_idx, 1, GL_TRUE, view_matrix.value_ptr);
|
||||||
glDrawElements(GL_TRIANGLE_FAN, 4, GL_UNSIGNED_SHORT, null);
|
glDrawElements(GL_TRIANGLE_FAN, 4, GL_UNSIGNED_SHORT, null);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user