[Bf-blender-cvs] [b071ac3] blender2.8: Gawain: allow immBeginAtMost, immEnd with no vertices

Mike Erwin noreply at git.blender.org
Sat Oct 8 05:51:13 CEST 2016


Commit: b071ac315cb7f068372073d6f5bae6e771a5d860
Author: Mike Erwin
Date:   Fri Oct 7 21:09:03 2016 -0400
Branches: blender2.8
https://developer.blender.org/rBb071ac315cb7f068372073d6f5bae6e771a5d860

Gawain: allow immBeginAtMost, immEnd with no vertices

The whole point of BeginAtMost is to avoid counting before drawing. Sometimes the uncounted count is zero, and that's ok!

===================================================================

M	source/blender/gpu/gawain/immediate.c

===================================================================

diff --git a/source/blender/gpu/gawain/immediate.c b/source/blender/gpu/gawain/immediate.c
index 5be7372..3849453 100644
--- a/source/blender/gpu/gawain/immediate.c
+++ b/source/blender/gpu/gawain/immediate.c
@@ -320,7 +320,7 @@ void immEnd()
 		{
 #if TRUST_NO_ONE
 		assert(imm.vertex_idx <= imm.vertex_ct);
-		assert(vertex_count_makes_sense_for_primitive(imm.vertex_idx, imm.primitive));
+		assert(imm.vertex_idx == 0 || vertex_count_makes_sense_for_primitive(imm.vertex_idx, imm.primitive));
 #endif
 		// printf("used %u of %u verts,", imm.vertex_idx, imm.vertex_ct);
 		imm.vertex_ct = imm.vertex_idx;
@@ -351,9 +351,11 @@ void immEnd()
 #endif
 		glUnmapBuffer(GL_ARRAY_BUFFER);
 
-		immDrawSetup();
-
-		glDrawArrays(imm.primitive, 0, imm.vertex_ct);
+		if (imm.vertex_ct > 0)
+			{
+			immDrawSetup();
+			glDrawArrays(imm.primitive, 0, imm.vertex_ct);
+			}
 
 		glBindBuffer(GL_ARRAY_BUFFER, 0);
 		glBindVertexArray(0);




More information about the Bf-blender-cvs mailing list