From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: qemu-devel@nongnu.org
Cc: Gerd Hoffmann <kraxel@redhat.com>
Subject: [Qemu-devel] [RFC 05/14] vga: Remove unused vga_draw_line24() and vga_draw_line32()
Date: Tue, 24 Jun 2014 09:10:59 +1000 [thread overview]
Message-ID: <1403565068-15229-6-git-send-email-benh@kernel.crashing.org> (raw)
In-Reply-To: <1403565068-15229-1-git-send-email-benh@kernel.crashing.org>
24 and 32bpp surfaces are always shared, we never "draw" them anymore
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
hw/display/vga.c | 29 +++++++++++-------------
hw/display/vga_template.h | 56 -----------------------------------------------
2 files changed, 13 insertions(+), 72 deletions(-)
diff --git a/hw/display/vga.c b/hw/display/vga.c
index b46e42d..e98f7da 100644
--- a/hw/display/vga.c
+++ b/hw/display/vga.c
@@ -1344,8 +1344,6 @@ enum {
VGA_DRAW_LINE8,
VGA_DRAW_LINE15,
VGA_DRAW_LINE16,
- VGA_DRAW_LINE24,
- VGA_DRAW_LINE32,
VGA_DRAW_LINE_NB,
};
@@ -1358,8 +1356,6 @@ static vga_draw_line_func * const vga_draw_line_table[VGA_DRAW_LINE_NB] = {
vga_draw_line8,
vga_draw_line15,
vga_draw_line16,
- vga_draw_line24,
- vga_draw_line32,
};
static int vga_get_bpp(VGACommonState *s)
@@ -1431,7 +1427,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
int disp_width, multi_scan, multi_run;
uint8_t *d;
uint32_t v, addr1, addr;
- vga_draw_line_func *vga_draw_line;
+ vga_draw_line_func *vga_draw_line = NULL;
#if defined(HOST_WORDS_BIGENDIAN) == defined(TARGET_WORDS_BIGENDIAN)
static const bool byteswap = false;
#else
@@ -1528,7 +1524,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
}
bits = 4;
} else {
- switch(s->get_bpp(s)) {
+ switch(depth) {
default:
case 0:
full_update |= update_palette256(s);
@@ -1549,19 +1545,20 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
bits = 16;
break;
case 24:
- v = VGA_DRAW_LINE24;
- bits = 24;
- break;
case 32:
- v = VGA_DRAW_LINE32;
- bits = 32;
- break;
+ if (!is_buffer_shared(surface)) {
+ fprintf(stderr,
+ "vga: Non-shared surface at %dbpp unsupported !\n", depth);
+ return;
+ }
+ bits = depth;
}
}
- vga_draw_line = vga_draw_line_table[v];
-
- if (!is_buffer_shared(surface) && s->cursor_invalidate) {
- s->cursor_invalidate(s);
+ if (!is_buffer_shared(surface)) {
+ vga_draw_line = vga_draw_line_table[v];
+ if (s->cursor_invalidate) {
+ s->cursor_invalidate(s);
+ }
}
line_offset = s->line_offset;
diff --git a/hw/display/vga_template.h b/hw/display/vga_template.h
index 41fc764..e7cd9e0 100644
--- a/hw/display/vga_template.h
+++ b/hw/display/vga_template.h
@@ -323,59 +323,3 @@ static void vga_draw_line16(VGACommonState *s1, uint8_t *d,
} while (--w != 0);
}
-/*
- * 24 bit color
- */
-static void vga_draw_line24(VGACommonState *s1, uint8_t *d,
- const uint8_t *s, int width)
-{
- int w;
- uint32_t r, g, b;
-
- w = width;
- do {
-#if defined(TARGET_WORDS_BIGENDIAN)
- r = s[0];
- g = s[1];
- b = s[2];
-#else
- b = s[0];
- g = s[1];
- r = s[2];
-#endif
- ((uint32_t *)d)[0] = rgb_to_pixel32(r, g, b);
- s += 3;
- d += 4;
- } while (--w != 0);
-}
-
-/*
- * 32 bit color
- */
-static void vga_draw_line32(VGACommonState *s1, uint8_t *d,
- const uint8_t *s, int width)
-{
-#if defined(HOST_WORDS_BIGENDIAN) == defined(TARGET_WORDS_BIGENDIAN)
- memcpy(d, s, width * 4);
-#else
- int w;
- uint32_t r, g, b;
-
- w = width;
- do {
-#if defined(TARGET_WORDS_BIGENDIAN)
- r = s[1];
- g = s[2];
- b = s[3];
-#else
- b = s[0];
- g = s[1];
- r = s[2];
-#endif
- ((uint32_t *)d)[0] = rgb_to_pixel32(r, g, b);
- s += 4;
- d += 4;
- } while (--w != 0);
-#endif
-}
-
--
1.9.1
next prev parent reply other threads:[~2014-06-23 23:12 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-23 23:10 [Qemu-devel] [RFC 00/14] VGA cleanups and endian control Benjamin Herrenschmidt
2014-06-23 23:10 ` [Qemu-devel] [RFC 01/14] vga: Create direct sufaces for depth 24 too Benjamin Herrenschmidt
2014-07-01 7:09 ` Gerd Hoffmann
2014-07-01 9:31 ` Benjamin Herrenschmidt
2014-06-23 23:10 ` [Qemu-devel] [RFC 02/14] ui: Remove unused QEMU_BIG_ENDIAN_FLAG Benjamin Herrenschmidt
2014-06-23 23:10 ` [Qemu-devel] [RFC 03/14] vga: Start cutting out non-32bpp conversion support Benjamin Herrenschmidt
2014-06-23 23:10 ` [Qemu-devel] [RFC 04/14] vga: Remove remainder of old conversion cruft Benjamin Herrenschmidt
2014-06-23 23:10 ` Benjamin Herrenschmidt [this message]
2014-06-23 23:11 ` [Qemu-devel] [RFC 06/14] vga: 15 and 16bpp draw functions are "swapping" only Benjamin Herrenschmidt
2014-06-23 23:11 ` [Qemu-devel] [RFC 07/14] vga: Remove rgb_to_pixel indirection Benjamin Herrenschmidt
2014-06-23 23:11 ` [Qemu-devel] [RFC 08/14] vga: Simplify vga_draw_blank() a bit Benjamin Herrenschmidt
2014-06-23 23:11 ` [Qemu-devel] [RFC 09/14] cirrus: Remove non-32bpp cursor drawing Benjamin Herrenschmidt
2014-06-23 23:11 ` [Qemu-devel] [RFC 10/14] vga: Remove some "should be done in BIOS" comments Benjamin Herrenschmidt
2014-06-30 11:31 ` Gerd Hoffmann
2014-06-23 23:11 ` [Qemu-devel] [RFC 11/14] vga: Make fb endian a common state variable Benjamin Herrenschmidt
2014-06-23 23:24 ` Peter Maydell
2014-06-23 23:44 ` Benjamin Herrenschmidt
2014-06-23 23:11 ` [Qemu-devel] [RFC 12/14] vga: Rename vga_template.h to vga-helpers.h Benjamin Herrenschmidt
2014-06-23 23:11 ` [Qemu-devel] [RFC 13/14] vga: Add endian control register Benjamin Herrenschmidt
2014-06-23 23:48 ` Benjamin Herrenschmidt
2014-06-30 11:38 ` Gerd Hoffmann
2014-06-30 12:34 ` Benjamin Herrenschmidt
2014-06-23 23:11 ` [Qemu-devel] [RFC 14/14] ppc/spapr/vga: Switch VGA endian on H_SET_MODE Benjamin Herrenschmidt
2014-06-30 11:49 ` Gerd Hoffmann
2014-06-30 12:34 ` Benjamin Herrenschmidt
2014-06-30 11:50 ` [Qemu-devel] [RFC 00/14] VGA cleanups and endian control Gerd Hoffmann
2014-06-30 12:36 ` Benjamin Herrenschmidt
2014-06-30 13:03 ` Gerd Hoffmann
2014-06-30 13:36 ` Benjamin Herrenschmidt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1403565068-15229-6-git-send-email-benh@kernel.crashing.org \
--to=benh@kernel.crashing.org \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).