Fix T62359: Flip colors for Fill Tool missing
Reviewers: brecht Maniphest Tasks: T62359 Differential Revision: https://developer.blender.org/D4486
This commit is contained in:
parent
f608964549
commit
4302342287
|
@ -585,8 +585,12 @@ static void paint_stroke_done(const bContext *C, struct PaintStroke *stroke)
|
|||
else {
|
||||
if (pop->mode == PAINT_MODE_2D) {
|
||||
float color[3];
|
||||
|
||||
srgb_to_linearrgb_v3_v3(color, BKE_brush_color_get(scene, brush));
|
||||
if (paint_stroke_inverted(stroke)) {
|
||||
srgb_to_linearrgb_v3_v3(color, BKE_brush_secondary_color_get(scene, brush));
|
||||
}
|
||||
else {
|
||||
srgb_to_linearrgb_v3_v3(color, BKE_brush_color_get(scene, brush));
|
||||
}
|
||||
paint_2d_bucket_fill(C, color, brush, pop->prevmouse, pop->custom_paint);
|
||||
}
|
||||
else {
|
||||
|
@ -1196,7 +1200,7 @@ static bool brush_colors_flip_poll(bContext *C)
|
|||
{
|
||||
if (image_paint_poll(C)) {
|
||||
Brush *br = image_paint_brush(C);
|
||||
if (br->imagepaint_tool == PAINT_TOOL_DRAW)
|
||||
if (ELEM(br->imagepaint_tool, PAINT_TOOL_DRAW, PAINT_TOOL_FILL))
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -5367,7 +5367,7 @@ static void paint_proj_stroke_ps(
|
|||
ps->blend = IMB_BLEND_ERASE_ALPHA;
|
||||
|
||||
/* handle gradient and inverted stroke color here */
|
||||
if (ps->tool == PAINT_TOOL_DRAW) {
|
||||
if (ELEM(ps->tool, PAINT_TOOL_DRAW, PAINT_TOOL_FILL)) {
|
||||
paint_brush_color_get(scene, brush, false, ps->mode == BRUSH_STROKE_INVERT, distance, pressure, ps->paint_color, NULL);
|
||||
if (ps->use_colormanagement) {
|
||||
srgb_to_linearrgb_v3_v3(ps->paint_color_linear, ps->paint_color);
|
||||
|
@ -5376,15 +5376,6 @@ static void paint_proj_stroke_ps(
|
|||
copy_v3_v3(ps->paint_color_linear, ps->paint_color);
|
||||
}
|
||||
}
|
||||
else if (ps->tool == PAINT_TOOL_FILL) {
|
||||
copy_v3_v3(ps->paint_color, BKE_brush_color_get(scene, brush));
|
||||
if (ps->use_colormanagement) {
|
||||
srgb_to_linearrgb_v3_v3(ps->paint_color_linear, ps->paint_color);
|
||||
}
|
||||
else {
|
||||
copy_v3_v3(ps->paint_color_linear, ps->paint_color);
|
||||
}
|
||||
}
|
||||
else if (ps->tool == PAINT_TOOL_MASK) {
|
||||
ps->stencil_value = brush->weight;
|
||||
|
||||
|
|
|
@ -81,6 +81,7 @@ int paint_stroke_modal(struct bContext *C, struct wmOperator *op, const struct w
|
|||
int paint_stroke_exec(struct bContext *C, struct wmOperator *op);
|
||||
void paint_stroke_cancel(struct bContext *C, struct wmOperator *op);
|
||||
bool paint_stroke_flipped(struct PaintStroke *stroke);
|
||||
bool paint_stroke_inverted(struct PaintStroke *stroke);
|
||||
struct ViewContext *paint_stroke_view_context(struct PaintStroke *stroke);
|
||||
void *paint_stroke_mode_data(struct PaintStroke *stroke);
|
||||
float paint_stroke_distance_get(struct PaintStroke *stroke);
|
||||
|
|
|
@ -1365,6 +1365,11 @@ bool paint_stroke_flipped(struct PaintStroke *stroke)
|
|||
return stroke->pen_flip;
|
||||
}
|
||||
|
||||
bool paint_stroke_inverted(struct PaintStroke *stroke)
|
||||
{
|
||||
return stroke->stroke_mode == BRUSH_STROKE_INVERT;
|
||||
}
|
||||
|
||||
float paint_stroke_distance_get(struct PaintStroke *stroke)
|
||||
{
|
||||
return stroke->stroke_distance;
|
||||
|
|
Loading…
Reference in New Issue