X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fcolor.h;h=22d05877c36a4990d6ea58d13b631f10ccd8f3f3;hb=5c2565765480697771497772fe7f6da76dd6b1e2;hp=447bd5632e4584decf506dd605f3b10e8f525c38;hpb=215f2742c34cedf77a8cd0ffdef8f8b6e95efdfe;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/color.h b/synfig-core/trunk/src/synfig/color.h index 447bd56..22d0587 100644 --- a/synfig-core/trunk/src/synfig/color.h +++ b/synfig-core/trunk/src/synfig/color.h @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -28,11 +29,6 @@ /* === H E A D E R S ======================================================= */ -#include -#include -#include -#include - //#include #include #include @@ -49,6 +45,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 @@ -115,12 +116,7 @@ private: 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()); - } + const String get_string(void)const; Color & operator+=(const Color &rhs) @@ -214,7 +210,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 initialized 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) { } @@ -712,7 +712,7 @@ enum PixelFormat ** 3 Endian (BGR/RGB) ** 4 Alpha Location (Start/End) ** 5 ZDepth Location (Start/End) -** 6 Alpha/ZDepth Arangement (ZA,AZ) +** 6 Alpha/ZDepth Arrangement (ZA,AZ) ** 7 Alpha Range (Inverted,Normal) ** 8 Z Range (Inverted,Normal) */ @@ -723,11 +723,11 @@ enum PixelFormat PF_BGR=(1<<3), //!< If set, reverse the order of the RGB channels PF_A_START=(1<<4), //!< If set, alpha channel is before the color data. If clear, it is after. PF_Z_START=(1<<5), //!< If set, ZDepth channel is before the color data. If clear, it is after. - PF_ZA=(1<<6), //!< If set, the ZDepth channel will be infront of the alpha channel. If clear, they are reversed. + PF_ZA=(1<<6), //!< If set, the ZDepth channel will be in front of the alpha channel. If clear, they are reversed. PF_A_INV=(1<<7), //!< If set, the alpha channel is stored as 1.0-a PF_Z_INV=(1<<8), //!< If set, the ZDepth channel is stored as 1.0-z - PF_RAW_COLOR=(1<<9)+(1<<1) //!< If set, the data represents a raw Color datastructure, and all other bits are ignored. + PF_RAW_COLOR=(1<<9)+(1<<1) //!< If set, the data represents a raw Color data structure, and all other bits are ignored. }; inline PixelFormat operator|(PixelFormat lhs, PixelFormat rhs)