all repos — openbox @ d264dbca0c51ff3dfacb66eb66543a0088447aa3

openbox fork - make it a bit more like ryudo

compiles
Dana Jansens danakj@orodu.net
commit

d264dbca0c51ff3dfacb66eb66543a0088447aa3

parent

24b33ef877808f0af5b967f21c011ab8b314e780

3 files changed, 36 insertions(+), 3 deletions(-)

jump to
M otk/rendercontrol.hhotk/rendercontrol.hh

@@ -4,6 +4,7 @@ #define __rendercontrol_hh

extern "C" { #include <X11/Xlib.h> +#include <X11/Xutil.h> } namespace otk {

@@ -66,7 +67,7 @@ virtual ~RenderControl();

static RenderControl *getRenderControl(int screen); - virtual void render(::Drawable d); + virtual void render(::Drawable d) = 0; }; }
M otk/truerendercontrol.ccotk/truerendercontrol.cc

@@ -59,9 +59,41 @@ }

void TrueRenderControl::render(::Drawable d) { - Pixmap p = XCreatePixmap(**display, d, 255, 30, _screen->depth()); + XGCValues gcv; + gcv.cap_style = CapProjecting; + int w = 255, h = 32; + Pixmap p = XCreatePixmap(**display, d, w, h, _screen->depth()); + XImage *im = XCreateImage(**display, _screen->visual(), _screen->depth(), + ZPixmap, 0, NULL, w, h, 32, 0); + //GC gc = XCreateGC(**display, _screen->rootWindow(), GCCapStyle, &gcv); + im->data = new char[im->bytes_per_line * (h + 1)]; // XXX + 1? + char *dp = im->data; + + for (int x = 0; x < w; ++x, ++dp) + *dp = 0; + for (int y = 0; y < 10; ++h) + for (int x = 0; x < w; ++x, ++dp) + *dp = _red_color_table[x] << _red_offset; + for (int y = 0; y < 10; ++h) + for (int x = 0; x < w; ++x, ++dp) + *dp = _green_color_table[x] << _green_offset; + for (int y = 0; y < 10; ++h) + for (int x = 0; x < w; ++x, ++dp) + *dp = _blue_color_table[x] << _blue_offset; + for (int x = 0; x < w; ++x, ++dp) + *dp = 0; + + XPutImage(**display, p, DefaultGC(**display, _screen->screen()), + im, 0, 0, 0, 0, w, h); + + //delete [] image->data; + //image->data = NULL; + XDestroyImage(im); + + XCopyArea(**display, p, d, DefaultGC(**display, _screen->screen()), + 0, 0, w, h, 0, 0); XFreePixmap(**display, p); }
M otk/truerendercontrol.hhotk/truerendercontrol.hh

@@ -17,7 +17,7 @@ public:

TrueRenderControl(const ScreenInfo *screen); virtual ~TrueRenderControl(); - virtual void render(::Drawable d) = 0; + virtual void render(::Drawable d); }; }