Revision a0f42610

b/hw/vga.c
2373 2373
                v = *(uint32_t *)d;
2374 2374
            else
2375 2375
                v = (uint32_t) (*(uint16_t *)d);
2376
            r = ((v >> ds->pf.rshift) & ds->pf.rmax) * 256 /
2377
                (ds->pf.rmax + 1);
2378
            g = ((v >> ds->pf.gshift) & ds->pf.gmax) * 256 /
2379
                (ds->pf.gmax + 1);
2380
            b = ((v >> ds->pf.bshift) & ds->pf.bmax) * 256 /
2381
                (ds->pf.bmax + 1);
2376
            /* Limited to 8 or fewer bits per channel: */
2377
            r = ((v >> ds->pf.rshift) & ds->pf.rmax) << (8 - ds->pf.rbits);
2378
            g = ((v >> ds->pf.gshift) & ds->pf.gmax) << (8 - ds->pf.gbits);
2379
            b = ((v >> ds->pf.bshift) & ds->pf.bmax) << (8 - ds->pf.bbits);
2382 2380
            *pbuf++ = r;
2383 2381
            *pbuf++ = g;
2384 2382
            *pbuf++ = b;

Also available in: Unified diff