[Bf-blender-cvs] [51445f42ace] blender2.8: Workbench: Make hair populating function shorter and nicer

Sergey Sharybin noreply at git.blender.org
Wed May 9 16:22:58 CEST 2018


Commit: 51445f42acef1e582290aaab39faddd59a27e8fd
Author: Sergey Sharybin
Date:   Wed May 9 16:20:38 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB51445f42acef1e582290aaab39faddd59a27e8fd

Workbench: Make hair populating function shorter and nicer

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

M	source/blender/draw/engines/workbench/workbench_materials.c

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

diff --git a/source/blender/draw/engines/workbench/workbench_materials.c b/source/blender/draw/engines/workbench/workbench_materials.c
index 7f6fa0d62a6..2885619d8d8 100644
--- a/source/blender/draw/engines/workbench/workbench_materials.c
+++ b/source/blender/draw/engines/workbench/workbench_materials.c
@@ -453,30 +453,28 @@ static WORKBENCH_MaterialData *get_or_create_material_data(WORKBENCH_Data *vedat
 static void workbench_cache_populate_particles(WORKBENCH_Data *vedata, Object *ob)
 {
 	const DRWContextState *draw_ctx = DRW_context_state_get();
+	if (ob == draw_ctx->object_edit) {
+		return;
+	}
 
-	if (ob != draw_ctx->object_edit) {
-		for (ModifierData *md = ob->modifiers.first; md; md = md->next) {
-			if (md->type == eModifierType_ParticleSystem) {
-				ParticleSystem *psys = ((ParticleSystemModifierData *)md)->psys;
-
-				if (psys_check_enabled(ob, psys, false)) {
-					ParticleSettings *part = psys->part;
-					int draw_as = (part->draw_as == PART_DRAW_REND) ? part->ren_as : part->draw_as;
+	for (ParticleSystem *psys = ob->particlesystem.first; psys != NULL; psys = psys->next) {
+		if (!psys_check_enabled(ob, psys, false)) {
+			continue;
+		}
+		ParticleSettings *part = psys->part;
+		int draw_as = (part->draw_as == PART_DRAW_REND) ? part->ren_as : part->draw_as;
 
-					if (draw_as == PART_DRAW_PATH && !psys->pathcache && !psys->childcache) {
-						draw_as = PART_DRAW_DOT;
-					}
+		if (draw_as == PART_DRAW_PATH && !psys->pathcache && !psys->childcache) {
+			draw_as = PART_DRAW_DOT;
+		}
 
-					static float mat[4][4];
-					unit_m4(mat);
+		static float mat[4][4];
+		unit_m4(mat);
 
-					if (draw_as == PART_DRAW_PATH) {
-						struct Gwn_Batch *geom = DRW_cache_particles_get_hair(psys, NULL);
-						WORKBENCH_MaterialData *material = get_or_create_material_data(vedata, ob, NULL, NULL, OB_SOLID);
-						DRW_shgroup_call_add(material->shgrp, geom, mat);
-					}
-				}
-			}
+		if (draw_as == PART_DRAW_PATH) {
+			struct Gwn_Batch *geom = DRW_cache_particles_get_hair(psys, NULL);
+			WORKBENCH_MaterialData *material = get_or_create_material_data(vedata, ob, NULL, NULL, OB_SOLID);
+			DRW_shgroup_call_add(material->shgrp, geom, mat);
 		}
 	}
 }



More information about the Bf-blender-cvs mailing list