[Bf-blender-cvs] [e83cee73eba] blender2.8: Draw manager: Pass object to hair batch cache

Sergey Sharybin noreply at git.blender.org
Tue May 15 17:21:38 CEST 2018


Commit: e83cee73eba8b327cf9875684a6d77bf26ac4942
Author: Sergey Sharybin
Date:   Tue May 15 12:38:49 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBe83cee73eba8b327cf9875684a6d77bf26ac4942

Draw manager: Pass object to hair batch cache

Currently unused, but is required for an upcoming work.

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

M	source/blender/draw/engines/basic/basic_engine.c
M	source/blender/draw/engines/clay/clay_engine.c
M	source/blender/draw/engines/eevee/eevee_materials.c
M	source/blender/draw/engines/workbench/workbench_materials.c
M	source/blender/draw/intern/draw_cache.c
M	source/blender/draw/intern/draw_cache.h
M	source/blender/draw/intern/draw_cache_impl.h
M	source/blender/draw/intern/draw_cache_impl_particles.c

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

diff --git a/source/blender/draw/engines/basic/basic_engine.c b/source/blender/draw/engines/basic/basic_engine.c
index fe368872d48..1a1a3bd7af4 100644
--- a/source/blender/draw/engines/basic/basic_engine.c
+++ b/source/blender/draw/engines/basic/basic_engine.c
@@ -159,7 +159,7 @@ static void basic_cache_populate(void *vedata, Object *ob)
 		ParticleSettings *part = psys->part;
 		const int draw_as = (part->draw_as == PART_DRAW_REND) ? part->ren_as : part->draw_as;
 		if (draw_as == PART_DRAW_PATH) {
-			struct Gwn_Batch *hairs = DRW_cache_particles_get_hair(psys, NULL);
+			struct Gwn_Batch *hairs = DRW_cache_particles_get_hair(ob, psys, NULL);
 			DRW_shgroup_call_add(stl->g_data->depth_shgrp, hairs, NULL);
 		}
 	}
diff --git a/source/blender/draw/engines/clay/clay_engine.c b/source/blender/draw/engines/clay/clay_engine.c
index 2be914cb234..78d2d7b344c 100644
--- a/source/blender/draw/engines/clay/clay_engine.c
+++ b/source/blender/draw/engines/clay/clay_engine.c
@@ -843,7 +843,7 @@ static void clay_cache_populate_particles(void *vedata, Object *ob)
 		ParticleSettings *part = psys->part;
 		const int draw_as = (part->draw_as == PART_DRAW_REND) ? part->ren_as : part->draw_as;
 		if (draw_as == PART_DRAW_PATH) {
-			struct Gwn_Batch *geom = DRW_cache_particles_get_hair(psys, NULL);
+			struct Gwn_Batch *geom = DRW_cache_particles_get_hair(ob, psys, NULL);
 			DRWShadingGroup *hair_shgrp = CLAY_hair_shgrp_get(vedata, ob, stl, psl);
 			DRW_shgroup_call_add(hair_shgrp, geom, NULL);
 		}
diff --git a/source/blender/draw/engines/eevee/eevee_materials.c b/source/blender/draw/engines/eevee/eevee_materials.c
index 44a117ab9d3..6f8b233d0ea 100644
--- a/source/blender/draw/engines/eevee/eevee_materials.c
+++ b/source/blender/draw/engines/eevee/eevee_materials.c
@@ -1490,7 +1490,7 @@ void EEVEE_materials_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sld
 				if (draw_as != PART_DRAW_PATH) {
 					continue;
 				}
-				struct Gwn_Batch *hair_geom = DRW_cache_particles_get_hair(psys, md);
+				struct Gwn_Batch *hair_geom = DRW_cache_particles_get_hair(ob, psys, md);
 				DRWShadingGroup *shgrp = NULL;
 				Material *ma = give_current_material(ob, part->omat);
 
diff --git a/source/blender/draw/engines/workbench/workbench_materials.c b/source/blender/draw/engines/workbench/workbench_materials.c
index 1013623260c..743f21eda30 100644
--- a/source/blender/draw/engines/workbench/workbench_materials.c
+++ b/source/blender/draw/engines/workbench/workbench_materials.c
@@ -506,7 +506,7 @@ static void workbench_cache_populate_particles(WORKBENCH_Data *vedata, Object *o
 		unit_m4(mat);
 
 		if (draw_as == PART_DRAW_PATH) {
-			struct Gwn_Batch *geom = DRW_cache_particles_get_hair(psys, NULL);
+			struct Gwn_Batch *geom = DRW_cache_particles_get_hair(ob, psys, NULL);
 			WORKBENCH_MaterialData *material = get_or_create_material_data(vedata, ob, NULL, NULL, OB_SOLID);
 			DRW_shgroup_call_add(material->shgrp, geom, mat);
 		}
diff --git a/source/blender/draw/intern/draw_cache.c b/source/blender/draw/intern/draw_cache.c
index 28153505051..639e4edb32f 100644
--- a/source/blender/draw/intern/draw_cache.c
+++ b/source/blender/draw/intern/draw_cache.c
@@ -2876,9 +2876,9 @@ Gwn_Batch *DRW_cache_lattice_vert_overlay_get(Object *ob)
 /** \name Particles
  * \{ */
 
-Gwn_Batch *DRW_cache_particles_get_hair(ParticleSystem *psys, ModifierData *md)
+Gwn_Batch *DRW_cache_particles_get_hair(Object *object, ParticleSystem *psys, ModifierData *md)
 {
-	return DRW_particles_batch_cache_get_hair(psys, md);
+	return DRW_particles_batch_cache_get_hair(object, psys, md);
 }
 
 Gwn_Batch *DRW_cache_particles_get_dots(Object *object, ParticleSystem *psys)
diff --git a/source/blender/draw/intern/draw_cache.h b/source/blender/draw/intern/draw_cache.h
index 22117d71534..6848285706a 100644
--- a/source/blender/draw/intern/draw_cache.h
+++ b/source/blender/draw/intern/draw_cache.h
@@ -167,7 +167,7 @@ struct Gwn_Batch *DRW_cache_lattice_wire_get(struct Object *ob, bool use_weight)
 struct Gwn_Batch *DRW_cache_lattice_vert_overlay_get(struct Object *ob);
 
 /* Particles */
-struct Gwn_Batch *DRW_cache_particles_get_hair(struct ParticleSystem *psys, struct ModifierData *md);
+struct Gwn_Batch *DRW_cache_particles_get_hair(struct Object *object, struct ParticleSystem *psys, struct ModifierData *md);
 struct Gwn_Batch *DRW_cache_particles_get_dots(struct Object *object, struct ParticleSystem *psys);
 struct Gwn_Batch *DRW_cache_particles_get_edit_strands(struct Object *object, struct ParticleSystem *psys, struct PTCacheEdit *edit);
 struct Gwn_Batch *DRW_cache_particles_get_edit_inner_points(struct Object *object, struct ParticleSystem *psys, struct PTCacheEdit *edit);
diff --git a/source/blender/draw/intern/draw_cache_impl.h b/source/blender/draw/intern/draw_cache_impl.h
index fd1a33452bc..7f745192f2f 100644
--- a/source/blender/draw/intern/draw_cache_impl.h
+++ b/source/blender/draw/intern/draw_cache_impl.h
@@ -123,7 +123,7 @@ struct Gwn_Batch *DRW_mesh_batch_cache_get_verts_with_select_id(struct Mesh *me,
 void DRW_mesh_cache_sculpt_coords_ensure(struct Mesh *me);
 
 /* Particles */
-struct Gwn_Batch *DRW_particles_batch_cache_get_hair(struct ParticleSystem *psys, struct ModifierData *md);
+struct Gwn_Batch *DRW_particles_batch_cache_get_hair(struct Object *object, struct ParticleSystem *psys, struct ModifierData *md);
 struct Gwn_Batch *DRW_particles_batch_cache_get_dots(struct Object *object, struct ParticleSystem *psys);
 struct Gwn_Batch *DRW_particles_batch_cache_get_edit_strands(struct Object *object, struct ParticleSystem *psys, struct PTCacheEdit *edit);
 struct Gwn_Batch *DRW_particles_batch_cache_get_edit_inner_points(struct Object *object, struct ParticleSystem *psys, struct PTCacheEdit *edit);
diff --git a/source/blender/draw/intern/draw_cache_impl_particles.c b/source/blender/draw/intern/draw_cache_impl_particles.c
index 02aa03fa622..c8984ab01ec 100644
--- a/source/blender/draw/intern/draw_cache_impl_particles.c
+++ b/source/blender/draw/intern/draw_cache_impl_particles.c
@@ -615,7 +615,10 @@ static void particle_batch_cache_ensure_pos(Object *object,
 	}
 }
 
-Gwn_Batch *DRW_particles_batch_cache_get_hair(ParticleSystem *psys, ModifierData *md)
+Gwn_Batch *DRW_particles_batch_cache_get_hair(
+        Object *UNUSED(object),
+        ParticleSystem *psys,
+        ModifierData *md)
 {
 	ParticleBatchCache *cache = particle_batch_cache_get(psys);



More information about the Bf-blender-cvs mailing list