19 #ifndef GNASH_AGG_LINEAR_INTERPOLATOR_H
20 #define GNASH_AGG_LINEAR_INTERPOLATOR_H
30 const double a = 0.055;
31 if (s <= 0.0031308)
return 12.92 *
s;
32 return (1 + a) * std::pow(s, 1 / 2.4) -
a;
39 const int diff = b -
a;
40 const double d =
linearToSRGB((diff < 0) ? 1 - ratio : ratio);
52 template<
class ColorT>
72 const double ratio =
static_cast<double>(_count) / _len;
74 cdiff(_c1.r, _c2.r, ratio),
75 cdiff(_c1.g, _c2.g, ratio),
76 cdiff(_c1.b, _c2.b, ratio),
77 _c1.a + (_c2.a - _c1.a) * ratio);
Definition: GnashKey.h:147
Definition: GnashKey.h:150
void operator++()
Definition: LinearRGB.h:67
SWFStream & s
Definition: DefineBitsTag.cpp:73
ColorT color_type
Definition: LinearRGB.h:56
color_type color() const
Definition: LinearRGB.h:71
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:40
Interpolate in the linear RGB colorspace.
Definition: LinearRGB.h:53
T cdiff(T a, T b, double ratio)
Definition: LinearRGB.h:37
Definition: GnashKey.h:148
linear_rgb_interpolator(const color_type &c1, const color_type &c2, size_t len)
Definition: LinearRGB.h:58
Definition: GnashKey.h:132
double linearToSRGB(double s)
Convert linear RGB colorspace to sRGB.
Definition: LinearRGB.h:28