Ticket #9203: dirty-rect-safety-valve.diff

File dirty-rect-safety-valve.diff, 1.2 KB (added by eriktorbjorn, 14 years ago)

Patch against current SVN

  • backends/platform/sdl/graphics.cpp

     
    858858                _dirtyRectList[0].y = 0;
    859859                _dirtyRectList[0].w = width;
    860860                _dirtyRectList[0].h = height;
     861                _dirtyArea = width * height;
    861862        }
    862863
    863864        // Only draw anything if necessary
     
    936937        }
    937938
    938939        _numDirtyRects = 0;
     940        _dirtyArea = 0;
    939941        _forceFull = false;
    940942        _mouseNeedsRedraw = false;
    941943}
     
    11231125                return;
    11241126        }
    11251127
     1128        _dirtyArea += (w * h);
     1129        if (_dirtyArea > width * height) {
     1130                _forceFull = true;
     1131                return;
     1132        }
     1133
    11261134        if (w > 0 && h > 0) {
    11271135                SDL_Rect *r = &_dirtyRectList[_numDirtyRects++];
    11281136
  • backends/platform/sdl/sdl.h

     
    356356        // Dirty rect management
    357357        SDL_Rect _dirtyRectList[NUM_DIRTY_RECT];
    358358        int _numDirtyRects;
     359        int32 _dirtyArea;
    359360
    360361        // Keyboard mouse emulation.  Disabled by fingolfin 2004-12-18.
    361362        // I am keeping the rest of the code in for now, since the joystick