support pseudocolor and greyscale displays by, using solid colors instead of gradients
[mikachu/openbox.git] / otk / pseudorendercontrol.cc
1 // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
2
3 #ifdef    HAVE_CONFIG_H
4 #  include "../config.h"
5 #endif // HAVE_CONFIG_H
6
7 #include "pseudorendercontrol.hh"
8 #include "display.hh"
9 #include "screeninfo.hh"
10 #include "surface.hh"
11 #include "rendertexture.hh"
12
13 extern "C" {
14 #ifdef    HAVE_STDLIB_H
15 #  include <stdlib.h>
16 #endif // HAVE_STDLIB_H
17
18 #include "../src/gettext.h"
19 #define _(str) gettext(str)
20 }
21
22 namespace otk {
23
24 PseudoRenderControl::PseudoRenderControl(int screen)
25   : RenderControl(screen)
26 {
27   printf("Initializing PseudoColor RenderControl\n");
28 }
29
30 PseudoRenderControl::~PseudoRenderControl()
31 {
32   printf("Destroying PseudoColor RenderControl\n");
33 }
34
35 void PseudoRenderControl::drawBackground(Surface& sf,
36                                        const RenderTexture &texture) const
37 {
38   assert(_screen == sf._screen);
39   assert(_screen == texture.color().screen());
40
41   // in psuedo color, gradients aren't even worth while! just draw a solid!
42   //if (texture.gradient() == RenderTexture::Solid) {
43   drawSolidBackground(sf, texture);
44 }
45
46 }