all repos — openbox @ 044c8ae416da315a7a111727c2f5dfc769c15125

openbox fork - make it a bit more like ryudo

otk/pseudorendercontrol.hh (raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
#ifndef __pseudorendercontrol_hh
#define __pseudorendercontrol_hh

#include "rendercontrol.hh"

namespace otk {

class PseudoRenderControl : public RenderControl {
private:
  // 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];

  int _cpc; // colors-per-channel: must be a value between [2,6]
  int _bpp; // bits-per-pixel
  int _ncolors; // number of allocated colors, size of the XColor array

  XColor *_colors;
  
  virtual void reduceDepth(Surface &sf, XImage *im) const;
  
public:
  PseudoRenderControl(int screen);
  virtual ~PseudoRenderControl();

};

}

#endif // __pseudorendercontrol_hh