[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