Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesrna/intern/rna_shader_fx.c
| Show All 16 Lines | |||||
| /** \file | /** \file | ||||
| * \ingroup RNA | * \ingroup RNA | ||||
| */ | */ | ||||
| #include <float.h> | #include <float.h> | ||||
| #include <limits.h> | #include <limits.h> | ||||
| #include <stdlib.h> | #include <stdlib.h> | ||||
| #include "DNA_shader_fx_types.h" | #include "DNA_gpencil_types.h" | ||||
| #include "DNA_object_types.h" | #include "DNA_object_types.h" | ||||
| #include "DNA_scene_types.h" | #include "DNA_scene_types.h" | ||||
| #include "DNA_shader_fx_types.h" | |||||
| #include "MEM_guardedalloc.h" | #include "MEM_guardedalloc.h" | ||||
| #include "BLI_math.h" | #include "BLI_math.h" | ||||
| #include "BLT_translation.h" | #include "BLT_translation.h" | ||||
| #include "BKE_animsys.h" | #include "BKE_animsys.h" | ||||
| Show All 11 Lines | const EnumPropertyItem rna_enum_object_shaderfx_type_items[] = { | ||||
| {eShaderFxType_Blur, "FX_BLUR", ICON_SHADERFX, "Blur", "Apply Gaussian Blur to object"}, | {eShaderFxType_Blur, "FX_BLUR", ICON_SHADERFX, "Blur", "Apply Gaussian Blur to object"}, | ||||
| {eShaderFxType_Colorize, | {eShaderFxType_Colorize, | ||||
| "FX_COLORIZE", | "FX_COLORIZE", | ||||
| ICON_SHADERFX, | ICON_SHADERFX, | ||||
| "Colorize", | "Colorize", | ||||
| "Apply different tint effects"}, | "Apply different tint effects"}, | ||||
| {eShaderFxType_Flip, "FX_FLIP", ICON_SHADERFX, "Flip", "Flip image"}, | {eShaderFxType_Flip, "FX_FLIP", ICON_SHADERFX, "Flip", "Flip image"}, | ||||
| {eShaderFxType_Glow, "FX_GLOW", ICON_SHADERFX, "Glow", "Create a glow effect"}, | {eShaderFxType_Glow, "FX_GLOW", ICON_SHADERFX, "Glow", "Create a glow effect"}, | ||||
| {eShaderFxType_Light, "FX_LIGHT", ICON_SHADERFX, "Light", "Simulate illumination"}, | |||||
| {eShaderFxType_Pixel, "FX_PIXEL", ICON_SHADERFX, "Pixelate", "Pixelate image"}, | {eShaderFxType_Pixel, "FX_PIXEL", ICON_SHADERFX, "Pixelate", "Pixelate image"}, | ||||
| {eShaderFxType_Rim, "FX_RIM", ICON_SHADERFX, "Rim", "Add a rim to the image"}, | {eShaderFxType_Rim, "FX_RIM", ICON_SHADERFX, "Rim", "Add a rim to the image"}, | ||||
| {eShaderFxType_Shadow, "FX_SHADOW", ICON_SHADERFX, "Shadow", "Create a shadow effect"}, | {eShaderFxType_Shadow, "FX_SHADOW", ICON_SHADERFX, "Shadow", "Create a shadow effect"}, | ||||
| {eShaderFxType_Swirl, "FX_SWIRL", ICON_SHADERFX, "Swirl", "Create a rotation distortion"}, | {eShaderFxType_Swirl, "FX_SWIRL", ICON_SHADERFX, "Swirl", "Create a rotation distortion"}, | ||||
| {eShaderFxType_Wave, | {eShaderFxType_Wave, | ||||
| "FX_WAVE", | "FX_WAVE", | ||||
| ICON_SHADERFX, | ICON_SHADERFX, | ||||
| "Wave Distortion", | "Wave Distortion", | ||||
| Show All 18 Lines | |||||
| static const EnumPropertyItem rna_enum_shaderfx_colorize_modes_items[] = { | static const EnumPropertyItem rna_enum_shaderfx_colorize_modes_items[] = { | ||||
| {eShaderFxColorizeMode_GrayScale, "GRAYSCALE", 0, "Gray Scale", ""}, | {eShaderFxColorizeMode_GrayScale, "GRAYSCALE", 0, "Gray Scale", ""}, | ||||
| {eShaderFxColorizeMode_Sepia, "SEPIA", 0, "Sepia", ""}, | {eShaderFxColorizeMode_Sepia, "SEPIA", 0, "Sepia", ""}, | ||||
| {eShaderFxColorizeMode_Duotone, "DUOTONE", 0, "Duotone", ""}, | {eShaderFxColorizeMode_Duotone, "DUOTONE", 0, "Duotone", ""}, | ||||
| {eShaderFxColorizeMode_Transparent, "TRANSPARENT", 0, "Transparent", ""}, | {eShaderFxColorizeMode_Transparent, "TRANSPARENT", 0, "Transparent", ""}, | ||||
| {eShaderFxColorizeMode_Custom, "CUSTOM", 0, "Custom", ""}, | {eShaderFxColorizeMode_Custom, "CUSTOM", 0, "Custom", ""}, | ||||
| {0, NULL, 0, NULL, NULL}}; | {0, NULL, 0, NULL, NULL}}; | ||||
| static const EnumPropertyItem rna_enum_glow_blend_modes_items[] = { | |||||
| {eGplBlendMode_Regular, "REGULAR", 0, "Regular", ""}, | |||||
| {eGplBlendMode_Add, "ADD", 0, "Add", ""}, | |||||
| {eGplBlendMode_Subtract, "SUBTRACT", 0, "Subtract", ""}, | |||||
| {eGplBlendMode_Multiply, "MULTIPLY", 0, "Multiply", ""}, | |||||
| {eGplBlendMode_Divide, "DIVIDE", 0, "Divide", ""}, | |||||
| {0, NULL, 0, NULL, NULL}}; | |||||
| #ifdef RNA_RUNTIME | #ifdef RNA_RUNTIME | ||||
| # include "BKE_shader_fx.h" | # include "BKE_shader_fx.h" | ||||
| # include "DEG_depsgraph.h" | # include "DEG_depsgraph.h" | ||||
| # include "DEG_depsgraph_build.h" | # include "DEG_depsgraph_build.h" | ||||
| static StructRNA *rna_ShaderFx_refine(struct PointerRNA *ptr) | static StructRNA *rna_ShaderFx_refine(struct PointerRNA *ptr) | ||||
| Show All 14 Lines | switch ((ShaderFxType)md->type) { | ||||
| case eShaderFxType_Shadow: | case eShaderFxType_Shadow: | ||||
| return &RNA_ShaderFxShadow; | return &RNA_ShaderFxShadow; | ||||
| case eShaderFxType_Swirl: | case eShaderFxType_Swirl: | ||||
| return &RNA_ShaderFxSwirl; | return &RNA_ShaderFxSwirl; | ||||
| case eShaderFxType_Flip: | case eShaderFxType_Flip: | ||||
| return &RNA_ShaderFxFlip; | return &RNA_ShaderFxFlip; | ||||
| case eShaderFxType_Glow: | case eShaderFxType_Glow: | ||||
| return &RNA_ShaderFxGlow; | return &RNA_ShaderFxGlow; | ||||
| case eShaderFxType_Light: | |||||
| return &RNA_ShaderFxLight; | |||||
| /* Default */ | /* Default */ | ||||
| case eShaderFxType_None: | case eShaderFxType_None: | ||||
| case NUM_SHADER_FX_TYPES: | case NUM_SHADER_FX_TYPES: | ||||
| default: | |||||
| return &RNA_ShaderFx; | return &RNA_ShaderFx; | ||||
| } | } | ||||
| return &RNA_ShaderFx; | return &RNA_ShaderFx; | ||||
| } | } | ||||
| static void rna_ShaderFx_name_set(PointerRNA *ptr, const char *value) | static void rna_ShaderFx_name_set(PointerRNA *ptr, const char *value) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | |||||
| # define RNA_FX_OBJECT_SET(_type, _prop, _obtype) \ | # define RNA_FX_OBJECT_SET(_type, _prop, _obtype) \ | ||||
| static void rna_##_type##ShaderFx_##_prop##_set( \ | static void rna_##_type##ShaderFx_##_prop##_set( \ | ||||
| PointerRNA *ptr, PointerRNA value, struct ReportList *UNUSED(reports)) \ | PointerRNA *ptr, PointerRNA value, struct ReportList *UNUSED(reports)) \ | ||||
| { \ | { \ | ||||
| _type##ShaderFxData *tmd = (_type##ShaderFxData *)ptr->data; \ | _type##ShaderFxData *tmd = (_type##ShaderFxData *)ptr->data; \ | ||||
| shaderfx_object_set((Object *)ptr->owner_id, &tmd->_prop, _obtype, value); \ | shaderfx_object_set((Object *)ptr->owner_id, &tmd->_prop, _obtype, value); \ | ||||
| } | } | ||||
| RNA_FX_OBJECT_SET(Light, object, OB_EMPTY); | |||||
| RNA_FX_OBJECT_SET(Shadow, object, OB_EMPTY); | RNA_FX_OBJECT_SET(Shadow, object, OB_EMPTY); | ||||
| RNA_FX_OBJECT_SET(Swirl, object, OB_EMPTY); | RNA_FX_OBJECT_SET(Swirl, object, OB_EMPTY); | ||||
| # undef RNA_FX_OBJECT_SET | # undef RNA_FX_OBJECT_SET | ||||
| #else | #else | ||||
| static void rna_def_shader_fx_blur(BlenderRNA *brna) | static void rna_def_shader_fx_blur(BlenderRNA *brna) | ||||
| { | { | ||||
| StructRNA *srna; | StructRNA *srna; | ||||
| PropertyRNA *prop; | PropertyRNA *prop; | ||||
| srna = RNA_def_struct(brna, "ShaderFxBlur", "ShaderFx"); | srna = RNA_def_struct(brna, "ShaderFxBlur", "ShaderFx"); | ||||
| RNA_def_struct_ui_text(srna, "Gaussian Blur Effect", "Gaussian Blur effect"); | RNA_def_struct_ui_text(srna, "Gaussian Blur Effect", "Gaussian Blur effect"); | ||||
| RNA_def_struct_sdna(srna, "BlurShaderFxData"); | RNA_def_struct_sdna(srna, "BlurShaderFxData"); | ||||
| RNA_def_struct_ui_icon(srna, ICON_SHADERFX); | RNA_def_struct_ui_icon(srna, ICON_SHADERFX); | ||||
| prop = RNA_def_property(srna, "factor", PROP_INT, PROP_PIXEL); | prop = RNA_def_property(srna, "size", PROP_FLOAT, PROP_XYZ); | ||||
| RNA_def_property_int_sdna(prop, NULL, "radius"); | RNA_def_property_float_sdna(prop, NULL, "radius"); | ||||
| RNA_def_property_range(prop, 0, SHRT_MAX); | RNA_def_property_range(prop, 0.0f, FLT_MAX); | ||||
| RNA_def_property_ui_text(prop, "Factor", "Factor of Blur"); | RNA_def_property_ui_text(prop, "Size", "Factor of Blur"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "samples", PROP_INT, PROP_NONE); | prop = RNA_def_property(srna, "samples", PROP_INT, PROP_NONE); | ||||
| RNA_def_property_int_sdna(prop, NULL, "samples"); | RNA_def_property_int_sdna(prop, NULL, "samples"); | ||||
| RNA_def_property_range(prop, 0, 32); | RNA_def_property_range(prop, 0, 32); | ||||
| RNA_def_property_ui_range(prop, 0, 32, 2, -1); | RNA_def_property_ui_range(prop, 0, 32, 2, -1); | ||||
| RNA_def_property_int_default(prop, 4); | RNA_def_property_int_default(prop, 4); | ||||
| RNA_def_property_ui_text(prop, "Samples", "Number of Blur Samples (zero, disable blur)"); | RNA_def_property_ui_text(prop, "Samples", "Number of Blur Samples (zero, disable blur)"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "coc", PROP_FLOAT, PROP_NONE); | prop = RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_ANGLE); | ||||
| RNA_def_property_float_sdna(prop, NULL, "coc"); | RNA_def_property_float_sdna(prop, NULL, "rotation"); | ||||
| RNA_def_property_range(prop, 0.001f, 1.0f); | RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); | ||||
| RNA_def_property_float_default(prop, 0.025f); | RNA_def_property_ui_text(prop, "Rotation", "Rotation of the effect"); | ||||
| RNA_def_property_ui_text(prop, "Precision", "Define circle of confusion for depth of field"); | |||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "use_dof_mode", PROP_BOOLEAN, PROP_NONE); | prop = RNA_def_property(srna, "use_dof_mode", PROP_BOOLEAN, PROP_NONE); | ||||
| RNA_def_property_boolean_sdna(prop, NULL, "flag", FX_BLUR_DOF_MODE); | RNA_def_property_boolean_sdna(prop, NULL, "flag", FX_BLUR_DOF_MODE); | ||||
| RNA_def_property_ui_text(prop, | RNA_def_property_ui_text(prop, "Use as Depth Of Field", "Blur using camera depth of field"); | ||||
| "Lock Focal Plane", | |||||
| "Blur using focal plane distance as factor to simulate depth of field " | |||||
| "effect (only in camera view)"); | |||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| } | } | ||||
| static void rna_def_shader_fx_colorize(BlenderRNA *brna) | static void rna_def_shader_fx_colorize(BlenderRNA *brna) | ||||
| { | { | ||||
| StructRNA *srna; | StructRNA *srna; | ||||
| PropertyRNA *prop; | PropertyRNA *prop; | ||||
| srna = RNA_def_struct(brna, "ShaderFxColorize", "ShaderFx"); | srna = RNA_def_struct(brna, "ShaderFxColorize", "ShaderFx"); | ||||
| RNA_def_struct_ui_text(srna, "Colorize Effect", "Colorize effect"); | RNA_def_struct_ui_text(srna, "Colorize Effect", "Colorize effect"); | ||||
| RNA_def_struct_sdna(srna, "ColorizeShaderFxData"); | RNA_def_struct_sdna(srna, "ColorizeShaderFxData"); | ||||
| RNA_def_struct_ui_icon(srna, ICON_SHADERFX); | RNA_def_struct_ui_icon(srna, ICON_SHADERFX); | ||||
| prop = RNA_def_property(srna, "factor", PROP_FLOAT, PROP_NONE); | prop = RNA_def_property(srna, "factor", PROP_FLOAT, PROP_NONE); | ||||
| RNA_def_property_float_sdna(prop, NULL, "factor"); | RNA_def_property_float_sdna(prop, NULL, "factor"); | ||||
| RNA_def_property_range(prop, 0, 1.0); | RNA_def_property_range(prop, 0, 1.0); | ||||
| RNA_def_property_ui_text(prop, "Factor", "Mix factor"); | RNA_def_property_ui_text(prop, "Factor", "Mix factor"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "low_color", PROP_FLOAT, PROP_COLOR_GAMMA); | prop = RNA_def_property(srna, "low_color", PROP_FLOAT, PROP_COLOR); | ||||
| RNA_def_property_range(prop, 0.0, 1.0); | RNA_def_property_range(prop, 0.0, 1.0); | ||||
| RNA_def_property_float_sdna(prop, NULL, "low_color"); | RNA_def_property_float_sdna(prop, NULL, "low_color"); | ||||
| RNA_def_property_array(prop, 4); | RNA_def_property_array(prop, 4); | ||||
| RNA_def_property_ui_text(prop, "Low Color", "First color used for effect"); | RNA_def_property_ui_text(prop, "Low Color", "First color used for effect"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "high_color", PROP_FLOAT, PROP_COLOR_GAMMA); | prop = RNA_def_property(srna, "high_color", PROP_FLOAT, PROP_COLOR); | ||||
| RNA_def_property_range(prop, 0.0, 1.0); | RNA_def_property_range(prop, 0.0, 1.0); | ||||
| RNA_def_property_float_sdna(prop, NULL, "high_color"); | RNA_def_property_float_sdna(prop, NULL, "high_color"); | ||||
| RNA_def_property_array(prop, 4); | RNA_def_property_array(prop, 4); | ||||
| RNA_def_property_ui_text(prop, "High Color", "Second color used for effect"); | RNA_def_property_ui_text(prop, "High Color", "Second color used for effect"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE); | prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE); | ||||
| RNA_def_property_enum_sdna(prop, NULL, "mode"); | RNA_def_property_enum_sdna(prop, NULL, "mode"); | ||||
| ▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | static void rna_def_shader_fx_pixel(BlenderRNA *brna) | ||||
| prop = RNA_def_property(srna, "size", PROP_INT, PROP_PIXEL); | prop = RNA_def_property(srna, "size", PROP_INT, PROP_PIXEL); | ||||
| RNA_def_property_int_sdna(prop, NULL, "size"); | RNA_def_property_int_sdna(prop, NULL, "size"); | ||||
| RNA_def_property_range(prop, 1, SHRT_MAX); | RNA_def_property_range(prop, 1, SHRT_MAX); | ||||
| RNA_def_property_array(prop, 2); | RNA_def_property_array(prop, 2); | ||||
| RNA_def_property_ui_text(prop, "Size", "Pixel size"); | RNA_def_property_ui_text(prop, "Size", "Pixel size"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR_GAMMA); | prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR); | ||||
| RNA_def_property_range(prop, 0.0, 1.0); | RNA_def_property_range(prop, 0.0, 1.0); | ||||
| RNA_def_property_float_sdna(prop, NULL, "rgba"); | RNA_def_property_float_sdna(prop, NULL, "rgba"); | ||||
| RNA_def_property_array(prop, 4); | RNA_def_property_array(prop, 4); | ||||
| RNA_def_property_ui_text(prop, "Color", "Color used for lines"); | RNA_def_property_ui_text(prop, "Color", "Color used for lines"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "use_lines", PROP_BOOLEAN, PROP_NONE); | prop = RNA_def_property(srna, "use_lines", PROP_BOOLEAN, PROP_NONE); | ||||
| RNA_def_property_boolean_sdna(prop, NULL, "flag", FX_PIXEL_USE_LINES); | RNA_def_property_boolean_sdna(prop, NULL, "flag", FX_PIXEL_USE_LINES); | ||||
| Show All 12 Lines | static void rna_def_shader_fx_rim(BlenderRNA *brna) | ||||
| RNA_def_struct_ui_icon(srna, ICON_SHADERFX); | RNA_def_struct_ui_icon(srna, ICON_SHADERFX); | ||||
| prop = RNA_def_property(srna, "offset", PROP_INT, PROP_PIXEL); | prop = RNA_def_property(srna, "offset", PROP_INT, PROP_PIXEL); | ||||
| RNA_def_property_int_sdna(prop, NULL, "offset"); | RNA_def_property_int_sdna(prop, NULL, "offset"); | ||||
| RNA_def_property_range(prop, SHRT_MIN, SHRT_MAX); | RNA_def_property_range(prop, SHRT_MIN, SHRT_MAX); | ||||
| RNA_def_property_ui_text(prop, "Offset", "Offset of the rim"); | RNA_def_property_ui_text(prop, "Offset", "Offset of the rim"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "rim_color", PROP_FLOAT, PROP_COLOR_GAMMA); | prop = RNA_def_property(srna, "rim_color", PROP_FLOAT, PROP_COLOR); | ||||
| RNA_def_property_range(prop, 0.0, 1.0); | RNA_def_property_range(prop, 0.0, 1.0); | ||||
| RNA_def_property_float_sdna(prop, NULL, "rim_rgb"); | RNA_def_property_float_sdna(prop, NULL, "rim_rgb"); | ||||
| RNA_def_property_array(prop, 3); | RNA_def_property_array(prop, 3); | ||||
| RNA_def_property_ui_text(prop, "Rim Color", "Color used for Rim"); | RNA_def_property_ui_text(prop, "Rim Color", "Color used for Rim"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "mask_color", PROP_FLOAT, PROP_COLOR_GAMMA); | prop = RNA_def_property(srna, "mask_color", PROP_FLOAT, PROP_COLOR); | ||||
| RNA_def_property_range(prop, 0.0, 1.0); | RNA_def_property_range(prop, 0.0, 1.0); | ||||
| RNA_def_property_float_sdna(prop, NULL, "mask_rgb"); | RNA_def_property_float_sdna(prop, NULL, "mask_rgb"); | ||||
| RNA_def_property_array(prop, 3); | RNA_def_property_array(prop, 3); | ||||
| RNA_def_property_ui_text(prop, "Mask Color", "Color that must be kept"); | RNA_def_property_ui_text(prop, "Mask Color", "Color that must be kept"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE); | prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE); | ||||
| RNA_def_property_enum_sdna(prop, NULL, "mode"); | RNA_def_property_enum_sdna(prop, NULL, "mode"); | ||||
| ▲ Show 20 Lines • Show All 46 Lines • ▼ Show 20 Lines | static void rna_def_shader_fx_shadow(BlenderRNA *brna) | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "scale", PROP_FLOAT, PROP_NONE); | prop = RNA_def_property(srna, "scale", PROP_FLOAT, PROP_NONE); | ||||
| RNA_def_property_float_sdna(prop, NULL, "scale"); | RNA_def_property_float_sdna(prop, NULL, "scale"); | ||||
| RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); | RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); | ||||
| RNA_def_property_ui_text(prop, "Scale", "Offset of the shadow"); | RNA_def_property_ui_text(prop, "Scale", "Offset of the shadow"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "shadow_color", PROP_FLOAT, PROP_COLOR_GAMMA); | prop = RNA_def_property(srna, "shadow_color", PROP_FLOAT, PROP_COLOR); | ||||
| RNA_def_property_range(prop, 0.0, 1.0); | RNA_def_property_range(prop, 0.0, 1.0); | ||||
| RNA_def_property_float_sdna(prop, NULL, "shadow_rgba"); | RNA_def_property_float_sdna(prop, NULL, "shadow_rgba"); | ||||
| RNA_def_property_array(prop, 4); | RNA_def_property_array(prop, 4); | ||||
| RNA_def_property_ui_text(prop, "Shadow Color", "Color used for Shadow"); | RNA_def_property_ui_text(prop, "Shadow Color", "Color used for Shadow"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "orientation", PROP_ENUM, PROP_NONE); | prop = RNA_def_property(srna, "orientation", PROP_ENUM, PROP_NONE); | ||||
| RNA_def_property_enum_sdna(prop, NULL, "orientation"); | RNA_def_property_enum_sdna(prop, NULL, "orientation"); | ||||
| ▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | static void rna_def_shader_fx_glow(BlenderRNA *brna) | ||||
| StructRNA *srna; | StructRNA *srna; | ||||
| PropertyRNA *prop; | PropertyRNA *prop; | ||||
| srna = RNA_def_struct(brna, "ShaderFxGlow", "ShaderFx"); | srna = RNA_def_struct(brna, "ShaderFxGlow", "ShaderFx"); | ||||
| RNA_def_struct_ui_text(srna, "Glow Effect", "Glow effect"); | RNA_def_struct_ui_text(srna, "Glow Effect", "Glow effect"); | ||||
| RNA_def_struct_sdna(srna, "GlowShaderFxData"); | RNA_def_struct_sdna(srna, "GlowShaderFxData"); | ||||
| RNA_def_struct_ui_icon(srna, ICON_SHADERFX); | RNA_def_struct_ui_icon(srna, ICON_SHADERFX); | ||||
| prop = RNA_def_property(srna, "glow_color", PROP_FLOAT, PROP_COLOR_GAMMA); | prop = RNA_def_property(srna, "glow_color", PROP_FLOAT, PROP_COLOR); | ||||
| RNA_def_property_range(prop, 0.0, 1.0); | RNA_def_property_range(prop, 0.0, 1.0); | ||||
| RNA_def_property_float_sdna(prop, NULL, "glow_color"); | RNA_def_property_float_sdna(prop, NULL, "glow_color"); | ||||
| RNA_def_property_array(prop, 3); | RNA_def_property_array(prop, 3); | ||||
| RNA_def_property_ui_text(prop, "Glow Color", "Color used for generated glow"); | 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"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "select_color", PROP_FLOAT, PROP_COLOR_GAMMA); | 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_range(prop, 0.0, 1.0); | ||||
| RNA_def_property_float_sdna(prop, NULL, "select_color"); | RNA_def_property_float_sdna(prop, NULL, "select_color"); | ||||
| RNA_def_property_array(prop, 3); | RNA_def_property_array(prop, 3); | ||||
| RNA_def_property_ui_text(prop, "Select Color", "Color selected to apply glow"); | RNA_def_property_ui_text(prop, "Select Color", "Color selected to apply glow"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE); | prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE); | ||||
| RNA_def_property_enum_sdna(prop, NULL, "mode"); | RNA_def_property_enum_sdna(prop, NULL, "mode"); | ||||
| RNA_def_property_enum_items(prop, rna_enum_shaderfx_glow_modes_items); | RNA_def_property_enum_items(prop, rna_enum_shaderfx_glow_modes_items); | ||||
| RNA_def_property_ui_text(prop, "Mode", "Glow mode"); | RNA_def_property_ui_text(prop, "Mode", "Glow mode"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "threshold", PROP_FLOAT, PROP_FACTOR); | prop = RNA_def_property(srna, "threshold", PROP_FLOAT, PROP_FACTOR); | ||||
| RNA_def_property_float_sdna(prop, NULL, "threshold"); | RNA_def_property_float_sdna(prop, NULL, "threshold"); | ||||
| RNA_def_property_range(prop, 0.0f, 1.0f); | RNA_def_property_range(prop, 0.0f, 1.0f); | ||||
| RNA_def_property_ui_range(prop, 0.0f, 1.0f, 0.1f, 3); | RNA_def_property_ui_range(prop, 0.0f, 1.0f, 0.1f, 3); | ||||
| RNA_def_property_ui_text(prop, "Threshold", "Limit to select color for glow effect"); | 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"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| /* Use blur fields to make compatible with blur filter, | /* Use blur fields to make compatible with blur filter */ | ||||
| * but only makes public first array element. */ | prop = RNA_def_property(srna, "size", PROP_FLOAT, PROP_XYZ); | ||||
| prop = RNA_def_property(srna, "radius", PROP_INT, PROP_PIXEL); | RNA_def_property_float_sdna(prop, NULL, "blur"); | ||||
| RNA_def_property_int_sdna(prop, NULL, "blur[0]"); | RNA_def_property_range(prop, 0.0f, FLT_MAX); | ||||
| RNA_def_property_range(prop, 0, SHRT_MAX); | RNA_def_property_ui_text(prop, "Size", "Size of th effect"); | ||||
| RNA_def_property_ui_text( | |||||
| prop, "Radius", "Number of pixels for blurring glow (set to 0 to disable)"); | |||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "samples", PROP_INT, PROP_NONE); | prop = RNA_def_property(srna, "samples", PROP_INT, PROP_NONE); | ||||
| RNA_def_property_int_sdna(prop, NULL, "samples"); | RNA_def_property_int_sdna(prop, NULL, "samples"); | ||||
| RNA_def_property_range(prop, 1, 32); | RNA_def_property_range(prop, 1, 32); | ||||
| RNA_def_property_ui_range(prop, 1, 32, 2, -1); | RNA_def_property_ui_range(prop, 1, 32, 2, -1); | ||||
| RNA_def_property_int_default(prop, 4); | RNA_def_property_int_default(prop, 4); | ||||
| RNA_def_property_ui_text(prop, "Samples", "Number of Blur Samples"); | RNA_def_property_ui_text(prop, "Samples", "Number of Blur Samples"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "use_alpha_mode", PROP_BOOLEAN, PROP_NONE); | prop = RNA_def_property(srna, "use_glow_under", PROP_BOOLEAN, PROP_NONE); | ||||
| RNA_def_property_boolean_sdna(prop, NULL, "flag", FX_GLOW_USE_ALPHA); | RNA_def_property_boolean_sdna(prop, NULL, "flag", FX_GLOW_USE_ALPHA); | ||||
| RNA_def_property_ui_text(prop, "Use Alpha", "Glow only areas with alpha"); | RNA_def_property_ui_text( | ||||
| prop, "Glow Under", "Glow only areas with alpha (not supported with Regular blend mode)"); | |||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | |||||
| prop = RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_ANGLE); | |||||
| RNA_def_property_float_sdna(prop, NULL, "rotation"); | |||||
| RNA_def_property_range(prop, -FLT_MAX, FLT_MAX); | |||||
| RNA_def_property_ui_text(prop, "Rotation", "Rotation of the effect"); | |||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | |||||
| /* blend mode */ | |||||
| prop = RNA_def_property(srna, "blend_mode", PROP_ENUM, PROP_NONE); | |||||
| RNA_def_property_enum_sdna(prop, NULL, "blend_mode"); | |||||
| RNA_def_property_enum_items(prop, rna_enum_glow_blend_modes_items); | |||||
| RNA_def_property_ui_text(prop, "Blend Mode", "Blend mode"); | |||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| } | } | ||||
| static void rna_def_shader_fx_swirl(BlenderRNA *brna) | static void rna_def_shader_fx_swirl(BlenderRNA *brna) | ||||
| { | { | ||||
| StructRNA *srna; | StructRNA *srna; | ||||
| PropertyRNA *prop; | PropertyRNA *prop; | ||||
| ▲ Show 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | static void rna_def_shader_fx_flip(BlenderRNA *brna) | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| prop = RNA_def_property(srna, "flip_vertical", PROP_BOOLEAN, PROP_NONE); | prop = RNA_def_property(srna, "flip_vertical", PROP_BOOLEAN, PROP_NONE); | ||||
| RNA_def_property_boolean_sdna(prop, NULL, "flag", FX_FLIP_VERTICAL); | RNA_def_property_boolean_sdna(prop, NULL, "flag", FX_FLIP_VERTICAL); | ||||
| RNA_def_property_ui_text(prop, "Vertical", "Flip image vertically"); | RNA_def_property_ui_text(prop, "Vertical", "Flip image vertically"); | ||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | ||||
| } | } | ||||
| static void rna_def_shader_fx_light(BlenderRNA *brna) | |||||
| { | |||||
| StructRNA *srna; | |||||
| PropertyRNA *prop; | |||||
| srna = RNA_def_struct(brna, "ShaderFxLight", "ShaderFx"); | |||||
| RNA_def_struct_ui_text(srna, "Light Effect", "Light effect"); | |||||
| RNA_def_struct_sdna(srna, "LightShaderFxData"); | |||||
| RNA_def_struct_ui_icon(srna, ICON_SHADERFX); | |||||
| prop = RNA_def_property(srna, "energy", PROP_FLOAT, PROP_NONE); | |||||
| RNA_def_property_float_sdna(prop, NULL, "energy"); | |||||
| RNA_def_property_range(prop, 0, FLT_MAX); | |||||
| RNA_def_property_ui_range(prop, 1, FLT_MAX, 1, 2); | |||||
| RNA_def_property_ui_text(prop, "Energy", "Strength of light source"); | |||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | |||||
| prop = RNA_def_property(srna, "ambient", PROP_FLOAT, PROP_NONE); | |||||
| RNA_def_property_float_sdna(prop, NULL, "ambient"); | |||||
| RNA_def_property_range(prop, 0, FLT_MAX); | |||||
| RNA_def_property_ui_range(prop, 0, FLT_MAX, 1, 2); | |||||
| RNA_def_property_ui_text(prop, "Ambient", "Strength of ambient light source"); | |||||
| RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_ShaderFx_update"); | |||||
| prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE); | |||||
| RNA_def_property_ui_text(prop, "Object", "Object to determine light source location"); | |||||
| RNA_def_property_pointer_funcs(prop, NULL, "rna_LightShaderFx_object_set", NULL, NULL); | |||||
| RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK); | |||||
| RNA_def_property_override_flag(prop, PROPOVERRIDE_OVERRIDABLE_LIBRARY); | |||||
| RNA_def_property_update(prop, 0, "rna_ShaderFx_dependency_update"); | |||||
| } | |||||
| void RNA_def_shader_fx(BlenderRNA *brna) | void RNA_def_shader_fx(BlenderRNA *brna) | ||||
| { | { | ||||
| StructRNA *srna; | StructRNA *srna; | ||||
| PropertyRNA *prop; | PropertyRNA *prop; | ||||
| /* data */ | /* data */ | ||||
| srna = RNA_def_struct(brna, "ShaderFx", NULL); | srna = RNA_def_struct(brna, "ShaderFx", NULL); | ||||
| RNA_def_struct_ui_text(srna, "ShaderFx", "Effect affecting the grease pencil object"); | RNA_def_struct_ui_text(srna, "ShaderFx", "Effect affecting the grease pencil object"); | ||||
| ▲ Show 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | void RNA_def_shader_fx(BlenderRNA *brna) | ||||
| rna_def_shader_fx_colorize(brna); | rna_def_shader_fx_colorize(brna); | ||||
| rna_def_shader_fx_wave(brna); | rna_def_shader_fx_wave(brna); | ||||
| rna_def_shader_fx_pixel(brna); | rna_def_shader_fx_pixel(brna); | ||||
| rna_def_shader_fx_rim(brna); | rna_def_shader_fx_rim(brna); | ||||
| rna_def_shader_fx_shadow(brna); | rna_def_shader_fx_shadow(brna); | ||||
| rna_def_shader_fx_glow(brna); | rna_def_shader_fx_glow(brna); | ||||
| rna_def_shader_fx_swirl(brna); | rna_def_shader_fx_swirl(brna); | ||||
| rna_def_shader_fx_flip(brna); | rna_def_shader_fx_flip(brna); | ||||
| rna_def_shader_fx_light(brna); | |||||
| } | } | ||||
| #endif | #endif | ||||