mirror of
https://github.com/SMGCommunity/Petari.git
synced 2026-11-10 17:49:24 -10:00
87 lines
1.4 KiB
C++
87 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <revolution/gx.h>
|
|
#include <revolution/types.h>
|
|
|
|
class Color8 {
|
|
public:
|
|
Color8() : mColor(-1) {
|
|
}
|
|
|
|
Color8(GXColor color) {
|
|
set(color);
|
|
}
|
|
|
|
Color8(u8 r, u8 g, u8 b, u8 a) {
|
|
set(r, g, b, a);
|
|
}
|
|
|
|
Color8(u32 color) {
|
|
mColor = color;
|
|
}
|
|
|
|
inline operator GXColor() const {
|
|
return mGXColor;
|
|
}
|
|
|
|
inline operator u32() const {
|
|
return mColor;
|
|
}
|
|
|
|
inline const Color8& operator=(const GXColor& rOther) {
|
|
mGXColor = rOther;
|
|
return *this;
|
|
}
|
|
|
|
inline const Color8& operator=(const Color8& rOther) {
|
|
r = rOther.r;
|
|
g = rOther.g;
|
|
b = rOther.b;
|
|
a = rOther.a;
|
|
return *this;
|
|
}
|
|
|
|
void set(u8 _r, u8 _g, u8 _b, u8 _a) {
|
|
r = _r;
|
|
g = _g;
|
|
b = _b;
|
|
a = _a;
|
|
}
|
|
|
|
void set(GXColor color) {
|
|
GXColor* const pColor = &mGXColor;
|
|
*pColor = color;
|
|
}
|
|
|
|
union {
|
|
struct {
|
|
u8 r;
|
|
u8 g;
|
|
u8 b;
|
|
u8 a;
|
|
};
|
|
u32 mColor;
|
|
GXColor mGXColor;
|
|
};
|
|
};
|
|
|
|
class Color10 {
|
|
public:
|
|
Color10() : r(0x3FF), g(0x3FF), b(0x3FF), a(0x3FF) {
|
|
}
|
|
|
|
operator GXColorS10() const {
|
|
return mColor;
|
|
}
|
|
|
|
union {
|
|
struct {
|
|
u16 r;
|
|
u16 g;
|
|
u16 b;
|
|
u16 a;
|
|
};
|
|
GXColorS10 mColor;
|
|
};
|
|
};
|