From 265950083566b78175a18df858a27550489dd117 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Tue, 16 Jan 2018 23:40:15 +0100 Subject: DRW: Codestyle refactor: Use macro to create shader libs. This clears up the code from many DynStr usage. Easier to read. --- source/blender/draw/engines/eevee/eevee_volumes.c | 40 +++++++++++------------ 1 file changed, 19 insertions(+), 21 deletions(-) (limited to 'source/blender/draw/engines/eevee/eevee_volumes.c') diff --git a/source/blender/draw/engines/eevee/eevee_volumes.c b/source/blender/draw/engines/eevee/eevee_volumes.c index dae4503dc32..db5ee19172e 100644 --- a/source/blender/draw/engines/eevee/eevee_volumes.c +++ b/source/blender/draw/engines/eevee/eevee_volumes.c @@ -77,46 +77,44 @@ extern char datatoc_gpu_shader_fullscreen_vert_glsl[]; static void eevee_create_shader_volumes(void) { - DynStr *ds_frag = BLI_dynstr_new(); - BLI_dynstr_append(ds_frag, datatoc_bsdf_common_lib_glsl); - BLI_dynstr_append(ds_frag, datatoc_volumetric_lib_glsl); - e_data.volumetric_common_lib = BLI_dynstr_get_cstring(ds_frag); - BLI_dynstr_free(ds_frag); - - ds_frag = BLI_dynstr_new(); - BLI_dynstr_append(ds_frag, datatoc_bsdf_common_lib_glsl); - BLI_dynstr_append(ds_frag, datatoc_bsdf_direct_lib_glsl); - BLI_dynstr_append(ds_frag, datatoc_octahedron_lib_glsl); - BLI_dynstr_append(ds_frag, datatoc_irradiance_lib_glsl); - BLI_dynstr_append(ds_frag, datatoc_lamps_lib_glsl); - BLI_dynstr_append(ds_frag, datatoc_volumetric_lib_glsl); - e_data.volumetric_common_lamps_lib = BLI_dynstr_get_cstring(ds_frag); - BLI_dynstr_free(ds_frag); + DRW_shader_create_lib(e_data.volumetric_common_lib, + datatoc_bsdf_common_lib_glsl, + datatoc_volumetric_lib_glsl); + + DRW_shader_create_lib(e_data.volumetric_common_lamps_lib, + datatoc_bsdf_common_lib_glsl, + datatoc_bsdf_direct_lib_glsl, + datatoc_octahedron_lib_glsl, + datatoc_irradiance_lib_glsl, + datatoc_lamps_lib_glsl, + datatoc_volumetric_lib_glsl); e_data.volumetric_clear_sh = DRW_shader_create_with_lib( datatoc_volumetric_vert_glsl, datatoc_volumetric_geom_glsl, datatoc_volumetric_frag_glsl, - e_data.volumetric_common_lib, "#define VOLUMETRICS\n" - "#define CLEAR\n"); + "#define CLEAR\n", + e_data.volumetric_common_lib); e_data.volumetric_scatter_sh = DRW_shader_create_with_lib( datatoc_volumetric_vert_glsl, datatoc_volumetric_geom_glsl, datatoc_volumetric_scatter_frag_glsl, - e_data.volumetric_common_lamps_lib, SHADER_DEFINES "#define VOLUMETRICS\n" - "#define VOLUME_SHADOW\n"); + "#define VOLUME_SHADOW\n", + e_data.volumetric_common_lamps_lib); e_data.volumetric_integration_sh = DRW_shader_create_with_lib( datatoc_volumetric_vert_glsl, datatoc_volumetric_geom_glsl, datatoc_volumetric_integration_frag_glsl, - e_data.volumetric_common_lib, NULL); + NULL, + e_data.volumetric_common_lib); e_data.volumetric_resolve_sh = DRW_shader_create_with_lib( datatoc_gpu_shader_fullscreen_vert_glsl, NULL, datatoc_volumetric_resolve_frag_glsl, - e_data.volumetric_common_lib, NULL); + NULL, + e_data.volumetric_common_lib); } int EEVEE_volumes_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) -- cgit v1.2.3