[Bf-blender-cvs] [b11168c8f15] blender2.8: Clay/Hair: Only show hair when in object mode

Dalai Felinto noreply at git.blender.org
Tue May 16 16:18:34 CEST 2017


Commit: b11168c8f15fe320c60ec6b7054f514bd342d738
Author: Dalai Felinto
Date:   Tue May 16 16:18:17 2017 +0200
Branches: blender2.8
https://developer.blender.org/rBb11168c8f15fe320c60ec6b7054f514bd342d738

Clay/Hair: Only show hair when in object mode

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

M	source/blender/draw/engines/clay/clay_engine.c

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

diff --git a/source/blender/draw/engines/clay/clay_engine.c b/source/blender/draw/engines/clay/clay_engine.c
index f2cd63f923d..113f8dd157b 100644
--- a/source/blender/draw/engines/clay/clay_engine.c
+++ b/source/blender/draw/engines/clay/clay_engine.c
@@ -753,29 +753,35 @@ static void CLAY_cache_populate(void *vedata, Object *ob)
 	}
 
 	if (ob->type == OB_MESH) {
-		for (ParticleSystem *psys = ob->particlesystem.first; psys; psys = psys->next) {
-			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;
-
-				if (draw_as == PART_DRAW_PATH && !psys->pathcache && !psys->childcache) {
-					draw_as = PART_DRAW_DOT;
-				}
-
-				switch (draw_as) {
-					case PART_DRAW_PATH:
-						geom = DRW_cache_particles_get_hair(psys);
-						break;
-					default:
-						geom = NULL;
-						break;
-				}
-
-				if (geom) {
-					static float mat[4][4];
-					unit_m4(mat);
-					hair_shgrp = CLAY_hair_shgrp_get(ob, stl, psl);
-					DRW_shgroup_call_add(hair_shgrp, geom, mat);
+		const DRWContextState *draw_ctx = DRW_context_state_get();
+		Scene *scene = draw_ctx->scene;
+		Object *obedit = scene->obedit;
+
+		if (ob != obedit) {
+			for (ParticleSystem *psys = ob->particlesystem.first; psys; psys = psys->next) {
+				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;
+
+					if (draw_as == PART_DRAW_PATH && !psys->pathcache && !psys->childcache) {
+						draw_as = PART_DRAW_DOT;
+					}
+
+					switch (draw_as) {
+						case PART_DRAW_PATH:
+							geom = DRW_cache_particles_get_hair(psys);
+							break;
+						default:
+							geom = NULL;
+							break;
+					}
+
+					if (geom) {
+						static float mat[4][4];
+						unit_m4(mat);
+						hair_shgrp = CLAY_hair_shgrp_get(ob, stl, psl);
+						DRW_shgroup_call_add(hair_shgrp, geom, mat);
+					}
 				}
 			}
 		}




More information about the Bf-blender-cvs mailing list