X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fcolor.h;h=447bd5632e4584decf506dd605f3b10e8f525c38;hb=3dc1abe34989fbb41dfdf6d8ac2a8a0085b7454f;hp=3d501a20cb7237665f4ebea2e938a48a9f4d9ed8;hpb=40dda9d27b5249ee32f62d84c819ff569f078929;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/color.h b/synfig-core/trunk/src/synfig/color.h index 3d501a2..447bd56 100644 --- a/synfig-core/trunk/src/synfig/color.h +++ b/synfig-core/trunk/src/synfig/color.h @@ -28,6 +28,11 @@ /* === H E A D E R S ======================================================= */ +#include +#include +#include +#include + //#include #include #include @@ -107,10 +112,16 @@ public: private: value_type a_, r_, g_, b_; - mutable String hex_; public: + inline const String get_string(void)const + { + std::ostringstream o; + o << std::fixed << std::setprecision(3) << "#" << get_hex() << " : " << std::setw(6) << a_; + return String(o.str().c_str()); + } + Color & operator+=(const Color &rhs) { @@ -271,7 +282,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); @@ -463,32 +474,31 @@ public: //! \writeme enum BlendMethod { - BLEND_COMPOSITE=0, //!< Color A is composited onto B (Taking into about A's alpha) - BLEND_STRAIGHT=1, //!< Straight linear interpolation from A->B (Alpha ignored) - BLEND_BRIGHTEN=2, //!< If composite is brighter than B, use composite. B otherwise. - BLEND_DARKEN=3, //!< If composite is brighter than B, use composite. B otherwise. - BLEND_ADD=4, //!< Simple A+B. - BLEND_SUBTRACT=5, //!< Simple A-B. - BLEND_MULTIPLY=6, //!< Simple A*B. - BLEND_DIVIDE=7, //!< Simple B/A - BLEND_COLOR=8, //!< Preserves the U and V channels of color A - BLEND_HUE=9, //!< Preserves the angle of the UV vector of color A - BLEND_SATURATION=10,//!< Preserves the magnitude of the UV Vector of color A - BLEND_LUMINANCE=11, //!< Preserves the Y channel of color A - BLEND_BEHIND=12, //!< Similar to BLEND_COMPOSITE, except that B is composited onto A. - BLEND_ONTO=13, //!< Similar to BLEND_COMPOSITE, except that B's alpha is maintained - BLEND_SCREEN=16, //!< \writeme - BLEND_OVERLAY=20, //!< \writeme - BLEND_DIFFERENCE=18, //!< \writeme + BLEND_COMPOSITE=0, //!< Color A is composited onto B (Taking A's alpha into account) + BLEND_STRAIGHT=1, //!< Straight linear interpolation from A->B (Alpha ignored) + BLEND_ONTO=13, //!< Similar to BLEND_COMPOSITE, except that B's alpha is maintained + BLEND_STRAIGHT_ONTO=21, //!< \writeme + BLEND_BEHIND=12, //!< Similar to BLEND_COMPOSITE, except that B is composited onto A. + BLEND_SCREEN=16, //!< \writeme + BLEND_OVERLAY=20, //!< \writeme BLEND_HARD_LIGHT=17, //!< \writeme - - //! Deprecated - BLEND_ALPHA_BRIGHTEN=14, //!< If A is less opaque than B, use A - BLEND_ALPHA_DARKEN=15, //!< If A is more opaque than B, use B - BLEND_ALPHA_OVER=19,//!< multiply alphas and then straight blends that using the amount - BLEND_STRAIGHT_ONTO=21,//!< \writeme - - BLEND_END=22 //!< \internal + BLEND_MULTIPLY=6, //!< Simple A*B. + BLEND_DIVIDE=7, //!< Simple B/A + BLEND_ADD=4, //!< Simple A+B. + BLEND_SUBTRACT=5, //!< Simple A-B. + BLEND_DIFFERENCE=18, //!< Simple |A-B|. + BLEND_BRIGHTEN=2, //!< If composite is brighter than B, use composite. B otherwise. + BLEND_DARKEN=3, //!< If composite is darker than B, use composite. B otherwise. + BLEND_COLOR=8, //!< Preserves the U and V channels of color A + BLEND_HUE=9, //!< Preserves the angle of the UV vector of color A + BLEND_SATURATION=10, //!< Preserves the magnitude of the UV Vector of color A + BLEND_LUMINANCE=11, //!< Preserves the Y channel of color A + + BLEND_ALPHA_BRIGHTEN=14, //!< If A is less opaque than B, use A + BLEND_ALPHA_DARKEN=15, //!< If A is more opaque than B, use B + BLEND_ALPHA_OVER=19, //!< multiply alphas and then straight blends using the amount + + BLEND_END=22 //!< \internal }; /* Other */