[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42985] trunk/blender/source/blender/ blenkernel/intern/brush.c: while checking weight paint code noticed that unified brush functions loop over the scenes to get the flag .
Campbell Barton
ideasman42 at gmail.com
Fri Dec 30 04:43:52 CET 2011
Revision: 42985
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42985
Author: campbellbarton
Date: 2011-12-30 03:43:39 +0000 (Fri, 30 Dec 2011)
Log Message:
-----------
while checking weight paint code noticed that unified brush functions loop over the scenes to get the flag.
* this loop is called multiple times per vertex (not addressed in this commit)
* functions like brush_use_size_pressure(), brush_use_size_pressure() called unified_settings() twice when they didnt need to.
looks like this code cant work right with multiple scenes, added a comment on this - but at least avoid calling unified_settings() multiple times in single functions.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/brush.c
Modified: trunk/blender/source/blender/blenkernel/intern/brush.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/brush.c 2011-12-30 02:16:07 UTC (rev 42984)
+++ trunk/blender/source/blender/blenkernel/intern/brush.c 2011-12-30 03:43:39 UTC (rev 42985)
@@ -1216,6 +1216,9 @@
/* Unified Size and Strength */
+/* XXX, wouldnt it be better to only pass the active scene?
+ * this can return any old scene! - campbell*/
+
static void set_unified_settings(Brush *brush, short flag, int value)
{
Scene *sce;
@@ -1369,7 +1372,9 @@
}
void brush_set_size(Brush *brush, int size)
{
- if (unified_settings(brush) & SCULPT_PAINT_USE_UNIFIED_SIZE)
+ const short us_flag = unified_settings(brush);
+
+ if (us_flag & SCULPT_PAINT_USE_UNIFIED_SIZE)
set_unified_size(brush, size);
else
brush->size= size;
@@ -1379,12 +1384,16 @@
int brush_size(Brush *brush)
{
- return (unified_settings(brush) & SCULPT_PAINT_USE_UNIFIED_SIZE) ? unified_size(brush) : brush->size;
+ const short us_flag = unified_settings(brush);
+
+ return (us_flag & SCULPT_PAINT_USE_UNIFIED_SIZE) ? unified_size(brush) : brush->size;
}
void brush_set_use_locked_size(Brush *brush, int value)
{
- if (unified_settings(brush) & SCULPT_PAINT_USE_UNIFIED_SIZE) {
+ const short us_flag = unified_settings(brush);
+
+ if (us_flag & SCULPT_PAINT_USE_UNIFIED_SIZE) {
set_unified_settings(brush, SCULPT_PAINT_UNIFIED_LOCK_BRUSH_SIZE, value);
}
else {
@@ -1399,12 +1408,18 @@
int brush_use_locked_size(Brush *brush)
{
- return (unified_settings(brush) & SCULPT_PAINT_USE_UNIFIED_SIZE) ? (unified_settings(brush) & SCULPT_PAINT_UNIFIED_LOCK_BRUSH_SIZE) : (brush->flag & BRUSH_LOCK_SIZE);
+ const short us_flag = unified_settings(brush);
+
+ return (us_flag & SCULPT_PAINT_USE_UNIFIED_SIZE) ?
+ (us_flag & SCULPT_PAINT_UNIFIED_LOCK_BRUSH_SIZE) :
+ (brush->flag & BRUSH_LOCK_SIZE);
}
void brush_set_use_size_pressure(Brush *brush, int value)
{
- if (unified_settings(brush) & SCULPT_PAINT_USE_UNIFIED_SIZE) {
+ const short us_flag = unified_settings(brush);
+
+ if (us_flag & SCULPT_PAINT_USE_UNIFIED_SIZE) {
set_unified_settings(brush, SCULPT_PAINT_UNIFIED_SIZE_PRESSURE, value);
}
else {
@@ -1419,12 +1434,18 @@
int brush_use_size_pressure(Brush *brush)
{
- return (unified_settings(brush) & SCULPT_PAINT_USE_UNIFIED_SIZE) ? (unified_settings(brush) & SCULPT_PAINT_UNIFIED_SIZE_PRESSURE) : (brush->flag & BRUSH_SIZE_PRESSURE);
+ const short us_flag = unified_settings(brush);
+
+ return (us_flag & SCULPT_PAINT_USE_UNIFIED_SIZE) ?
+ (us_flag & SCULPT_PAINT_UNIFIED_SIZE_PRESSURE) :
+ (brush->flag & BRUSH_SIZE_PRESSURE);
}
void brush_set_use_alpha_pressure(Brush *brush, int value)
{
- if (unified_settings(brush) & SCULPT_PAINT_USE_UNIFIED_ALPHA) {
+ const short us_flag = unified_settings(brush);
+
+ if (us_flag & SCULPT_PAINT_USE_UNIFIED_ALPHA) {
set_unified_settings(brush, SCULPT_PAINT_UNIFIED_ALPHA_PRESSURE, value);
}
else {
@@ -1439,12 +1460,18 @@
int brush_use_alpha_pressure(Brush *brush)
{
- return (unified_settings(brush) & SCULPT_PAINT_USE_UNIFIED_ALPHA) ? (unified_settings(brush) & SCULPT_PAINT_UNIFIED_ALPHA_PRESSURE) : (brush->flag & BRUSH_ALPHA_PRESSURE);
+ const short us_flag = unified_settings(brush);
+
+ return (us_flag & SCULPT_PAINT_USE_UNIFIED_ALPHA) ?
+ (us_flag & SCULPT_PAINT_UNIFIED_ALPHA_PRESSURE) :
+ (brush->flag & BRUSH_ALPHA_PRESSURE);
}
void brush_set_unprojected_radius(Brush *brush, float unprojected_radius)
{
- if (unified_settings(brush) & SCULPT_PAINT_USE_UNIFIED_SIZE)
+ const short us_flag = unified_settings(brush);
+
+ if (us_flag & SCULPT_PAINT_USE_UNIFIED_SIZE)
set_unified_unprojected_radius(brush, unprojected_radius);
else
brush->unprojected_radius= unprojected_radius;
@@ -1454,12 +1481,18 @@
float brush_unprojected_radius(Brush *brush)
{
- return (unified_settings(brush) & SCULPT_PAINT_USE_UNIFIED_SIZE) ? unified_unprojected_radius(brush) : brush->unprojected_radius;
+ const short us_flag = unified_settings(brush);
+
+ return (us_flag & SCULPT_PAINT_USE_UNIFIED_SIZE) ?
+ unified_unprojected_radius(brush) :
+ brush->unprojected_radius;
}
void brush_set_alpha(Brush *brush, float alpha)
{
- if (unified_settings(brush) & SCULPT_PAINT_USE_UNIFIED_ALPHA)
+ const short us_flag = unified_settings(brush);
+
+ if (us_flag & SCULPT_PAINT_USE_UNIFIED_ALPHA)
set_unified_alpha(brush, alpha);
else
brush->alpha= alpha;
@@ -1469,5 +1502,9 @@
float brush_alpha(Brush *brush)
{
- return (unified_settings(brush) & SCULPT_PAINT_USE_UNIFIED_ALPHA) ? unified_alpha(brush) : brush->alpha;
+ const short us_flag = unified_settings(brush);
+
+ return (us_flag & SCULPT_PAINT_USE_UNIFIED_ALPHA) ?
+ unified_alpha(brush) :
+ brush->alpha;
}
More information about the Bf-blender-cvs
mailing list