openbox/otk/truerendercontrol.hh

65 lines
1.6 KiB
C++
Raw Normal View History

2003-01-18 00:33:48 +00:00
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
#ifndef __truerendercontrol_hh
#define __truerendercontrol_hh
#include "rendercontrol.hh"
extern "C" {
#ifdef HAVE_STDINT_H
# include <stdint.h>
#else
# ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
# endif
#endif
}
#include <vector>
2003-01-18 00:33:48 +00:00
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
2003-01-18 00:33:48 +00:00
class TrueRenderControl : public RenderControl {
private:
// the number of bits to shift a color value (from 0-255) to the right, to
// fit it into the the color mask (do this before the offset)
int _red_shift;
int _green_shift;
int _blue_shift;
// the offset of each color in a color mask
int _red_offset;
int _green_offset;
int _blue_offset;
2003-01-18 00:33:48 +00:00
public:
TrueRenderControl(int screen);
2003-01-18 00:33:48 +00:00
virtual ~TrueRenderControl();
2003-01-18 00:51:11 +00:00
2003-01-20 06:11:12 +00:00
virtual void drawBackground(Surface& sf, const RenderTexture &texture) const;
virtual void drawGradientBackground(Surface &sf,
const RenderTexture &texture) const;
2003-01-23 05:22:50 +00:00
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;
2003-01-18 00:33:48 +00:00
};
}
#endif // __truerendercontrol_hh