[Bf-blender-cvs] [02cb6a7b2aa] temp-greasepencil-vfx: Add Transparent option to Colorize FX

Antonio Vazquez noreply at git.blender.org
Wed Jul 4 10:33:09 CEST 2018


Commit: 02cb6a7b2aa0fdc0d6792fdcd90fc0a1a9bbead8
Author: Antonio Vazquez
Date:   Wed Jul 4 10:33:00 2018 +0200
Branches: temp-greasepencil-vfx
https://developer.blender.org/rB02cb6a7b2aa0fdc0d6792fdcd90fc0a1a9bbead8

Add Transparent option to Colorize FX

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

M	release/scripts/startup/bl_ui/properties_data_shaderfx.py
M	source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_colorize_frag.glsl
M	source/blender/makesdna/DNA_shader_fx_types.h
M	source/blender/makesrna/intern/rna_shader_fx.c
M	source/blender/shader_fx/intern/FX_shader_colorize.c

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

diff --git a/release/scripts/startup/bl_ui/properties_data_shaderfx.py b/release/scripts/startup/bl_ui/properties_data_shaderfx.py
index dc4a4e5447a..5010f56d234 100644
--- a/release/scripts/startup/bl_ui/properties_data_shaderfx.py
+++ b/release/scripts/startup/bl_ui/properties_data_shaderfx.py
@@ -76,7 +76,7 @@ class DATA_PT_shader_fx(ShaderFxButtonsPanel, Panel):
         if fx.mode == 'BITONE':
             layout.prop(fx, "high_color", text="High Color")
 
-        if fx.mode in {'BITONE', 'CUSTOM'}:
+        if fx.mode in {'BITONE', 'CUSTOM', 'TRANSPARENT'}:
             layout.prop(fx, "factor")
 
     def FX_WAVE(self, layout,fx):
diff --git a/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_colorize_frag.glsl b/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_colorize_frag.glsl
index c5ac710de1e..7d0ce4a804e 100644
--- a/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_colorize_frag.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/fx/gpencil_fx_colorize_frag.glsl
@@ -12,6 +12,7 @@ out vec4 FragColor;
 #define MODE_SEPIA       1
 #define MODE_BITONE      2
 #define MODE_CUSTOM      3
+#define MODE_TRANSPARENT 4
 
 float get_luminance(vec4 color)
 {
@@ -68,6 +69,11 @@ void main()
 			}
 			break;
 			}
+		case MODE_TRANSPARENT:
+			{
+			outcolor = vec4(src_pixel.rgb, src_pixel.a * factor);
+			break;
+			}
 		default:
 			{
 			outcolor = src_pixel;
diff --git a/source/blender/makesdna/DNA_shader_fx_types.h b/source/blender/makesdna/DNA_shader_fx_types.h
index 601c6ee2d4c..47beae67498 100644
--- a/source/blender/makesdna/DNA_shader_fx_types.h
+++ b/source/blender/makesdna/DNA_shader_fx_types.h
@@ -108,6 +108,7 @@ typedef enum ColorizeShaderFxModes {
 	eShaderFxColorizeMode_Sepia = 1,
 	eShaderFxColorizeMode_BiTone = 2,
 	eShaderFxColorizeMode_Custom = 3,
+	eShaderFxColorizeMode_Transparent = 4,
 } ColorizeShaderFxModes;
 
 typedef struct FlipShaderFxData {
diff --git a/source/blender/makesrna/intern/rna_shader_fx.c b/source/blender/makesrna/intern/rna_shader_fx.c
index c7633b0e01b..4956333b202 100644
--- a/source/blender/makesrna/intern/rna_shader_fx.c
+++ b/source/blender/makesrna/intern/rna_shader_fx.c
@@ -75,6 +75,7 @@ const EnumPropertyItem rna_enum_shaderfx_colorize_modes_items[] = {
 	{eShaderFxColorizeMode_GrayScale, "GRAYSCALE", 0, "Gray Scale", "" },
 	{eShaderFxColorizeMode_Sepia, "SEPIA", 0, "Sepia", "" },
 	{eShaderFxColorizeMode_BiTone, "BITONE", 0, "Bi-Tone", "" },
+	{eShaderFxColorizeMode_Transparent, "TRANSPARENT", 0, "Transparent", "" },
 	{eShaderFxColorizeMode_Custom, "CUSTOM", 0, "Custom", "" },
 	{0, NULL, 0, NULL, NULL }
 };
diff --git a/source/blender/shader_fx/intern/FX_shader_colorize.c b/source/blender/shader_fx/intern/FX_shader_colorize.c
index c6f3216626b..edf276b842c 100644
--- a/source/blender/shader_fx/intern/FX_shader_colorize.c
+++ b/source/blender/shader_fx/intern/FX_shader_colorize.c
@@ -55,7 +55,7 @@ ShaderFxTypeInfo shaderfx_Type_Colorize = {
 	/* structName */        "ColorizeShaderFxData",
 	/* structSize */        sizeof(ColorizeShaderFxData),
 	/* type */              eShaderFxType_GpencilType,
-	/* flags */             eShaderFxTypeFlag_Single,
+	/* flags */             0,
 
 	/* copyData */          copyData,



More information about the Bf-blender-cvs mailing list