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