Revision: 2553
          http://skim-app.svn.sourceforge.net/skim-app/?rev=2553&view=rev
Author:   hofman
Date:     2007-07-25 05:21:20 -0700 (Wed, 25 Jul 2007)

Log Message:
-----------
Cache the bitmap imagerep to use for the transition for better performance.

Modified Paths:
--------------
    trunk/SKTransitionController.h
    trunk/SKTransitionController.m

Modified: trunk/SKTransitionController.h
===================================================================
--- trunk/SKTransitionController.h      2007-07-23 17:50:32 UTC (rev 2552)
+++ trunk/SKTransitionController.h      2007-07-25 12:21:20 UTC (rev 2553)
@@ -118,6 +118,7 @@
     NSWindow *transitionWindow;
     SKTransitionView *transitionView;
     NSView *view;
+    NSBitmapImageRep *bitmap;
     CIImage *initialImage;
     NSRect imageRect;
     

Modified: trunk/SKTransitionController.m
===================================================================
--- trunk/SKTransitionController.m      2007-07-23 17:50:32 UTC (rev 2552)
+++ trunk/SKTransitionController.m      2007-07-25 12:21:20 UTC (rev 2553)
@@ -113,6 +113,7 @@
 
 - (void)dealloc {
     [transitionWindow release];
+    [bitmap release];
     [initialImage release];
     [super dealloc];
 }
@@ -122,7 +123,11 @@
 }
 
 - (void)setView:(NSView *)newView {
-    view = newView;
+    if (view != newView) {
+        view = newView;
+        [bitmap release];
+        bitmap = nil;
+    }
 }
 
 - (SKAnimationTransitionStyle)transitionStyle {
@@ -250,10 +255,16 @@
 
 - (CIImage *)createCurrentImage {
     NSRect bounds = [view bounds];
-    NSBitmapImageRep *contentBitmap = [view 
bitmapImageRepForCachingDisplayInRect:bounds];
-    [contentBitmap clear];
-    [view cacheDisplayInRect:bounds toBitmapImageRep:contentBitmap];
-    return [[CIImage alloc] initWithBitmapImageRep:contentBitmap];
+    
+    if (bitmap == nil || NSEqualSizes(bounds.size, NSMakeSize([bitmap 
pixelsWide], [bitmap pixelsHigh])) == NO) {
+        [bitmap release];
+        bitmap = [[view bitmapImageRepForCachingDisplayInRect:bounds] retain];
+    }
+    
+    [bitmap clear];
+    [view cacheDisplayInRect:bounds toBitmapImageRep:bitmap];
+    
+    return [[CIImage alloc] initWithBitmapImageRep:bitmap];
 }
 
 - (NSWindow *)transitionWindow {


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to