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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2010-03-16 21:05:53 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2010-03-16 21:05:53 +0300
commit391526c20e7ba0e818241f4dedb3f40aa51fd47a (patch)
tree707f856b9e68fbcd2fea836c6d93ac524fcb1d58 /source/blender
parentabb7a25426a630f5a5209987a78530f70c0dfa94 (diff)
option to lock alpha while projection painting.
(commit 27538 by Campbell from render25 branch)
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/editors/sculpt_paint/paint_image.c7
-rw-r--r--source/blender/makesdna/DNA_brush_types.h1
-rw-r--r--source/blender/makesrna/intern/rna_brush.c6
3 files changed, 14 insertions, 0 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c
index 6137d83e77e..9fc858a191f 100644
--- a/source/blender/editors/sculpt_paint/paint_image.c
+++ b/source/blender/editors/sculpt_paint/paint_image.c
@@ -3705,6 +3705,7 @@ static void *do_projectpaint_thread(void *ph_v)
float mask = 1.0f; /* airbrush wont use mask */
unsigned short mask_short;
float size_half = ((float)ps->brush->size) * 0.5f;
+ short lock_alpha= ELEM(ps->brush->blend, IMB_BLEND_ERASE_ALPHA, IMB_BLEND_ADD_ALPHA) ? 0 : ps->brush->flag & BRUSH_LOCK_ALPHA;
LinkNode *smearPixels = NULL;
LinkNode *smearPixels_f = NULL;
@@ -3833,6 +3834,12 @@ static void *do_projectpaint_thread(void *ph_v)
break;
}
}
+
+ if(lock_alpha) {
+ if (is_floatbuf) projPixel->pixel.f_pt[3]= projPixel->origColor.f[3];
+ else projPixel->pixel.ch_pt[3]= projPixel->origColor.ch[3];
+ }
+
/* done painting */
}
}
diff --git a/source/blender/makesdna/DNA_brush_types.h b/source/blender/makesdna/DNA_brush_types.h
index 163c8122fb7..14930f85e63 100644
--- a/source/blender/makesdna/DNA_brush_types.h
+++ b/source/blender/makesdna/DNA_brush_types.h
@@ -86,6 +86,7 @@ typedef struct Brush {
#define BRUSH_SMOOTH_STROKE 2048
#define BRUSH_PERSISTENT 4096
#define BRUSH_ACCUMULATE 8192
+#define BRUSH_LOCK_ALPHA 16384
/* Brush.sculpt_tool */
#define SCULPT_TOOL_DRAW 1
diff --git a/source/blender/makesrna/intern/rna_brush.c b/source/blender/makesrna/intern/rna_brush.c
index 2d81a9d66c1..df08dc7b861 100644
--- a/source/blender/makesrna/intern/rna_brush.c
+++ b/source/blender/makesrna/intern/rna_brush.c
@@ -279,6 +279,12 @@ static void rna_def_brush(BlenderRNA *brna)
RNA_def_property_boolean_sdna(prop, NULL, "flag", BRUSH_FIXED_TEX);
RNA_def_property_ui_text(prop, "Fixed Texture", "Keep texture origin in fixed position");
RNA_def_property_update(prop, 0, "rna_Brush_update"); */
+
+ /* only for projection paint, TODO, other paint modes */
+ prop= RNA_def_property(srna, "use_alpha", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", BRUSH_LOCK_ALPHA);
+ RNA_def_property_ui_text(prop, "Alpha", "When this is disabled, lock alpha while painting");
+ RNA_def_property_update(prop, 0, "rna_Brush_update");
prop= RNA_def_property(srna, "curve", PROP_POINTER, PROP_NONE);
RNA_def_property_flag(prop, PROP_NEVER_NULL);