Commit: ac1adbc3f159d43c7d849565bf0b567fb9d14383 Author: Antonioya Date: Mon Mar 18 09:03:29 2019 +0100 Branches: greasepencil-object https://developer.blender.org/rBac1adbc3f159d43c7d849565bf0b567fb9d14383
GPencil: New parameter for gradient Add new fields and initialize. =================================================================== M release/scripts/startup/bl_ui/space_view3d_toolbar.py M source/blender/blenloader/intern/versioning_280.c M source/blender/makesdna/DNA_brush_types.h M source/blender/makesdna/DNA_gpencil_types.h M source/blender/makesrna/intern/rna_brush.c M source/blender/makesrna/intern/rna_gpencil.c =================================================================== diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py index a37e54d40a8..6a1c32be88e 100644 --- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py +++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py @@ -1545,6 +1545,8 @@ class VIEW3D_PT_tools_grease_pencil_brush_option(View3DPanel, Panel): col.prop(gp_settings, "angle", slider=True) col.prop(gp_settings, "angle_factor", text="Factor", slider=True) col.separator() + col.prop(gp_settings, "gradient_factor", slider=True) + col.prop(gp_settings, "gradient_shape") class VIEW3D_PT_tools_grease_pencil_brush_stabilizer(View3DPanel, Panel): diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index 986f35008bd..be1bfea540c 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -2920,5 +2920,31 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain) part->draw_as = PART_DRAW_NOT; } } + /* init grease pencil brush gradients */ + if (!DNA_struct_elem_find(fd->filesdna, "BrushGpencilSettings", "float", "gradient_f")) { + for (Brush *brush = bmain->brushes.first; brush; brush = brush->id.next) { + if (brush->gpencil_settings != NULL) { + BrushGpencilSettings *gp = brush->gpencil_settings; + gp->gradient_f = 1.0f; + gp->gradient_s[0] = 1.0f; + gp->gradient_s[1] = 1.0f; + } + } + } + + /* init grease pencil stroke gradients */ + if (!DNA_struct_elem_find(fd->filesdna, "bGPDstroke", "float", "gradient_f")) { + for (bGPdata *gpd = bmain->gpencils.first; gpd; gpd = gpd->id.next) { + for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) { + for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) { + for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) { + gps->gradient_f = 1.0f; + gps->gradient_s[0] = 1.0f; + gps->gradient_s[1] = 1.0f; + } + } + } + } + } } } diff --git a/source/blender/makesdna/DNA_brush_types.h b/source/blender/makesdna/DNA_brush_types.h index 4bfbb3655af..9aa6ff8c1c8 100644 --- a/source/blender/makesdna/DNA_brush_types.h +++ b/source/blender/makesdna/DNA_brush_types.h @@ -111,6 +111,12 @@ typedef struct BrushGpencilSettings { /** Internal grease pencil drawing flags. */ int flag; + /** gradient control along y for color */ + float gradient_f; + /** factor xy of shape for dots gradients */ + float gradient_s[2]; + char _pad_2[4]; + struct CurveMapping *curve_sensitivity; struct CurveMapping *curve_strength; struct CurveMapping *curve_jitter; diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h index bd17d4e57dc..363c1dd504d 100644 --- a/source/blender/makesdna/DNA_gpencil_types.h +++ b/source/blender/makesdna/DNA_gpencil_types.h @@ -199,6 +199,12 @@ typedef struct bGPDstroke { /** Caps mode for each stroke extreme */ short caps[2]; + /** gradient control along y for color */ + float gradient_f; + /** factor xy of shape for dots gradients */ + float gradient_s[2]; + char _pad_3[4]; + /** Vertex weight data. */ struct MDeformVert *dvert; diff --git a/source/blender/makesrna/intern/rna_brush.c b/source/blender/makesrna/intern/rna_brush.c index 86ac8d3bae6..6bfa8f84e02 100644 --- a/source/blender/makesrna/intern/rna_brush.c +++ b/source/blender/makesrna/intern/rna_brush.c @@ -1186,6 +1186,25 @@ static void rna_def_gpencil_options(BlenderRNA *brna) RNA_def_parameter_clear_flags(prop, PROP_ANIMATABLE, 0); RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL); + /* gradient control along y */ + prop = RNA_def_property(srna, "gradient_factor", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, NULL, "gradient_f"); + RNA_def_property_range(prop, 0.01f, 1.0f); + RNA_def_property_float_default(prop, 1.0f); + RNA_def_property_ui_text( + prop, "Gradient Factor", + "Amount of gradient along section of stroke (set to 1 for full solid)"); + RNA_def_parameter_clear_flags(prop, PROP_ANIMATABLE, 0); + + /* gradient shape ratio */ + prop = RNA_def_property(srna, "gradient_shape", PROP_FLOAT, PROP_XYZ); + RNA_def_property_float_sdna(prop, NULL, "gradient_s"); + RNA_def_property_array(prop, 2); + RNA_def_property_range(prop, 0.01f, 1.0f); + RNA_def_property_float_default(prop, 1.0f); + RNA_def_property_ui_text(prop, "Aspect Ratio", ""); + RNA_def_parameter_clear_flags(prop, PROP_ANIMATABLE, 0); + prop = RNA_def_property(srna, "input_samples", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "input_samples"); RNA_def_property_range(prop, 0, GP_MAX_INPUT_SAMPLES); diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index 7c8a79a7563..7f042fc5c8a 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -998,6 +998,24 @@ static void rna_def_gpencil_stroke(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Thickness", "Thickness of stroke (in pixels)"); RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update"); + /* gradient control along y */ + prop = RNA_def_property(srna, "gradient_factor", PROP_FLOAT, PROP_FACTOR); + RNA_def_property_float_sdna(prop, NULL, "gradient_f"); + RNA_def_property_range(prop, 0.01f, 1.0f); + RNA_def_property_float_default(prop, 1.0f); + RNA_def_property_ui_text(prop, "Gradient Factor", + "Amount of gradient along section of stroke"); + RNA_def_parameter_clear_flags(prop, PROP_ANIMATABLE, 0); + RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update"); + + /* gradient shape ratio */ + prop = RNA_def_property(srna, "gradient_shape", PROP_FLOAT, PROP_XYZ); + RNA_def_property_float_sdna(prop, NULL, "gradient_s"); + RNA_def_property_array(prop, 2); + RNA_def_property_range(prop, 0.01f, 1.0f); + RNA_def_property_float_default(prop, 1.0f); + RNA_def_property_ui_text(prop, "Aspect Ratio", ""); + RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update"); } static void rna_def_gpencil_strokes_api(BlenderRNA *brna, PropertyRNA *cprop) _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs