]>
Dogcows Code - chaz/openbox/blob - otk/rendercontrol.cc
1 // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
4 # include "../config.h"
5 #endif // HAVE_CONFIG_H
7 #include "rendercontrol.hh"
8 #include "truerendercontrol.hh"
9 #include "rendertexture.hh"
11 #include "screeninfo.hh"
20 #endif // HAVE_STDLIB_H
23 #define _(str) gettext(str)
28 RenderControl
*RenderControl::getRenderControl(int screen
)
30 // get the visual on the screen and return the correct type of RenderControl
31 int vclass
= display
->screenInfo(screen
)->visual()->c_class
;
34 return new TrueRenderControl(screen
);
37 // return new PseudoRenderControl(screen);
40 // return new GrayRenderControl(screen);
42 printf(_("RenderControl: Unsupported visual %d specified. Aborting.\n"),
48 RenderControl::RenderControl(int screen
)
51 printf("Initializing RenderControl\n");
56 RenderControl::~RenderControl()
58 printf("Destroying RenderControl\n");
63 void RenderControl::drawString(Surface
& sf
, const Font
&font
, int x
, int y
,
64 const Color
&color
, const ustring
&string
) const
66 assert(sf
._screen
== _screen
);
67 XftDraw
*d
= sf
._xftdraw
;
68 assert(d
); // this means that the background hasn't been rendered yet!
75 c
.color
.alpha
= font
._tint
| font
._tint
<< 8; // transparent shadow
76 c
.pixel
= BlackPixel(**display
, _screen
);
79 XftDrawStringUtf8(d
, &c
, font
._xftfont
, x
+ font
._offset
,
80 font
._xftfont
->ascent
+ y
+ font
._offset
,
81 (FcChar8
*)string
.c_str(), string
.bytes());
83 XftDrawString8(d
, &c
, font
._xftfont
, x
+ font
._offset
,
84 font
._xftfont
->ascent
+ y
+ font
._offset
,
85 (FcChar8
*)string
.c_str(), string
.bytes());
89 c
.color
.red
= color
.red() | color
.red() << 8;
90 c
.color
.green
= color
.green() | color
.green() << 8;
91 c
.color
.blue
= color
.blue() | color
.blue() << 8;
92 c
.pixel
= color
.pixel();
93 c
.color
.alpha
= 0xff | 0xff << 8; // no transparency in Color yet
96 XftDrawStringUtf8(d
, &c
, font
._xftfont
, x
, font
._xftfont
->ascent
+ y
,
97 (FcChar8
*)string
.c_str(), string
.bytes());
99 XftDrawString8(d
, &c
, font
._xftfont
, x
, font
._xftfont
->ascent
+ y
,
100 (FcChar8
*)string
.c_str(), string
.bytes());
This page took 0.035985 seconds and 4 git commands to generate.