]>
Dogcows Code - chaz/openbox/blob - render/color.c
5 #include "../kernel/openbox.h"
6 void color_allocate_gc(color_rgb
*in
)
10 gcv
.foreground
= in
->pixel
;
11 gcv
.cap_style
= CapProjecting
;
12 in
->gc
= XCreateGC(ob_display
, ob_root
, GCForeground
| GCCapStyle
, &gcv
);
15 color_rgb
*color_parse(char *colorname
)
17 g_assert(colorname
!= NULL
);
18 // get rgb values from colorname
25 if (!XParseColor(ob_display
, render_colormap
, colorname
, &xcol
)) {
26 g_warning("unable to parse color '%s'", colorname
);
29 return color_new(xcol
.red
>> 8, xcol
.green
>> 8, xcol
.blue
>> 8);
32 color_rgb
*color_new(int r
, int g
, int b
)
34 /* this should be replaced with something far cooler */
37 xcol
.red
= (r
<< 8) | r
;
38 xcol
.green
= (g
<< 8) | g
;
39 xcol
.blue
= (b
<< 8) | b
;
40 if (XAllocColor(ob_display
, render_colormap
, &xcol
)) {
41 out
= g_new(color_rgb
, 1);
42 out
->r
= xcol
.red
>> 8;
43 out
->g
= xcol
.green
>> 8;
44 out
->b
= xcol
.blue
>> 8;
46 out
->pixel
= xcol
.pixel
;
52 void color_free(color_rgb
*c
)
55 XFreeGC(ob_display
, c
->gc
);
This page took 0.037678 seconds and 4 git commands to generate.