X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fcolor.h;h=0d460b1f4c4297daba57993a57ef34c8bddea297;hb=4b1229cdc21da8fe0bc6cbec315ddfb5b339ea54;hp=4624341159bcb42cb39ee61edc5bfa8d0d910300;hpb=710af67b5341a2be2c920ce04d16e8c598fb43b7;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/color.h b/synfig-core/trunk/src/synfig/color.h index 4624341..0d460b1 100644 --- a/synfig-core/trunk/src/synfig/color.h +++ b/synfig-core/trunk/src/synfig/color.h @@ -44,6 +44,11 @@ /* === M A C R O S ========================================================= */ +#define use_colorspace_gamma() App::use_colorspace_gamma +#define colorspace_gamma() (2.2f) +#define gamma_in(x) ((x>=0) ? pow((float)x,1.0f/colorspace_gamma()) : -pow((float)-x,1.0f/colorspace_gamma())) +#define gamma_out(x) ((x>=0) ? pow((float)x, colorspace_gamma()) : -pow((float)-x, colorspace_gamma())) + #ifdef WIN32 #include #ifndef isnan @@ -107,10 +112,11 @@ public: private: value_type a_, r_, g_, b_; - static String hex_; public: + const String get_string(void)const; + Color & operator+=(const Color &rhs) { @@ -203,7 +209,11 @@ public: } public: - Color() /*:r_(0), g_(0), b_(0), a_(0)*/ { } + // ETL/trunk/ETL/_gaussian.h does: + // SR1=SR2=SR3=typename T::value_type(); + // and expects that to give it initialised colors + // Otherwise the 'gaussian' blur type is random. + Color() :a_(0), r_(0), g_(0), b_(0) { } Color(const value_type &f) :a_(f),r_(f), g_(f), b_(f) { } Color(int f) :a_(f),r_(f), g_(f), b_(f) { } @@ -271,7 +281,7 @@ public: static const String real2hex(ColorReal c); //! Returns the color as a 6 character hex sting - const String& get_hex()const { return hex_ = real2hex(r_)+real2hex(g_)+real2hex(b_); } + const String get_hex()const { return String(real2hex(r_)+real2hex(g_)+real2hex(b_)); } //! Sets the color's R, G, and B from a 3 or 6 character hex string void set_hex(String& hex);