summaryrefslogtreecommitdiff
path: root/otk/truerendercontrol.hh
diff options
context:
space:
mode:
Diffstat (limited to 'otk/truerendercontrol.hh')
-rw-r--r--otk/truerendercontrol.hh38
1 files changed, 38 insertions, 0 deletions
diff --git a/otk/truerendercontrol.hh b/otk/truerendercontrol.hh
new file mode 100644
index 00000000..72e3850e
--- /dev/null
+++ b/otk/truerendercontrol.hh
@@ -0,0 +1,38 @@
+// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
+#ifndef __truerendercontrol_hh
+#define __truerendercontrol_hh
+
+#include "rendercontrol.hh"
+
+namespace otk {
+
+class TrueRenderControl : public RenderControl {
+private:
+ // the offset of each color in a color mask
+ int _red_offset;
+ int _green_offset;
+ int _blue_offset;
+
+ // the number of bits (1-255) that each shade of color spans across. best
+ // case is 1, which gives 255 shades
+ int _red_bits;
+ int _green_bits;
+ int _blue_bits;
+
+ // color tables, meaning, 256 (possibly) different shades of each color,
+ // based on the number of bits there are available for each color in the
+ // visual
+ unsigned char _red_color_table[256];
+ unsigned char _green_color_table[256];
+ unsigned char _blue_color_table[256];
+
+public:
+ TrueRenderControl(const ScreenInfo *screen);
+ virtual ~TrueRenderControl();
+
+ virtual void render(::Drawable d);
+};
+
+}
+
+#endif // __truerendercontrol_hh