2023-10-19 16:19:09 +02:00
|
|
|
/*
|
|
|
|
* Color.h, part of VCMI engine
|
|
|
|
*
|
|
|
|
* Authors: listed in file AUTHORS in main folder
|
|
|
|
*
|
|
|
|
* License: GNU General Public License v2.0 or later
|
|
|
|
* Full text of license available in license.txt file, in main folder
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
VCMI_LIB_NAMESPACE_BEGIN
|
|
|
|
|
|
|
|
/// An object that represents RGBA color
|
|
|
|
class ColorRGBA
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
enum : uint8_t
|
|
|
|
{
|
|
|
|
ALPHA_OPAQUE = 255,
|
|
|
|
ALPHA_TRANSPARENT = 0,
|
|
|
|
};
|
|
|
|
|
|
|
|
uint8_t r;
|
|
|
|
uint8_t g;
|
|
|
|
uint8_t b;
|
|
|
|
uint8_t a;
|
|
|
|
|
|
|
|
//constructors
|
|
|
|
constexpr ColorRGBA()
|
|
|
|
:r(0)
|
|
|
|
,g(0)
|
|
|
|
,b(0)
|
|
|
|
,a(0)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
constexpr ColorRGBA(uint8_t r, uint8_t g, uint8_t b, uint8_t a)
|
|
|
|
: r(r)
|
|
|
|
, g(g)
|
|
|
|
, b(b)
|
|
|
|
, a(a)
|
|
|
|
{}
|
|
|
|
|
|
|
|
constexpr ColorRGBA(uint8_t r, uint8_t g, uint8_t b)
|
|
|
|
: r(r)
|
|
|
|
, g(g)
|
|
|
|
, b(b)
|
|
|
|
, a(ALPHA_OPAQUE)
|
|
|
|
{}
|
|
|
|
|
|
|
|
template <typename Handler>
|
2024-01-20 20:34:51 +02:00
|
|
|
void serialize(Handler &h)
|
2023-10-19 16:19:09 +02:00
|
|
|
{
|
|
|
|
h & r;
|
|
|
|
h & g;
|
|
|
|
h & b;
|
|
|
|
h & a;
|
|
|
|
}
|
2024-08-15 00:21:02 +02:00
|
|
|
|
|
|
|
bool operator==(ColorRGBA const& rhs) const
|
|
|
|
{
|
|
|
|
return r == rhs.r && g == rhs.g && b == rhs.b && a == rhs.a;
|
|
|
|
}
|
2023-10-19 16:19:09 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
VCMI_LIB_NAMESPACE_END
|