namespace otk {
class ScreenInfo;
+class Surface;
+class RenderTexture;
+class Font;
+class RenderColor;
+class ustring;
class RenderControl {
protected:
- const ScreenInfo *_screen;
-
- // the number of bits (1-255) that each shade of color spans across. best
- // case is 1, which gives 255 shades
- int _red_bits;
- int _green_bits;
- int _blue_bits;
+ int _screen;
+ /*
// color tables, meaning, 256 (possibly) different shades of each color,
// based on the number of bits there are available for each color in the
// visual
unsigned char _red_color_table[256];
unsigned char _green_color_table[256];
unsigned char _blue_color_table[256];
+ */
/*
Bool _dither;
int _ncolors;
*/
- RenderControl(const ScreenInfo *screen);
+ RenderControl(int screen);
+ virtual void drawSolidBackground(Surface& sf,
+ const RenderTexture& texture) const;
+
public:
virtual ~RenderControl();
static RenderControl *getRenderControl(int screen);
- virtual void render(::Drawable d) = 0;
+ virtual void drawRoot(const RenderColor &color) const;
+
+ //! 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 background onto a Surface, as specified by a RenderTexture
+ virtual void drawBackground(Surface &sf,
+ const RenderTexture &texture) const = 0;
};
}