X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Frendercontrol.hh;h=781c32d47a991b4cf50472a53a4d79655c02eec8;hb=5072931be0ff28cd9447926d50fe5ea202e2c370;hp=cc05a3193815303fcc41c8149d5c6eeddc530ec4;hpb=0dcbf985c11c850b30b2983e1e20cd8cf033f054;p=chaz%2Fopenbox diff --git a/otk/rendercontrol.hh b/otk/rendercontrol.hh index cc05a319..781c32d4 100644 --- a/otk/rendercontrol.hh +++ b/otk/rendercontrol.hh @@ -4,15 +4,31 @@ extern "C" { #include +#include } namespace otk { class ScreenInfo; +class Surface; +class RenderTexture; +class Font; +class RenderColor; +class ustring; class RenderControl { protected: - const ScreenInfo *_screen; + 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; @@ -45,14 +61,26 @@ protected: 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; }; }