nuclear@0: #ifndef _COLORS_H_ nuclear@0: #define _COLORS_H_ nuclear@0: nuclear@0: #include nuclear@0: #include "typedefs.h" nuclear@0: nuclear@0: #ifdef _MSC_VER nuclear@0: #ifdef DOUBLE_PRECISION_MATH nuclear@0: typedef double float_t; nuclear@0: #else nuclear@0: typedef float float_t; nuclear@0: #endif // DOUBLE_PRECISION_MATH nuclear@0: #endif // _MSC_VER nuclear@0: nuclear@0: #ifdef NUC3D_VER_DIRECT3D nuclear@0: nuclear@0: #include "d3d8.h" nuclear@0: nuclear@0: class Color : public D3DCOLORVALUE { nuclear@0: public: nuclear@0: nuclear@0: #else nuclear@0: nuclear@0: class Color { nuclear@0: public: nuclear@0: float_t r, g, b, a; nuclear@0: nuclear@0: #endif // NUC3D_VER_DIRECT3D nuclear@0: nuclear@0: Color(float_t intensity = 1.0f); nuclear@0: Color(float_t r, float_t g, float_t b, float_t a = 1.0f); nuclear@0: Color(unsigned int r, unsigned int g, unsigned int b, unsigned int a = 255); nuclear@0: Color(int r, int g, int b, int a = 255); nuclear@0: Color(dword pcol); nuclear@0: Color(long pcol); nuclear@0: nuclear@0: Color operator +(const Color &col) const; nuclear@0: Color operator -(const Color &col) const; nuclear@0: Color operator *(const Color &col) const; nuclear@0: Color operator *(float_t scalar) const; nuclear@0: nuclear@0: void operator +=(const Color &col); nuclear@0: void operator -=(const Color &col); nuclear@0: void operator *=(const Color &col); nuclear@0: void operator *=(float_t scalar); nuclear@0: nuclear@0: dword GetPacked32() const; nuclear@0: word GetPacked16() const; nuclear@0: word GetPacked15() const; nuclear@0: byte GetNearest8(const byte **pal) const; nuclear@0: }; nuclear@0: nuclear@0: Color BlendColors(const Color &c1, const Color &c2, float_t t); nuclear@0: nuclear@0: #endif // _COLORS_H_