mirror of https://github.com/xqemu/xqemu.git
vga: Remove rgb_to_pixel indirection
We always use rgb_to_pixel32 nowadays. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
46c3a8c8eb
commit
d3c2343af0
|
@ -29,6 +29,7 @@
|
||||||
#include "hw/hw.h"
|
#include "hw/hw.h"
|
||||||
#include "hw/pci/pci.h"
|
#include "hw/pci/pci.h"
|
||||||
#include "ui/console.h"
|
#include "ui/console.h"
|
||||||
|
#include "ui/pixel_ops.h"
|
||||||
#include "vga_int.h"
|
#include "vga_int.h"
|
||||||
#include "hw/loader.h"
|
#include "hw/loader.h"
|
||||||
|
|
||||||
|
@ -2212,6 +2213,8 @@ static void cirrus_cursor_draw_line(VGACommonState *s1, uint8_t *d1, int scr_y)
|
||||||
} else {
|
} else {
|
||||||
src += (s->vga.sr[0x13] & 0x3f) * 256;
|
src += (s->vga.sr[0x13] & 0x3f) * 256;
|
||||||
src += (scr_y - s->hw_cursor_y) * 4;
|
src += (scr_y - s->hw_cursor_y) * 4;
|
||||||
|
|
||||||
|
|
||||||
poffset = 128;
|
poffset = 128;
|
||||||
content = ((uint32_t *)src)[0] |
|
content = ((uint32_t *)src)[0] |
|
||||||
((uint32_t *)(src + 128))[0];
|
((uint32_t *)(src + 128))[0];
|
||||||
|
@ -2229,12 +2232,12 @@ static void cirrus_cursor_draw_line(VGACommonState *s1, uint8_t *d1, int scr_y)
|
||||||
x2 = s->vga.last_scr_width;
|
x2 = s->vga.last_scr_width;
|
||||||
w = x2 - x1;
|
w = x2 - x1;
|
||||||
palette = s->cirrus_hidden_palette;
|
palette = s->cirrus_hidden_palette;
|
||||||
color0 = s->vga.rgb_to_pixel(c6_to_8(palette[0x0 * 3]),
|
color0 = rgb_to_pixel32(c6_to_8(palette[0x0 * 3]),
|
||||||
c6_to_8(palette[0x0 * 3 + 1]),
|
c6_to_8(palette[0x0 * 3 + 1]),
|
||||||
c6_to_8(palette[0x0 * 3 + 2]));
|
c6_to_8(palette[0x0 * 3 + 2]));
|
||||||
color1 = s->vga.rgb_to_pixel(c6_to_8(palette[0xf * 3]),
|
color1 = rgb_to_pixel32(c6_to_8(palette[0xf * 3]),
|
||||||
c6_to_8(palette[0xf * 3 + 1]),
|
c6_to_8(palette[0xf * 3 + 1]),
|
||||||
c6_to_8(palette[0xf * 3 + 2]));
|
c6_to_8(palette[0xf * 3 + 2]));
|
||||||
bpp = surface_bytes_per_pixel(surface);
|
bpp = surface_bytes_per_pixel(surface);
|
||||||
d1 += x1 * bpp;
|
d1 += x1 * bpp;
|
||||||
switch (surface_bits_per_pixel(surface)) {
|
switch (surface_bits_per_pixel(surface)) {
|
||||||
|
|
|
@ -1011,13 +1011,6 @@ typedef void vga_draw_line_func(VGACommonState *s1, uint8_t *d,
|
||||||
|
|
||||||
#include "vga_template.h"
|
#include "vga_template.h"
|
||||||
|
|
||||||
static unsigned int rgb_to_pixel32_dup(unsigned int r, unsigned int g, unsigned b)
|
|
||||||
{
|
|
||||||
unsigned int col;
|
|
||||||
col = rgb_to_pixel32(r, g, b);
|
|
||||||
return col;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return true if the palette was modified */
|
/* return true if the palette was modified */
|
||||||
static int update_palette16(VGACommonState *s)
|
static int update_palette16(VGACommonState *s)
|
||||||
{
|
{
|
||||||
|
@ -1034,9 +1027,9 @@ static int update_palette16(VGACommonState *s)
|
||||||
v = ((s->ar[VGA_ATC_COLOR_PAGE] & 0xc) << 4) | (v & 0x3f);
|
v = ((s->ar[VGA_ATC_COLOR_PAGE] & 0xc) << 4) | (v & 0x3f);
|
||||||
}
|
}
|
||||||
v = v * 3;
|
v = v * 3;
|
||||||
col = s->rgb_to_pixel(c6_to_8(s->palette[v]),
|
col = rgb_to_pixel32(c6_to_8(s->palette[v]),
|
||||||
c6_to_8(s->palette[v + 1]),
|
c6_to_8(s->palette[v + 1]),
|
||||||
c6_to_8(s->palette[v + 2]));
|
c6_to_8(s->palette[v + 2]));
|
||||||
if (col != palette[i]) {
|
if (col != palette[i]) {
|
||||||
full_update = 1;
|
full_update = 1;
|
||||||
palette[i] = col;
|
palette[i] = col;
|
||||||
|
@ -1056,13 +1049,13 @@ static int update_palette256(VGACommonState *s)
|
||||||
v = 0;
|
v = 0;
|
||||||
for(i = 0; i < 256; i++) {
|
for(i = 0; i < 256; i++) {
|
||||||
if (s->dac_8bit) {
|
if (s->dac_8bit) {
|
||||||
col = s->rgb_to_pixel(s->palette[v],
|
col = rgb_to_pixel32(s->palette[v],
|
||||||
s->palette[v + 1],
|
s->palette[v + 1],
|
||||||
s->palette[v + 2]);
|
s->palette[v + 2]);
|
||||||
} else {
|
} else {
|
||||||
col = s->rgb_to_pixel(c6_to_8(s->palette[v]),
|
col = rgb_to_pixel32(c6_to_8(s->palette[v]),
|
||||||
c6_to_8(s->palette[v + 1]),
|
c6_to_8(s->palette[v + 1]),
|
||||||
c6_to_8(s->palette[v + 2]));
|
c6_to_8(s->palette[v + 2]));
|
||||||
}
|
}
|
||||||
if (col != palette[i]) {
|
if (col != palette[i]) {
|
||||||
full_update = 1;
|
full_update = 1;
|
||||||
|
@ -1245,7 +1238,6 @@ static void vga_draw_text(VGACommonState *s, int full_update)
|
||||||
s->last_cw = cw;
|
s->last_cw = cw;
|
||||||
full_update = 1;
|
full_update = 1;
|
||||||
}
|
}
|
||||||
s->rgb_to_pixel = rgb_to_pixel32_dup;
|
|
||||||
full_update |= update_palette16(s);
|
full_update |= update_palette16(s);
|
||||||
palette = s->last_palette;
|
palette = s->last_palette;
|
||||||
x_incr = cw * surface_bytes_per_pixel(surface);
|
x_incr = cw * surface_bytes_per_pixel(surface);
|
||||||
|
@ -1553,8 +1545,6 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
|
||||||
dpy_gfx_replace_surface(s->con, surface);
|
dpy_gfx_replace_surface(s->con, surface);
|
||||||
}
|
}
|
||||||
|
|
||||||
s->rgb_to_pixel = rgb_to_pixel32_dup;
|
|
||||||
|
|
||||||
if (shift_control == 0) {
|
if (shift_control == 0) {
|
||||||
full_update |= update_palette16(s);
|
full_update |= update_palette16(s);
|
||||||
if (s->sr[VGA_SEQ_CLOCK_MODE] & 8) {
|
if (s->sr[VGA_SEQ_CLOCK_MODE] & 8) {
|
||||||
|
@ -1700,9 +1690,8 @@ static void vga_draw_blank(VGACommonState *s, int full_update)
|
||||||
if (s->last_scr_width <= 0 || s->last_scr_height <= 0)
|
if (s->last_scr_width <= 0 || s->last_scr_height <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
s->rgb_to_pixel = rgb_to_pixel32_dup;
|
|
||||||
if (surface_bits_per_pixel(surface) == 8) {
|
if (surface_bits_per_pixel(surface) == 8) {
|
||||||
val = s->rgb_to_pixel(0, 0, 0);
|
val = rgb_to_pixel32(0, 0, 0);
|
||||||
} else {
|
} else {
|
||||||
val = 0;
|
val = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,8 +154,6 @@ typedef struct VGACommonState {
|
||||||
bool cursor_visible_phase;
|
bool cursor_visible_phase;
|
||||||
int64_t cursor_blink_time;
|
int64_t cursor_blink_time;
|
||||||
uint32_t cursor_offset;
|
uint32_t cursor_offset;
|
||||||
unsigned int (*rgb_to_pixel)(unsigned int r,
|
|
||||||
unsigned int g, unsigned b);
|
|
||||||
const GraphicHwOps *hw_ops;
|
const GraphicHwOps *hw_ops;
|
||||||
bool full_update_text;
|
bool full_update_text;
|
||||||
bool full_update_gfx;
|
bool full_update_gfx;
|
||||||
|
|
Loading…
Reference in New Issue