Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:11.4
openbox
openbox-3.4.7.2-24bit.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File openbox-3.4.7.2-24bit.patch of Package openbox
commit 263833450d3fb1ca0bfffef302c4b204a3133766 Author: Mikael Magnusson <mikachu@gmail.com> Date: Sat Jun 6 11:12:06 2009 +0200 Add support for 24bit diff --git a/render/color.c b/render/color.c index 41fcc71..5e3f216 100644 --- a/render/color.c +++ b/render/color.c @@ -143,6 +143,28 @@ void RrReduceDepth(const RrInstance *inst, RrPixel32 *data, XImage *im) } } else im->data = (gchar*) data; break; + case 24: + { + /* reverse the ordering, shifting left 16bit should be the first byte + out of three, etc */ + const guint roff = (16 - RrRedOffset(inst)) / 8; + const guint goff = (16 - RrGreenOffset(inst)) / 8; + const guint boff = (16 - RrBlueOffset(inst)) / 8; + gint outx; + for (y = 0; y < im->height; y++) { + for (x = 0, outx = 0; x < im->width; x++, outx += 3) { + r = (data[x] >> RrDefaultRedOffset) & 0xFF; + g = (data[x] >> RrDefaultGreenOffset) & 0xFF; + b = (data[x] >> RrDefaultBlueOffset) & 0xFF; + p8[outx+roff] = r; + p8[outx+goff] = g; + p8[outx+boff] = b; + } + data += im->width; + p8 += im->bytes_per_line; + } + break; + } case 16: for (y = 0; y < im->height; y++) { for (x = 0; x < im->width; x++) { @@ -191,7 +213,7 @@ void RrReduceDepth(const RrInstance *inst, RrPixel32 *data, XImage *im) } break; default: - g_error("Your bit depth is currently unhandled\n"); + g_error("This image bit depth (%i) is currently unhandled", im->bits_per_pixel); } }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor