[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH resend 1.7] sdl: Reverse support for video mode
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH resend 1.7] sdl: Reverse support for video mode setting |
Date: |
Wed, 06 Nov 2013 15:16:15 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9 |
Il 06/11/2013 14:31, Lei Li ha scritto:
> Ping^2
>
> On 10/24/2013 08:21 PM, Lei Li wrote:
>> This patch has been confirmed by the reporter himself as
>> link below,
>>
>> https://bugs.launchpad.net/qemu/+bug/1216368
>>
>> It has been on the mailing list for a while, could it be merged? PING...
>>
>> On 09/04/2013 05:07 PM, Lei Li wrote:
>>> Currently, If the setting of video mode failed, qemu will exit. It
>>> should go back to the previous setting if the new screen resolution
>>> failed. This patch fixes LP#1216368, add support to revert to existing
>>> surface for the failure of video mode setting.
>>>
>>> Reported-by: Sascha Krissler <address@hidden>
>>> Signed-off-by: Lei Li <address@hidden>
>>> ---
>>> ui/sdl.c | 23 +++++++++++++++++++----
>>> 1 files changed, 19 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/ui/sdl.c b/ui/sdl.c
>>> index 39a42d6..9d8583c 100644
>>> --- a/ui/sdl.c
>>> +++ b/ui/sdl.c
>>> @@ -86,6 +86,7 @@ static void sdl_update(DisplayChangeListener *dcl,
>>> static void do_sdl_resize(int width, int height, int bpp)
>>> {
>>> int flags;
>>> + SDL_Surface *tmp_screen;
>>>
>>> // printf("resizing to %d %d\n", w, h);
>>>
>>> @@ -98,12 +99,26 @@ static void do_sdl_resize(int width, int height,
>>> int bpp)
>>> if (gui_noframe)
>>> flags |= SDL_NOFRAME;
>>>
>>> - real_screen = SDL_SetVideoMode(width, height, bpp, flags);
>>> + tmp_screen = SDL_SetVideoMode(width, height, bpp, flags);
>>> if (!real_screen) {
>>> - fprintf(stderr, "Could not open SDL display (%dx%dx%d): %s\n",
>>> width,
>>> - height, bpp, SDL_GetError());
>>> - exit(1);
>>> + if (!tmp_screen) {
>>> + fprintf(stderr, "Could not open SDL display (%dx%dx%d):
>>> %s\n",
>>> + width, height, bpp, SDL_GetError());
>>> + exit(1);
>>> + }
>>> + } else {
>>> + /*
>>> + * Revert to the previous video mode if the change of
>>> resizing or
>>> + * resolution failed.
>>> + */
>>> + if (!tmp_screen) {
>>> + fprintf(stderr, "Failed to set SDL display (%dx%dx%d):
>>> %s\n",
>>> + width, height, bpp, SDL_GetError());
>>> + return;
>>> + }
>>> }
>>> +
>>> + real_screen = tmp_screen;
>>> }
>>>
>>> static void sdl_switch(DisplayChangeListener *dcl,
>>
>>
>
>
Reviewed-by: Paolo Bonzini <address@hidden>