[Bf-blender-cvs] [5ec6982a829] blender2.8: Draw Manager: Fix instancing.

Clément Foucault noreply at git.blender.org
Thu May 18 01:53:18 CEST 2017


Commit: 5ec6982a8291bb7988f7a67fb540d85af277e4c9
Author: Clément Foucault
Date:   Wed May 17 20:24:20 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB5ec6982a8291bb7988f7a67fb540d85af277e4c9

Draw Manager: Fix instancing.

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

M	source/blender/draw/intern/draw_manager.c

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

diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index fa8d07cab91..e787d77819b 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1113,7 +1113,6 @@ static void shgroup_dynamic_instance(DRWShadingGroup *shgroup)
 	int i = 0;
 	int offset = 0;
 	DRWInterface *interface = shgroup->interface;
-	int instance_ct = interface->instance_count;
 	int buffer_size = 0;
 
 	/* XXX All of this is pretty garbage. Better revisit it later. */
@@ -1128,7 +1127,7 @@ static void shgroup_dynamic_instance(DRWShadingGroup *shgroup)
 		interface->instance_count = vert->vertex_ct;
 	}
 
-	if (instance_ct == 0) {
+	if (interface->instance_count == 0) {
 		if (interface->instance_vbo) {
 			glDeleteBuffers(1, &interface->instance_vbo);
 			interface->instance_vbo = 0;
@@ -1152,7 +1151,7 @@ static void shgroup_dynamic_instance(DRWShadingGroup *shgroup)
 	}
 
 	/* Gather Data */
-	buffer_size = sizeof(float) * interface->attribs_stride * instance_ct;
+	buffer_size = sizeof(float) * interface->attribs_stride * interface->instance_count;
 	float *data = MEM_mallocN(buffer_size, "Instance VBO data");
 
 	for (DRWCallDynamic *call = shgroup->calls.first; call; call = call->head.next) {




More information about the Bf-blender-cvs mailing list