GL_FRAGMENT_SHADER,
"#version 330 core\n"
- "uniform vec3 fg_color;\n"
+ "uniform vec4 fg_color;\n"
- "out vec3 color;\n"
+ "out vec4 color;\n"
"void main() {\n"
"color = fg_color;\n"
vao.ReserveAttributes(4, GL_STATIC_DRAW);
{
auto attrib = vao.MapAttributes(GL_WRITE_ONLY);
- attrib[0].position = glm::vec3(-1.0f, -1.0f, 0.0f);
- attrib[1].position = glm::vec3(-1.0f, 1.0f, 0.0f);
- attrib[2].position = glm::vec3( 1.0f, -1.0f, 0.0f);
- attrib[3].position = glm::vec3( 1.0f, 1.0f, 0.0f);
+ attrib[0].position = glm::vec3(-0.5f, -0.5f, 0.0f);
+ attrib[1].position = glm::vec3(-0.5f, 0.5f, 0.0f);
+ attrib[2].position = glm::vec3( 0.5f, -0.5f, 0.0f);
+ attrib[3].position = glm::vec3( 0.5f, 0.5f, 0.0f);
}
vao.BindElements();
vao.ReserveElements(7, GL_STATIC_DRAW);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glEnable(GL_CULL_FACE);
- glDisable(GL_BLEND);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
void PlainColor::SetM(const glm::mat4 &mm) noexcept {
prog.Uniform(mvp_handle, mvp);
}
-void PlainColor::SetColor(const glm::vec3 &color) noexcept {
+void PlainColor::SetColor(const glm::vec4 &color) noexcept {
prog.Uniform(fg_color_handle, color);
}
vao.ReserveAttributes(4, GL_STATIC_DRAW);
{
auto attrib = vao.MapAttributes(GL_WRITE_ONLY);
- attrib[0].position = glm::vec3(-1.0f, -1.0f, 0.0f);
+ attrib[0].position = glm::vec3(-0.5f, -0.5f, 0.0f);
attrib[0].texture = glm::vec2(0.0f, 0.0f);
- attrib[1].position = glm::vec3(-1.0f, 1.0f, 0.0f);
+ attrib[1].position = glm::vec3(-0.5f, 0.5f, 0.0f);
attrib[1].texture = glm::vec2(0.0f, 1.0f);
- attrib[2].position = glm::vec3( 1.0f, -1.0f, 0.0f);
+ attrib[2].position = glm::vec3( 0.5f, -0.5f, 0.0f);
attrib[2].texture = glm::vec2(1.0f, 0.0f);
- attrib[3].position = glm::vec3( 1.0f, 1.0f, 0.0f);
+ attrib[3].position = glm::vec3( 0.5f, 0.5f, 0.0f);
attrib[3].texture = glm::vec2(1.0f, 1.0f);
}
vao.BindElements();