Revision: 2525
          http://skim-app.svn.sourceforge.net/skim-app/?rev=2525&view=rev
Author:   hofman
Date:     2007-07-18 04:43:08 -0700 (Wed, 18 Jul 2007)

Log Message:
-----------
Load transition filter names dynamically. This allows adding custom transition 
filters in the standard locations (Library/Graphics/Image Units).

Add an extra option for the extent of the transition.

Modified Paths:
--------------
    trunk/Dutch.lproj/MainWindow.nib/classes.nib
    trunk/Dutch.lproj/MainWindow.nib/data.dependency
    trunk/Dutch.lproj/MainWindow.nib/info.nib
    trunk/Dutch.lproj/MainWindow.nib/keyedobjects.nib
    trunk/English.lproj/MainWindow.nib/classes.nib
    trunk/English.lproj/MainWindow.nib/info.nib
    trunk/English.lproj/MainWindow.nib/keyedobjects.nib
    trunk/Italian.lproj/MainWindow.nib/classes.nib
    trunk/Italian.lproj/MainWindow.nib/info.nib
    trunk/Italian.lproj/MainWindow.nib/keyedobjects.nib
    trunk/SKMainWindowController.h
    trunk/SKMainWindowController.m
    trunk/SKPDFView.h
    trunk/SKPDFView.m
    trunk/SKTransitionController.h
    trunk/SKTransitionController.m

Modified: trunk/Dutch.lproj/MainWindow.nib/classes.nib
===================================================================
--- trunk/Dutch.lproj/MainWindow.nib/classes.nib        2007-07-18 08:44:28 UTC 
(rev 2524)
+++ trunk/Dutch.lproj/MainWindow.nib/classes.nib        2007-07-18 11:43:08 UTC 
(rev 2525)
@@ -160,6 +160,7 @@
                 toolModeButton = NSSegmentedControl; 
                 transitionDurationField = NSTextField; 
                 transitionDurationSlider = NSSlider; 
+                transitionExtentMatrix = NSMatrix; 
                 transitionSheet = NSWindow; 
                 transitionStylePopUpButton = NSPopUpButton; 
             }; 

Modified: trunk/Dutch.lproj/MainWindow.nib/data.dependency
===================================================================
--- trunk/Dutch.lproj/MainWindow.nib/data.dependency    2007-07-18 08:44:28 UTC 
(rev 2524)
+++ trunk/Dutch.lproj/MainWindow.nib/data.dependency    2007-07-18 11:43:08 UTC 
(rev 2525)
@@ -5,7 +5,6 @@
        <key>IBPaletteDependency</key>
        <array>
                <string>PDFKit</string>
-               <string>Controllers</string>
        </array>
 </dict>
 </plist>

Modified: trunk/Dutch.lproj/MainWindow.nib/info.nib
===================================================================
--- trunk/Dutch.lproj/MainWindow.nib/info.nib   2007-07-18 08:44:28 UTC (rev 
2524)
+++ trunk/Dutch.lproj/MainWindow.nib/info.nib   2007-07-18 11:43:08 UTC (rev 
2525)
@@ -25,6 +25,10 @@
        <array>
                <integer>208</integer>
        </array>
+       <key>IBOpenObjects</key>
+       <array>
+               <integer>633</integer>
+       </array>
        <key>IBSystem Version</key>
        <string>8R218</string>
 </dict>

Modified: trunk/Dutch.lproj/MainWindow.nib/keyedobjects.nib
===================================================================
(Binary files differ)

Modified: trunk/English.lproj/MainWindow.nib/classes.nib
===================================================================
--- trunk/English.lproj/MainWindow.nib/classes.nib      2007-07-18 08:44:28 UTC 
(rev 2524)
+++ trunk/English.lproj/MainWindow.nib/classes.nib      2007-07-18 11:43:08 UTC 
(rev 2525)
@@ -160,6 +160,7 @@
                 toolModeButton = NSSegmentedControl; 
                 transitionDurationField = NSTextField; 
                 transitionDurationSlider = NSSlider; 
+                transitionExtentMatrix = NSMatrix; 
                 transitionSheet = NSWindow; 
                 transitionStylePopUpButton = NSPopUpButton; 
             }; 

Modified: trunk/English.lproj/MainWindow.nib/info.nib
===================================================================
--- trunk/English.lproj/MainWindow.nib/info.nib 2007-07-18 08:44:28 UTC (rev 
2524)
+++ trunk/English.lproj/MainWindow.nib/info.nib 2007-07-18 11:43:08 UTC (rev 
2525)
@@ -27,18 +27,18 @@
        </array>
        <key>IBOpenObjects</key>
        <array>
-               <integer>168</integer>
-               <integer>256</integer>
-               <integer>5</integer>
-               <integer>208</integer>
-               <integer>502</integer>
                <integer>633</integer>
+               <integer>553</integer>
                <integer>539</integer>
-               <integer>511</integer>
+               <integer>314</integer>
+               <integer>5</integer>
+               <integer>168</integer>
                <integer>224</integer>
-               <integer>553</integer>
-               <integer>314</integer>
+               <integer>256</integer>
                <integer>585</integer>
+               <integer>511</integer>
+               <integer>502</integer>
+               <integer>208</integer>
        </array>
        <key>IBSystem Version</key>
        <string>8R218</string>

Modified: trunk/English.lproj/MainWindow.nib/keyedobjects.nib
===================================================================
(Binary files differ)

Modified: trunk/Italian.lproj/MainWindow.nib/classes.nib
===================================================================
--- trunk/Italian.lproj/MainWindow.nib/classes.nib      2007-07-18 08:44:28 UTC 
(rev 2524)
+++ trunk/Italian.lproj/MainWindow.nib/classes.nib      2007-07-18 11:43:08 UTC 
(rev 2525)
@@ -160,6 +160,7 @@
                 toolModeButton = NSSegmentedControl; 
                 transitionDurationField = NSTextField; 
                 transitionDurationSlider = NSSlider; 
+                transitionExtentMatrix = NSMatrix; 
                 transitionSheet = NSWindow; 
                 transitionStylePopUpButton = NSPopUpButton; 
             }; 

Modified: trunk/Italian.lproj/MainWindow.nib/info.nib
===================================================================
--- trunk/Italian.lproj/MainWindow.nib/info.nib 2007-07-18 08:44:28 UTC (rev 
2524)
+++ trunk/Italian.lproj/MainWindow.nib/info.nib 2007-07-18 11:43:08 UTC (rev 
2525)
@@ -27,12 +27,12 @@
        </array>
        <key>IBOpenObjects</key>
        <array>
+               <integer>208</integer>
+               <integer>539</integer>
+               <integer>511</integer>
+               <integer>5</integer>
                <integer>628</integer>
-               <integer>5</integer>
-               <integer>511</integer>
                <integer>553</integer>
-               <integer>539</integer>
-               <integer>208</integer>
                <integer>168</integer>
        </array>
        <key>IBSystem Version</key>

Modified: trunk/Italian.lproj/MainWindow.nib/keyedobjects.nib
===================================================================
(Binary files differ)

Modified: trunk/SKMainWindowController.h
===================================================================
--- trunk/SKMainWindowController.h      2007-07-18 08:44:28 UTC (rev 2524)
+++ trunk/SKMainWindowController.h      2007-07-18 11:43:08 UTC (rev 2525)
@@ -167,6 +167,7 @@
     IBOutlet NSPopUpButton      *transitionStylePopUpButton;
     IBOutlet NSTextField        *transitionDurationField;
     IBOutlet NSSlider           *transitionDurationSlider;
+    IBOutlet NSMatrix           *transitionExtentMatrix;
     
     NSButton                    *colorAccessoryView;
     BOOL                        updatingColor;

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2007-07-18 08:44:28 UTC (rev 2524)
+++ trunk/SKMainWindowController.m      2007-07-18 11:43:08 UTC (rev 2525)
@@ -74,6 +74,7 @@
 #import "SKLineInspector.h"
 #import "SKColorSwatch.h"
 #import "SKStatusBar.h"
+#import "SKTransitionController.h"
 
 #define SEGMENTED_CONTROL_HEIGHT    25.0
 #define WINDOW_X_DELTA              0.0
@@ -1693,13 +1694,25 @@
     if (returnCode == NSOKButton) {
         [pdfView setTransitionStyle:[[transitionStylePopUpButton selectedItem] 
tag]];
         [pdfView setTransitionDuration:fmax([transitionDurationField 
floatValue], 0.0)];
+        [pdfView setTransitionShouldRestrict:(BOOL)[[transitionExtentMatrix 
selectedCell] tag]];
     }
 }
 
 - (IBAction)chooseTransition:(id)sender {
+    if ([transitionStylePopUpButton numberOfItems] == SKCoreImageTransition) {
+        NSArray *filterNames = [SKTransitionController transitionFilterNames];
+        int i, count = [filterNames count];
+        for (i = 0; i < count; i++) {
+            NSString *name = [filterNames objectAtIndex:i];
+            [transitionStylePopUpButton addItemWithTitle:[CIFilter 
localizedNameForFilterName:name]];
+            NSMenuItem *item = [transitionStylePopUpButton lastItem];
+            [item setTag:SKCoreImageTransition + i];
+        }
+    }
     [transitionStylePopUpButton selectItemWithTag:[pdfView transitionStyle]];
     [transitionDurationField setFloatValue:[pdfView transitionDuration]];
     [transitionDurationSlider setFloatValue:[pdfView transitionDuration]];
+    [transitionExtentMatrix selectCellWithTag:(int)[pdfView 
transitionShouldRestrict]];
        [NSApp beginSheet:transitionSheet
        modalForWindow:[self window]
         modalDelegate:self 

Modified: trunk/SKPDFView.h
===================================================================
--- trunk/SKPDFView.h   2007-07-18 08:44:28 UTC (rev 2524)
+++ trunk/SKPDFView.h   2007-07-18 11:43:08 UTC (rev 2525)
@@ -93,6 +93,7 @@
     
     SKAnimationTransitionStyle transitionStyle;
     float transitionDuration;
+    BOOL transitionShouldRestrict;
     
        PDFAnnotation *activeAnnotation;
        PDFAnnotation *highlightAnnotation;
@@ -149,6 +150,9 @@
 - (float)transitionDuration;
 - (void)setTransitionDuration:(float)duration;
 
+- (BOOL)transitionShouldRestrict;
+- (void)setTransitionShouldRestrict:(BOOL)flag;
+
 - (IBAction)delete:(id)sender;
 - (IBAction)autoSelectContent:(id)sender;
 

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2007-07-18 08:44:28 UTC (rev 2524)
+++ trunk/SKPDFView.m   2007-07-18 11:43:08 UTC (rev 2525)
@@ -153,6 +153,7 @@
     transitionController = nil;
     transitionStyle = SKNoTransition;
     transitionDuration = 1.0;
+    transitionShouldRestrict = NO;
     
     spellingTag = [NSSpellChecker uniqueSpellDocumentTag];
     
@@ -548,6 +549,14 @@
     transitionDuration = duration;
 }
 
+- (BOOL)transitionShouldRestrict {
+    return transitionShouldRestrict;
+}
+
+- (void)setTransitionShouldRestrict:(BOOL)flag {
+    transitionShouldRestrict = flag;
+}
+
 #pragma mark Reading bar
 
 - (BOOL)hasReadingBar {
@@ -587,7 +596,7 @@
     else
         [super goToPreviousPage:self];
     rect = [self convertRect:[[self currentPage] boundsForBox:[self 
displayBox]] fromPage:[self currentPage]];
-    [transitionController animateWithTransitionStyle:[self transitionStyle] 
direction:next ? CGSLeft : CGSRight duration:[self transitionDuration] 
fromRect:rect];
+    [transitionController animateWithTransitionStyle:[self transitionStyle] 
direction:next ? CGSLeft : CGSRight duration:[self transitionDuration] 
fromRect:rect shouldRestrict:transitionShouldRestrict];
 }
 
 - (void)goToNextPage:(id)sender {

Modified: trunk/SKTransitionController.h
===================================================================
--- trunk/SKTransitionController.h      2007-07-18 08:44:28 UTC (rev 2524)
+++ trunk/SKTransitionController.h      2007-07-18 11:43:08 UTC (rev 2525)
@@ -107,6 +107,8 @@
        SKWarpSwitchTransition = CGSWarpSwitch,
        SKWarpFlipTransition = CGSFlip,
     // Core Image transitions
+    SKCoreImageTransition
+    /*
     SKCopyMachineTransition,
     SKDisintegrateTransition,
     SKDissolveTransition,
@@ -114,7 +116,7 @@
     SKModTransition,
     SKPageCurlTransition,
     SKRippleTransition,
-    SKSwipeTransition
+    SKSwipeTransition*/
 } SKAnimationTransitionStyle;
 
 @class SKTransitionView;
@@ -127,12 +129,14 @@
     NSRect imageRect;
 }
 
++ (NSArray *)transitionFilterNames;
+
 - (id)initWithView:(NSView *)aView;
 
 - (NSView *)view;
 - (void)setView:(NSView *)newView;
 
 - 
(void)prepareForAnimationWithTransitionStyle:(SKAnimationTransitionStyle)transitionStyle
 fromRect:(NSRect)rect;
-- (void)animateWithTransitionStyle:(SKAnimationTransitionStyle)transitionStyle 
direction:(CGSTransitionOption)direction duration:(float)duration 
fromRect:(NSRect)rect;
+- (void)animateWithTransitionStyle:(SKAnimationTransitionStyle)transitionStyle 
direction:(CGSTransitionOption)direction duration:(float)duration 
fromRect:(NSRect)rect shouldRestrict:(BOOL)shouldRestrict;
 
 @end

Modified: trunk/SKTransitionController.m
===================================================================
--- trunk/SKTransitionController.m      2007-07-18 08:44:28 UTC (rev 2524)
+++ trunk/SKTransitionController.m      2007-07-18 11:43:08 UTC (rev 2525)
@@ -74,6 +74,18 @@
 
 @implementation SKTransitionController
 
++ (NSArray *)transitionFilterNames {
+    static NSMutableArray *transitionFilterNames = nil;
+    
+    if(transitionFilterNames == nil) {
+        // get all the transition filters
+               [CIPlugIn loadAllPlugIns];
+        transitionFilterNames = [[CIFilter filterNamesInCategories:[NSArray 
arrayWithObject:kCICategoryTransition]] copy];
+    }
+    
+    return transitionFilterNames;
+}
+
 - (id)initWithView:(NSView *)aView {
     if (self = [super init]) {
         view = aView;
@@ -126,71 +138,48 @@
     return inputMaskImage;
 }
 
-- (CIFilter *)transitionFilter:(SKAnimationTransitionStyle)transitionStyle 
forRect:(NSRect)rect inBounds:(NSRect)bounds initialCIImage:(CIImage 
*)initialCIImage finalCIImage:(CIImage *)finalCIImage {
-    CIFilter *transitionFilter = nil;
+- (CIFilter *)transitionFilter:(SKAnimationTransitionStyle)transitionStyle 
forRect:(NSRect)rect inBounds:(NSRect)bounds 
shouldRestrict:(BOOL)shouldRestrict initialCIImage:(CIImage *)initialCIImage 
finalCIImage:(CIImage *)finalCIImage {
+    NSString *filterName = [[[self class] transitionFilterNames] 
objectAtIndex:transitionStyle - SKCoreImageTransition];
+    CIFilter *transitionFilter = [self filterWithName:filterName];
     
-    switch (transitionStyle) {
-        case SKCopyMachineTransition:
-            transitionFilter = [self 
filterWithName:@"CICopyMachineTransition"];
-            [transitionFilter setValue:[CIVector vectorWithX:NSMinX(rect) 
Y:NSMinY(rect) Z:NSWidth(rect) W:NSHeight(rect)] forKey:@"inputExtent"];
-            break;
-            
-        case SKDisintegrateTransition:
-        {
-            transitionFilter = [self 
filterWithName:@"CIDisintegrateWithMaskTransition"];
-            
-            // Scale and translate our mask image to match the transition area 
size.
-            CIFilter *maskScalingFilter = [self 
filterWithName:@"CILanczosScaleTransform"];
-            CGRect maskExtent = [[self inputMaskImage] extent];
-            float xScale = NSWidth(rect) / CGRectGetWidth(maskExtent);
-            float yScale = NSHeight(rect) / CGRectGetHeight(maskExtent);
-            [maskScalingFilter setValue:[NSNumber numberWithFloat:yScale] 
forKey:@"inputScale"];
-            [maskScalingFilter setValue:[NSNumber numberWithFloat:xScale / 
yScale] forKey:@"inputAspectRatio"];
-            [maskScalingFilter setValue:[self inputMaskImage] 
forKey:@"inputImage"];
-            CIFilter *maskTranslationFilter = [self 
filterWithName:@"CIAffineTransform"];
-            NSAffineTransform *affineTransform = [NSAffineTransform transform];
-            [affineTransform translateXBy:NSMinX(rect) - NSMinX(bounds) 
yBy:NSMinY(rect) - NSMinY(bounds)];
-            [maskTranslationFilter setValue:affineTransform 
forKey:@"inputTransform"];
-            [maskTranslationFilter setValue:[maskScalingFilter 
valueForKey:@"outputImage"] forKey:@"inputImage"];
-            
-            [transitionFilter setValue:[maskTranslationFilter 
valueForKey:@"outputImage"] forKey:@"inputMaskImage"];
-            break;
-        }
-        case SKDissolveTransition:
-            transitionFilter = [self filterWithName:@"CIDissolveTransition"];
-            break;
-            
-        case SKFlashTransition:
-            transitionFilter = [self filterWithName:@"CIFlashTransition"];
-            [transitionFilter setValue:[CIVector vectorWithX:NSMidX(rect) 
Y:NSMidY(rect)] forKey:@"inputCenter"];
-            [transitionFilter setValue:[CIVector vectorWithX:NSMinX(bounds) 
Y:NSMinY(bounds) Z:NSWidth(bounds) W:NSHeight(bounds)] forKey:@"inputExtent"];
-            break;
-            
-        case SKModTransition:
-            transitionFilter = [self filterWithName:@"CIModTransition"];
-            [transitionFilter setValue:[CIVector vectorWithX:NSMidX(rect) 
Y:NSMidY(rect)] forKey:@"inputCenter"];
-            break;
-            
-        case SKPageCurlTransition:
-            transitionFilter = [self filterWithName:@"CIPageCurlTransition"];
+    NSEnumerator *keyEnum = [[transitionFilter inputKeys] objectEnumerator];
+    NSString *key;
+    
+    while (key = [keyEnum nextObject]) {
+        if([key isEqualToString:@"inputExtent"]) {
+            NSRect extent = shouldRestrict ? rect : bounds;
+            [transitionFilter setValue:[CIVector vectorWithX:NSMinX(extent) 
Y:NSMinY(extent) Z:NSWidth(extent) W:NSHeight(extent)] forKey:key];
+        } else if([key isEqualToString:@"inputAngle"] && [filterName 
isEqualToString:@"CIPageCurlTransition"]) {
             [transitionFilter setValue:[NSNumber numberWithFloat:-M_PI_4] 
forKey:@"inputAngle"];
-            [transitionFilter setValue:initialCIImage 
forKey:@"inputBacksideImage"];
-            [transitionFilter setValue:[self inputShadingImage] 
forKey:@"inputShadingImage"];
-            [transitionFilter setValue:[CIVector vectorWithX:NSMinX(rect) 
Y:NSMinY(rect) Z:NSWidth(rect) W:NSHeight(rect)] forKey:@"inputExtent"];
-            break;
+        } else if([key isEqualToString:@"inputCenter"]) {
+            [transitionFilter setValue:[CIVector vectorWithX:NSMidX(rect) 
Y:NSMidY(rect)] forKey:key];
+        } else {
+            NSString *classType = [[[transitionFilter attributes] 
objectForKey:key] objectForKey:kCIAttributeClass];
             
-        case SKSwipeTransition:
-            transitionFilter = [self filterWithName:@"CISwipeTransition"];
-            [transitionFilter setValue:[CIVector vectorWithX:NSMinX(rect) 
Y:NSMinY(rect) Z:NSWidth(rect) W:NSHeight(rect)] forKey:@"inputExtent"];
-            break;
-            
-        case SKRippleTransition:
-        default:
-            transitionFilter = [self filterWithName:@"CIRippleTransition"];
-            [transitionFilter setValue:[CIVector vectorWithX:NSMidX(rect) 
Y:NSMidY(rect)] forKey:@"inputCenter"];
-            [transitionFilter setValue:[CIVector vectorWithX:NSMinX(bounds) 
Y:NSMinY(bounds) Z:NSWidth(bounds) W:NSHeight(bounds)] forKey:@"inputExtent"];
-            [transitionFilter setValue:[self inputShadingImage] 
forKey:@"inputShadingImage"];
-            break;
+            if([classType isEqualToString:@"CIImage"]) {
+                if([key isEqualToString:@"inputShadingImage"]) {
+                    [transitionFilter setValue:[self inputShadingImage] 
forKey:key];
+                } else if ([key isEqualToString:@"inputBacksideImage"]) {
+                    [transitionFilter setValue:initialCIImage forKey:key];
+                } else  {
+                    // Scale and translate our mask image to match the 
transition area size.
+                    CIFilter *maskScalingFilter = [self 
filterWithName:@"CILanczosScaleTransform"];
+                    CGRect maskExtent = [[self inputMaskImage] extent];
+                    float xScale = NSWidth(rect) / CGRectGetWidth(maskExtent);
+                    float yScale = NSHeight(rect) / 
CGRectGetHeight(maskExtent);
+                    [maskScalingFilter setValue:[NSNumber 
numberWithFloat:yScale] forKey:@"inputScale"];
+                    [maskScalingFilter setValue:[NSNumber 
numberWithFloat:xScale / yScale] forKey:@"inputAspectRatio"];
+                    [maskScalingFilter setValue:[self inputMaskImage] 
forKey:@"inputImage"];
+                    CIFilter *maskTranslationFilter = [self 
filterWithName:@"CIAffineTransform"];
+                    NSAffineTransform *affineTransform = [NSAffineTransform 
transform];
+                    [affineTransform translateXBy:NSMinX(rect) - 
NSMinX(bounds) yBy:NSMinY(rect) - NSMinY(bounds)];
+                    [maskTranslationFilter setValue:affineTransform 
forKey:@"inputTransform"];
+                    [maskTranslationFilter setValue:[maskScalingFilter 
valueForKey:@"outputImage"] forKey:@"inputImage"];
+                    
+                    [transitionFilter setValue:[maskTranslationFilter 
valueForKey:@"outputImage"] forKey:key];
+                }
+            }
+        }
     }
     
     if (NSEqualRects(rect, bounds) == NO) {
@@ -211,7 +200,7 @@
 - 
(void)prepareForAnimationWithTransitionStyle:(SKAnimationTransitionStyle)transitionStyle
 fromRect:(NSRect)rect {
        if (transitionStyle == SKNoTransition) {
 
-       } else if (transitionStyle < SKCopyMachineTransition) {
+       } else if (transitionStyle < SKCoreImageTransition) {
         // We don't want the window to draw the next state before the 
animation is run
         [[view window] disableFlushWindow];
     } else {
@@ -228,10 +217,10 @@
     }
 }
 
-- (void)animateWithTransitionStyle:(SKAnimationTransitionStyle)transitionStyle 
direction:(CGSTransitionOption)direction duration:(float)duration 
fromRect:(NSRect)rect {
+- (void)animateWithTransitionStyle:(SKAnimationTransitionStyle)transitionStyle 
direction:(CGSTransitionOption)direction duration:(float)duration 
fromRect:(NSRect)rect shouldRestrict:(BOOL)shouldRestrict {
        if (transitionStyle == SKNoTransition) {
 
-       } else if (transitionStyle < SKCopyMachineTransition) {
+       } else if (transitionStyle < SKCoreImageTransition) {
         
         // declare our variables  
         int handle = -1;
@@ -257,7 +246,7 @@
         [[view window] flushWindow];
         
         CGSInvokeTransition(cgs, handle, duration);
-        // We need to wait for the transition to finish before we get rid of 
it, otherwise we’ll get all sorts of nasty errors... or maybe not.
+        // We need to wait for the transition to finish before we get rid of 
it, otherwise we'll get all sorts of nasty errors... or maybe not.
         usleep((useconds_t)(duration * 1000000));
         
         CGSReleaseTransition(cgs, handle);
@@ -275,7 +264,7 @@
         [view cacheDisplayInRect:bounds toBitmapImageRep:finalContentBitmap];
         CIImage *finalImage = [[CIImage alloc] 
initWithBitmapImageRep:finalContentBitmap];
         
-        CIFilter *transitionFilter = [self transitionFilter:transitionStyle 
forRect:imageRect inBounds:[view bounds] initialCIImage:initialImage 
finalCIImage:finalImage];
+        CIFilter *transitionFilter = [self transitionFilter:transitionStyle 
forRect:imageRect inBounds:[view bounds] shouldRestrict:shouldRestrict 
initialCIImage:initialImage finalCIImage:finalImage];
         
         [finalImage release];
         [initialImage release];


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 DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to