Commit: 8abbc7c97b192c8c5b9ce3ed8795d58cf7fa495a
Author: Antonio Vazquez
Date:   Mon Jul 2 10:16:10 2018 +0200
Branches: temp-greasepencil-vfx
https://developer.blender.org/rB8abbc7c97b192c8c5b9ce3ed8795d58cf7fa495a

Cleanup: Reduce number of passes defined

Reuse the same pass for all effects.

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

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

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

diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h 
b/source/blender/draw/engines/gpencil/gpencil_engine.h
index 766a555b255..ffb99224100 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.h
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.h
@@ -207,14 +207,7 @@ typedef struct GPENCIL_PassList {
        struct DRWPass *paper_pass;
 
        /* effects */
-       struct DRWPass *fx_blur_pass;
-       struct DRWPass *fx_colorize_pass;
-       struct DRWPass *fx_flip_pass;
-       struct DRWPass *fx_light_pass;
-       struct DRWPass *fx_pixel_pass;
-       struct DRWPass *fx_rim_pass;
-       struct DRWPass *fx_swirl_pass;
-       struct DRWPass *fx_wave_pass;
+       struct DRWPass *fx_shader_pass;
 
 } GPENCIL_PassList;
 
diff --git a/source/blender/draw/engines/gpencil/gpencil_shader_fx.c 
b/source/blender/draw/engines/gpencil/gpencil_shader_fx.c
index e1518deb69f..ce47c7d4b63 100644
--- a/source/blender/draw/engines/gpencil/gpencil_shader_fx.c
+++ b/source/blender/draw/engines/gpencil/gpencil_shader_fx.c
@@ -208,7 +208,7 @@ static void DRW_gpencil_fx_blur(
 
        struct Gwn_Batch *fxquad = DRW_cache_fullscreen_quad_get();
 
-       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_blur_sh, 
psl->fx_blur_pass);
+       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_blur_sh, 
psl->fx_shader_pass);
        DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", 
&e_data->temp_color_tx_a);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", 
&e_data->temp_depth_tx_a);
@@ -238,7 +238,7 @@ static void DRW_gpencil_fx_colorize(
        stl->fx[ob_idx].fx_colorize.factor = fxd->factor;
 
        struct Gwn_Batch *fxquad = DRW_cache_fullscreen_quad_get();
-       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_colorize_sh, 
psl->fx_colorize_pass);
+       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_colorize_sh, 
psl->fx_shader_pass);
        DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", 
&e_data->temp_color_tx_a);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", 
&e_data->temp_depth_tx_a);
@@ -276,7 +276,7 @@ static void DRW_gpencil_fx_flip(
        };
 
        struct Gwn_Batch *fxquad = DRW_cache_fullscreen_quad_get();
-       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_flip_sh, 
psl->fx_flip_pass);
+       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_flip_sh, 
psl->fx_shader_pass);
        DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", 
&e_data->temp_color_tx_a);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", 
&e_data->temp_depth_tx_a);
@@ -306,7 +306,7 @@ static void DRW_gpencil_fx_light(
        DRWShadingGroup *fx_shgrp;
 
        struct Gwn_Batch *fxquad = DRW_cache_fullscreen_quad_get();
-       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_light_sh, 
psl->fx_light_pass);
+       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_light_sh, 
psl->fx_shader_pass);
        DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", 
&e_data->temp_color_tx_a);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", 
&e_data->temp_depth_tx_a);
@@ -367,7 +367,7 @@ static void DRW_gpencil_fx_pixel(
        stl->fx[ob_idx].fx_pixel.lines = (int)fxd->flag & FX_PIXEL_USE_LINES;
 
        struct Gwn_Batch *fxquad = DRW_cache_fullscreen_quad_get();
-       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_pixel_sh, 
psl->fx_pixel_pass);
+       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_pixel_sh, 
psl->fx_shader_pass);
        DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", 
&e_data->temp_color_tx_a);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", 
&e_data->temp_depth_tx_a);
@@ -407,7 +407,7 @@ static void DRW_gpencil_fx_rim(
        stl->fx[ob_idx].fx_rim.mode = fxd->mode;
 
        struct Gwn_Batch *fxquad = DRW_cache_fullscreen_quad_get();
-       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_rim_sh, 
psl->fx_rim_pass);
+       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_rim_sh, 
psl->fx_shader_pass);
        DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", 
&e_data->temp_color_tx_a);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", 
&e_data->temp_depth_tx_a);
@@ -449,7 +449,7 @@ static void DRW_gpencil_fx_swirl(
        stl->fx[ob_idx].fx_swirl.transparent = (int)fxd->flag & 
FX_SWIRL_MAKE_TRANSPARENT;
 
        struct Gwn_Batch *fxquad = DRW_cache_fullscreen_quad_get();
-       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_swirl_sh, 
psl->fx_swirl_pass);
+       fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_swirl_sh, 
psl->fx_shader_pass);
        DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", 
&e_data->temp_color_tx_a);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", 
&e_data->temp_depth_tx_a);
@@ -490,7 +490,7 @@ static void DRW_gpencil_fx_wave(
 
        struct Gwn_Batch *fxquad = DRW_cache_fullscreen_quad_get();
 
-       DRWShadingGroup *fx_shgrp = 
DRW_shgroup_create(e_data->gpencil_fx_wave_sh, psl->fx_wave_pass);
+       DRWShadingGroup *fx_shgrp = 
DRW_shgroup_create(e_data->gpencil_fx_wave_sh, psl->fx_shader_pass);
        DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", 
&e_data->temp_color_tx_a);
        DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", 
&e_data->temp_depth_tx_a);
@@ -553,22 +553,7 @@ void GPENCIL_create_fx_passes(GPENCIL_PassList *psl)
 {
        DRWState state = DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND |
                DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS;
-       /* FX passes */
-       psl->fx_blur_pass = DRW_pass_create("GPencil FX Blur Pass", state);
-
-       psl->fx_colorize_pass = DRW_pass_create("GPencil FX Colorize Pass", 
state);
-
-       psl->fx_flip_pass = DRW_pass_create("GPencil FX Flip Pass", state);
-
-       psl->fx_light_pass = DRW_pass_create("GPencil FX Light Pass", state);
-
-       psl->fx_pixel_pass = DRW_pass_create("GPencil FX Pixel Pass", state);
-
-       psl->fx_rim_pass = DRW_pass_create("GPencil FX Rim Pass", state);
-
-       psl->fx_swirl_pass = DRW_pass_create("GPencil FX Swirl Pass", state);
-
-       psl->fx_wave_pass = DRW_pass_create("GPencil FX Wave Pass", state);
+       psl->fx_shader_pass = DRW_pass_create("GPencil Shader FX Pass", state);
 }
 
 
@@ -669,7 +654,7 @@ static void gpencil_blur_passes(struct GPENCIL_e_data 
*e_data,
                if (bx > 0) {
                        stl->fx[ob_idx].fx_blur.radius[0] = bx;
                        stl->fx[ob_idx].fx_blur.radius[1] = 0;
-                       gpencil_draw_fx_pass(e_data, psl->fx_blur_pass,
+                       gpencil_draw_fx_pass(e_data, psl->fx_shader_pass,
                                                                
psl->mix_pass_noblend,
                                                                fbl, 
cache->fx_blur_sh);
                }
@@ -677,7 +662,7 @@ static void gpencil_blur_passes(struct GPENCIL_e_data 
*e_data,
                if (by > 0) {
                        stl->fx[ob_idx].fx_blur.radius[0] = 0;
                        stl->fx[ob_idx].fx_blur.radius[1] = by;
-                       gpencil_draw_fx_pass(e_data, psl->fx_blur_pass,
+                       gpencil_draw_fx_pass(e_data, psl->fx_shader_pass,
                                                                
psl->mix_pass_noblend,
                                                                fbl, 
cache->fx_blur_sh);
                }
@@ -704,49 +689,49 @@ void DRW_gpencil_fx_draw(struct GPENCIL_e_data *e_data,
                                        break;
                                case eShaderFxType_Colorize:
                                        if (cache->fx_colorize_sh) {
-                                               gpencil_draw_fx_pass(e_data, 
psl->fx_colorize_pass,
+                                               gpencil_draw_fx_pass(e_data, 
psl->fx_shader_pass,
                                                        psl->mix_pass_noblend,
                                                        fbl, 
cache->fx_colorize_sh);
                                        }
                                        break;
                                case eShaderFxType_Flip:
                                        if (cache->fx_flip_sh) {
-                                               gpencil_draw_fx_pass(e_data, 
psl->fx_flip_pass,
+                                               gpencil_draw_fx_pass(e_data, 
psl->fx_shader_pass,
                                                                                
        psl->mix_pass_noblend,
                                                                                
        fbl, cache->fx_flip_sh);
                                        }
                                        break;
                                case eShaderFxType_Light:
                                        if (cache->fx_light_sh) {
-                                               gpencil_draw_fx_pass(e_data, 
psl->fx_light_pass,
+                                               gpencil_draw_fx_pass(e_data, 
psl->fx_shader_pass,
                                                                                
        psl->mix_pass_noblend,
                                                                                
        fbl, cache->fx_light_sh);
                                        }
                                        break;
                                case eShaderFxType_Pixel:
                                        if (cache->fx_pixel_sh) {
-                                               gpencil_draw_fx_pass(e_data, 
psl->fx_pixel_pass,
+                                               gpencil_draw_fx_pass(e_data, 
psl->fx_shader_pass,
                                                                                
        psl->mix_pass_noblend,
                                                                                
        fbl, cache->fx_pixel_sh);
                                        }
                                        break;
                                case eShaderFxType_Rim:
                                        if (cache->fx_rim_sh) {
-                                               gpencil_draw_fx_pass(e_data, 
psl->fx_rim_pass,
+                                               gpencil_draw_fx_pass(e_data, 
psl->fx_shader_pass,
                                                        psl->mix_pass_noblend,
                                                        fbl, cache->fx_rim_sh);
                                        }
                                        break;
                                case eShaderFxType_Swirl:
                                        if (cache->fx_swirl_sh) {
-                                               gpencil_draw_fx_pass(e_data, 
psl->fx_swirl_pass,
+                                               gpencil_draw_fx_pass(e_data, 
psl->fx_shader_pass,
                                                                                
        psl->mix_pass_noblend,
                                                                                
        fbl, cache->fx_swirl_sh);
                                        }
                                        break;
                                case eShaderFxType_Wave:
                                        if (cache->fx_wave_sh) {
-                                               gpencil_draw_fx_pass(e_data, 
psl->fx_wave_pass,
+                                               gpencil_draw_fx_pass(e_data, 
psl->fx_shader_pass,
                                                                                
        psl->mix_pass_noblend,
                                                                                
        fbl, cache->fx_wave_sh);
                                        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to