diff options
-rw-r--r-- | release/scripts/startup/bl_ui/properties_paint_common.py | 16 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_brush.h | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/brush.c | 14 | ||||
-rw-r--r-- | source/blender/blenloader/intern/versioning_280.c | 8 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_cursor.c | 11 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_image.c | 2 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_stroke.c | 12 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_vertex.c | 8 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt.c | 7 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_scene_types.h | 9 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_scene.c | 11 |
11 files changed, 43 insertions, 59 deletions
diff --git a/release/scripts/startup/bl_ui/properties_paint_common.py b/release/scripts/startup/bl_ui/properties_paint_common.py index 98e812cf02d..7c28095259e 100644 --- a/release/scripts/startup/bl_ui/properties_paint_common.py +++ b/release/scripts/startup/bl_ui/properties_paint_common.py @@ -296,11 +296,11 @@ def brush_basic_wpaint_settings(layout, context, brush, *, compact=False): row = layout.row(align=True) UnifiedPaintPanel.prop_unified_size(row, context, brush, "size", slider=True) - UnifiedPaintPanel.prop_unified_size(row, context, brush, "use_pressure_size", text="") + row.prop(brush, "use_pressure_size", text="") row = layout.row(align=True) UnifiedPaintPanel.prop_unified_strength(row, context, brush, "strength") - UnifiedPaintPanel.prop_unified_strength(row, context, brush, "use_pressure_strength", text="") + row.prop(brush, "use_pressure_strength", text="") layout.prop(brush, "blend", text="" if compact else "Blend") @@ -310,11 +310,11 @@ def brush_basic_vpaint_settings(layout, context, brush, *, compact=False): row = layout.row(align=True) UnifiedPaintPanel.prop_unified_size(row, context, brush, "size", slider=True) - UnifiedPaintPanel.prop_unified_size(row, context, brush, "use_pressure_size", text="") + row.prop(brush, "use_pressure_size", text="") row = layout.row(align=True) UnifiedPaintPanel.prop_unified_strength(row, context, brush, "strength") - UnifiedPaintPanel.prop_unified_strength(row, context, brush, "use_pressure_strength", text="") + row.prop(brush, "use_pressure_strength", text="") if capabilities.has_color: layout.prop(brush, "blend", text="" if compact else "Blend") @@ -326,12 +326,12 @@ def brush_basic_texpaint_settings(layout, context, brush, *, compact=False): if capabilities.has_radius: row = layout.row(align=True) UnifiedPaintPanel.prop_unified_size(row, context, brush, "size", slider=True) - UnifiedPaintPanel.prop_unified_size(row, context, brush, "use_pressure_size", text="") + row.prop(brush, "use_pressure_size", text="") row = layout.row(align=True) UnifiedPaintPanel.prop_unified_strength(row, context, brush, "strength") - UnifiedPaintPanel.prop_unified_strength(row, context, brush, "use_pressure_strength", text="") + row.prop(brush, "use_pressure_strength", text="") if capabilities.has_color: layout.prop(brush, "blend", text="" if compact else "Blend") @@ -352,7 +352,7 @@ def brush_basic_sculpt_settings(layout, context, brush, *, compact=False): else: UnifiedPaintPanel.prop_unified_size(row, context, brush, "size", slider=True) - UnifiedPaintPanel.prop_unified_size(row, context, brush, "use_pressure_size", text="") + row.prop(brush, "use_pressure_size", text="") # strength, use_strength_pressure, and use_strength_attenuation row = layout.row(align=True) @@ -360,7 +360,7 @@ def brush_basic_sculpt_settings(layout, context, brush, *, compact=False): UnifiedPaintPanel.prop_unified_strength(row, context, brush, "strength") if capabilities.has_strength_pressure: - UnifiedPaintPanel.prop_unified_strength(row, context, brush, "use_pressure_strength", text="") + row.prop(brush, "use_pressure_strength", text="") # direction if not capabilities.has_direction: diff --git a/source/blender/blenkernel/BKE_brush.h b/source/blender/blenkernel/BKE_brush.h index 70741831727..c7f6c09b886 100644 --- a/source/blender/blenkernel/BKE_brush.h +++ b/source/blender/blenkernel/BKE_brush.h @@ -111,8 +111,8 @@ float BKE_brush_weight_get(const struct Scene *scene, const struct Brush *brush) void BKE_brush_weight_set(const struct Scene *scene, struct Brush *brush, float value); bool BKE_brush_use_locked_size(const struct Scene *scene, const struct Brush *brush); -bool BKE_brush_use_alpha_pressure(const struct Scene *scene, const struct Brush *brush); -bool BKE_brush_use_size_pressure(const struct Scene *scene, const struct Brush *brush); +bool BKE_brush_use_alpha_pressure(const struct Brush *brush); +bool BKE_brush_use_size_pressure(const struct Brush *brush); bool BKE_brush_sculpt_has_secondary_color(const struct Brush *brush); diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c index 27c3df5ce6e..a64da8f6606 100644 --- a/source/blender/blenkernel/intern/brush.c +++ b/source/blender/blenkernel/intern/brush.c @@ -1399,20 +1399,14 @@ bool BKE_brush_use_locked_size(const Scene *scene, const Brush *brush) (brush->flag & BRUSH_LOCK_SIZE); } -bool BKE_brush_use_size_pressure(const Scene *scene, const Brush *brush) +bool BKE_brush_use_size_pressure(const Brush *brush) { - const short us_flag = scene->toolsettings->unified_paint_settings.flag; - - return (us_flag & UNIFIED_PAINT_SIZE) ? (us_flag & UNIFIED_PAINT_BRUSH_SIZE_PRESSURE) : - (brush->flag & BRUSH_SIZE_PRESSURE); + return brush->flag & BRUSH_SIZE_PRESSURE; } -bool BKE_brush_use_alpha_pressure(const Scene *scene, const Brush *brush) +bool BKE_brush_use_alpha_pressure(const Brush *brush) { - const short us_flag = scene->toolsettings->unified_paint_settings.flag; - - return (us_flag & UNIFIED_PAINT_ALPHA) ? (us_flag & UNIFIED_PAINT_BRUSH_ALPHA_PRESSURE) : - (brush->flag & BRUSH_ALPHA_PRESSURE); + return brush->flag & BRUSH_ALPHA_PRESSURE; } bool BKE_brush_sculpt_has_secondary_color(const Brush *brush) diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index 4af589bb29f..7c33e853ed1 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -4209,6 +4209,7 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain) br->pose_smooth_iterations = 4; } } + /* Cloth pressure */ for (Object *ob = bmain->objects.first; ob; ob = ob->id.next) { for (ModifierData *md = ob->modifiers.first; md; md = md->next) { @@ -4223,5 +4224,12 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain) { /* Versioning code until next subversion bump goes here. */ + + /* Remove Unified pressure/size and pressure/alpha */ + for (Scene *scene = bmain->scenes.first; scene; scene = scene->id.next) { + ToolSettings *ts = scene->toolsettings; + UnifiedPaintSettings *ups = &ts->unified_paint_settings; + ups->flag &= ~(UNIFIED_PAINT_FLAG_UNUSED_0 | UNIFIED_PAINT_FLAG_UNUSED_1); + } } } diff --git a/source/blender/editors/sculpt_paint/paint_cursor.c b/source/blender/editors/sculpt_paint/paint_cursor.c index 78c9980134f..856072ec47a 100644 --- a/source/blender/editors/sculpt_paint/paint_cursor.c +++ b/source/blender/editors/sculpt_paint/paint_cursor.c @@ -648,7 +648,7 @@ static bool paint_draw_tex_overlay(UnifiedPaintSettings *ups, GPU_matrix_translate_2f(-x, -y); /* scale based on tablet pressure */ - if (primary && ups->stroke_active && BKE_brush_use_size_pressure(vc->scene, brush)) { + if (primary && ups->stroke_active && BKE_brush_use_size_pressure(brush)) { const float scale = ups->size_pressure_value; GPU_matrix_translate_2f(x, y); GPU_matrix_scale_2f(scale, scale); @@ -778,7 +778,7 @@ static bool paint_draw_cursor_overlay( } /* scale based on tablet pressure */ - if (ups->stroke_active && BKE_brush_use_size_pressure(vc->scene, brush)) { + if (ups->stroke_active && BKE_brush_use_size_pressure(brush)) { do_pop = true; GPU_matrix_push(); GPU_matrix_translate_2fv(center); @@ -1075,7 +1075,7 @@ static void paint_cursor_on_hit(UnifiedPaintSettings *ups, unprojected_radius = paint_calc_object_space_radius(vc, location, projected_radius); /* scale 3D brush radius by pressure */ - if (ups->stroke_active && BKE_brush_use_size_pressure(vc->scene, brush)) { + if (ups->stroke_active && BKE_brush_use_size_pressure(brush)) { unprojected_radius *= ups->size_pressure_value; } @@ -1362,7 +1362,7 @@ static void paint_draw_cursor(bContext *C, int x, int y, void *UNUSED(unused)) immUniformColor3fvAlpha(outline_col, outline_alpha); /* draw brush outline */ - if (ups->stroke_active && BKE_brush_use_size_pressure(scene, brush)) { + if (ups->stroke_active && BKE_brush_use_size_pressure(brush)) { imm_draw_circle_wire_2d( pos, translation[0], translation[1], final_radius * ups->size_pressure_value, 40); /* outer at half alpha */ @@ -1407,8 +1407,7 @@ static void paint_draw_cursor(bContext *C, int x, int y, void *UNUSED(unused)) immUniformColor3fvAlpha(outline_col, outline_alpha); - if (ups->stroke_active && BKE_brush_use_size_pressure(scene, brush) && - mode != PAINT_MODE_SCULPT) { + if (ups->stroke_active && BKE_brush_use_size_pressure(brush) && mode != PAINT_MODE_SCULPT) { imm_draw_circle_wire_3d( pos, translation[0], translation[1], final_radius * ups->size_pressure_value, 40); /* outer at half alpha */ diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index 9acc189ae95..0b770f17314 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -548,7 +548,7 @@ static void paint_stroke_update_step(bContext *C, struct PaintStroke *stroke, Po return; } - if (BKE_brush_use_alpha_pressure(scene, brush)) { + if (BKE_brush_use_alpha_pressure(brush)) { BKE_brush_alpha_set(scene, brush, max_ff(0.0f, startalpha * pressure * alphafac)); } else { diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c index ee359def68c..fc0c6d748cb 100644 --- a/source/blender/editors/sculpt_paint/paint_stroke.c +++ b/source/blender/editors/sculpt_paint/paint_stroke.c @@ -336,7 +336,7 @@ static bool paint_brush_update(bContext *C, ups->pixel_radius = BKE_brush_size_get(scene, brush); - if (BKE_brush_use_size_pressure(scene, brush) && paint_supports_dynamic_size(brush, mode)) { + if (BKE_brush_use_size_pressure(brush) && paint_supports_dynamic_size(brush, mode)) { ups->pixel_radius *= stroke->cached_size_pressure; } @@ -527,8 +527,8 @@ static void paint_brush_stroke_add_step(bContext *C, * windows for some tablets, then we just skip first touch .. */ if (tablet && (pressure >= 0.99f) && ((pop->s.brush->flag & BRUSH_SPACING_PRESSURE) || - BKE_brush_use_alpha_pressure(scene, pop->s.brush) || - BKE_brush_use_size_pressure(scene, pop->s.brush))) { + BKE_brush_use_alpha_pressure(pop->s.brush) || + BKE_brush_use_size_pressure(pop->s.brush))) { return; } @@ -540,8 +540,8 @@ static void paint_brush_stroke_add_step(bContext *C, * which is the sensitivity of the most sensitive pen tablet available */ if (tablet && (pressure < 0.0002f) && ((pop->s.brush->flag & BRUSH_SPACING_PRESSURE) || - BKE_brush_use_alpha_pressure(scene, pop->s.brush) || - BKE_brush_use_size_pressure(scene, pop->s.brush))) { + BKE_brush_use_alpha_pressure(pop->s.brush) || + BKE_brush_use_size_pressure(pop->s.brush))) { return; } #endif @@ -756,7 +756,7 @@ static float paint_space_stroke_spacing_variable(bContext *C, float dpressure, float length) { - if (BKE_brush_use_size_pressure(scene, stroke->brush)) { + if (BKE_brush_use_size_pressure(stroke->brush)) { /* use pressure to modify size. set spacing so that at 100%, the circles * are aligned nicely with no overlap. for this the spacing needs to be * the average of the previous and next size. */ diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c index ac7cf310099..536d93cac29 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex.c +++ b/source/blender/editors/sculpt_paint/paint_vertex.c @@ -1522,7 +1522,7 @@ static void vwpaint_update_cache_variants(bContext *C, VPaint *vp, Object *ob, P } } - if (BKE_brush_use_size_pressure(scene, brush) && + if (BKE_brush_use_size_pressure(brush) && paint_supports_dynamic_size(brush, PAINT_MODE_SCULPT)) { cache->radius = cache->initial_radius * cache->pressure; } @@ -1684,11 +1684,9 @@ static void get_brush_alpha_data(const Scene *scene, float *r_brush_alpha_pressure) { *r_brush_size_pressure = BKE_brush_size_get(scene, brush) * - (BKE_brush_use_size_pressure(scene, brush) ? ss->cache->pressure : - 1.0f); + (BKE_brush_use_size_pressure(brush) ? ss->cache->pressure : 1.0f); *r_brush_alpha_value = BKE_brush_alpha_get(scene, brush); - *r_brush_alpha_pressure = (BKE_brush_use_alpha_pressure(scene, brush) ? ss->cache->pressure : - 1.0f); + *r_brush_alpha_pressure = (BKE_brush_use_alpha_pressure(brush) ? ss->cache->pressure : 1.0f); } static float wpaint_get_active_weight(const MDeformVert *dv, const WeightPaintInfo *wpi) diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 9d0048ff847..38e4d119aa5 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -1724,7 +1724,7 @@ static float brush_strength(const Sculpt *sd, const float root_alpha = BKE_brush_alpha_get(scene, brush); float alpha = root_alpha * root_alpha; float dir = (brush->flag & BRUSH_DIR_IN) ? -1 : 1; - float pressure = BKE_brush_use_alpha_pressure(scene, brush) ? cache->pressure : 1; + float pressure = BKE_brush_use_alpha_pressure(brush) ? cache->pressure : 1; float pen_flip = cache->pen_flip ? -1 : 1; float invert = cache->invert ? -1 : 1; float overlap = ups->overlap_factor; @@ -6719,7 +6719,7 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, Object *ob, Po } } - if (BKE_brush_use_size_pressure(scene, brush) && + if (BKE_brush_use_size_pressure(brush) && paint_supports_dynamic_size(brush, PAINT_MODE_SCULPT)) { cache->radius = sculpt_brush_dynamic_size_get(brush, cache, cache->initial_radius); cache->dyntopo_radius = cache->initial_radius * cache->pressure; @@ -7137,14 +7137,13 @@ static void sculpt_brush_stroke_init(bContext *C, wmOperator *op) static void sculpt_restore_mesh(Sculpt *sd, Object *ob) { - SculptSession *ss = ob->sculpt; Brush *brush = BKE_paint_brush(&sd->paint); /* Restore the mesh before continuing with anchored stroke */ if ((brush->flag & BRUSH_ANCHORED) || ((brush->sculpt_tool == SCULPT_TOOL_GRAB || brush->sculpt_tool == SCULPT_TOOL_ELASTIC_DEFORM) && - BKE_brush_use_size_pressure(ss->cache->vc->scene, brush)) || + BKE_brush_use_size_pressure(brush)) || (brush->flag & BRUSH_DRAG_DOT)) { paint_mesh_restore_co(sd, ob); } diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index ce0c7319ce5..54ae38f608c 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1298,14 +1298,11 @@ typedef enum { UNIFIED_PAINT_WEIGHT = (1 << 5), UNIFIED_PAINT_COLOR = (1 << 6), - /* only used if unified size is enabled, mirrors the brush flags - * BRUSH_LOCK_SIZE and BRUSH_SIZE_PRESSURE */ + /* only used if unified size is enabled, mirrors the brush flag BRUSH_LOCK_SIZE */ UNIFIED_PAINT_BRUSH_LOCK_SIZE = (1 << 2), - UNIFIED_PAINT_BRUSH_SIZE_PRESSURE = (1 << 3), + UNIFIED_PAINT_FLAG_UNUSED_0 = (1 << 3), - /* only used if unified alpha is enabled, mirrors the brush flag - * BRUSH_ALPHA_PRESSURE */ - UNIFIED_PAINT_BRUSH_ALPHA_PRESSURE = (1 << 4), + UNIFIED_PAINT_FLAG_UNUSED_1 = (1 << 4), } eUnifiedPaintSettingsFlags; typedef struct CurvePaintSettings { diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 2b47b1664d7..cca82abc9da 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -3411,17 +3411,6 @@ static void rna_def_unified_paint_settings(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Secondary Color", ""); RNA_def_property_update(prop, 0, "rna_UnifiedPaintSettings_update"); - prop = RNA_def_property(srna, "use_pressure_size", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", UNIFIED_PAINT_BRUSH_SIZE_PRESSURE); - RNA_def_property_ui_icon(prop, ICON_STYLUS_PRESSURE, 0); - RNA_def_property_ui_text(prop, "Size Pressure", "Enable tablet pressure sensitivity for size"); - - prop = RNA_def_property(srna, "use_pressure_strength", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "flag", UNIFIED_PAINT_BRUSH_ALPHA_PRESSURE); - RNA_def_property_ui_icon(prop, ICON_STYLUS_PRESSURE, 0); - RNA_def_property_ui_text( - prop, "Strength Pressure", "Enable tablet pressure sensitivity for strength"); - prop = RNA_def_property(srna, "use_locked_size", PROP_ENUM, PROP_NONE); /* as an enum */ RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag"); RNA_def_property_enum_items(prop, brush_size_unit_items); |