diff options
author | Sven Weidauer <sven.weidauer@gmail.com> | 2011-01-12 22:07:21 +0000 |
---|---|---|
committer | Sven Weidauer <sven.weidauer@gmail.com> | 2011-01-12 22:07:21 +0000 |
commit | 9e317534205df240dbc31fafa80d226106e47122 (patch) | |
tree | acff595f10d1422f2a46252a114c57bec0835aae /cocoa | |
parent | e65bdafbe3e32bf03b1b1acdb5a0672ef97e79c9 (diff) | |
download | netsurf-9e317534205df240dbc31fafa80d226106e47122.tar.gz netsurf-9e317534205df240dbc31fafa80d226106e47122.tar.bz2 |
Rendering only dirty rects
svn path=/trunk/netsurf/; revision=11294
Diffstat (limited to 'cocoa')
-rw-r--r-- | cocoa/BrowserView.m | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/cocoa/BrowserView.m b/cocoa/BrowserView.m index 96f12699a..c1a88225a 100644 --- a/cocoa/BrowserView.m +++ b/cocoa/BrowserView.m @@ -90,18 +90,24 @@ static inline NSRect cocoa_get_caret_rect( BrowserView *view ) plot.clip(0, 0, frame.size.width, frame.size.height); - content_redraw(browser->current_content, - 0, - 0, - NSWidth( frame ), - NSHeight( frame ), - NSMinX( dirtyRect ), - NSMinY( dirtyRect ), - NSMaxX( dirtyRect ), - NSMaxY( dirtyRect ), - browser->scale, - 0xFFFFFF); + const NSRect *rects = NULL; + NSInteger count = 0; + [self getRectsBeingDrawn: &rects count: &count]; + + for (NSInteger i = 0; i < count; i++) { + content_redraw(browser->current_content, + 0, + 0, + NSWidth( frame ), + NSHeight( frame ), + NSMinX( rects[i] ), + NSMinY( rects[i] ), + NSMaxX( rects[i] ), + NSMaxY( rects[i] ), + browser->scale, + 0xFFFFFF); + } NSRect caretRect = cocoa_get_caret_rect( self ); if (hasCaret && caretVisible && [self needsToDrawRect: caretRect]) { |