diff options
Diffstat (limited to 'source/blender/draw/engines/workbench')
-rw-r--r-- | source/blender/draw/engines/workbench/shaders/workbench_effect_dof_frag.glsl | 2 | ||||
-rw-r--r-- | source/blender/draw/engines/workbench/workbench_shader.c | 34 |
2 files changed, 19 insertions, 17 deletions
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_effect_dof_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_effect_dof_frag.glsl index 71816f6ff6e..899ada852f9 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_effect_dof_frag.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_effect_dof_frag.glsl @@ -1,4 +1,4 @@ - +#pragma BLENDER_REQUIRE(common_view_lib.glsl) #pragma BLENDER_REQUIRE(common_math_lib.glsl) /** diff --git a/source/blender/draw/engines/workbench/workbench_shader.c b/source/blender/draw/engines/workbench/workbench_shader.c index 9cc5087bd36..af3b5d31b2b 100644 --- a/source/blender/draw/engines/workbench/workbench_shader.c +++ b/source/blender/draw/engines/workbench/workbench_shader.c @@ -380,24 +380,26 @@ void workbench_shader_depth_of_field_get(GPUShader **prepare_sh, GPUShader **resolve_sh) { if (e_data.dof_prepare_sh == NULL) { - char *frag = BLI_string_joinN(datatoc_common_view_lib_glsl, - datatoc_workbench_effect_dof_frag_glsl); - e_data.dof_prepare_sh = DRW_shader_create_fullscreen(frag, "#define PREPARE\n"); - e_data.dof_downsample_sh = DRW_shader_create_fullscreen(frag, "#define DOWNSAMPLE\n"); + e_data.dof_prepare_sh = DRW_shader_create_fullscreen_with_shaderlib( + datatoc_workbench_effect_dof_frag_glsl, e_data.lib, "#define PREPARE\n"); + e_data.dof_downsample_sh = DRW_shader_create_fullscreen_with_shaderlib( + datatoc_workbench_effect_dof_frag_glsl, e_data.lib, "#define DOWNSAMPLE\n"); #if 0 /* TODO(fclem) finish COC min_max optimization */ - e_data.dof_flatten_v_sh = DRW_shader_create_fullscreen(frag, - "#define FLATTEN_VERTICAL\n"); - e_data.dof_flatten_h_sh = DRW_shader_create_fullscreen(frag, - "#define FLATTEN_HORIZONTAL\n"); - e_data.dof_dilate_v_sh = DRW_shader_create_fullscreen(frag, - "#define DILATE_VERTICAL\n"); - e_data.dof_dilate_h_sh = DRW_shader_create_fullscreen(frag, - "#define DILATE_HORIZONTAL\n"); + e_data.dof_flatten_v_sh = DRW_shader_create_fullscreen_with_shaderlib( + datatoc_workbench_effect_dof_frag_glsl, e_data.lib, "#define FLATTEN_VERTICAL\n"); + e_data.dof_flatten_h_sh = DRW_shader_create_fullscreen_with_shaderlib( + datatoc_workbench_effect_dof_frag_glsl, e_data.lib, "#define FLATTEN_HORIZONTAL\n"); + e_data.dof_dilate_v_sh = DRW_shader_create_fullscreen_with_shaderlib( + datatoc_workbench_effect_dof_frag_glsl, e_data.lib, "#define DILATE_VERTICAL\n"); + e_data.dof_dilate_h_sh = DRW_shader_create_fullscreen_with_shaderlib( + datatoc_workbench_effect_dof_frag_glsl, e_data.lib, "#define DILATE_HORIZONTAL\n"); #endif - e_data.dof_blur1_sh = DRW_shader_create_fullscreen(frag, "#define BLUR1\n"); - e_data.dof_blur2_sh = DRW_shader_create_fullscreen(frag, "#define BLUR2\n"); - e_data.dof_resolve_sh = DRW_shader_create_fullscreen(frag, "#define RESOLVE\n"); - MEM_freeN(frag); + e_data.dof_blur1_sh = DRW_shader_create_fullscreen_with_shaderlib( + datatoc_workbench_effect_dof_frag_glsl, e_data.lib, "#define BLUR1\n"); + e_data.dof_blur2_sh = DRW_shader_create_fullscreen_with_shaderlib( + datatoc_workbench_effect_dof_frag_glsl, e_data.lib, "#define BLUR2\n"); + e_data.dof_resolve_sh = DRW_shader_create_fullscreen_with_shaderlib( + datatoc_workbench_effect_dof_frag_glsl, e_data.lib, "#define RESOLVE\n"); } *prepare_sh = e_data.dof_prepare_sh; |