diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2012-01-15 03:54:51 +0400 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2012-01-15 03:54:51 +0400 |
commit | 30e759c75ba9625fe46bc6b7710358282a61d4c1 (patch) | |
tree | 872469d64544c09a9155d871d4429f701df6172b /source/blender/blenkernel/BKE_brush.h | |
parent | 046bf80881b4c7ea2fb108b5588070a6ffa14c20 (diff) |
Fix all remaining unified paint settings uses of current Scene.
Things like brush size and strength accessors now take a scene
parameter rather than guessing about which Scene's unified paint
settings to use.
Setting the size/strength through RNA can now be done separately for
the brush or the UnifiedPaintSettings.
The UI python code required updating to check whether the
size/strength controls should use brush or UnifiedPaintSettings RNA.
Radial control also required some updates to switch between the two
RNA sources.
Diffstat (limited to 'source/blender/blenkernel/BKE_brush.h')
-rw-r--r-- | source/blender/blenkernel/BKE_brush.h | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/source/blender/blenkernel/BKE_brush.h b/source/blender/blenkernel/BKE_brush.h index 687da70974c..13f72634bda 100644 --- a/source/blender/blenkernel/BKE_brush.h +++ b/source/blender/blenkernel/BKE_brush.h @@ -59,7 +59,8 @@ int brush_clone_image_set_nr(struct Brush *brush, int nr); int brush_clone_image_delete(struct Brush *brush); /* jitter */ -void brush_jitter_pos(struct Brush *brush, float *pos, float *jitterpos); +void brush_jitter_pos(const struct Scene *scene, struct Brush *brush, + float *pos, float *jitterpos); /* brush curve */ void brush_curve_preset(struct Brush *b, /*enum CurveMappingPreset*/int preset); @@ -67,8 +68,8 @@ float brush_curve_strength_clamp(struct Brush *br, float p, const float len); float brush_curve_strength(struct Brush *br, float p, const float len); /* used for sculpt */ /* sampling */ -void brush_sample_tex(struct Brush *brush, const float xy[2], float rgba[4], const int thread); -void brush_imbuf_new(struct Brush *brush, short flt, short texfalloff, int size, +void brush_sample_tex(const struct Scene *scene, struct Brush *brush, const float xy[2], float rgba[4], const int thread); +void brush_imbuf_new(const struct Scene *scene, struct Brush *brush, short flt, short texfalloff, int size, struct ImBuf **imbuf, int use_color_correction); /* painting */ @@ -92,18 +93,27 @@ struct ImBuf *brush_gen_radial_control_imbuf(struct Brush *br); /* unified strength and size */ -int brush_size(struct Brush *brush); -void brush_set_size(struct Brush *brush, int value); +int brush_size(const struct Scene *scene, struct Brush *brush); +void brush_set_size(struct Scene *scene, struct Brush *brush, int value); + +float brush_unprojected_radius(const struct Scene *scene, struct Brush *brush); +void brush_set_unprojected_radius(struct Scene *scene, struct Brush *brush, float value); + +float brush_alpha(const struct Scene *scene, struct Brush *brush); int brush_use_locked_size(const struct Scene *scene, struct Brush *brush); int brush_use_alpha_pressure(const struct Scene *scene, struct Brush *brush); int brush_use_size_pressure(const struct Scene *scene, struct Brush *brush); -float brush_unprojected_radius(struct Brush *brush); -void brush_set_unprojected_radius(struct Brush *brush, float value); +/* scale unprojected radius to reflect a change in the brush's 2D size */ +void brush_scale_unprojected_radius(float *unprojected_radius, + int new_brush_size, + int old_brush_size); -float brush_alpha(struct Brush *brush); -void brush_set_alpha(struct Brush *brush, float value); +/* scale brush size to reflect a change in the brush's unprojected radius */ +void brush_scale_size(int *brush_size, + float new_unprojected_radius, + float old_unprojected_radius); /* debugging only */ void brush_debug_print_state(struct Brush *br); |