qemu-devel
[Top][All Lists]
Advanced

[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>



reply via email to

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