[Bf-blender-cvs] [64d2b739321] greasepencil-object: GPencil: Change Glow Radius to Size X/Y

Antonio Vazquez noreply at git.blender.org
Mon Feb 17 17:24:34 CET 2020


Commit: 64d2b739321ad83304aed86fecabfb32723f470d
Author: Antonio Vazquez
Date:   Mon Feb 17 17:14:44 2020 +0100
Branches: greasepencil-object
https://developer.blender.org/rB64d2b739321ad83304aed86fecabfb32723f470d

GPencil: Change Glow Radius to Size X/Y

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

M	release/scripts/startup/bl_ui/properties_data_shaderfx.py
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_glow.c

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

diff --git a/release/scripts/startup/bl_ui/properties_data_shaderfx.py b/release/scripts/startup/bl_ui/properties_data_shaderfx.py
index 2a596368b15..6ce040ebe97 100644
--- a/release/scripts/startup/bl_ui/properties_data_shaderfx.py
+++ b/release/scripts/startup/bl_ui/properties_data_shaderfx.py
@@ -138,8 +138,9 @@ class DATA_PT_shader_fx(ShaderFxButtonsPanel, Panel):
 
         layout.separator()
         layout.prop(fx, "blend_mode", text="Blend")
+        layout.prop(fx, "opacity")
 
-        layout.prop(fx, "radius")
+        layout.prop(fx, "size")
         layout.prop(fx, "rotation")
         layout.prop(fx, "samples")
 
diff --git a/source/blender/makesdna/DNA_shader_fx_types.h b/source/blender/makesdna/DNA_shader_fx_types.h
index 7c09e183de8..1514912b4cd 100644
--- a/source/blender/makesdna/DNA_shader_fx_types.h
+++ b/source/blender/makesdna/DNA_shader_fx_types.h
@@ -134,18 +134,19 @@ typedef enum eFlipShaderFx_Flag {
 
 typedef struct GlowShaderFxData {
   ShaderFxData shaderfx;
-  float glow_color[3];
+  float glow_color[4];
   float select_color[3];
   float threshold;
   /** Flags. */
   int flag;
   int mode;
-  int blur[2];
+  float blur[2];
   int samples;
   /** Rotation of effect.  */
   float rotation;
   /** Blend modes. */
   int blend_mode;
+  char _pad[4];
 
   ShaderFxData_Runtime runtime;
 } GlowShaderFxData;
diff --git a/source/blender/makesrna/intern/rna_shader_fx.c b/source/blender/makesrna/intern/rna_shader_fx.c
index d1a7f0ad0cc..9823c47e46c 100644
--- a/source/blender/makesrna/intern/rna_shader_fx.c
+++ b/source/blender/makesrna/intern/rna_shader_fx.c
@@ -216,7 +216,7 @@ static void rna_def_shader_fx_blur(BlenderRNA *brna)
   RNA_def_struct_sdna(srna, "BlurShaderFxData");
   RNA_def_struct_ui_icon(srna, ICON_SHADERFX);
 
-  prop = RNA_def_property(srna, "size", PROP_FLOAT, PROP_NONE);
+  prop = RNA_def_property(srna, "size", PROP_FLOAT, PROP_XYZ);
   RNA_def_property_float_sdna(prop, NULL, "radius");
   RNA_def_property_range(prop, 0.0f, FLT_MAX);
   RNA_def_property_ui_text(prop, "Size", "Factor of Blur");
@@ -516,6 +516,13 @@ static void rna_def_shader_fx_glow(BlenderRNA *brna)
   RNA_def_property_ui_text(prop, "Glow Color", "Color used for generated glow");
   RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update");
 
+  prop = RNA_def_property(srna, "opacity", PROP_FLOAT, PROP_FACTOR);
+  RNA_def_property_float_sdna(prop, NULL, "glow_color[3]");
+  RNA_def_property_range(prop, 0.0, 1.0f);
+  RNA_def_property_ui_text(prop, "Opacity", "Effect Opacity");
+  RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
+  RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update");
+
   prop = RNA_def_property(srna, "select_color", PROP_FLOAT, PROP_COLOR);
   RNA_def_property_range(prop, 0.0, 1.0);
   RNA_def_property_float_sdna(prop, NULL, "select_color");
@@ -536,13 +543,11 @@ static void rna_def_shader_fx_glow(BlenderRNA *brna)
   RNA_def_property_ui_text(prop, "Threshold", "Limit to select color for glow effect");
   RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update");
 
-  /* Use blur fields to make compatible with blur filter,
-   * but only makes public first array element. */
-  prop = RNA_def_property(srna, "radius", PROP_INT, PROP_PIXEL);
-  RNA_def_property_int_sdna(prop, NULL, "blur[0]");
-  RNA_def_property_range(prop, 0, SHRT_MAX);
-  RNA_def_property_ui_text(
-      prop, "Radius", "Number of pixels for blurring glow (set to 0 to disable)");
+  /* Use blur fields to make compatible with blur filter */
+  prop = RNA_def_property(srna, "size", PROP_FLOAT, PROP_XYZ);
+  RNA_def_property_float_sdna(prop, NULL, "blur");
+  RNA_def_property_range(prop, 0.0f, FLT_MAX);
+  RNA_def_property_ui_text(prop, "Size", "Size of th effect");
   RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update");
 
   prop = RNA_def_property(srna, "samples", PROP_INT, PROP_NONE);
diff --git a/source/blender/shader_fx/intern/FX_shader_glow.c b/source/blender/shader_fx/intern/FX_shader_glow.c
index 1b1e4dc9d94..6b23afb142f 100644
--- a/source/blender/shader_fx/intern/FX_shader_glow.c
+++ b/source/blender/shader_fx/intern/FX_shader_glow.c
@@ -27,6 +27,7 @@
 #include "DNA_object_types.h"
 #include "DNA_gpencil_types.h"
 
+#include "BLI_math.h"
 #include "BLI_utildefines.h"
 
 #include "BKE_modifier.h"
@@ -37,11 +38,10 @@
 static void initData(ShaderFxData *md)
 {
   GlowShaderFxData *gpfx = (GlowShaderFxData *)md;
-  ARRAY_SET_ITEMS(gpfx->glow_color, 0.75f, 1.0f, 1.0f);
+  ARRAY_SET_ITEMS(gpfx->glow_color, 0.75f, 1.0f, 1.0f, 1.0f);
   ARRAY_SET_ITEMS(gpfx->select_color, 0.0f, 0.0f, 0.0f);
+  copy_v2_fl(gpfx->blur, 50.0f);
   gpfx->threshold = 0.1f;
-
-  ARRAY_SET_ITEMS(gpfx->blur, 50, 0);
   gpfx->samples = 16;
 }



More information about the Bf-blender-cvs mailing list