Clay: Improve loading time.

Only compile hair shader if we need it.
This commit is contained in:
Clément Foucault 2018-04-08 16:56:54 +02:00
parent e9f048052f
commit 651ea84471
1 changed files with 6 additions and 6 deletions

View File

@ -426,12 +426,6 @@ static void clay_engine_init(void *vedata)
e_data.copy_sh = DRW_shader_create_fullscreen(datatoc_clay_copy_glsl, NULL);
}
if (!e_data.hair_sh) {
e_data.hair_sh = DRW_shader_create(
datatoc_clay_particle_vert_glsl, NULL, datatoc_clay_particle_strand_frag_glsl,
"#define MAX_MATERIAL 512\n");
}
if (!stl->storage) {
stl->storage = MEM_callocN(sizeof(CLAY_Storage), "CLAY_Storage");
}
@ -604,6 +598,12 @@ static DRWShadingGroup *CLAY_hair_shgroup_create(DRWPass *pass, int id)
{
CLAY_ViewLayerData *sldata = CLAY_view_layer_data_get();
if (!e_data.hair_sh) {
e_data.hair_sh = DRW_shader_create(
datatoc_clay_particle_vert_glsl, NULL, datatoc_clay_particle_strand_frag_glsl,
"#define MAX_MATERIAL 512\n");
}
DRWShadingGroup *grp = DRW_shgroup_create(e_data.hair_sh, pass);
DRW_shgroup_uniform_texture(grp, "matcaps", e_data.matcap_array);
DRW_shgroup_uniform_block(grp, "material_block", sldata->mat_ubo);