Color



This union represents 4-component(RGBA) color value.

You can find more information in comments below.

union Color
{
    struct
    {
        unsigned char R; // Red channel
        unsigned char G; // Green channel
        unsigned char B; // Blue channel
        unsigned char A; // Alpha/transparency channel
    };
    struct
    {
        unsigned char Red;
        unsigned char Green;
        unsigned char Blue;
        unsigned char Alpha;
    };
    unsigned char Data[4]; // Channels

    unsigned char operator[](const int channel) const; // Get channel value
    unsigned char &operator[](const int channel); // Get channel value

    unsigned char average() const; // Return average value over all channels except the last one(grayscale)
};

Following operators are also available.

bool operator==(const Color &a, const Color &b); // Check if colors are equal
bool operator!=(const Color &a, const Color &b); // Check if colors are not equal
Color operator*(const Color &a, const Color &b); // Blend colors
Color operator+(const Color &a, const Color &b); // Add(blCanvas mode) colors
Color &operator*=(Color &a, const Color &b); // Blend colors in first one
Color &operator+=(Color &a, const Color &b); // Add(blCanvas mode) colors and store result in first one
std::wostream &operator<<(std::wostream &stream, const Color &a); // Output as source code
Namespace: nitisa
Include: Nitisa/Core/Bitmap/Color.h (For union declaration)
Nitisa/Core/Bitmap/ColorUtils.h (For standalone operators)