mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 23:17:45 +00:00
LibGL: Fix GL_TRIANGLE_STRIP
rendering only half its triangles
According to the documentation, we should switch around vertices every other triangle to prevent front-face culling from removing them. This allows Tux in Tux Racer to render correctly.
This commit is contained in:
parent
b455e6ca0d
commit
60fa921daa
1 changed files with 9 additions and 3 deletions
|
@ -565,9 +565,15 @@ void Device::draw_primitives(PrimitiveType primitive_type, FloatMatrix4x4 const&
|
|||
} else if (primitive_type == PrimitiveType::TriangleStrip) {
|
||||
Triangle triangle;
|
||||
for (size_t i = 0; i < vertices.size() - 2; i++) {
|
||||
triangle.vertices[0] = vertices.at(i);
|
||||
triangle.vertices[1] = vertices.at(i + 1);
|
||||
triangle.vertices[2] = vertices.at(i + 2);
|
||||
if (i % 2 == 0) {
|
||||
triangle.vertices[0] = vertices.at(i);
|
||||
triangle.vertices[1] = vertices.at(i + 1);
|
||||
triangle.vertices[2] = vertices.at(i + 2);
|
||||
} else {
|
||||
triangle.vertices[0] = vertices.at(i + 1);
|
||||
triangle.vertices[1] = vertices.at(i);
|
||||
triangle.vertices[2] = vertices.at(i + 2);
|
||||
}
|
||||
m_triangle_list.append(triangle);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue