[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH v3] ui/sdl: Load optional QEMU icon

From: Stefan Weil
Subject: [Qemu-devel] Re: [PATCH v3] ui/sdl: Load optional QEMU icon
Date: Sun, 20 Mar 2011 13:11:08 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20101226 Iceowl/1.0b1 Icedove/3.0.11

Am 16.02.2011 21:15, schrieb Stefan Weil:
Load an optional QEMU icon file. If there is no icon file named
qemu.bmp in QEMU's default search path, QEMU will run with
the usual system default icon.

A matching icon file will be loaded and used by X Windows managers
or MS Windows while a QEMU instance is running.

SDL requires icon files in 32x32x4 bmp format.

The first version of this patch also included qemu-icon.bmp
and rules to handle this file. That part will now be published
in a separate patch as soon as the QEMU community has chosen
a common QEMU icon. The SDL code here is useful to try
different icons.

White pixels are now used for transparency.
This needs a 16 colour bmp file.

Cc: Anthony Liguori <address@hidden>
Signed-off-by: Stefan Weil <address@hidden>
ui/sdl.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/ui/sdl.c b/ui/sdl.c
index 47ac49c..f5dbc93 100644
--- a/ui/sdl.c
+++ b/ui/sdl.c
@@ -816,6 +816,7 @@ void sdl_display_init(DisplayState *ds, int full_screen, int no_frame)
uint8_t data = 0;
DisplayAllocator *da;
const SDL_VideoInfo *vi;
+ char *filename;

#if defined(__APPLE__)
/* always use generic keymaps */
@@ -848,6 +849,18 @@ void sdl_display_init(DisplayState *ds, int full_screen, int no_frame)
vi = SDL_GetVideoInfo();
host_format = *(vi->vfmt);

+ /* Load a 32x32x4 image. White pixels are transparent. */
+ filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, "qemu-icon.bmp");
+ if (filename) {
+ SDL_Surface *image = SDL_LoadBMP(filename);
+ if (image) {
+ uint32_t colorkey = SDL_MapRGB(image->format, 255, 255, 255);
+ SDL_SetColorKey(image, SDL_SRCCOLORKEY, colorkey);
+ SDL_WM_SetIcon(image, NULL);
+ }
+ qemu_free(filename);
+ }
dcl = qemu_mallocz(sizeof(DisplayChangeListener));
dcl->dpy_update = sdl_update;
dcl->dpy_resize = sdl_resize;

Ping. No comments? No commit?

Stefan W.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]