1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:27:35 +00:00

LibGL: Fix glTexCoord behaviour

glTexCoord should behave like glColor. It only updates a gl context
variable that contains the current texture coordinates. The vertex is
only actually created once glVertex is called.
This commit is contained in:
Stephan Unverwerth 2021-08-16 15:13:19 +02:00 committed by Andreas Kling
parent b6373c2aba
commit 5e27da20f4
3 changed files with 11 additions and 11 deletions

View file

@ -69,6 +69,9 @@ void Mesh::draw(float uv_scale)
glBegin(GL_TRIANGLES);
glColor4f(color.x(), color.y(), color.z(), color.w());
if (is_textured())
glTexCoord2f(m_tex_coords.at(m_triangle_list[i].tex_coord_index0).u * uv_scale, (1.0f - m_tex_coords.at(m_triangle_list[i].tex_coord_index0).v) * uv_scale);
// Vertex 1
glVertex3f(
m_vertex_list.at(m_triangle_list[i].a).x,
@ -76,7 +79,7 @@ void Mesh::draw(float uv_scale)
m_vertex_list.at(m_triangle_list[i].a).z);
if (is_textured())
glTexCoord2f(m_tex_coords.at(m_triangle_list[i].tex_coord_index0).u * uv_scale, (1.0f - m_tex_coords.at(m_triangle_list[i].tex_coord_index0).v) * uv_scale);
glTexCoord2f(m_tex_coords.at(m_triangle_list[i].tex_coord_index1).u * uv_scale, (1.0f - m_tex_coords.at(m_triangle_list[i].tex_coord_index1).v) * uv_scale);
// Vertex 2
glVertex3f(
@ -85,7 +88,7 @@ void Mesh::draw(float uv_scale)
m_vertex_list.at(m_triangle_list[i].b).z);
if (is_textured())
glTexCoord2f(m_tex_coords.at(m_triangle_list[i].tex_coord_index1).u * uv_scale, (1.0f - m_tex_coords.at(m_triangle_list[i].tex_coord_index1).v) * uv_scale);
glTexCoord2f(m_tex_coords.at(m_triangle_list[i].tex_coord_index2).u * uv_scale, (1.0f - m_tex_coords.at(m_triangle_list[i].tex_coord_index2).v) * uv_scale);
// Vertex 3
glVertex3f(
@ -93,9 +96,6 @@ void Mesh::draw(float uv_scale)
m_vertex_list.at(m_triangle_list[i].c).y,
m_vertex_list.at(m_triangle_list[i].c).z);
if (is_textured())
glTexCoord2f(m_tex_coords.at(m_triangle_list[i].tex_coord_index2).u * uv_scale, (1.0f - m_tex_coords.at(m_triangle_list[i].tex_coord_index2).v) * uv_scale);
glEnd();
}
}