summaryrefslogtreecommitdiff
path: root/otk/surface.cc
diff options
context:
space:
mode:
Diffstat (limited to 'otk/surface.cc')
-rw-r--r--otk/surface.cc13
1 files changed, 5 insertions, 8 deletions
diff --git a/otk/surface.cc b/otk/surface.cc
index 9fff018c..b7aadd0f 100644
--- a/otk/surface.cc
+++ b/otk/surface.cc
@@ -46,14 +46,11 @@ void Surface::setPixmap(const RenderColor &color)
XFillRectangle(**display, _pixmap, color.gc(), 0, 0,
_size.width(), _size.height());
- pixel32 val = 0; // XXX set this from the color and shift amounts!
- for (unsigned int i = 0, s = _size.width() * _size.height(); i < s; ++i) {
- unsigned char *p = (unsigned char*)&_pixel_data[i];
- *p = (unsigned char) (val >> 24);
- *++p = (unsigned char) (val >> 16);
- *++p = (unsigned char) (val >> 8);
- *++p = (unsigned char) val;
- }
+ pixel32 val = (color.red() << default_red_shift) &
+ (color.green() << default_green_shift) &
+ (color.blue() << default_blue_shift);
+ for (unsigned int i = 0, s = _size.width() * _size.height(); i < s; ++i)
+ _pixel_data[i] = val;
}
void Surface::setPixmap(XImage *image)