From d8d9b42777ace234f3471918e1210062578f8188 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 20 Jan 2003 06:11:12 +0000 Subject: widegt using new render system --- otk/truerendercontrol.cc | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'otk/truerendercontrol.cc') diff --git a/otk/truerendercontrol.cc b/otk/truerendercontrol.cc index 74dd057d..bd413cff 100644 --- a/otk/truerendercontrol.cc +++ b/otk/truerendercontrol.cc @@ -98,16 +98,19 @@ static inline void renderPixel(XImage *im, unsigned char *dp, } } -void TrueRenderControl::drawBackground(Surface *sf, +void TrueRenderControl::drawBackground(Surface& sf, const RenderTexture &texture) const { - assert(sf); + (void)texture; + + assert(sf._screen == _screen); - int w = sf->width(), h = sf->height(); - XImage *im = sf->_im; - Pixmap pm = sf->_pm; - assert(im); assert(pm != None); + int w = sf.width(), h = sf.height(); + const ScreenInfo *info = display->screenInfo(_screen); + XImage *im = XCreateImage(**display, info->visual(), info->depth(), + ZPixmap, 0, NULL, w, h, 32, 0); + unsigned char *data = new unsigned char[im->bytes_per_line * h]; unsigned char *dp = data; unsigned int bytes_per_pixel = im->bits_per_pixel/8; @@ -123,9 +126,10 @@ void TrueRenderControl::drawBackground(Surface *sf, renderPixel(im, dp, (255*x/w) >> _blue_shift << _blue_offset); im->data = (char*) data; - - XPutImage(**display, pm, DefaultGC(**display, _screen), - sf->_im, 0, 0, 0, 0, w, h); -} + sf.setPixmap(im); + + delete [] im->data; + im->data = NULL; + XDestroyImage(im);} } -- cgit v1.2.3