summaryrefslogtreecommitdiff
path: root/otk/truerendercontrol.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-01-18 00:33:48 +0000
committerDana Jansens <danakj@orodu.net>2003-01-18 00:33:48 +0000
commit0dcbf985c11c850b30b2983e1e20cd8cf033f054 (patch)
tree665cc076435ccedee0163f28d3e0d0b95b44a695 /otk/truerendercontrol.cc
parent29f331b63fa9d800fd99d8e1ea99fffa91a4b663 (diff)
start of new render code
Diffstat (limited to 'otk/truerendercontrol.cc')
-rw-r--r--otk/truerendercontrol.cc64
1 files changed, 64 insertions, 0 deletions
diff --git a/otk/truerendercontrol.cc b/otk/truerendercontrol.cc
new file mode 100644
index 00000000..a99b1997
--- /dev/null
+++ b/otk/truerendercontrol.cc
@@ -0,0 +1,64 @@
+// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
+
+#ifdef HAVE_CONFIG_H
+# include "../config.h"
+#endif // HAVE_CONFIG_H
+
+#include "truerendercontrol.hh"
+#include "display.hh"
+#include "screeninfo.hh"
+
+extern "C" {
+#ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+#endif // HAVE_STDLIB_H
+
+#include "gettext.h"
+#define _(str) gettext(str)
+}
+
+namespace otk {
+
+TrueRenderControl::TrueRenderControl(const ScreenInfo *screen)
+ : RenderControl(screen)
+{
+ printf("Initializing TrueColor RenderControl\n");
+
+ unsigned long red_mask, green_mask, blue_mask;
+
+ // find the offsets for each color in the visual's masks
+ red_mask = screen->visual()->red_mask;
+ green_mask = screen->visual()->green_mask;
+ blue_mask = screen->visual()->blue_mask;
+
+ while (! (red_mask & 1)) { _red_offset++; red_mask >>= 1; }
+ while (! (green_mask & 1)) { _green_offset++; green_mask >>= 1; }
+ while (! (blue_mask & 1)) { _blue_offset++; blue_mask >>= 1; }
+
+ // use the mask to determine the number of bits for each shade of color
+ // so, best case, red_mask == 0xff (255), with each bit as a different
+ // shade!
+ _red_bits = 255 / red_mask;
+ _green_bits = 255 / green_mask;
+ _blue_bits = 255 / blue_mask;
+
+ // compute color tables, based on the number of bits for each shade
+ for (int i = 0; i < 256; i++) {
+ _red_color_table[i] = i / _red_bits;
+ _green_color_table[i] = i / _green_bits;
+ _blue_color_table[i] = i / _blue_bits;
+ }
+}
+
+TrueRenderControl::~TrueRenderControl()
+{
+ printf("Destroying TrueColor RenderControl\n");
+
+
+}
+
+void TrueRenderControl::render(::Drawable d)
+{
+}
+
+}