[Bf-blender-cvs] [ca5987c8a5a] blender2.8: Cleanup: replace BLI_dynstr w/ BLI_string_joinN

Campbell Barton noreply at git.blender.org
Wed Jan 17 11:32:40 CET 2018


Commit: ca5987c8a5ad5def6354ca306bcdbc8626bf059c
Author: Campbell Barton
Date:   Wed Jan 17 21:40:43 2018 +1100
Branches: blender2.8
https://developer.blender.org/rBca5987c8a5ad5def6354ca306bcdbc8626bf059c

Cleanup: replace BLI_dynstr w/ BLI_string_joinN

Use in place of recently reverted 'DRW_shader_create_lib'

===================================================================

M	source/blender/draw/engines/eevee/eevee_lightprobes.c
M	source/blender/draw/engines/eevee/eevee_materials.c
M	source/blender/draw/engines/eevee/eevee_occlusion.c
M	source/blender/draw/engines/eevee/eevee_screen_raytrace.c
M	source/blender/draw/engines/eevee/eevee_volumes.c
M	source/blender/draw/intern/draw_manager.c

===================================================================

diff --git a/source/blender/draw/engines/eevee/eevee_lightprobes.c b/source/blender/draw/engines/eevee/eevee_lightprobes.c
index c6f413f0f82..9d90338131b 100644
--- a/source/blender/draw/engines/eevee/eevee_lightprobes.c
+++ b/source/blender/draw/engines/eevee/eevee_lightprobes.c
@@ -26,7 +26,7 @@
 #include "DRW_render.h"
 
 #include "BLI_utildefines.h"
-#include "BLI_dynstr.h"
+#include "BLI_string_utils.h"
 #include "BLI_rand.h"
 
 #include "DNA_world_types.h"
@@ -204,12 +204,10 @@ static void lightprobe_shaders_init(void)
 
 	char *shader_str = NULL;
 
-	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_lightprobe_filter_glossy_frag_glsl);
-	shader_str = BLI_dynstr_get_cstring(ds_frag);
-	BLI_dynstr_free(ds_frag);
+	shader_str = BLI_string_joinN(
+	        datatoc_bsdf_common_lib_glsl,
+	        datatoc_bsdf_sampling_lib_glsl,
+	        datatoc_lightprobe_filter_glossy_frag_glsl);
 
 	e_data.probe_filter_glossy_sh = DRW_shader_create(
 	        datatoc_lightprobe_vert_glsl, datatoc_lightprobe_geom_glsl, shader_str, filter_defines);
@@ -219,36 +217,30 @@ static void lightprobe_shaders_init(void)
 
 	MEM_freeN(shader_str);
 
-	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_lightprobe_filter_diffuse_frag_glsl);
-	shader_str = BLI_dynstr_get_cstring(ds_frag);
-	BLI_dynstr_free(ds_frag);
+	shader_str = BLI_string_joinN(
+	        datatoc_bsdf_common_lib_glsl,
+	        datatoc_bsdf_sampling_lib_glsl,
+	        datatoc_lightprobe_filter_diffuse_frag_glsl);
 
 	e_data.probe_filter_diffuse_sh = DRW_shader_create_fullscreen(shader_str, filter_defines);
 
 	MEM_freeN(shader_str);
 
-	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_lightprobe_filter_visibility_frag_glsl);
-	shader_str = BLI_dynstr_get_cstring(ds_frag);
-	BLI_dynstr_free(ds_frag);
+	shader_str = BLI_string_joinN(
+	        datatoc_bsdf_common_lib_glsl,
+	        datatoc_bsdf_sampling_lib_glsl,
+	        datatoc_lightprobe_filter_visibility_frag_glsl);
 
 	e_data.probe_filter_visibility_sh = DRW_shader_create_fullscreen(shader_str, filter_defines);
 
 	MEM_freeN(shader_str);
 
-	ds_frag = BLI_dynstr_new();
-	BLI_dynstr_append(ds_frag, datatoc_octahedron_lib_glsl);
-	BLI_dynstr_append(ds_frag, datatoc_bsdf_common_lib_glsl);
-	BLI_dynstr_append(ds_frag, datatoc_irradiance_lib_glsl);
-	BLI_dynstr_append(ds_frag, datatoc_lightprobe_lib_glsl);
-	BLI_dynstr_append(ds_frag, datatoc_lightprobe_grid_display_frag_glsl);
-	shader_str = BLI_dynstr_get_cstring(ds_frag);
-	BLI_dynstr_free(ds_frag);
+	shader_str = BLI_string_joinN(
+	        datatoc_octahedron_lib_glsl,
+	        datatoc_bsdf_common_lib_glsl,
+	        datatoc_irradiance_lib_glsl,
+	        datatoc_lightprobe_lib_glsl,
+	        datatoc_lightprobe_grid_display_frag_glsl);
 
 	e_data.probe_grid_display_sh = DRW_shader_create(
 	        datatoc_lightprobe_grid_display_vert_glsl, NULL, shader_str, filter_defines);
@@ -258,13 +250,11 @@ static void lightprobe_shaders_init(void)
 	e_data.probe_grid_fill_sh = DRW_shader_create_fullscreen(
 	        datatoc_lightprobe_grid_fill_frag_glsl, filter_defines);
 
-	ds_frag = BLI_dynstr_new();
-	BLI_dynstr_append(ds_frag, datatoc_octahedron_lib_glsl);
-	BLI_dynstr_append(ds_frag, datatoc_bsdf_common_lib_glsl);
-	BLI_dynstr_append(ds_frag, datatoc_lightprobe_lib_glsl);
-	BLI_dynstr_append(ds_frag, datatoc_lightprobe_cube_display_frag_glsl);
-	shader_str = BLI_dynstr_get_cstring(ds_frag);
-	BLI_dynstr_free(ds_frag);
+	shader_str = BLI_string_joinN(
+	        datatoc_octahedron_lib_glsl,
+	        datatoc_bsdf_common_lib_glsl,
+	        datatoc_lightprobe_lib_glsl,
+	        datatoc_lightprobe_cube_display_frag_glsl);
 
 	e_data.probe_cube_display_sh = DRW_shader_create(
 	        datatoc_lightprobe_cube_display_vert_glsl, NULL, shader_str, NULL);
diff --git a/source/blender/draw/engines/eevee/eevee_materials.c b/source/blender/draw/engines/eevee/eevee_materials.c
index e93799580ab..ba53b349758 100644
--- a/source/blender/draw/engines/eevee/eevee_materials.c
+++ b/source/blender/draw/engines/eevee/eevee_materials.c
@@ -29,6 +29,7 @@
 #include "BLI_ghash.h"
 #include "BLI_alloca.h"
 #include "BLI_rand.h"
+#include "BLI_string_utils.h"
 
 #include "BKE_particle.h"
 #include "BKE_paint.h"
@@ -107,13 +108,9 @@ static struct GPUTexture *create_ggx_lut_texture(int UNUSED(w), int UNUSED(h))
 	static float samples_ct = 8192.0f;
 	static float inv_samples_ct = 1.0f / 8192.0f;
 
-	char *lib_str = NULL;
-
-	DynStr *ds_vert = BLI_dynstr_new();
-	BLI_dynstr_append(ds_vert, datatoc_bsdf_common_lib_glsl);
-	BLI_dynstr_append(ds_vert, datatoc_bsdf_sampling_lib_glsl);
-	lib_str = BLI_dynstr_get_cstring(ds_vert);
-	BLI_dynstr_free(ds_vert);
+	char *lib_str = BLI_string_joinN(
+	        datatoc_bsdf_common_lib_glsl,
+	        datatoc_bsdf_sampling_lib_glsl);
 
 	struct GPUShader *sh = DRW_shader_create_with_lib(
 	        datatoc_lightprobe_vert_glsl, datatoc_lightprobe_geom_glsl, datatoc_bsdf_lut_frag_glsl, lib_str,
@@ -169,14 +166,10 @@ static struct GPUTexture *create_ggx_refraction_lut_texture(int w, int h)
 	static float a2 = 0.0f;
 	static float inv_samples_ct = 1.0f / 8192.0f;
 
-	char *frag_str = NULL;
-
-	DynStr *ds_vert = BLI_dynstr_new();
-	BLI_dynstr_append(ds_vert, datatoc_bsdf_common_lib_glsl);
-	BLI_dynstr_append(ds_vert, datatoc_bsdf_sampling_lib_glsl);
-	BLI_dynstr_append(ds_vert, datatoc_btdf_lut_frag_glsl);
-	frag_str = BLI_dynstr_get_cstring(ds_vert);
-	BLI_dynstr_free(ds_vert);
+	char *frag_str = BLI_string_joinN(
+	        datatoc_bsdf_common_lib_glsl,
+	        datatoc_bsdf_sampling_lib_glsl,
+	        datatoc_btdf_lut_frag_glsl);
 
 	struct GPUShader *sh = DRW_shader_create_fullscreen(frag_str,
 	        "#define HAMMERSLEY_SIZE 8192\n"
@@ -418,11 +411,9 @@ static void add_standard_uniforms(
 
 static void create_default_shader(int options)
 {
-	DynStr *ds_frag = BLI_dynstr_new();
-	BLI_dynstr_append(ds_frag, e_data.frag_shader_lib);
-	BLI_dynstr_append(ds_frag, datatoc_default_frag_glsl);
-	char *frag_str = BLI_dynstr_get_cstring(ds_frag);
-	BLI_dynstr_free(ds_frag);
+	char *frag_str = BLI_string_joinN(
+	        e_data.frag_shader_lib,
+	        datatoc_default_frag_glsl);
 
 	char *defines = eevee_get_defines(options);
 
@@ -492,45 +483,44 @@ void EEVEE_materials_init(EEVEE_StorageList *stl)
 		char *frag_str = NULL;
 
 		/* Shaders */
-		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_ambient_occlusion_lib_glsl);
-		BLI_dynstr_append(ds_frag, datatoc_raytrace_lib_glsl);
-		BLI_dynstr_append(ds_frag, datatoc_ssr_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_lightprobe_lib_glsl);
-		BLI_dynstr_append(ds_frag, datatoc_ltc_lib_glsl);
-		BLI_dynstr_append(ds_frag, datatoc_bsdf_direct_lib_glsl);
-		BLI_dynstr_append(ds_frag, datatoc_lamps_lib_glsl);
-		for (int i = 0; i < 7; ++i) {
-			/* Add one for each Closure */
-			BLI_dynstr_append(ds_frag, datatoc_lit_surface_frag_glsl);
-		}
-		BLI_dynstr_append(ds_frag, datatoc_volumetric_lib_glsl);
-		e_data.frag_shader_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_ambient_occlusion_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_lightprobe_lib_glsl);
-		BLI_dynstr_append(ds_frag, datatoc_ltc_lib_glsl);
-		BLI_dynstr_append(ds_frag, datatoc_bsdf_direct_lib_glsl);
-		BLI_dynstr_append(ds_frag, datatoc_lamps_lib_glsl);
-		BLI_dynstr_append(ds_frag, datatoc_volumetric_lib_glsl);
-		BLI_dynstr_append(ds_frag, datatoc_volumetric_frag_glsl);
-		e_data.volume_shader_lib = BLI_dynstr_get_cstring(ds_frag);
-		BLI_dynstr_free(ds_frag);
-
-		ds_frag = BLI_dynstr_new();
-		BLI_dynstr_append(ds_frag, e_data.frag_shader_lib);
-		BLI_dynstr_append(ds_frag, datatoc_default_frag_glsl);
-		frag_str = BLI_dynstr_get_cstring(ds_frag);
-		BLI_dynstr_free(ds_frag);
+		e_data.frag_shader_lib = BLI_string_joinN(
+		        datatoc_bsdf_common_lib_glsl,
+		        datatoc_bsdf_sampling_lib_glsl,
+		        datatoc_ambient_occlusion_lib_glsl,
+		        datatoc_raytrace_lib_glsl,
+		        datatoc_ssr_lib_glsl,
+		        datatoc_octahedron_lib_glsl,
+		        datatoc_irradiance_lib_glsl,
+		        datatoc_lightprobe_lib_glsl,
+		        datatoc_ltc_lib_glsl,
+		        datatoc_bsdf_direct_lib_glsl,
+		        datatoc_lamps_lib_glsl,
+		        /* Add one for each Closure */
+		        datatoc_lit_surface_frag_glsl,
+		        datatoc_lit_surface_frag_glsl,
+		        datatoc_lit_surface_frag_glsl,
+		        datatoc_lit_surface_frag_glsl,
+		        datatoc_lit_surface_frag_glsl,
+		        datatoc_lit_surface_frag_glsl,
+		        datatoc_lit_surface_frag_glsl,
+		        datatoc_lit_surface_frag_glsl,
+		        datatoc_volumetric_lib_glsl);
+
+		e_data.volume_shader_lib = BLI_string_joinN(
+		        datatoc_bsdf_common_lib_glsl,
+		        datatoc_ambient_occlusion_lib_glsl,
+		        datatoc_octahedron_lib_glsl,
+		        datatoc_irradiance_lib_glsl,
+		        datatoc_lightprobe_lib_glsl,
+		        datatoc_ltc_lib_glsl,
+		        datatoc_bsdf_direct_lib_glsl,
+		        datatoc_lamps_lib_glsl,
+		        datatoc_volumetric_lib_glsl,
+		        datatoc_volumetric_frag_glsl);
+
+		frag_str = BLI_string_joinN(
+		        e_data.frag_shader_lib,
+		        datatoc_default_frag_glsl);
 
 		e_data.default_background = DRW_shader_create(
 		        datatoc_background_vert_glsl, NULL, datatoc_default_world_frag_glsl,
@@ -7

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list