X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Ftruerendercontrol.hh;h=b44969aa2ff0489dbf43251c489d12d778a33e38;hb=83bfa01b0bf361d4a2354e5ef0f48ed759e0eab3;hp=bd6d80af3946331840ef280158b11bcd8d4c4561;hpb=9b6e5f9cf49df78be25720f9c4b33a733b856c9b;p=chaz%2Fopenbox diff --git a/otk/truerendercontrol.hh b/otk/truerendercontrol.hh index bd6d80af..b44969aa 100644 --- a/otk/truerendercontrol.hh +++ b/otk/truerendercontrol.hh @@ -4,10 +4,42 @@ #include "rendercontrol.hh" +extern "C" { + +#ifdef HAVE_STDINT_H +# include +#else +# ifdef HAVE_SYS_TYPES_H +# include +# endif +#endif + +} + #include namespace otk { +#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 */ + +#ifdef WORDS_BIGENDIAN +const int default_red_shift=0; +const int default_green_shift=8; +const int default_blue_shift=16; +const int endian=MSBFirst; +#else +const int default_red_shift=16; +const int default_green_shift=8; +const int default_blue_shift=0; +const int endian=LSBFirst; +#endif /* WORDS_BIGENDIAN */ + class TrueRenderControl : public RenderControl { private: // the number of bits to shift a color value (from 0-255) to the right, to @@ -25,7 +57,18 @@ public: TrueRenderControl(int screen); virtual ~TrueRenderControl(); - virtual void drawBackground(Surface *sf, const RenderTexture &texture) const; + virtual void drawBackground(Surface& sf, const RenderTexture &texture) const; + virtual void drawGradientBackground(Surface &sf, + const RenderTexture &texture) const; + + inline void highlight(pixel32 *x, pixel32 *y, bool raised) const; + void reduceDepth(XImage *im, pixel32 *data) const; + void verticalGradient(Surface &sf, const RenderTexture &texture, + pixel32 *data) const; + void diagonalGradient(Surface &sf, const RenderTexture &texture, + pixel32 *data) const; + void crossDiagonalGradient(Surface &sf, const RenderTexture &texture, + pixel32 *data) const; }; }