diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-03-21 18:42:39 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-03-21 18:42:39 +0000 |
| commit | a52a6d96d701c993896f276e4198003317632aaf (patch) | |
| tree | be2f51e6a433d1fdf9a7c8248b343cb3f6297212 /otk/surface.cc | |
| parent | a36c7543d4eedaa9e10bfd9f4d9b81279b1bb7e6 (diff) | |
rm the old code including the .pys and the c++ shit
Diffstat (limited to 'otk/surface.cc')
| -rw-r--r-- | otk/surface.cc | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/otk/surface.cc b/otk/surface.cc deleted file mode 100644 index cc225503..00000000 --- a/otk/surface.cc +++ /dev/null @@ -1,97 +0,0 @@ -// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- - -#include "config.h" - -#include "surface.hh" -#include "display.hh" -#include "screeninfo.hh" -#include "rendercolor.hh" - -extern "C" { -#include <X11/Xutil.h> -#include <cstring> -} - -namespace otk { - -Surface::Surface(int screen, const Size &size) - : _screen(screen), - _size(size), - _pixel_data(new pixel32[size.width()*size.height()]), - _pixmap(None), - _xftdraw(0) -{ -} - -Surface::~Surface() -{ - destroyObjects(); - freePixelData(); -} - -void Surface::freePixelData() -{ - if (_pixel_data) { - delete [] _pixel_data; - _pixel_data = 0; - } -} - -void Surface::setPixmap(const RenderColor &color) -{ - assert(_pixel_data); - if (_pixmap == None) - createObjects(); - - XFillRectangle(**display, _pixmap, color.gc(), 0, 0, - _size.width(), _size.height()); - - pixel32 val = (color.red() << default_red_shift) | - (color.green() << default_green_shift) | - (color.blue() << default_blue_shift); - for (unsigned int i = 0, s = _size.width() * _size.height(); i < s; ++i) - _pixel_data[i] = val; -} - -void Surface::setPixmap(XImage *image) -{ - assert(_pixel_data); - assert(image->width == _size.width()); - assert(image->height == _size.height()); - - if (_pixmap == None) - createObjects(); - - XPutImage(**display, _pixmap, DefaultGC(**display, _screen), - image, 0, 0, 0, 0, _size.width(), _size.height()); -} - -void Surface::createObjects() -{ - assert(_pixmap == None); assert(!_xftdraw); - - const ScreenInfo *info = display->screenInfo(_screen); - - _pixmap = XCreatePixmap(**display, info->rootWindow(), - _size.width(), _size.height(), info->depth()); - assert(_pixmap != None); - - _xftdraw = XftDrawCreate(**display, _pixmap, - info->visual(), info->colormap()); - assert(_xftdraw); -} - -void Surface::destroyObjects() -{ - if (_xftdraw) { - XftDrawDestroy(_xftdraw); - _xftdraw = 0; - } - - if (_pixmap != None) { - XFreePixmap(**display, _pixmap); - _pixmap = None; - } -} - -} |
