option to lock alpha while projection painting.
(commit 27538 by Campbell from render25 branch)
This commit is contained in:
@@ -592,6 +592,11 @@ class VIEW3D_PT_tools_brush(PaintPanel):
|
||||
|
||||
col.prop(brush, "blend", text="Blend")
|
||||
|
||||
col = layout.column()
|
||||
col.active = (brush.blend not in ('ERASE_ALPHA', 'ADD_ALPHA'))
|
||||
col.prop(brush, "use_alpha")
|
||||
|
||||
|
||||
# Weight Paint Mode #
|
||||
|
||||
elif context.weight_paint_object and brush:
|
||||
|
||||
@@ -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 */
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user