X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Fsurface.hh;h=7a202491f188392b5e0f5d7e354bf2ea6f6febb2;hb=c735d49979a995d59f1095d6048766f35e337497;hp=7289b14aaebac8bd7a1c13bc987b51f8dd298eed;hpb=2005c344bdb4b59611972bc37e194d2e14cdf911;p=chaz%2Fopenbox diff --git a/otk/surface.hh b/otk/surface.hh index 7289b14a..7a202491 100644 --- a/otk/surface.hh +++ b/otk/surface.hh @@ -2,30 +2,49 @@ #ifndef __surface_hh #define __surface_hh -#include "point.hh" +#include "size.hh" +#include "truerendercontrol.hh" +#include "pseudorendercontrol.hh" extern "C" { #include +#define _XFT_NO_COMPAT_ // no Xft 1 API +#include } namespace otk { +class ScreenInfo; +class RenderColor; + class Surface { - Point _size; - Pixmap _pm; + int _screen; + Size _size; + Pixmap _pixmap; + XftDraw *_xftdraw; protected: - Surface(); - Surface(const Point &size); - - virtual void setSize(int w, int h); + void createObjects(); + void destroyObjects(); + void setPixmap(XImage *image); + void setPixmap(const RenderColor &color); + public: + Surface(int screen, const Size &size); virtual ~Surface(); - virtual const Point& size() const { return _size; } - virtual int width() const { return _size.x(); } - virtual int height() const { return _size.y(); } + inline int screen(void) const { return _screen; } + + virtual const Size& size() const { return _size; } + + virtual Pixmap pixmap() const { return _pixmap; } + + // The RenderControl classes use the internal objects in this class to render + // to it. Noone else needs them tho, so they are private. + friend class RenderControl; + friend class TrueRenderControl; + friend class PseudoRenderControl; }; }