summaryrefslogtreecommitdiff
path: root/cocoa/BrowserView.m
diff options
context:
space:
mode:
authorSven Weidauer <sven.weidauer@gmail.com>2011-01-12 22:07:21 +0000
committerSven Weidauer <sven.weidauer@gmail.com>2011-01-12 22:07:21 +0000
commit9e317534205df240dbc31fafa80d226106e47122 (patch)
treeacff595f10d1422f2a46252a114c57bec0835aae /cocoa/BrowserView.m
parente65bdafbe3e32bf03b1b1acdb5a0672ef97e79c9 (diff)
downloadnetsurf-9e317534205df240dbc31fafa80d226106e47122.tar.gz
netsurf-9e317534205df240dbc31fafa80d226106e47122.tar.bz2
Rendering only dirty rects
svn path=/trunk/netsurf/; revision=11294
Diffstat (limited to 'cocoa/BrowserView.m')
-rw-r--r--cocoa/BrowserView.m28
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]) {