Explorar o código

Merge pull request #998 from sanikoyes/Pr-fix-gles2-canvas_draw_polygon

Fix RasterizerGLES2::canvas_draw_polygon can't work correct at some devi...
Juan Linietsky %!s(int64=10) %!d(string=hai) anos
pai
achega
7a5a4d135e
Modificáronse 1 ficheiros con 8 adicións e 1 borrados
  1. 8 1
      drivers/gles2/rasterizer_gles2.cpp

+ 8 - 1
drivers/gles2/rasterizer_gles2.cpp

@@ -8189,7 +8189,14 @@ void RasterizerGLES2::canvas_draw_polygon(int p_vertex_count, const int* p_indic
 
 
 	if (p_indices) {
 	if (p_indices) {
 
 
-		glDrawElements(GL_TRIANGLES, p_vertex_count, GL_UNSIGNED_INT, p_indices );
+		static const int _max_draw_poly_indices = 8*1024; // change this size if needed!!!
+		ERR_FAIL_COND(p_vertex_count > _max_draw_poly_indices);
+		static uint16_t _draw_poly_indices[_max_draw_poly_indices];
+		for (int i=0; i<p_vertex_count; i++) {
+			_draw_poly_indices[i] = p_indices[i];
+		};
+		glDrawElements(GL_TRIANGLES, p_vertex_count, GL_UNSIGNED_SHORT, _draw_poly_indices );
+		//glDrawElements(GL_TRIANGLES, p_vertex_count, GL_UNSIGNED_INT, p_indices );
 	} else {
 	} else {
 		glDrawArrays(GL_TRIANGLES,0,p_vertex_count);
 		glDrawArrays(GL_TRIANGLES,0,p_vertex_count);
 	}
 	}