[DEBUG] correct the default value of etk::color default alpha

This commit is contained in:
Edouard DUPIN 2014-07-15 21:13:01 +02:00
parent d677a13a9b
commit f941b1a58b
7 changed files with 100 additions and 80 deletions

View File

@ -15,6 +15,9 @@
#include <sstream>
#include <stdexcept>
#undef __class__
#define __class__ "Color"
typedef struct {
const char * colorName;
etk::Color<> color;

View File

@ -34,6 +34,7 @@ namespace etk {
template<typename MY_TYPE=uint8_t, int MY_TYPE_SIZE=4> class Color {
public:
static const Color<MY_TYPE, MY_TYPE_SIZE> emptyColor; // to auto fill with no data in all case
static const float defaultAlpha;
private:
MY_TYPE m_element[MY_TYPE_SIZE]; //!< all the color.
public:
@ -151,7 +152,7 @@ namespace etk {
m_element[2] = _b;
}
if (MY_TYPE_SIZE >= 4) {
m_element[3] = 0;
m_element[3] = defaultAlpha;
}
};
//! @previous
@ -166,7 +167,7 @@ namespace etk {
m_element[2] = 0;
}
if (MY_TYPE_SIZE >= 4) {
m_element[3] = 0;
m_element[3] = defaultAlpha;
}
};
//! @previous
@ -181,7 +182,7 @@ namespace etk {
m_element[2] = 0;
}
if (MY_TYPE_SIZE >= 4) {
m_element[3] = 0;
m_element[3] = defaultAlpha;
}
};
/**
@ -243,7 +244,7 @@ namespace etk {
if (MY_TYPE_SIZE >= 4) {
return m_element[3];
} else {
return 0;
return defaultAlpha;
}
};
/**

View File

@ -1,4 +1,8 @@
template<> const float Color<uint16_t, 1>::defaultAlpha(0xFFFF);
template<> const float Color<uint16_t, 2>::defaultAlpha(0xFFFF);
template<> const float Color<uint16_t, 3>::defaultAlpha(0xFFFF);
template<> const float Color<uint16_t, 4>::defaultAlpha(0xFFFF);
template<> const Color<uint16_t, 1> Color<uint16_t, 1>::emptyColor(0);
template<> const Color<uint16_t, 2> Color<uint16_t, 2>::emptyColor(0,0);
template<> const Color<uint16_t, 3> Color<uint16_t, 3>::emptyColor(0,0,0);
@ -21,7 +25,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<uint8_t, 1>& _obj) {
m_element[0] = (uint16_t)_obj.r() << 8;
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<uint8_t, 2>& _obj) {
m_element[0] = (uint16_t)_obj.r() << 8;
@ -39,7 +43,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<uint8_t, 2>& _obj) {
m_element[0] = (uint16_t)_obj.r() << 8;
m_element[1] = (uint16_t)_obj.g() << 8;
m_element[2] = 0;
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<uint8_t, 3>& _obj) {
m_element[0] = (uint16_t)_obj.r() << 8;
@ -57,7 +61,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<uint8_t, 3>& _obj) {
m_element[0] = (uint16_t)_obj.r() << 8;
m_element[1] = (uint16_t)_obj.g() << 8;
m_element[2] = (uint16_t)_obj.b() << 8;
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<uint8_t, 4>& _obj) {
m_element[0] = (uint16_t)_obj.r() << 8;
@ -96,7 +100,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<uint16_t, 1>& _obj) {
m_element[0] = _obj.r();
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<uint16_t, 2>& _obj) {
m_element[0] = _obj.r();
@ -114,7 +118,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<uint16_t, 2>& _obj) {
m_element[0] = _obj.r();
m_element[1] = _obj.g();
m_element[2] = 0;
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<uint16_t, 3>& _obj) {
m_element[0] = _obj.r();
@ -132,7 +136,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<uint16_t, 3>& _obj) {
m_element[0] = _obj.r();
m_element[1] = _obj.g();
m_element[2] = _obj.b();
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<uint16_t, 4>& _obj) {
m_element[0] = _obj.r();
@ -171,7 +175,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<uint32_t, 1>& _obj) {
m_element[0] = (uint16_t)(_obj.r()>>16);
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<uint32_t, 2>& _obj) {
m_element[0] = (uint16_t)(_obj.r()>>16);
@ -189,7 +193,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<uint32_t, 2>& _obj) {
m_element[0] = (uint16_t)(_obj.r()>>16);
m_element[1] = (uint16_t)(_obj.g()>>16);
m_element[2] = 0;
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<uint32_t, 3>& _obj) {
m_element[0] = (uint16_t)(_obj.r()>>16);
@ -207,7 +211,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<uint32_t, 3>& _obj) {
m_element[0] = (uint16_t)(_obj.r()>>16);
m_element[1] = (uint16_t)(_obj.g()>>16);
m_element[2] = (uint16_t)(_obj.b()>>16);
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<uint32_t, 4>& _obj) {
m_element[0] = (uint16_t)(_obj.r()>>16);
@ -246,7 +250,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<float, 1>& _obj) {
m_element[0] = (uint16_t)(std::avg(0.0f, _obj.r(), 1.0f)*65535.0f);
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<float, 2>& _obj) {
m_element[0] = (uint16_t)(std::avg(0.0f, _obj.r(), 1.0f)*65535.0f);
@ -264,7 +268,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<float, 2>& _obj) {
m_element[0] = (uint16_t)(std::avg(0.0f, _obj.r(), 1.0f)*65535.0f);
m_element[1] = (uint16_t)(std::avg(0.0f, _obj.g(), 1.0f)*65535.0f);
m_element[2] = 0;
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<float, 3>& _obj) {
m_element[0] = (uint16_t)(std::avg(0.0f, _obj.r(), 1.0f)*65535.0f);
@ -282,7 +286,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<float, 3>& _obj) {
m_element[0] = (uint16_t)(std::avg(0.0f, _obj.r(), 1.0f)*65535.0f);
m_element[1] = (uint16_t)(std::avg(0.0f, _obj.g(), 1.0f)*65535.0f);
m_element[2] = (uint16_t)(std::avg(0.0f, _obj.b(), 1.0f)*65535.0f);
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<float, 4>& _obj) {
m_element[0] = (uint16_t)(std::avg(0.0f, _obj.r(), 1.0f)*65535.0f);
@ -321,7 +325,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<double, 1>& _obj) {
m_element[0] = (uint16_t)(std::avg(0.0, _obj.r(), 1.0)*65535.0);
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<double, 2>& _obj) {
m_element[0] = (uint16_t)(std::avg(0.0, _obj.r(), 1.0)*65535.0);
@ -339,7 +343,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<double, 2>& _obj) {
m_element[0] = (uint16_t)(std::avg(0.0, _obj.r(), 1.0)*65535.0);
m_element[1] = (uint16_t)(std::avg(0.0, _obj.g(), 1.0)*65535.0);
m_element[2] = 0;
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<double, 3>& _obj) {
m_element[0] = (uint16_t)(std::avg(0.0, _obj.r(), 1.0)*65535.0);
@ -357,7 +361,7 @@ template<> template<> Color<uint16_t,4>::Color(const Color<double, 3>& _obj) {
m_element[0] = (uint16_t)(std::avg(0.0, _obj.r(), 1.0)*65535.0);
m_element[1] = (uint16_t)(std::avg(0.0, _obj.g(), 1.0)*65535.0);
m_element[2] = (uint16_t)(std::avg(0.0, _obj.b(), 1.0)*65535.0);
m_element[3] = 0xFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint16_t,1>::Color(const Color<double, 4>& _obj) {
m_element[0] = (uint16_t)(std::avg(0.0, _obj.r(), 1.0)*65535.0);

View File

@ -1,4 +1,8 @@
template<> const float Color<uint32_t, 1>::defaultAlpha(0xFFFFFFFF);
template<> const float Color<uint32_t, 2>::defaultAlpha(0xFFFFFFFF);
template<> const float Color<uint32_t, 3>::defaultAlpha(0xFFFFFFFF);
template<> const float Color<uint32_t, 4>::defaultAlpha(0xFFFFFFFF);
template<> const Color<uint32_t, 1> Color<uint32_t, 1>::emptyColor(0);
template<> const Color<uint32_t, 2> Color<uint32_t, 2>::emptyColor(0,0);
template<> const Color<uint32_t, 3> Color<uint32_t, 3>::emptyColor(0,0,0);
@ -21,7 +25,7 @@ template<> template<> Color<uint32_t,4>::Color(const Color<uint8_t, 1>& _obj) {
m_element[0] = (uint32_t)_obj.r() << 24;
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFFFFFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint32_t,1>::Color(const Color<uint8_t, 2>& _obj) {
m_element[0] = (uint32_t)_obj.r() << 24;
@ -39,7 +43,7 @@ template<> template<> Color<uint32_t,4>::Color(const Color<uint8_t, 2>& _obj) {
m_element[0] = (uint32_t)_obj.r() << 24;
m_element[1] = (uint32_t)_obj.g() << 24;
m_element[2] = 0;
m_element[3] = 0xFFFFFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint32_t,1>::Color(const Color<uint8_t, 3>& _obj) {
m_element[0] = (uint32_t)_obj.r() << 24;
@ -57,7 +61,7 @@ template<> template<> Color<uint32_t,4>::Color(const Color<uint8_t, 3>& _obj) {
m_element[0] = (uint32_t)_obj.r() << 24;
m_element[1] = (uint32_t)_obj.g() << 24;
m_element[2] = (uint32_t)_obj.b() << 24;
m_element[3] = 0xFFFFFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint32_t,1>::Color(const Color<uint8_t, 4>& _obj) {
m_element[0] = (uint32_t)_obj.r() << 24;
@ -96,7 +100,7 @@ template<> template<> Color<uint32_t,4>::Color(const Color<uint16_t, 1>& _obj) {
m_element[0] = (uint32_t)_obj.r() << 16;
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFFFFFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint32_t,1>::Color(const Color<uint16_t, 2>& _obj) {
m_element[0] = (uint32_t)_obj.r() << 16;
@ -114,7 +118,7 @@ template<> template<> Color<uint32_t,4>::Color(const Color<uint16_t, 2>& _obj) {
m_element[0] = (uint32_t)_obj.r() << 16;
m_element[1] = (uint32_t)_obj.g() << 16;
m_element[2] = 0;
m_element[3] = 0xFFFFFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint32_t,1>::Color(const Color<uint16_t, 3>& _obj) {
m_element[0] = (uint32_t)_obj.r() << 16;
@ -132,7 +136,7 @@ template<> template<> Color<uint32_t,4>::Color(const Color<uint16_t, 3>& _obj) {
m_element[0] = (uint32_t)_obj.r() << 16;
m_element[1] = (uint32_t)_obj.g() << 16;
m_element[2] = (uint32_t)_obj.b() << 16;
m_element[3] = 0xFFFFFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint32_t,1>::Color(const Color<uint16_t, 4>& _obj) {
m_element[0] = (uint32_t)_obj.r() << 16;
@ -171,7 +175,7 @@ template<> template<> Color<uint32_t,4>::Color(const Color<uint32_t, 1>& _obj) {
m_element[0] = _obj.r();
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFFFFFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint32_t,1>::Color(const Color<uint32_t, 2>& _obj) {
m_element[0] = _obj.r();
@ -189,7 +193,7 @@ template<> template<> Color<uint32_t,4>::Color(const Color<uint32_t, 2>& _obj) {
m_element[0] = _obj.r();
m_element[1] = _obj.g();
m_element[2] = 0;
m_element[3] = 0xFFFFFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint32_t,1>::Color(const Color<uint32_t, 3>& _obj) {
m_element[0] = _obj.r();
@ -207,7 +211,7 @@ template<> template<> Color<uint32_t,4>::Color(const Color<uint32_t, 3>& _obj) {
m_element[0] = _obj.r();
m_element[1] = _obj.g();
m_element[2] = _obj.b();
m_element[3] = 0xFFFFFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint32_t,1>::Color(const Color<uint32_t, 4>& _obj) {
m_element[0] = _obj.r();
@ -246,7 +250,7 @@ template<> template<> Color<uint32_t,4>::Color(const Color<float, 1>& _obj) {
m_element[0] = (uint32_t)(std::avg(0.0f, _obj.r(), 1.0f)*4294967295.0f);
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFFFFFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint32_t,1>::Color(const Color<float, 2>& _obj) {
m_element[0] = (uint32_t)(std::avg(0.0f, _obj.r(), 1.0f)*4294967295.0f);
@ -264,7 +268,7 @@ template<> template<> Color<uint32_t,4>::Color(const Color<float, 2>& _obj) {
m_element[0] = (uint32_t)(std::avg(0.0f, _obj.r(), 1.0f)*4294967295.0f);
m_element[1] = (uint32_t)(std::avg(0.0f, _obj.g(), 1.0f)*4294967295.0f);
m_element[2] = 0;
m_element[3] = 0xFFFFFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint32_t,1>::Color(const Color<float, 3>& _obj) {
m_element[0] = (uint32_t)(std::avg(0.0f, _obj.r(), 1.0f)*4294967295.0f);
@ -282,7 +286,7 @@ template<> template<> Color<uint32_t,4>::Color(const Color<float, 3>& _obj) {
m_element[0] = (uint32_t)(std::avg(0.0f, _obj.r(), 1.0f)*4294967295.0f);
m_element[1] = (uint32_t)(std::avg(0.0f, _obj.g(), 1.0f)*4294967295.0f);
m_element[2] = (uint32_t)(std::avg(0.0f, _obj.b(), 1.0f)*4294967295.0f);
m_element[3] = 0xFFFFFFFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint32_t,1>::Color(const Color<float, 4>& _obj) {
m_element[0] = (uint32_t)(std::avg(0.0f, _obj.r(), 1.0f)*4294967295.0f);

View File

@ -1,4 +1,8 @@
template<> const float Color<uint8_t, 1>::defaultAlpha(0xFF);
template<> const float Color<uint8_t, 2>::defaultAlpha(0xFF);
template<> const float Color<uint8_t, 3>::defaultAlpha(0xFF);
template<> const float Color<uint8_t, 4>::defaultAlpha(0xFF);
template<> const Color<uint8_t, 1> Color<uint8_t, 1>::emptyColor(0);
template<> const Color<uint8_t, 2> Color<uint8_t, 2>::emptyColor(0,0);
template<> const Color<uint8_t, 3> Color<uint8_t, 3>::emptyColor(0,0,0);
@ -21,7 +25,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<uint8_t, 1>& _obj) {
m_element[0] = _obj.r();
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<uint8_t, 2>& _obj) {
m_element[0] = _obj.r();
@ -39,7 +43,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<uint8_t, 2>& _obj) {
m_element[0] = _obj.r();
m_element[1] = _obj.g();
m_element[2] = 0;
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<uint8_t, 3>& _obj) {
m_element[0] = _obj.r();
@ -57,7 +61,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<uint8_t, 3>& _obj) {
m_element[0] = _obj.r();
m_element[1] = _obj.g();
m_element[2] = _obj.b();
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<uint8_t, 4>& _obj) {
m_element[0] = _obj.r();
@ -96,7 +100,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<uint16_t, 1>& _obj) {
m_element[0] = (uint8_t)(_obj.r()>>8);
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<uint16_t, 2>& _obj) {
m_element[0] = (uint8_t)(_obj.r()>>8);
@ -114,7 +118,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<uint16_t, 2>& _obj) {
m_element[0] = (uint8_t)(_obj.r()>>8);
m_element[1] = (uint8_t)(_obj.g()>>8);
m_element[2] = 0;
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<uint16_t, 3>& _obj) {
m_element[0] = (uint8_t)(_obj.r()>>8);
@ -132,7 +136,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<uint16_t, 3>& _obj) {
m_element[0] = (uint8_t)(_obj.r()>>8);
m_element[1] = (uint8_t)(_obj.g()>>8);
m_element[2] = (uint8_t)(_obj.b()>>8);
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<uint16_t, 4>& _obj) {
m_element[0] = (uint8_t)(_obj.r()>>8);
@ -171,7 +175,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<uint32_t, 1>& _obj) {
m_element[0] = (uint8_t)(_obj.r()>>24);
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<uint32_t, 2>& _obj) {
m_element[0] = (uint8_t)(_obj.r()>>24);
@ -189,7 +193,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<uint32_t, 2>& _obj) {
m_element[0] = (uint8_t)(_obj.r()>>24);
m_element[1] = (uint8_t)(_obj.g()>>24);
m_element[2] = 0;
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<uint32_t, 3>& _obj) {
m_element[0] = (uint8_t)(_obj.r()>>24);
@ -207,7 +211,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<uint32_t, 3>& _obj) {
m_element[0] = (uint8_t)(_obj.r()>>24);
m_element[1] = (uint8_t)(_obj.g()>>24);
m_element[2] = (uint8_t)(_obj.b()>>24);
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<uint32_t, 4>& _obj) {
m_element[0] = (uint8_t)(_obj.r()>>24);
@ -246,7 +250,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<float, 1>& _obj) {
m_element[0] = (uint8_t)(std::avg(0.0f, _obj.r(), 1.0f)*255.0f);
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<float, 2>& _obj) {
m_element[0] = (uint8_t)(std::avg(0.0f, _obj.r(), 1.0f)*255.0f);
@ -264,7 +268,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<float, 2>& _obj) {
m_element[0] = (uint8_t)(std::avg(0.0f, _obj.r(), 1.0f)*255.0f);
m_element[1] = (uint8_t)(std::avg(0.0f, _obj.g(), 1.0f)*255.0f);
m_element[2] = 0;
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<float, 3>& _obj) {
m_element[0] = (uint8_t)(std::avg(0.0f, _obj.r(), 1.0f)*255.0f);
@ -282,8 +286,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<float, 3>& _obj) {
m_element[0] = (uint8_t)(std::avg(0.0f, _obj.r(), 1.0f)*255.0f);
m_element[1] = (uint8_t)(std::avg(0.0f, _obj.g(), 1.0f)*255.0f);
m_element[2] = (uint8_t)(std::avg(0.0f, _obj.b(), 1.0f)*255.0f);
m_element[3] = 0xFF;
TK_WARNING(" convert : " << _obj << " => " << *this);
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<float, 4>& _obj) {
m_element[0] = (uint8_t)(std::avg(0.0f, _obj.r(), 1.0f)*255.0f);
@ -302,7 +305,6 @@ template<> template<> Color<uint8_t,4>::Color(const Color<float, 4>& _obj) {
m_element[1] = (uint8_t)(std::avg(0.0f, _obj.g(), 1.0f)*255.0f);
m_element[2] = (uint8_t)(std::avg(0.0f, _obj.b(), 1.0f)*255.0f);
m_element[3] = (uint8_t)(std::avg(0.0f, _obj.a(), 1.0f)*255.0f);
TK_WARNING(" convert : " << _obj << " => " << *this);
}
// ===========================================================================================================
@ -323,7 +325,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<double, 1>& _obj) {
m_element[0] = (uint8_t)(std::avg(0.0, _obj.r(), 1.0)*255.0);
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<double, 2>& _obj) {
m_element[0] = (uint8_t)(std::avg(0.0, _obj.r(), 1.0)*255.0);
@ -341,7 +343,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<double, 2>& _obj) {
m_element[0] = (uint8_t)(std::avg(0.0, _obj.r(), 1.0)*255.0);
m_element[1] = (uint8_t)(std::avg(0.0, _obj.g(), 1.0)*255.0);
m_element[2] = 0;
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<double, 3>& _obj) {
m_element[0] = (uint8_t)(std::avg(0.0, _obj.r(), 1.0)*255.0);
@ -359,7 +361,7 @@ template<> template<> Color<uint8_t,4>::Color(const Color<double, 3>& _obj) {
m_element[0] = (uint8_t)(std::avg(0.0, _obj.r(), 1.0)*255.0);
m_element[1] = (uint8_t)(std::avg(0.0, _obj.g(), 1.0)*255.0);
m_element[2] = (uint8_t)(std::avg(0.0, _obj.b(), 1.0)*255.0);
m_element[3] = 0xFF;
m_element[3] = defaultAlpha;
}
template<> template<> Color<uint8_t,1>::Color(const Color<double, 4>& _obj) {
m_element[0] = (uint8_t)(std::avg(0.0, _obj.r(), 1.0)*255.0);

View File

@ -1,4 +1,8 @@
template<> const float Color<double, 1>::defaultAlpha(1.0);
template<> const float Color<double, 2>::defaultAlpha(1.0);
template<> const float Color<double, 3>::defaultAlpha(1.0);
template<> const float Color<double, 4>::defaultAlpha(1.0);
template<> const Color<double, 1> Color<double, 1>::emptyColor(0.0);
template<> const Color<double, 2> Color<double, 2>::emptyColor(0.0,0.0);
template<> const Color<double, 3> Color<double, 3>::emptyColor(0.0,0.0,0.0);
@ -21,7 +25,7 @@ template<> template<> Color<double,4>::Color(const Color<uint8_t, 1>& _obj) {
m_element[0] = (double)_obj.r() * 0.003921569;
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<uint8_t, 2>& _obj) {
m_element[0] = (double)_obj.r() * 0.003921569;
@ -39,7 +43,7 @@ template<> template<> Color<double,4>::Color(const Color<uint8_t, 2>& _obj) {
m_element[0] = (double)_obj.r() * 0.003921569;
m_element[1] = (double)_obj.g() * 0.003921569;
m_element[2] = 0;
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<uint8_t, 3>& _obj) {
m_element[0] = (double)_obj.r() * 0.003921569;
@ -57,7 +61,7 @@ template<> template<> Color<double,4>::Color(const Color<uint8_t, 3>& _obj) {
m_element[0] = (double)_obj.r() * 0.003921569;
m_element[1] = (double)_obj.g() * 0.003921569;
m_element[2] = (double)_obj.b() * 0.003921569;
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<uint8_t, 4>& _obj) {
m_element[0] = (double)_obj.r() * 0.003921569;
@ -96,7 +100,7 @@ template<> template<> Color<double,4>::Color(const Color<uint16_t, 1>& _obj) {
m_element[0] = (double)_obj.r() * 0.000015259;
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<uint16_t, 2>& _obj) {
m_element[0] = (double)_obj.r() * 0.000015259;
@ -114,7 +118,7 @@ template<> template<> Color<double,4>::Color(const Color<uint16_t, 2>& _obj) {
m_element[0] = (double)_obj.r() * 0.000015259;
m_element[1] = (double)_obj.g() * 0.000015259;
m_element[2] = 0;
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<uint16_t, 3>& _obj) {
m_element[0] = (double)_obj.r() * 0.000015259;
@ -132,7 +136,7 @@ template<> template<> Color<double,4>::Color(const Color<uint16_t, 3>& _obj) {
m_element[0] = (double)_obj.r() * 0.000015259;
m_element[1] = (double)_obj.g() * 0.000015259;
m_element[2] = (double)_obj.b() * 0.000015259;
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<uint16_t, 4>& _obj) {
m_element[0] = (double)_obj.r() * 0.000015259;
@ -171,7 +175,7 @@ template<> template<> Color<double,4>::Color(const Color<uint32_t, 1>& _obj) {
m_element[0] = (double)_obj.r() / 4294967295.0;
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<uint32_t, 2>& _obj) {
m_element[0] = (double)_obj.r() / 4294967295.0;
@ -189,7 +193,7 @@ template<> template<> Color<double,4>::Color(const Color<uint32_t, 2>& _obj) {
m_element[0] = (double)_obj.r() / 4294967295.0;
m_element[1] = (double)_obj.g() / 4294967295.0;
m_element[2] = 0;
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<uint32_t, 3>& _obj) {
m_element[0] = (double)_obj.r() / 4294967295.0;
@ -207,7 +211,7 @@ template<> template<> Color<double,4>::Color(const Color<uint32_t, 3>& _obj) {
m_element[0] = (double)_obj.r() / 4294967295.0;
m_element[1] = (double)_obj.g() / 4294967295.0;
m_element[2] = (double)_obj.b() / 4294967295.0;
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<uint32_t, 4>& _obj) {
m_element[0] = (double)_obj.r() / 4294967295.0;
@ -246,7 +250,7 @@ template<> template<> Color<double,4>::Color(const Color<float, 1>& _obj) {
m_element[0] = (double)_obj.r();
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<float, 2>& _obj) {
m_element[0] = (double)_obj.r();
@ -264,7 +268,7 @@ template<> template<> Color<double,4>::Color(const Color<float, 2>& _obj) {
m_element[0] = (double)_obj.r();
m_element[1] = (double)_obj.g();
m_element[2] = 0;
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<float, 3>& _obj) {
m_element[0] = (double)_obj.r();
@ -282,7 +286,7 @@ template<> template<> Color<double,4>::Color(const Color<float, 3>& _obj) {
m_element[0] = (double)_obj.r();
m_element[1] = (double)_obj.g();
m_element[2] = (double)_obj.b();
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<float, 4>& _obj) {
m_element[0] = (double)_obj.r();
@ -321,7 +325,7 @@ template<> template<> Color<double,4>::Color(const Color<double, 1>& _obj) {
m_element[0] = _obj.r();
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<double, 2>& _obj) {
m_element[0] = _obj.r();
@ -339,7 +343,7 @@ template<> template<> Color<double,4>::Color(const Color<double, 2>& _obj) {
m_element[0] = _obj.r();
m_element[1] = _obj.g();
m_element[2] = 0;
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<double, 3>& _obj) {
m_element[0] = _obj.r();
@ -357,7 +361,7 @@ template<> template<> Color<double,4>::Color(const Color<double, 3>& _obj) {
m_element[0] = _obj.r();
m_element[1] = _obj.g();
m_element[2] = _obj.b();
m_element[3] = 1.0;
m_element[3] = defaultAlpha;
}
template<> template<> Color<double,1>::Color(const Color<double, 4>& _obj) {
m_element[0] = _obj.r();

View File

@ -1,4 +1,8 @@
template<> const float Color<float, 1>::defaultAlpha(1.0f);
template<> const float Color<float, 2>::defaultAlpha(1.0f);
template<> const float Color<float, 3>::defaultAlpha(1.0f);
template<> const float Color<float, 4>::defaultAlpha(1.0f);
template<> const Color<float, 1> Color<float, 1>::emptyColor(0.0f);
template<> const Color<float, 2> Color<float, 2>::emptyColor(0.0f,0.0f);
template<> const Color<float, 3> Color<float, 3>::emptyColor(0.0f,0.0f,0.0f);
@ -21,7 +25,7 @@ template<> template<> Color<float,4>::Color(const Color<uint8_t, 1>& _obj) {
m_element[0] = (float)_obj.r() * 0.003921569f;
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<uint8_t, 2>& _obj) {
m_element[0] = (float)_obj.r() * 0.003921569f;
@ -39,7 +43,7 @@ template<> template<> Color<float,4>::Color(const Color<uint8_t, 2>& _obj) {
m_element[0] = (float)_obj.r() * 0.003921569f;
m_element[1] = (float)_obj.g() * 0.003921569f;
m_element[2] = 0;
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<uint8_t, 3>& _obj) {
m_element[0] = (float)_obj.r() * 0.003921569f;
@ -57,8 +61,7 @@ template<> template<> Color<float,4>::Color(const Color<uint8_t, 3>& _obj) {
m_element[0] = (float)_obj.r() * 0.003921569f;
m_element[1] = (float)_obj.g() * 0.003921569f;
m_element[2] = (float)_obj.b() * 0.003921569f;
m_element[3] = 1.0f;
TK_WARNING(" convert : " << _obj << " => " << *this);
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<uint8_t, 4>& _obj) {
m_element[0] = (float)_obj.r() * 0.003921569f;
@ -77,7 +80,6 @@ template<> template<> Color<float,4>::Color(const Color<uint8_t, 4>& _obj) {
m_element[1] = (float)_obj.g() * 0.003921569f;
m_element[2] = (float)_obj.b() * 0.003921569f;
m_element[3] = (float)_obj.a() * 0.003921569f;
TK_WARNING(" convert : " << _obj << " => " << *this);
}
// ===========================================================================================================
@ -98,7 +100,7 @@ template<> template<> Color<float,4>::Color(const Color<uint16_t, 1>& _obj) {
m_element[0] = (float)_obj.r() * 0.000015259f;
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<uint16_t, 2>& _obj) {
m_element[0] = (float)_obj.r() * 0.000015259f;
@ -116,7 +118,7 @@ template<> template<> Color<float,4>::Color(const Color<uint16_t, 2>& _obj) {
m_element[0] = (float)_obj.r() * 0.000015259f;
m_element[1] = (float)_obj.g() * 0.000015259f;
m_element[2] = 0;
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<uint16_t, 3>& _obj) {
m_element[0] = (float)_obj.r() * 0.000015259f;
@ -134,7 +136,7 @@ template<> template<> Color<float,4>::Color(const Color<uint16_t, 3>& _obj) {
m_element[0] = (float)_obj.r() * 0.000015259f;
m_element[1] = (float)_obj.g() * 0.000015259f;
m_element[2] = (float)_obj.b() * 0.000015259f;
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<uint16_t, 4>& _obj) {
m_element[0] = (float)_obj.r() * 0.000015259f;
@ -173,7 +175,7 @@ template<> template<> Color<float,4>::Color(const Color<uint32_t, 1>& _obj) {
m_element[0] = (float)_obj.r() / 4294967295.0f;
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<uint32_t, 2>& _obj) {
m_element[0] = (float)_obj.r() / 4294967295.0f;
@ -191,7 +193,7 @@ template<> template<> Color<float,4>::Color(const Color<uint32_t, 2>& _obj) {
m_element[0] = (float)_obj.r() / 4294967295.0f;
m_element[1] = (float)_obj.g() / 4294967295.0f;
m_element[2] = 0;
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<uint32_t, 3>& _obj) {
m_element[0] = (float)_obj.r() / 4294967295.0f;
@ -209,7 +211,7 @@ template<> template<> Color<float,4>::Color(const Color<uint32_t, 3>& _obj) {
m_element[0] = (float)_obj.r() / 4294967295.0f;
m_element[1] = (float)_obj.g() / 4294967295.0f;
m_element[2] = (float)_obj.b() / 4294967295.0f;
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<uint32_t, 4>& _obj) {
m_element[0] = (float)_obj.r() / 4294967295.0f;
@ -248,7 +250,7 @@ template<> template<> Color<float,4>::Color(const Color<float, 1>& _obj) {
m_element[0] = _obj.r();
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<float, 2>& _obj) {
m_element[0] = _obj.r();
@ -266,7 +268,7 @@ template<> template<> Color<float,4>::Color(const Color<float, 2>& _obj) {
m_element[0] = _obj.r();
m_element[1] = _obj.g();
m_element[2] = 0;
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<float, 3>& _obj) {
m_element[0] = _obj.r();
@ -284,7 +286,7 @@ template<> template<> Color<float,4>::Color(const Color<float, 3>& _obj) {
m_element[0] = _obj.r();
m_element[1] = _obj.g();
m_element[2] = _obj.b();
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<float, 4>& _obj) {
m_element[0] = _obj.r();
@ -323,7 +325,7 @@ template<> template<> Color<float,4>::Color(const Color<double, 1>& _obj) {
m_element[0] = (float)_obj.r();
m_element[1] = 0;
m_element[2] = 0;
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<double, 2>& _obj) {
m_element[0] = (float)_obj.r();
@ -341,7 +343,7 @@ template<> template<> Color<float,4>::Color(const Color<double, 2>& _obj) {
m_element[0] = (float)_obj.r();
m_element[1] = (float)_obj.g();
m_element[2] = 0;
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<double, 3>& _obj) {
m_element[0] = (float)_obj.r();
@ -359,7 +361,7 @@ template<> template<> Color<float,4>::Color(const Color<double, 3>& _obj) {
m_element[0] = (float)_obj.r();
m_element[1] = (float)_obj.g();
m_element[2] = (float)_obj.b();
m_element[3] = 1.0f;
m_element[3] = defaultAlpha;
}
template<> template<> Color<float,1>::Color(const Color<double, 4>& _obj) {
m_element[0] = (float)_obj.r();