[Bf-blender-cvs] [734a232b397] blender2.8: Eevee: Cleanup, reduce indentation level
Sergey Sharybin
noreply at git.blender.org
Wed May 9 16:38:00 CEST 2018
Commit: 734a232b397469a9abdd8f901e5a93523e00afae
Author: Sergey Sharybin
Date: Wed May 9 16:36:09 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB734a232b397469a9abdd8f901e5a93523e00afae
Eevee: Cleanup, reduce indentation level
===================================================================
M source/blender/draw/engines/eevee/eevee_materials.c
===================================================================
diff --git a/source/blender/draw/engines/eevee/eevee_materials.c b/source/blender/draw/engines/eevee/eevee_materials.c
index a4055cf8eea..8332c17268b 100644
--- a/source/blender/draw/engines/eevee/eevee_materials.c
+++ b/source/blender/draw/engines/eevee/eevee_materials.c
@@ -1474,85 +1474,85 @@ void EEVEE_materials_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sld
if (ob->type == OB_MESH) {
if (ob != draw_ctx->object_edit) {
material_hash = stl->g_data->hair_material_hash;
-
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;
-
- if (draw_as == PART_DRAW_PATH && (psys->pathcache || psys->childcache)) {
- struct Gwn_Batch *hair_geom = DRW_cache_particles_get_hair(psys, md);
- DRWShadingGroup *shgrp = NULL;
- Material *ma = give_current_material(ob, part->omat);
- static float mat[4][4];
+ if (md->type != eModifierType_ParticleSystem) {
+ continue;
+ }
+ ParticleSystem *psys = ((ParticleSystemModifierData *)md)->psys;
+ 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 == NULL || psys->childcache == NULL) {
+ continue;
+ }
+ struct Gwn_Batch *hair_geom = DRW_cache_particles_get_hair(psys, md);
+ DRWShadingGroup *shgrp = NULL;
+ Material *ma = give_current_material(ob, part->omat);
- unit_m4(mat);
+ static float mat[4][4];
+ unit_m4(mat);
- if (ma == NULL) {
- ma = &defmaterial;
- }
+ if (ma == NULL) {
+ ma = &defmaterial;
+ }
- float *color_p = &ma->r;
- float *metal_p = &ma->ray_mirror;
- float *spec_p = &ma->spec;
- float *rough_p = &ma->gloss_mir;
+ float *color_p = &ma->r;
+ float *metal_p = &ma->ray_mirror;
+ float *spec_p = &ma->spec;
+ float *rough_p = &ma->gloss_mir;
- DRW_shgroup_call_add(stl->g_data->depth_shgrp, hair_geom, mat);
- DRW_shgroup_call_add(stl->g_data->depth_shgrp_clip, hair_geom, mat);
+ DRW_shgroup_call_add(stl->g_data->depth_shgrp, hair_geom, mat);
+ DRW_shgroup_call_add(stl->g_data->depth_shgrp_clip, hair_geom, mat);
- shgrp = BLI_ghash_lookup(material_hash, (const void *)ma);
+ shgrp = BLI_ghash_lookup(material_hash, (const void *)ma);
- if (shgrp) {
- DRW_shgroup_call_add(shgrp, hair_geom, mat);
+ if (shgrp) {
+ DRW_shgroup_call_add(shgrp, hair_geom, mat);
+ }
+ else {
+ if (ma->use_nodes && ma->nodetree) {
+ static float half = 0.5f;
+ static float error_col[3] = {1.0f, 0.0f, 1.0f};
+ static float compile_col[3] = {0.5f, 0.5f, 0.5f};
+ struct GPUMaterial *gpumat = EEVEE_material_hair_get(scene, ma, sldata->lamps->shadow_method);
+
+ switch (GPU_material_status(gpumat)) {
+ case GPU_MAT_SUCCESS:
+ {
+ shgrp = DRW_shgroup_material_create(gpumat, psl->material_pass);
+ add_standard_uniforms(shgrp, sldata, vedata, NULL, NULL, false, false);
+ break;
}
- else {
- if (ma->use_nodes && ma->nodetree) {
- static float half = 0.5f;
- static float error_col[3] = {1.0f, 0.0f, 1.0f};
- static float compile_col[3] = {0.5f, 0.5f, 0.5f};
- struct GPUMaterial *gpumat = EEVEE_material_hair_get(scene, ma, sldata->lamps->shadow_method);
-
- switch (GPU_material_status(gpumat)) {
- case GPU_MAT_SUCCESS:
- {
- shgrp = DRW_shgroup_material_create(gpumat, psl->material_pass);
- add_standard_uniforms(shgrp, sldata, vedata, NULL, NULL, false, false);
- break;
- }
- case GPU_MAT_QUEUED:
- {
- sldata->probes->all_materials_updated = false;
- color_p = compile_col;
- metal_p = spec_p = rough_p = ½
- break;
- }
- case GPU_MAT_FAILED:
- default:
- color_p = error_col;
- metal_p = spec_p = rough_p = ½
- break;
- }
- }
-
- /* Fallback to default shader */
- if (shgrp == NULL) {
- bool use_ssr = ((stl->effects->enabled_effects & EFFECT_SSR) != 0);
- shgrp = EEVEE_default_shading_group_get(sldata, vedata, true, false, use_ssr,
- sldata->lamps->shadow_method);
- DRW_shgroup_uniform_vec3(shgrp, "basecol", color_p, 1);
- DRW_shgroup_uniform_float(shgrp, "metallic", metal_p, 1);
- DRW_shgroup_uniform_float(shgrp, "specular", spec_p, 1);
- DRW_shgroup_uniform_float(shgrp, "roughness", rough_p, 1);
- }
-
- DRW_shgroup_call_add(shgrp, hair_geom, NULL);
- BLI_ghash_insert(material_hash, ma, shgrp);
+ case GPU_MAT_QUEUED:
+ {
+ sldata->probes->all_materials_updated = false;
+ color_p = compile_col;
+ metal_p = spec_p = rough_p = ½
+ break;
}
+ case GPU_MAT_FAILED:
+ default:
+ color_p = error_col;
+ metal_p = spec_p = rough_p = ½
+ break;
}
}
+
+ /* Fallback to default shader */
+ if (shgrp == NULL) {
+ bool use_ssr = ((stl->effects->enabled_effects & EFFECT_SSR) != 0);
+ shgrp = EEVEE_default_shading_group_get(sldata, vedata, true, false, use_ssr,
+ sldata->lamps->shadow_method);
+ DRW_shgroup_uniform_vec3(shgrp, "basecol", color_p, 1);
+ DRW_shgroup_uniform_float(shgrp, "metallic", metal_p, 1);
+ DRW_shgroup_uniform_float(shgrp, "specular", spec_p, 1);
+ DRW_shgroup_uniform_float(shgrp, "roughness", rough_p, 1);
+ }
+
+ DRW_shgroup_call_add(shgrp, hair_geom, NULL);
+ BLI_ghash_insert(material_hash, ma, shgrp);
}
}
}
More information about the Bf-blender-cvs
mailing list