Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/intern/brush.c')
-rw-r--r--source/blender/blenkernel/intern/brush.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c
index 41eb641f899..5ddc215dc2c 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -777,7 +777,7 @@ void BKE_brush_imbuf_new(const Scene *scene, Brush *brush, short flt, short texf
const int radius = BKE_brush_size_get(scene, brush);
unsigned char *dst, crgb[3];
const float alpha = (use_brush_alpha)? BKE_brush_alpha_get(scene, brush): 1.0f;
- float brush_rgb[3];
+ float brush_rgb[3] = {1.0f, 1.0f, 1.0f};
int thread = 0;
imbflag = (flt) ? IB_rectfloat : IB_rect;
@@ -791,9 +791,11 @@ void BKE_brush_imbuf_new(const Scene *scene, Brush *brush, short flt, short texf
ibuf = IMB_allocImBuf(bufsize, bufsize, 32, imbflag);
if (flt) {
- copy_v3_v3(brush_rgb, brush->rgb);
- if (use_color_correction) {
- srgb_to_linearrgb_v3_v3(brush_rgb, brush_rgb);
+ if (brush->imagepaint_tool == PAINT_TOOL_DRAW) {
+ copy_v3_v3(brush_rgb, brush->rgb);
+ if (use_color_correction) {
+ srgb_to_linearrgb_v3_v3(brush_rgb, brush_rgb);
+ }
}
for (y = 0; y < ibuf->y; y++) {
@@ -834,7 +836,11 @@ void BKE_brush_imbuf_new(const Scene *scene, Brush *brush, short flt, short texf
}
else {
float alpha_f; /* final float alpha to convert to char */
- rgb_float_to_uchar(crgb, brush->rgb);
+
+ if (brush->imagepaint_tool == PAINT_TOOL_DRAW)
+ rgb_float_to_uchar(crgb, brush->rgb);
+ else
+ rgb_float_to_uchar(crgb, brush_rgb);
for (y = 0; y < ibuf->y; y++) {
dst = (unsigned char *)ibuf->rect + y * rowbytes;