diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-01-20 06:11:12 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-01-20 06:11:12 +0000 |
| commit | d8d9b42777ace234f3471918e1210062578f8188 (patch) | |
| tree | 915e9aa986ba44dda4c357bc834c68b4dc550525 /otk/truerendercontrol.cc | |
| parent | 0ba441fe8f379ec506000f7fa29f867cb6bc0d51 (diff) | |
widegt using new render system
Diffstat (limited to 'otk/truerendercontrol.cc')
| -rw-r--r-- | otk/truerendercontrol.cc | 24 |
1 files changed, 14 insertions, 10 deletions
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);} } |
