Implement and use shared memory framebuffer device rendering reoutine.

Use DMA mapping API.

Signed-off-by: Paul Brook <paul@codesourcery.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6965 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
pbrook 2009-04-01 12:27:59 +00:00
parent 602dafcf43
commit 714fa308a3
10 changed files with 253 additions and 231 deletions

View file

@ -43,9 +43,10 @@
/*
* 2-bit colour
*/
static void glue(draw_line2_, DEPTH)(
uint8_t *d, const uint8_t *s, int width, const uint16_t *pal)
static void glue(draw_line2_, DEPTH)(void *opaque,
uint8_t *d, const uint8_t *s, int width, int deststep)
{
uint16_t *pal = opaque;
uint8_t v, r, g, b;
do {
@ -81,9 +82,10 @@ static void glue(draw_line2_, DEPTH)(
/*
* 4-bit colour
*/
static void glue(draw_line4_, DEPTH)(
uint8_t *d, const uint8_t *s, int width, const uint16_t *pal)
static void glue(draw_line4_, DEPTH)(void *opaque,
uint8_t *d, const uint8_t *s, int width, int deststep)
{
uint16_t *pal = opaque;
uint8_t v, r, g, b;
do {
@ -107,9 +109,10 @@ static void glue(draw_line4_, DEPTH)(
/*
* 8-bit colour
*/
static void glue(draw_line8_, DEPTH)(
uint8_t *d, const uint8_t *s, int width, const uint16_t *pal)
static void glue(draw_line8_, DEPTH)(void *opaque,
uint8_t *d, const uint8_t *s, int width, int deststep)
{
uint16_t *pal = opaque;
uint8_t v, r, g, b;
do {
@ -126,8 +129,8 @@ static void glue(draw_line8_, DEPTH)(
/*
* 12-bit colour
*/
static void glue(draw_line12_, DEPTH)(
uint8_t *d, const uint8_t *s, int width, const uint16_t *pal)
static void glue(draw_line12_, DEPTH)(void *opaque,
uint8_t *d, const uint8_t *s, int width, int deststep)
{
uint16_t v;
uint8_t r, g, b;
@ -146,8 +149,8 @@ static void glue(draw_line12_, DEPTH)(
/*
* 16-bit colour
*/
static void glue(draw_line16_, DEPTH)(
uint8_t *d, const uint8_t *s, int width, const uint16_t *pal)
static void glue(draw_line16_, DEPTH)(void *opaque,
uint8_t *d, const uint8_t *s, int width, int deststep)
{
#if DEPTH == 16 && defined(WORDS_BIGENDIAN) == defined(TARGET_WORDS_BIGENDIAN)
memcpy(d, s, width * 2);