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.h85
1 files changed, 85 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..b13d882
--- /dev/null
+++ b/src/libjin/Graphics/je_color.h
@@ -0,0 +1,85 @@
+/**
+* Some color operating here.
+*/
+#ifndef __LIBJIN_COLOR_H
+#define __LIBJIN_COLOR_H
+#include "../core/je_configuration.h"
+#if LIBJIN_MODULES_RENDER
+
+#include "../utils/je_endian.h"
+
+namespace jin
+{
+ namespace graphics
+ {
+
+ typedef unsigned char 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 jin
+
+#endif // LIBJIN_MODULES_RENDER
+#endif // __LIBJIN_COLOR_H \ No newline at end of file