[Bf-blender-cvs] [b029cc5d744] blender2.8: Eevee: Hair: Fix wrong color when shader is compiling.
Clément Foucault
noreply at git.blender.org
Mon May 7 13:08:32 CEST 2018
Commit: b029cc5d744c160be78263908f851746a61ef780
Author: Clément Foucault
Date: Mon May 7 13:06:57 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBb029cc5d744c160be78263908f851746a61ef780
Eevee: Hair: Fix wrong color when shader is compiling.
===================================================================
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 a33c1e9bb67..a4055cf8eea 100644
--- a/source/blender/draw/engines/eevee/eevee_materials.c
+++ b/source/blender/draw/engines/eevee/eevee_materials.c
@@ -1510,23 +1510,30 @@ void EEVEE_materials_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sld
}
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);
- shgrp = DRW_shgroup_material_create(gpumat, psl->material_pass);
- if (shgrp) {
- add_standard_uniforms(shgrp, sldata, vedata, NULL, NULL, false, false);
-
- BLI_ghash_insert(material_hash, ma, shgrp);
-
- DRW_shgroup_call_add(shgrp, hair_geom, mat);
- }
- else {
- /* Shader failed : pink color */
- static float col[3] = {1.0f, 0.0f, 1.0f};
- static float half = 0.5f;
-
- color_p = col;
- metal_p = spec_p = rough_p = ½
+ 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;
}
}
@@ -1539,11 +1546,10 @@ void EEVEE_materials_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sld
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);
-
- BLI_ghash_insert(material_hash, ma, shgrp);
-
- DRW_shgroup_call_add(shgrp, hair_geom, mat);
}
+
+ DRW_shgroup_call_add(shgrp, hair_geom, NULL);
+ BLI_ghash_insert(material_hash, ma, shgrp);
}
}
}
More information about the Bf-blender-cvs
mailing list