[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50090] branches/soc-2011-tomato: svn merge ^/trunk/blender -r50080:50089
Campbell Barton
ideasman42 at gmail.com
Tue Aug 21 17:16:53 CEST 2012
Revision: 50090
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50090
Author: campbellbarton
Date: 2012-08-21 15:16:53 +0000 (Tue, 21 Aug 2012)
Log Message:
-----------
svn merge ^/trunk/blender -r50080:50089
Revision Links:
--------------
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50080
Modified Paths:
--------------
branches/soc-2011-tomato/source/blender/blenkernel/BKE_colortools.h
branches/soc-2011-tomato/source/blender/blenkernel/intern/brush.c
branches/soc-2011-tomato/source/blender/blenkernel/intern/colortools.c
branches/soc-2011-tomato/source/blender/blenkernel/intern/world.c
branches/soc-2011-tomato/source/blender/bmesh/operators/bmo_extrude.c
branches/soc-2011-tomato/source/blender/compositor/nodes/COM_TimeNode.cpp
branches/soc-2011-tomato/source/blender/compositor/operations/COM_ColorCurveOperation.cpp
branches/soc-2011-tomato/source/blender/compositor/operations/COM_CurveBaseOperation.cpp
branches/soc-2011-tomato/source/blender/compositor/operations/COM_CurveBaseOperation.h
branches/soc-2011-tomato/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.cpp
branches/soc-2011-tomato/source/blender/compositor/operations/COM_VectorCurveOperation.cpp
branches/soc-2011-tomato/source/blender/editors/interface/interface_draw.c
branches/soc-2011-tomato/source/blender/editors/mesh/editmesh_tools.c
branches/soc-2011-tomato/source/blender/gpu/intern/gpu_material.c
branches/soc-2011-tomato/source/blender/makesrna/intern/rna_color.c
branches/soc-2011-tomato/source/blender/modifiers/intern/MOD_warp.c
branches/soc-2011-tomato/source/blender/modifiers/intern/MOD_weightvg_util.c
branches/soc-2011-tomato/source/blender/nodes/composite/node_composite_tree.c
branches/soc-2011-tomato/source/blender/nodes/composite/node_composite_util.c
branches/soc-2011-tomato/source/blender/nodes/composite/node_composite_util.h
branches/soc-2011-tomato/source/blender/nodes/composite/nodes/node_composite_common.c
branches/soc-2011-tomato/source/blender/nodes/composite/nodes/node_composite_curves.c
branches/soc-2011-tomato/source/blender/nodes/composite/nodes/node_composite_huecorrect.c
branches/soc-2011-tomato/source/blender/nodes/shader/nodes/node_shader_curves.c
branches/soc-2011-tomato/source/blender/nodes/texture/nodes/node_texture_curves.c
branches/soc-2011-tomato/source/blender/render/intern/source/convertblender.c
branches/soc-2011-tomato/source/blender/render/intern/source/pointdensity.c
branches/soc-2011-tomato/source/blender/render/intern/source/shadeoutput.c
Property Changed:
----------------
branches/soc-2011-tomato/
branches/soc-2011-tomato/source/blender/editors/interface/interface.c
branches/soc-2011-tomato/source/blender/editors/space_outliner/
Property changes on: branches/soc-2011-tomato
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-50080
+ /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-50089
Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_colortools.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_colortools.h 2012-08-21 15:14:29 UTC (rev 50089)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_colortools.h 2012-08-21 15:16:53 UTC (rev 50090)
@@ -70,21 +70,28 @@
void curvemapping_changed(struct CurveMapping *cumap, int rem_doubles);
void curvemapping_changed_all(struct CurveMapping *cumap);
+/* call before _all_ evaluation functions */
+void curvemapping_initialize(struct CurveMapping *cumap);
+
+/* keep these (const CurveMap) - to help with thread safety */
/* single curve, no table check */
-float curvemap_evaluateF(struct CurveMap *cuma, float value);
+float curvemap_evaluateF(const struct CurveMap *cuma, float value);
/* single curve, with table check */
-float curvemapping_evaluateF(struct CurveMapping *cumap, int cur, float value);
-void curvemapping_evaluate3F(struct CurveMapping *cumap, float vecout[3], const float vecin[3]);
-void curvemapping_evaluateRGBF(struct CurveMapping *cumap, float vecout[3], const float vecin[3]);
-void curvemapping_evaluate_premulRGB(struct CurveMapping *cumap, unsigned char vecout_byte[3], const unsigned char vecin_byte[3]);
-void curvemapping_evaluate_premulRGBF_ex(struct CurveMapping *cumap, float vecout[3], const float vecin[3],
+float curvemapping_evaluateF(const struct CurveMapping *cumap, int cur, float value);
+void curvemapping_evaluate3F(const struct CurveMapping *cumap, float vecout[3], const float vecin[3]);
+void curvemapping_evaluateRGBF(const struct CurveMapping *cumap, float vecout[3], const float vecin[3]);
+void curvemapping_evaluate_premulRGB(const struct CurveMapping *cumap, unsigned char vecout_byte[3], const unsigned char vecin_byte[3]);
+void curvemapping_evaluate_premulRGBF_ex(const struct CurveMapping *cumap, float vecout[3], const float vecin[3],
const float black[3], const float bwmul[3]);
-void curvemapping_evaluate_premulRGBF(struct CurveMapping *cumap, float vecout[3], const float vecin[3]);
+void curvemapping_evaluate_premulRGBF(const struct CurveMapping *cumap, float vecout[3], const float vecin[3]);
+int curvemapping_RGBA_does_something(const struct CurveMapping *cumap);
+void curvemapping_table_RGBA(const struct CurveMapping *cumap, float **array, int *size);
+
+/* non-const, these modify the curve */
void curvemapping_do_ibuf(struct CurveMapping *cumap, struct ImBuf *ibuf);
void curvemapping_premultiply(struct CurveMapping *cumap, int restore);
-int curvemapping_RGBA_does_something(struct CurveMapping *cumap);
-void curvemapping_initialize(struct CurveMapping *cumap);
-void curvemapping_table_RGBA(struct CurveMapping *cumap, float **array, int *size);
+
+
void BKE_histogram_update_sample_line(struct Histogram *hist, struct ImBuf *ibuf, const short use_color_management);
void scopes_update(struct Scopes *scopes, struct ImBuf *ibuf, int use_color_management);
void scopes_free(struct Scopes *scopes);
Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/brush.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/brush.c 2012-08-21 15:14:29 UTC (rev 50089)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/brush.c 2012-08-21 15:16:53 UTC (rev 50090)
@@ -1253,7 +1253,9 @@
if (p >= len) return 0;
else p = p / len;
+ curvemapping_initialize(br->curve);
p = curvemapping_evaluateF(br->curve, 0, p);
+
if (p < 0.0f) p = 0.0f;
else if (p > 1.0f) p = 1.0f;
return p;
@@ -1267,6 +1269,7 @@
else
p = p / len;
+ curvemapping_initialize(br->curve);
return curvemapping_evaluateF(br->curve, 0, p);
}
Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/colortools.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/colortools.c 2012-08-21 15:14:29 UTC (rev 50089)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/colortools.c 2012-08-21 15:16:53 UTC (rev 50090)
@@ -151,13 +151,8 @@
int a;
for (a = 0; a < 3; a++) {
- const float delta = white[a] - black[a];
- if (delta != 0.0f) {
- r_bwmul[a] = 1.0f / delta;
- }
- else {
- r_bwmul[a] = 0.0f;
- }
+ const float delta = maxf(white[a] - black[a], 1e-5f);
+ r_bwmul[a] = 1.0f / delta;
}
}
@@ -446,7 +441,7 @@
/* in X, out Y.
* X is presumed to be outside first or last */
-static float curvemap_calc_extend(CurveMap *cuma, float x, const float first[2], const float last[2])
+static float curvemap_calc_extend(const CurveMap *cuma, float x, const float first[2], const float last[2])
{
if (x <= first[0]) {
if ((cuma->flag & CUMA_EXTEND_EXTRAPOLATE) == 0) {
@@ -745,7 +740,7 @@
}
/* table should be verified */
-float curvemap_evaluateF(CurveMap *cuma, float value)
+float curvemap_evaluateF(const CurveMap *cuma, float value)
{
float fi;
int i;
@@ -767,33 +762,26 @@
}
/* works with curve 'cur' */
-float curvemapping_evaluateF(CurveMapping *cumap, int cur, float value)
+float curvemapping_evaluateF(const CurveMapping *cumap, int cur, float value)
{
- CurveMap *cuma = cumap->cm + cur;
-
- /* allocate or bail out */
- if (cuma->table == NULL) {
- curvemap_make_table(cuma, &cumap->clipr);
- if (cuma->table == NULL)
- return 1.0f - value;
- }
+ const CurveMap *cuma = cumap->cm + cur;
return curvemap_evaluateF(cuma, value);
}
/* vector case */
-void curvemapping_evaluate3F(CurveMapping *cumap, float vecout[3], const float vecin[3])
+void curvemapping_evaluate3F(const CurveMapping *cumap, float vecout[3], const float vecin[3])
{
- vecout[0] = curvemapping_evaluateF(cumap, 0, vecin[0]);
- vecout[1] = curvemapping_evaluateF(cumap, 1, vecin[1]);
- vecout[2] = curvemapping_evaluateF(cumap, 2, vecin[2]);
+ vecout[0] = curvemap_evaluateF(&cumap->cm[0], vecin[0]);
+ vecout[1] = curvemap_evaluateF(&cumap->cm[1], vecin[1]);
+ vecout[2] = curvemap_evaluateF(&cumap->cm[2], vecin[2]);
}
/* RGB case, no black/white points, no premult */
-void curvemapping_evaluateRGBF(CurveMapping *cumap, float vecout[3], const float vecin[3])
+void curvemapping_evaluateRGBF(const CurveMapping *cumap, float vecout[3], const float vecin[3])
{
- vecout[0] = curvemapping_evaluateF(cumap, 0, curvemapping_evaluateF(cumap, 3, vecin[0]));
- vecout[1] = curvemapping_evaluateF(cumap, 1, curvemapping_evaluateF(cumap, 3, vecin[1]));
- vecout[2] = curvemapping_evaluateF(cumap, 2, curvemapping_evaluateF(cumap, 3, vecin[2]));
+ vecout[0] = curvemap_evaluateF(&cumap->cm[0], curvemap_evaluateF(&cumap->cm[3], vecin[0]));
+ vecout[1] = curvemap_evaluateF(&cumap->cm[1], curvemap_evaluateF(&cumap->cm[3], vecin[1]));
+ vecout[2] = curvemap_evaluateF(&cumap->cm[2], curvemap_evaluateF(&cumap->cm[3], vecin[2]));
}
/** same as #curvemapping_evaluate_premulRGBF
@@ -805,7 +793,7 @@
* \param black Use instead of cumap->black
* \param bwmul Use instead of cumap->bwmul
*/
-void curvemapping_evaluate_premulRGBF_ex(CurveMapping *cumap, float vecout[3], const float vecin[3],
+void curvemapping_evaluate_premulRGBF_ex(const CurveMapping *cumap, float vecout[3], const float vecin[3],
const float black[3], const float bwmul[3])
{
vecout[0] = curvemap_evaluateF(&cumap->cm[0], (vecin[0] - black[0]) * bwmul[0]);
@@ -814,7 +802,7 @@
}
/* RGB with black/white points and premult. tables are checked */
-void curvemapping_evaluate_premulRGBF(CurveMapping *cumap, float vecout[3], const float vecin[3])
+void curvemapping_evaluate_premulRGBF(const CurveMapping *cumap, float vecout[3], const float vecin[3])
{
vecout[0] = curvemap_evaluateF(&cumap->cm[0], (vecin[0] - cumap->black[0]) * cumap->bwmul[0]);
vecout[1] = curvemap_evaluateF(&cumap->cm[1], (vecin[1] - cumap->black[1]) * cumap->bwmul[1]);
@@ -822,7 +810,7 @@
}
/* same as above, byte version */
-void curvemapping_evaluate_premulRGB(CurveMapping *cumap, unsigned char vecout_byte[3], const unsigned char vecin_byte[3])
+void curvemapping_evaluate_premulRGB(const CurveMapping *cumap, unsigned char vecout_byte[3], const unsigned char vecin_byte[3])
{
float vecin[3], vecout[3];
@@ -895,7 +883,7 @@
curvemapping_premultiply(cumap, 1);
}
-int curvemapping_RGBA_does_something(CurveMapping *cumap)
+int curvemapping_RGBA_does_something(const CurveMapping *cumap)
{
int a;
@@ -931,13 +919,12 @@
}
}
-void curvemapping_table_RGBA(CurveMapping *cumap, float **array, int *size)
+void curvemapping_table_RGBA(const CurveMapping *cumap, float **array, int *size)
{
int a;
*size = CM_TABLE + 1;
*array = MEM_callocN(sizeof(float) * (*size) * 4, "CurveMapping");
- curvemapping_initialize(cumap);
for (a = 0; a < *size; a++) {
if (cumap->cm[0].table)
Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/world.c
===================================================================
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list