Graphics: Change Vertex color to 4 components.
This commit is contained in:
parent
edfc5298e1
commit
8675018522
7 changed files with 12 additions and 12 deletions
|
|
@ -3,7 +3,7 @@
|
|||
uniform mat4 u_MVP;
|
||||
|
||||
layout(location = 0) in vec3 in_pos;
|
||||
layout(location = 3) in vec3 in_color;
|
||||
layout(location = 3) in vec4 in_color;
|
||||
layout(location = 8) in vec2 in_texcoord;
|
||||
|
||||
out vec4 vColor;
|
||||
|
|
@ -13,7 +13,7 @@ void main(void) {
|
|||
|
||||
gl_Position = u_MVP * vec4(in_pos, 1.0);
|
||||
|
||||
vColor = vec4(in_color, 1.0);
|
||||
vColor = in_color;
|
||||
|
||||
// in_texcoord is defined with (0,0) at top-left (same as in_pos)
|
||||
// however, sampling in OpenGL expects bottom-left. So we must flip Y.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ uniform mat4 u_MVP;
|
|||
uniform sampler2D u_tex0;
|
||||
|
||||
layout (location = 0) in vec2 in_pos;
|
||||
layout (location = 3) in vec3 in_color;
|
||||
layout (location = 3) in vec4 in_color;
|
||||
layout (location = 8) in vec2 in_texCoords;
|
||||
|
||||
out vec2 vTexCoords;
|
||||
|
|
@ -17,5 +17,5 @@ void main() {
|
|||
// Texture coordinates are in pixels.
|
||||
// Need to convert into UV space before passing to fragment shader.
|
||||
vTexCoords = in_texCoords / textureSize(u_tex0, 0);
|
||||
vColor = vec4(in_color, 1.0);
|
||||
vColor = in_color;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#define SPECTRE_GRAPHICS_VERTEX2D_H
|
||||
|
||||
#include <Spectre/Math/Vector2.h>
|
||||
#include <Spectre/Math/Vector3.h>
|
||||
#include <Spectre/Math/Vector4.h>
|
||||
|
||||
// Based on https://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/attributes.php
|
||||
enum VertexAttrib
|
||||
|
|
@ -18,13 +18,13 @@ enum VertexAttrib
|
|||
struct Vertex2D
|
||||
{
|
||||
Vector2f position;
|
||||
Vector3f color;
|
||||
Vector4f color;
|
||||
Vector2f uv;
|
||||
|
||||
Vertex2D();
|
||||
Vertex2D(Vector2f pos);
|
||||
Vertex2D(Vector2f pos, Vector2f uv);
|
||||
Vertex2D(Vector2f pos, Vector3f color, Vector2f uv = 0.0f);
|
||||
Vertex2D(Vector2f pos, Vector4f color, Vector2f uv = 0.0f);
|
||||
};
|
||||
|
||||
#endif /* SPECTRE_GRAPHICS_VERTEX2D_H */
|
||||
|
|
|
|||
|
|
@ -130,10 +130,10 @@ void BatchRenderer2D::render()
|
|||
|
||||
// Setup color
|
||||
glEnableVertexAttribArray(VertexAttribColor0);
|
||||
glVertexAttribPointer(VertexAttribColor0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex2D), (void*) 8);
|
||||
glVertexAttribPointer(VertexAttribColor0, 4, GL_FLOAT, GL_FALSE, sizeof(Vertex2D), (void*) 8);
|
||||
|
||||
glEnableVertexAttribArray(VertexAttribTexCoord0);
|
||||
glVertexAttribPointer(VertexAttribTexCoord0, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex2D), (void*) 20);
|
||||
glVertexAttribPointer(VertexAttribTexCoord0, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex2D), (void*) 24);
|
||||
|
||||
// Set shader uniforms.
|
||||
m_textShader.enable();
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ void Sprite::setSize(vec2f size)
|
|||
|
||||
void Sprite::setColor(const Color& color)
|
||||
{
|
||||
m_vertices[0].color = color.toRGBf();
|
||||
m_vertices[0].color = color.toRGBAf();
|
||||
m_vertices[1].color = m_vertices[0].color;
|
||||
m_vertices[2].color = m_vertices[0].color;
|
||||
m_vertices[3].color = m_vertices[0].color;
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ void Text::updateGeometry() const
|
|||
{
|
||||
Vector2f origin;
|
||||
Vector2f size = getSize();
|
||||
Vector3f color = getColor().toRGBf();
|
||||
Vector4f color = getColor().toRGBAf();
|
||||
|
||||
m_vertices.clear();
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ uv (_uv)
|
|||
{
|
||||
}
|
||||
|
||||
Vertex2D::Vertex2D(Vector2f _pos, Vector3f _color, Vector2f _uv) :
|
||||
Vertex2D::Vertex2D(Vector2f _pos, Vector4f _color, Vector2f _uv) :
|
||||
position (_pos),
|
||||
color (_color),
|
||||
uv (_uv)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue