From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=53438 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PpnnA-0006Cp-1p for qemu-devel@nongnu.org; Wed, 16 Feb 2011 15:16:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ppnn3-0005nB-OQ for qemu-devel@nongnu.org; Wed, 16 Feb 2011 15:15:59 -0500 Received: from moutng.kundenserver.de ([212.227.17.8]:59700) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ppnn3-0005mr-Cz for qemu-devel@nongnu.org; Wed, 16 Feb 2011 15:15:57 -0500 From: Stefan Weil Date: Wed, 16 Feb 2011 21:15:40 +0100 Message-Id: <1297887340-18623-1-git-send-email-weil@mail.berlios.de> In-Reply-To: <1296240805-6264-1-git-send-email-weil@mail.berlios.de> References: <1296240805-6264-1-git-send-email-weil@mail.berlios.de> Subject: [Qemu-devel] [PATCH v3] ui/sdl: Load optional QEMU icon List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Anthony Liguori 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. v2: 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. v3: White pixels are now used for transparency. This needs a 16 colour bmp file. Cc: Anthony Liguori Signed-off-by: Stefan Weil --- 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; -- 1.7.2.3