1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
/*
* 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>
void serialize(Handler &h)
{
h & r;
h & g;
h & b;
h & a;
}
bool operator==(ColorRGBA const& rhs) const
{
return r == rhs.r && g == rhs.g && b == rhs.b && a == rhs.a;
}
};
VCMI_LIB_NAMESPACE_END
|