377 lines
14 KiB
C++
377 lines
14 KiB
C++
// this work ...
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<uint8_t, 1>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 24;
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<uint8_t, 1>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 24;
|
|
m_element[1] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<uint8_t, 1>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 24;
|
|
m_element[1] = 0;
|
|
m_element[2] = 0;
|
|
}
|
|
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] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<uint8_t, 2>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 24;
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<uint8_t, 2>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 24;
|
|
m_element[1] = (uint32_t)_obj.g() << 24;
|
|
}
|
|
template<> template<> Color<uint32_t,3>::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;
|
|
}
|
|
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] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<uint8_t, 3>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 24;
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<uint8_t, 3>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 24;
|
|
m_element[1] = (uint32_t)_obj.g() << 24;
|
|
}
|
|
template<> template<> Color<uint32_t,3>::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;
|
|
}
|
|
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] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<uint8_t, 4>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 24;
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<uint8_t, 4>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 24;
|
|
m_element[1] = (uint32_t)_obj.g() << 24;
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<uint8_t, 4>& _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;
|
|
}
|
|
template<> template<> Color<uint32_t,4>::Color(const Color<uint8_t, 4>& _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] = (uint32_t)_obj.a() << 24;
|
|
}
|
|
|
|
// ===========================================================================================================
|
|
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<uint16_t, 1>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 16;
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<uint16_t, 1>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 16;
|
|
m_element[1] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<uint16_t, 1>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 16;
|
|
m_element[1] = 0;
|
|
m_element[2] = 0;
|
|
}
|
|
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] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<uint16_t, 2>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 16;
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<uint16_t, 2>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 16;
|
|
m_element[1] = (uint32_t)_obj.g() << 16;
|
|
}
|
|
template<> template<> Color<uint32_t,3>::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;
|
|
}
|
|
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] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<uint16_t, 3>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 16;
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<uint16_t, 3>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 16;
|
|
m_element[1] = (uint32_t)_obj.g() << 16;
|
|
}
|
|
template<> template<> Color<uint32_t,3>::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;
|
|
}
|
|
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] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<uint16_t, 4>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 16;
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<uint16_t, 4>& _obj) {
|
|
m_element[0] = (uint32_t)_obj.r() << 16;
|
|
m_element[1] = (uint32_t)_obj.g() << 16;
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<uint16_t, 4>& _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;
|
|
}
|
|
template<> template<> Color<uint32_t,4>::Color(const Color<uint16_t, 4>& _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] = (uint32_t)_obj.a() << 16;
|
|
}
|
|
|
|
// ===========================================================================================================
|
|
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<uint32_t, 1>& _obj) {
|
|
m_element[0] = _obj.r();
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<uint32_t, 1>& _obj) {
|
|
m_element[0] = _obj.r();
|
|
m_element[1] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<uint32_t, 1>& _obj) {
|
|
m_element[0] = _obj.r();
|
|
m_element[1] = 0;
|
|
m_element[2] = 0;
|
|
}
|
|
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] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<uint32_t, 2>& _obj) {
|
|
m_element[0] = _obj.r();
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<uint32_t, 2>& _obj) {
|
|
m_element[0] = _obj.r();
|
|
m_element[1] = _obj.g();
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<uint32_t, 2>& _obj) {
|
|
m_element[0] = _obj.r();
|
|
m_element[1] = _obj.g();
|
|
m_element[2] = 0;
|
|
}
|
|
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] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<uint32_t, 3>& _obj) {
|
|
m_element[0] = _obj.r();
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<uint32_t, 3>& _obj) {
|
|
m_element[0] = _obj.r();
|
|
m_element[1] = _obj.g();
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<uint32_t, 3>& _obj) {
|
|
m_element[0] = _obj.r();
|
|
m_element[1] = _obj.g();
|
|
m_element[2] = _obj.b();
|
|
}
|
|
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] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<uint32_t, 4>& _obj) {
|
|
m_element[0] = _obj.r();
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<uint32_t, 4>& _obj) {
|
|
m_element[0] = _obj.r();
|
|
m_element[1] = _obj.g();
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<uint32_t, 4>& _obj) {
|
|
m_element[0] = _obj.r();
|
|
m_element[1] = _obj.g();
|
|
m_element[2] = _obj.b();
|
|
}
|
|
template<> template<> Color<uint32_t,4>::Color(const Color<uint32_t, 4>& _obj) {
|
|
m_element[0] = _obj.r();
|
|
m_element[1] = _obj.g();
|
|
m_element[2] = _obj.b();
|
|
m_element[3] = _obj.a();
|
|
}
|
|
|
|
// ===========================================================================================================
|
|
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<float, 1>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<float, 1>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
m_element[1] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<float, 1>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
m_element[1] = 0;
|
|
m_element[2] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,4>::Color(const Color<float, 1>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
m_element[1] = 0;
|
|
m_element[2] = 0;
|
|
m_element[3] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<float, 2>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<float, 2>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0f);
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<float, 2>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0f);
|
|
m_element[2] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,4>::Color(const Color<float, 2>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0f);
|
|
m_element[2] = 0;
|
|
m_element[3] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<float, 3>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<float, 3>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0f);
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<float, 3>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0f);
|
|
m_element[2] = (uint32_t)(_obj.b()*4294967295.0f);
|
|
}
|
|
template<> template<> Color<uint32_t,4>::Color(const Color<float, 3>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0f);
|
|
m_element[2] = (uint32_t)(_obj.b()*4294967295.0f);
|
|
m_element[3] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<float, 4>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<float, 4>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0f);
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<float, 4>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0f);
|
|
m_element[2] = (uint32_t)(_obj.b()*4294967295.0f);
|
|
}
|
|
template<> template<> Color<uint32_t,4>::Color(const Color<float, 4>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0f);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0f);
|
|
m_element[2] = (uint32_t)(_obj.b()*4294967295.0f);
|
|
m_element[3] = (uint32_t)(_obj.a()*4294967295.0f);
|
|
}
|
|
|
|
// ===========================================================================================================
|
|
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<double, 1>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<double, 1>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
m_element[1] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<double, 1>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
m_element[1] = 0;
|
|
m_element[2] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,4>::Color(const Color<double, 1>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
m_element[1] = 0;
|
|
m_element[2] = 0;
|
|
m_element[3] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<double, 2>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<double, 2>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0);
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<double, 2>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0);
|
|
m_element[2] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,4>::Color(const Color<double, 2>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0);
|
|
m_element[2] = 0;
|
|
m_element[3] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<double, 3>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<double, 3>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0);
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<double, 3>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0);
|
|
m_element[2] = (uint32_t)(_obj.b()*4294967295.0);
|
|
}
|
|
template<> template<> Color<uint32_t,4>::Color(const Color<double, 3>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0);
|
|
m_element[2] = (uint32_t)(_obj.b()*4294967295.0);
|
|
m_element[3] = 0;
|
|
}
|
|
template<> template<> Color<uint32_t,1>::Color(const Color<double, 4>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
}
|
|
template<> template<> Color<uint32_t,2>::Color(const Color<double, 4>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0);
|
|
}
|
|
template<> template<> Color<uint32_t,3>::Color(const Color<double, 4>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0);
|
|
m_element[2] = (uint32_t)(_obj.b()*4294967295.0);
|
|
}
|
|
template<> template<> Color<uint32_t,4>::Color(const Color<double, 4>& _obj) {
|
|
m_element[0] = (uint32_t)(_obj.r()*4294967295.0);
|
|
m_element[1] = (uint32_t)(_obj.g()*4294967295.0);
|
|
m_element[2] = (uint32_t)(_obj.b()*4294967295.0);
|
|
m_element[3] = (uint32_t)(_obj.a()*4294967295.0);
|
|
}
|
|
|
|
// ===========================================================================================================
|
|
|