@@ -1271,7 +1271,8 @@ static TextConsole *new_console(DisplayState *ds, console_type_t console_type)
return s;
}
-static DisplaySurface* defaultallocator_create_displaysurface(int width, int height)
+static DisplaySurface* defaultallocator_create_displaysurface(DisplayAllocator *da,
+ int width, int height)
{
DisplaySurface *surface = (DisplaySurface*) g_malloc0(sizeof(DisplaySurface));
@@ -1281,8 +1282,9 @@ static DisplaySurface* defaultallocator_create_displaysurface(int width, int hei
return surface;
}
-static DisplaySurface* defaultallocator_resize_displaysurface(DisplaySurface *surface,
- int width, int height)
+static DisplaySurface* defaultallocator_resize_displaysurface(DisplayAllocator *da,
+ DisplaySurface *surface,
+ int width, int height)
{
int linesize = width * 4;
qemu_alloc_display(surface, width, height, linesize,
@@ -1328,7 +1330,7 @@ DisplaySurface* qemu_create_displaysurface_from(int width, int height, int bpp,
return surface;
}
-static void defaultallocator_free_displaysurface(DisplaySurface *surface)
+static void defaultallocator_free_displaysurface(DisplayAllocator *da, DisplaySurface *surface)
{
if (surface == NULL)
return;
@@ -1380,8 +1382,8 @@ DisplayAllocator *register_displayallocator(DisplayState *ds, DisplayAllocator *
{
if(ds->allocator == &default_allocator) {
DisplaySurface *surf;
- surf = da->create_displaysurface(ds_get_width(ds), ds_get_height(ds));
- defaultallocator_free_displaysurface(ds->surface);
+ surf = da->create_displaysurface(da, ds_get_width(ds), ds_get_height(ds));
+ defaultallocator_free_displaysurface(da, ds->surface);
ds->surface = surf;
ds->allocator = da;
}
@@ -166,9 +166,9 @@ struct DisplayChangeListener {
};
struct DisplayAllocator {
- DisplaySurface* (*create_displaysurface)(int width, int height);
- DisplaySurface* (*resize_displaysurface)(DisplaySurface *surface, int width, int height);
- void (*free_displaysurface)(DisplaySurface *surface);
+ DisplaySurface* (*create_displaysurface)(DisplayAllocator *da, int width, int height);
+ DisplaySurface* (*resize_displaysurface)(DisplayAllocator *da, DisplaySurface *surface, int width, int height);
+ void (*free_displaysurface)(DisplayAllocator *da, DisplaySurface *surface);
};
struct DisplayState {
@@ -196,17 +196,17 @@ DisplayAllocator *register_displayallocator(DisplayState *ds, DisplayAllocator *
static inline DisplaySurface* qemu_create_displaysurface(DisplayState *ds, int width, int height)
{
- return ds->allocator->create_displaysurface(width, height);
+ return ds->allocator->create_displaysurface(ds->allocator, width, height);
}
static inline DisplaySurface* qemu_resize_displaysurface(DisplayState *ds, int width, int height)
{
- return ds->allocator->resize_displaysurface(ds->surface, width, height);
+ return ds->allocator->resize_displaysurface(ds->allocator, ds->surface, width, height);
}
static inline void qemu_free_displaysurface(DisplayState *ds)
{
- ds->allocator->free_displaysurface(ds->surface);
+ ds->allocator->free_displaysurface(ds->allocator, ds->surface);
}
static inline int is_surface_bgr(DisplaySurface *surface)
@@ -189,7 +189,7 @@ static PixelFormat sdl_to_qemu_pixelformat(SDL_PixelFormat *sdl_pf)
return qemu_pf;
}
-static DisplaySurface* sdl_create_displaysurface(int width, int height)
+static DisplaySurface* sdl_create_displaysurface(DisplayAllocator *da, int width, int height)
{
SDLDisplayState *s = global_sdl_state;
DisplaySurface *surface = (DisplaySurface*) g_malloc0(sizeof(DisplaySurface));
@@ -235,7 +235,7 @@ static DisplaySurface* sdl_create_displaysurface(int width, int height)
return surface;
}
-static void sdl_free_displaysurface(DisplaySurface *surface)
+static void sdl_free_displaysurface(DisplayAllocator *da, DisplaySurface *surface)
{
SDLDisplayState *s = global_sdl_state;
@@ -248,10 +248,10 @@ static void sdl_free_displaysurface(DisplaySurface *surface)
g_free(surface);
}
-static DisplaySurface* sdl_resize_displaysurface(DisplaySurface *surface, int width, int height)
+static DisplaySurface* sdl_resize_displaysurface(DisplayAllocator *da, DisplaySurface *surface, int width, int height)
{
- sdl_free_displaysurface(surface);
- return sdl_create_displaysurface(width, height);
+ sdl_free_displaysurface(da, surface);
+ return sdl_create_displaysurface(da, width, height);
}
/* generic keyboard conversion */
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> --- console.c | 14 ++++++++------ console.h | 12 ++++++------ ui/sdl.c | 10 +++++----- 3 files changed, 19 insertions(+), 17 deletions(-)