[Bf-blender-cvs] [b1e3bb9eb47] greasepencil-object: Cleanup: Move all Shader creation to engine_init

Antonio Vazquez noreply at git.blender.org
Sat Mar 31 18:57:13 CEST 2018


Commit: b1e3bb9eb47e0a34a27b6db43cb62253e1a158b9
Author: Antonio Vazquez
Date:   Sat Mar 31 16:17:17 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rBb1e3bb9eb47e0a34a27b6db43cb62253e1a158b9

Cleanup: Move all Shader creation to engine_init

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

M	source/blender/draw/engines/gpencil/gpencil_engine.c

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

diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c
index c525816ef9f..0518093cf3b 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -178,6 +178,39 @@ static void GPENCIL_engine_init(void *vedata)
 		e_data.gpencil_drawing_fill_sh = GPU_shader_get_builtin_shader(GPU_SHADER_3D_SMOOTH_COLOR);
 	}
 
+	/* full screen for mix zdepth*/
+	if (!e_data.gpencil_fullscreen_sh) {
+		e_data.gpencil_fullscreen_sh = DRW_shader_create_fullscreen(datatoc_gpencil_zdepth_mix_frag_glsl, NULL);
+	}
+	if (!e_data.gpencil_simple_fullscreen_sh) {
+		e_data.gpencil_simple_fullscreen_sh = DRW_shader_create_fullscreen(datatoc_gpencil_simple_mix_frag_glsl, NULL);
+	}
+	/* vfx shaders (all in screen space) */
+	if (!e_data.gpencil_vfx_blur_sh) {
+		e_data.gpencil_vfx_blur_sh = DRW_shader_create_fullscreen(datatoc_gpencil_gaussian_blur_frag_glsl, NULL);
+	}
+	if (!e_data.gpencil_vfx_wave_sh) {
+		e_data.gpencil_vfx_wave_sh = DRW_shader_create_fullscreen(datatoc_gpencil_wave_frag_glsl, NULL);
+	}
+	if (!e_data.gpencil_vfx_pixel_sh) {
+		e_data.gpencil_vfx_pixel_sh = DRW_shader_create_fullscreen(datatoc_gpencil_pixel_frag_glsl, NULL);
+	}
+	if (!e_data.gpencil_vfx_swirl_sh) {
+		e_data.gpencil_vfx_swirl_sh = DRW_shader_create_fullscreen(datatoc_gpencil_swirl_frag_glsl, NULL);
+	}
+	if (!e_data.gpencil_vfx_flip_sh) {
+		e_data.gpencil_vfx_flip_sh = DRW_shader_create_fullscreen(datatoc_gpencil_flip_frag_glsl, NULL);
+	}
+	if (!e_data.gpencil_vfx_light_sh) {
+		e_data.gpencil_vfx_light_sh = DRW_shader_create_fullscreen(datatoc_gpencil_light_frag_glsl, NULL);
+	}
+	if (!e_data.gpencil_painting_sh) {
+		e_data.gpencil_painting_sh = DRW_shader_create_fullscreen(datatoc_gpencil_painting_frag_glsl, NULL);
+	}
+	if (!e_data.gpencil_paper_sh) {
+		e_data.gpencil_paper_sh = DRW_shader_create_fullscreen(datatoc_gpencil_paper_frag_glsl, NULL);
+	}
+
 	if (!stl->storage) {
 		stl->storage = MEM_callocN(sizeof(GPENCIL_Storage), "GPENCIL_Storage");
 	}
@@ -282,39 +315,6 @@ static void GPENCIL_cache_init(void *vedata)
 	stl->g_data->gp_cache_size = 0;
 	stl->g_data->gp_object_cache = NULL;
 
-	/* full screen for mix zdepth*/
-	if (!e_data.gpencil_fullscreen_sh) {
-		e_data.gpencil_fullscreen_sh = DRW_shader_create_fullscreen(datatoc_gpencil_zdepth_mix_frag_glsl, NULL);
-	}
-	if (!e_data.gpencil_simple_fullscreen_sh) {
-		e_data.gpencil_simple_fullscreen_sh = DRW_shader_create_fullscreen(datatoc_gpencil_simple_mix_frag_glsl, NULL);
-	}
-	/* vfx shaders (all in screen space) */
-	if (!e_data.gpencil_vfx_blur_sh) {
-		e_data.gpencil_vfx_blur_sh = DRW_shader_create_fullscreen(datatoc_gpencil_gaussian_blur_frag_glsl, NULL);
-	}
-	if (!e_data.gpencil_vfx_wave_sh) {
-		e_data.gpencil_vfx_wave_sh = DRW_shader_create_fullscreen(datatoc_gpencil_wave_frag_glsl, NULL);
-	}
-	if (!e_data.gpencil_vfx_pixel_sh) {
-		e_data.gpencil_vfx_pixel_sh = DRW_shader_create_fullscreen(datatoc_gpencil_pixel_frag_glsl, NULL);
-	}
-	if (!e_data.gpencil_vfx_swirl_sh) {
-		e_data.gpencil_vfx_swirl_sh = DRW_shader_create_fullscreen(datatoc_gpencil_swirl_frag_glsl, NULL);
-	}
-	if (!e_data.gpencil_vfx_flip_sh) {
-		e_data.gpencil_vfx_flip_sh = DRW_shader_create_fullscreen(datatoc_gpencil_flip_frag_glsl, NULL);
-	}
-	if (!e_data.gpencil_vfx_light_sh) {
-		e_data.gpencil_vfx_light_sh = DRW_shader_create_fullscreen(datatoc_gpencil_light_frag_glsl, NULL);
-	}
-	if (!e_data.gpencil_painting_sh) {
-		e_data.gpencil_painting_sh = DRW_shader_create_fullscreen(datatoc_gpencil_painting_frag_glsl, NULL);
-	}
-	if (!e_data.gpencil_paper_sh) {
-		e_data.gpencil_paper_sh = DRW_shader_create_fullscreen(datatoc_gpencil_paper_frag_glsl, NULL);
-	}
-
 	{
 		/* Stroke pass */
 		psl->stroke_pass = DRW_pass_create("GPencil Stroke Pass", DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_ALWAYS | DRW_STATE_BLEND);



More information about the Bf-blender-cvs mailing list