diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-08-21 12:30:45 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-08-21 12:30:45 +0400 |
commit | 988df245519352ab80d8ad488660a0a2f7a963d3 (patch) | |
tree | 91f0e61c6543d0eda2af9794d5a7938b6e583072 /source/blender/blenkernel/BKE_colortools.h | |
parent | 49d3766ceb17082fd64cdc0f01224237f1098564 (diff) |
compositor color curve was MEM_dupallocN'ing the curve for every pixel calculation (when there were black or white inputs on the curve node).
avoid allocation by using local vars for black/white storage & curve calculation.
Diffstat (limited to 'source/blender/blenkernel/BKE_colortools.h')
-rw-r--r-- | source/blender/blenkernel/BKE_colortools.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_colortools.h b/source/blender/blenkernel/BKE_colortools.h index dcb40c960b1..90358ba9609 100644 --- a/source/blender/blenkernel/BKE_colortools.h +++ b/source/blender/blenkernel/BKE_colortools.h @@ -53,6 +53,7 @@ void curvemapping_free_data(struct CurveMapping *cumap); void curvemapping_free(struct CurveMapping *cumap); void curvemapping_copy_data(struct CurveMapping *target, struct CurveMapping *cumap); struct CurveMapping *curvemapping_copy(struct CurveMapping *cumap); +void curvemapping_set_black_white_ex(const float black[3], const float white[3], float r_bwmul[3]); void curvemapping_set_black_white(struct CurveMapping *cumap, const float black[3], const float white[3]); #define CURVEMAP_SLOPE_NEGATIVE 0 @@ -73,6 +74,8 @@ float curvemapping_evaluateF(struct CurveMapping *cumap, int cur, 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], + const float black[3], const float bwmul[3]); void curvemapping_evaluate_premulRGBF(struct CurveMapping *cumap, float vecout[3], const float vecin[3]); void curvemapping_do_ibuf(struct CurveMapping *cumap, struct ImBuf *ibuf); void curvemapping_premultiply(struct CurveMapping *cumap, int restore); |