Skip to content

Commit 654cf84

Browse files
determine drawing mode by IBO count_per_element
1 parent f8adb12 commit 654cf84

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

include/pangolin/gl/glvbo.h

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,12 @@ inline void RenderVboIbo(GlBuffer& vbo, GlBuffer& ibo, bool draw_mesh)
127127

128128
if(draw_mesh) {
129129
ibo.Bind();
130-
glDrawElements(GL_TRIANGLES, ibo.num_elements*ibo.count_per_element, ibo.datatype, 0);
130+
if(ibo.count_per_element==1) {
131+
glDrawElements(GL_TRIANGLE_STRIP,ibo.num_elements, ibo.datatype, 0);
132+
}
133+
else {
134+
glDrawElements(GL_TRIANGLES,ibo.num_elements*ibo.count_per_element, ibo.datatype, 0);
135+
}
131136
ibo.Unbind();
132137
}else{
133138
glDrawArrays(GL_POINTS, 0, vbo.num_elements);
@@ -173,7 +178,12 @@ inline void RenderVboIboCboNbo(GlBuffer& vbo, GlBuffer& ibo, GlBuffer& cbo, GlBu
173178

174179
if(draw_mesh) {
175180
ibo.Bind();
176-
glDrawElements(GL_TRIANGLE_STRIP,ibo.num_elements, ibo.datatype, 0);
181+
if(ibo.count_per_element==1) {
182+
glDrawElements(GL_TRIANGLE_STRIP,ibo.num_elements, ibo.datatype, 0);
183+
}
184+
else {
185+
glDrawElements(GL_TRIANGLES,ibo.num_elements*ibo.count_per_element, ibo.datatype, 0);
186+
}
177187
ibo.Unbind();
178188
}else{
179189
glDrawArrays(GL_POINTS, 0, vbo.num_elements);
@@ -207,7 +217,12 @@ inline void RenderVboIboNbo(GlBuffer& vbo, GlBuffer& ibo, GlBuffer& nbo, bool dr
207217

208218
if(draw_mesh) {
209219
ibo.Bind();
210-
glDrawElements(GL_TRIANGLE_STRIP,ibo.num_elements, ibo.datatype, 0);
220+
if(ibo.count_per_element==1) {
221+
glDrawElements(GL_TRIANGLE_STRIP,ibo.num_elements, ibo.datatype, 0);
222+
}
223+
else {
224+
glDrawElements(GL_TRIANGLES,ibo.num_elements*ibo.count_per_element, ibo.datatype, 0);
225+
}
211226
ibo.Unbind();
212227
}else{
213228
glDrawArrays(GL_POINTS, 0, vbo.num_elements);

0 commit comments

Comments
 (0)