Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2018-01-17 01:40:15 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-01-17 01:40:15 +0300
commit265950083566b78175a18df858a27550489dd117 (patch)
treec8e1be17b3f31b0b6672294e47aba31546001a82 /source/blender/draw/engines/eevee/eevee_volumes.c
parent96138daa2bd4e82c7d326a5cfc2a6ba042a4a0dd (diff)
DRW: Codestyle refactor: Use macro to create shader libs.
This clears up the code from many DynStr usage. Easier to read.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_volumes.c')
-rw-r--r--source/blender/draw/engines/eevee/eevee_volumes.c40
1 files changed, 19 insertions, 21 deletions
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)