Commit 136a8d9d authored by Gerd Hoffmann's avatar Gerd Hoffmann
Browse files

sdl2: stop flickering



Optimizing updates by copying the dirty rectangle
only do not work because of double-buffering.

Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
Reviewed-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: default avatarMax Reitz <mreitz@redhat.com>
parent c046d828
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -45,10 +45,23 @@ void sdl2_2d_update(DisplayChangeListener *dcl,
        return;
    }

    /*
     * SDL2 seems to do some double-buffering, and trying to only
     * update the changed areas results in only one of the two buffers
     * being updated.  Which flickers alot.  So lets not try to be
     * clever do a full update every time ...
     */
#if 0
    rect.x = x;
    rect.y = y;
    rect.w = w;
    rect.h = h;
#else
    rect.x = 0;
    rect.y = 0;
    rect.w = surface_width(surf);
    rect.h = surface_height(surf);
#endif

    SDL_UpdateTexture(scon->texture, NULL, surface_data(surf),
                      surface_stride(surf));