summaryrefslogtreecommitdiff
path: root/otk/surface.hh
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-02-11 21:50:06 +0000
committerDana Jansens <danakj@orodu.net>2003-02-11 21:50:06 +0000
commit58847af218e486f5c1a34ffe947a961a74f97c0a (patch)
tree99effbba133c3d8d139b2c334cc7360bac872b7e /otk/surface.hh
parente429ce39deaf4a8d5975e871af0530634ea2a63e (diff)
store the pixel32 data in the surface so it can be reused
Diffstat (limited to 'otk/surface.hh')
-rw-r--r--otk/surface.hh28
1 files changed, 24 insertions, 4 deletions
diff --git a/otk/surface.hh b/otk/surface.hh
index 7a202491..40dfbf84 100644
--- a/otk/surface.hh
+++ b/otk/surface.hh
@@ -3,23 +3,41 @@
#define __surface_hh
#include "size.hh"
-#include "truerendercontrol.hh"
-#include "pseudorendercontrol.hh"
extern "C" {
#include <X11/Xlib.h>
#define _XFT_NO_COMPAT_ // no Xft 1 API
#include <X11/Xft/Xft.h>
+
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#else
+# ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+# endif
+#endif
}
namespace otk {
class ScreenInfo;
class RenderColor;
+class RenderControl;
+class TrueRenderControl;
+class PseudoRenderControl;
+
+#ifdef HAVE_STDINT_H
+typedef uint32_t pixel32;
+typedef uint16_t pixel16;
+#else
+typedef u_int32_t pixel32;
+typedef u_int16_t pixel16;
+#endif /* HAVE_STDINT_H */
class Surface {
int _screen;
Size _size;
+ pixel32 *_pixel_data;
Pixmap _pixmap;
XftDraw *_xftdraw;
@@ -36,9 +54,11 @@ public:
inline int screen(void) const { return _screen; }
- virtual const Size& size() const { return _size; }
+ const Size& size() const { return _size; }
+
+ Pixmap pixmap() const { return _pixmap; }
- virtual Pixmap pixmap() const { return _pixmap; }
+ pixel32 *pixelData() { return _pixel_data; }
// The RenderControl classes use the internal objects in this class to render
// to it. Noone else needs them tho, so they are private.