diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-01-17 12:35:06 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-01-17 12:39:42 +0300 |
commit | 10ce5af2ddf2b06865dcf317fce264be615509e8 (patch) | |
tree | 8dabbb3afaa4bf2908b131325282dee4c481f24a /source/blender/draw/engines/eevee/eevee_screen_raytrace.c | |
parent | 2094bbd033f330dad062cc641a4fa440b6e391a0 (diff) |
Revert "Fix use-after free in DRW_shader_create_with_lib"
Caused an error entering edit-mode.
d60f26f37a & 2659500835
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_screen_raytrace.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_screen_raytrace.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_screen_raytrace.c b/source/blender/draw/engines/eevee/eevee_screen_raytrace.c index f61d94c17eb..f4b8ab807f6 100644 --- a/source/blender/draw/engines/eevee/eevee_screen_raytrace.c +++ b/source/blender/draw/engines/eevee/eevee_screen_raytrace.c @@ -59,16 +59,16 @@ extern char datatoc_raytrace_lib_glsl[]; static struct GPUShader *eevee_effects_screen_raytrace_shader_get(int options) { if (e_data.ssr_sh[options] == NULL) { - char *ssr_shader_str; - - DRW_shader_create_lib(ssr_shader_str, - datatoc_bsdf_common_lib_glsl, - datatoc_bsdf_sampling_lib_glsl, - datatoc_octahedron_lib_glsl, - datatoc_lightprobe_lib_glsl, - datatoc_ambient_occlusion_lib_glsl, - datatoc_raytrace_lib_glsl, - datatoc_effect_ssr_frag_glsl); + DynStr *ds_frag = BLI_dynstr_new(); + BLI_dynstr_append(ds_frag, datatoc_bsdf_common_lib_glsl); + BLI_dynstr_append(ds_frag, datatoc_bsdf_sampling_lib_glsl); + BLI_dynstr_append(ds_frag, datatoc_octahedron_lib_glsl); + BLI_dynstr_append(ds_frag, datatoc_lightprobe_lib_glsl); + BLI_dynstr_append(ds_frag, datatoc_ambient_occlusion_lib_glsl); + BLI_dynstr_append(ds_frag, datatoc_raytrace_lib_glsl); + BLI_dynstr_append(ds_frag, datatoc_effect_ssr_frag_glsl); + char *ssr_shader_str = BLI_dynstr_get_cstring(ds_frag); + BLI_dynstr_free(ds_frag); DynStr *ds_defines = BLI_dynstr_new(); BLI_dynstr_appendf(ds_defines, SHADER_DEFINES); |