#include <X11/Xutil.h>
}
+#include "surface.hh"
+
namespace otk {
class ScreenInfo;
-class Surface;
class RenderTexture;
class Font;
-class Color;
+class RenderColor;
class ustring;
+class PixmapMask;
class RenderControl {
protected:
RenderControl(int screen);
+ virtual void drawSolidBackground(Surface& sf,
+ const RenderTexture& texture) const;
+
public:
virtual ~RenderControl();
static RenderControl *getRenderControl(int screen);
- //! Draws a string onto a Surface
- virtual void drawString(Surface *sf, const Font &font, int x, int y,
- const Color &color, const ustring &string) const;
-
+ virtual void drawRoot(const RenderColor &color) const;
+
//! Draws a background onto a Surface, as specified by a RenderTexture
- virtual void drawBackground(Surface *sf,
+ /*!
+ This function will overwrite the entire surface.
+ */
+ virtual void drawBackground(Surface &sf,
const RenderTexture &texture) const = 0;
+
+ //! Draws a string onto a Surface
+ virtual void drawString(Surface &sf, const Font &font, int x, int y,
+ const RenderColor &color,
+ const ustring &string) const;
+
+ //! Draws a PixmapMask with a specified color onto a Surface
+ virtual void drawMask(Surface &sf, const RenderColor &color,
+ const PixmapMask &mask) const;
};
}