X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fcolor.h;h=a5455c1faf4112ac10aefd52847c01f5e12f729c;hb=7f4c7141c21b2d140d1ea249a468b27d29831081;hp=a6b81acf8bcc55a95d813eba83461cec0be70924;hpb=cc54c38609ee9745ad678e5e9b9d7d2912be9c95;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/color.h b/synfig-core/trunk/src/synfig/color.h index a6b81ac..a5455c1 100644 --- a/synfig-core/trunk/src/synfig/color.h +++ b/synfig-core/trunk/src/synfig/color.h @@ -32,7 +32,7 @@ #include #include #include "gamma.h" -#include +#include #ifdef USE_HALF_TYPE #include @@ -110,6 +110,8 @@ private: public: + const String get_string(void)const; + Color & operator+=(const Color &rhs) { @@ -263,6 +265,18 @@ public: //! Synonym for get_a(). \see get_a() const value_type& get_alpha()const { return get_a(); } + //! Converts a 2 character hex string \a s (00-ff) into a ColorReal (0.0-1.0) + static ColorReal hex2real(String s); + + //! Converts a ColorReal \a c (0.0-1.0) into a 2 character hex string (00-ff) + static const String real2hex(ColorReal c); + + //! Returns the color as a 6 character hex sting + 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); + //! Sets the RED component to \a x Color& set_r(const value_type& x) { r_ = x; return *this; } @@ -450,32 +464,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 */