@@ -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