aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Graphics/je_color.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Graphics/je_color.h')
-rw-r--r--src/libjin/Graphics/je_color.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/src/libjin/Graphics/je_color.h b/src/libjin/Graphics/je_color.h
new file mode 100644
index 0000000..8fe7691
--- /dev/null
+++ b/src/libjin/Graphics/je_color.h
@@ -0,0 +1,93 @@
+/**
+* Some color operating here.
+*/
+#ifndef __JE_COLOR_H
+#define __JE_COLOR_H
+#include "../core/je_configuration.h"
+#if defined(jin_graphics)
+
+#include "../common/je_types.h"
+#include "../utils/je_endian.h"
+
+namespace JinEngine
+{
+ namespace Graphics
+ {
+
+ typedef uint8 Channel;
+
+ class Color
+ {
+ public:
+ // Built-in colors
+ static const Color WHITE;
+ static const Color BLACK;
+ static const Color RED;
+ static const Color GREEN;
+ static const Color BLUE;
+ static const Color MAGENTA;
+ static const Color YELLOW;
+
+ ///
+ ///
+ ///
+ Color() { r = g = b = a = 0; };
+
+ ///
+ ///
+ ///
+ Color(unsigned char _r
+ , unsigned char _g
+ , unsigned char _b
+ , unsigned char _a = 255)
+ {
+ r = _r;
+ g = _g;
+ b = _b;
+ a = _a;
+ }
+
+ Color(const Color& c)
+ {
+ r = c.r;
+ g = c.g;
+ b = c.b;
+ a = c.a;
+ }
+
+ void set(unsigned char _r, unsigned char _g, unsigned char _b, unsigned char _a)
+ {
+ r = _r;
+ g = _g;
+ b = _b;
+ a = _a;
+ }
+
+ void operator = (const Color& c)
+ {
+ r = c.r;
+ g = c.g;
+ b = c.b;
+ a = c.a;
+ }
+
+ bool operator == (const Color& c)
+ {
+ return r == c.r && g == c.g && b == c.b && a == c.a;
+ }
+
+ bool operator != (const Color& c)
+ {
+ return !(r == c.r && g == c.g && b == c.b && a == c.a);
+ }
+
+ Channel r, g, b, a;
+
+ };
+
+ } // namespace Graphics
+} // namespace JinEngine
+
+#endif // jin_graphics
+
+#endif // __JE_COLOR_H \ No newline at end of file