From 651ea84471bd40d0c700c27faf53a0503bb08147 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Sun, 8 Apr 2018 16:56:54 +0200 Subject: Clay: Improve loading time. Only compile hair shader if we need it. --- source/blender/draw/engines/clay/clay_engine.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source/blender/draw') diff --git a/source/blender/draw/engines/clay/clay_engine.c b/source/blender/draw/engines/clay/clay_engine.c index c80e0cdf4f7..4976cd01d11 100644 --- a/source/blender/draw/engines/clay/clay_engine.c +++ b/source/blender/draw/engines/clay/clay_engine.c @@ -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); -- cgit v1.2.3