Revision: 12774
          http://sourceforge.net/p/skim-app/code/12774
Author:   hofman
Date:     2022-02-09 17:03:00 +0000 (Wed, 09 Feb 2022)
Log Message:
-----------
combine cover and split kernels

Modified Paths:
--------------
    trunk/SkimTransitions/CoverTransition/SKTCoverTransition.m
    trunk/SkimTransitions/RevealTransition/SKTRevealTransition.m
    trunk/SkimTransitions/SKTTransitions.cikernel
    trunk/SkimTransitions/SlideTransition/SKTSlideTransition.m

Modified: trunk/SkimTransitions/CoverTransition/SKTCoverTransition.m
===================================================================
--- trunk/SkimTransitions/CoverTransition/SKTCoverTransition.m  2022-02-09 
15:54:50 UTC (rev 12773)
+++ trunk/SkimTransitions/CoverTransition/SKTCoverTransition.m  2022-02-09 
17:03:00 UTC (rev 12774)
@@ -22,7 +22,7 @@
 - (id)init
 {
     if (_SKTCoverTransitionKernel == nil)
-        _SKTCoverTransitionKernel = [SKTPlugInLoader 
kernelWithName:@"coverComposition"];
+        _SKTCoverTransitionKernel = [SKTPlugInLoader 
kernelWithName:@"offsetComposition"];
     return [super init];
 }
 
@@ -65,7 +65,7 @@
 
 - (CGRect)regionOf:(int)sampler destRect:(CGRect)R userInfo:(CIVector *)offset 
{
     if (sampler == 0) {
-        R = CGRectOffset(R, -[offset X], -[offset Y]);
+        R = CGRectOffset(R, [offset X], [offset Y]);
     }
     return R;
 }
@@ -79,12 +79,13 @@
     CGFloat angle = [inputAngle doubleValue];
     CGFloat c = cos(angle);
     CGFloat s = sin(angle);
-    CGFloat d = [inputExtent Z] * (1.0 - t) / fmax(fabs(c), fabs(s));
-    NSNumber *shade = [NSNumber numberWithDouble:1.0 - 0.2 * t];
-    CIVector *offset = [CIVector vectorWithX:d * c Y:d * s];
+    CGFloat d = [inputExtent Z] * (t - 1.0) / fmax(fabs(c), fabs(s));
+    NSNumber *darken = [NSNumber numberWithDouble:1.0 - 0.2 * t];
+    CIVector *offset1 = [CIVector vectorWithX:d * c Y:d * s];
+    CIVector *offset2 = [CIVector vectorWithX:0.0 Y:0.0];
     NSArray *extent = [NSArray arrayWithObjects:[NSNumber 
numberWithDouble:[inputExtent X]], [NSNumber numberWithDouble:[inputExtent Y]], 
[NSNumber numberWithDouble:[inputExtent Z]], [NSNumber 
numberWithDouble:[inputExtent W]], nil];
-    NSArray *arguments = [NSArray arrayWithObjects:trgt, src, inputExtent, 
offset, shade, nil];
-    NSDictionary *options  = [NSDictionary 
dictionaryWithObjectsAndKeys:extent, kCIApplyOptionDefinition, extent, 
kCIApplyOptionExtent, offset, kCIApplyOptionUserInfo, nil];
+    NSArray *arguments = [NSArray arrayWithObjects:trgt, src, inputExtent, 
offset1, offset2, darken, nil];
+    NSDictionary *options  = [NSDictionary 
dictionaryWithObjectsAndKeys:extent, kCIApplyOptionDefinition, extent, 
kCIApplyOptionExtent, offset1, kCIApplyOptionUserInfo, nil];
     
     [_SKTCoverTransitionKernel 
setROISelector:@selector(regionOf:destRect:userInfo:)];
     

Modified: trunk/SkimTransitions/RevealTransition/SKTRevealTransition.m
===================================================================
--- trunk/SkimTransitions/RevealTransition/SKTRevealTransition.m        
2022-02-09 15:54:50 UTC (rev 12773)
+++ trunk/SkimTransitions/RevealTransition/SKTRevealTransition.m        
2022-02-09 17:03:00 UTC (rev 12774)
@@ -22,7 +22,7 @@
 - (id)init
 {
     if (_SKTRevealTransitionKernel == nil)
-        _SKTRevealTransitionKernel = [SKTPlugInLoader 
kernelWithName:@"coverComposition"];
+        _SKTRevealTransitionKernel = [SKTPlugInLoader 
kernelWithName:@"offsetComposition"];
     return [super init];
 }
 
@@ -65,7 +65,7 @@
 
 - (CGRect)regionOf:(int)sampler destRect:(CGRect)R userInfo:(CIVector *)offset 
{
     if (sampler == 0) {
-        R = CGRectOffset(R, -[offset X], -[offset Y]);
+        R = CGRectOffset(R, [offset X], [offset Y]);
     }
     return R;
 }
@@ -79,12 +79,13 @@
     CGFloat angle = [inputAngle doubleValue];
     CGFloat c = cos(angle);
     CGFloat s = sin(angle);
-    CGFloat d = -[inputExtent Z] * t / fmax(fabs(c), fabs(s));
+    CGFloat d = [inputExtent Z] * t / fmax(fabs(c), fabs(s));
     NSNumber *shade = [NSNumber numberWithDouble:0.8 + 0.2 * t];
-    CIVector *offset = [CIVector vectorWithX:d * c Y:d * s];
+    CIVector *offset1 = [CIVector vectorWithX:d * c Y:d * s];
+    CIVector *offset2 = [CIVector vectorWithX:0.0 Y:0.0];
     NSArray *extent = [NSArray arrayWithObjects:[NSNumber 
numberWithFloat:[inputExtent X]], [NSNumber numberWithFloat:[inputExtent Y]], 
[NSNumber numberWithFloat:[inputExtent Z]], [NSNumber 
numberWithFloat:[inputExtent W]], nil];
-    NSArray *arguments = [NSArray arrayWithObjects:src, trgt, inputExtent, 
offset, shade, nil];
-    NSDictionary *options  = [NSDictionary 
dictionaryWithObjectsAndKeys:extent, kCIApplyOptionDefinition, extent, 
kCIApplyOptionExtent, offset, kCIApplyOptionUserInfo, nil];
+    NSArray *arguments = [NSArray arrayWithObjects:src, trgt, inputExtent, 
offset1, offset2, shade, nil];
+    NSDictionary *options  = [NSDictionary 
dictionaryWithObjectsAndKeys:extent, kCIApplyOptionDefinition, extent, 
kCIApplyOptionExtent, offset1, kCIApplyOptionUserInfo, nil];
     
     [_SKTRevealTransitionKernel 
setROISelector:@selector(regionOf:destRect:userInfo:)];
     

Modified: trunk/SkimTransitions/SKTTransitions.cikernel
===================================================================
--- trunk/SkimTransitions/SKTTransitions.cikernel       2022-02-09 15:54:50 UTC 
(rev 12773)
+++ trunk/SkimTransitions/SKTTransitions.cikernel       2022-02-09 17:03:00 UTC 
(rev 12774)
@@ -18,18 +18,20 @@
     return dot(step(rect.xy, t1), step(t1, rect.xy + rect.zw)) < 2.0 ? 
sample(back, samplerCoord(back)) : sample(front, samplerCoord(front));
 }
 
-kernel vec4 coverComposition(sampler front, sampler back, vec4 extent, vec2 
offset, float shade)
+kernel vec4 offsetComposition(sampler front, sampler back, vec4 extent, vec2 
offset1, vec2 offset2, float darken)
 {
-    vec2 t1;
+    vec2 t1, t2;
     vec4 p1, p2;
     
-    t1 = destCoord() - offset;
-    p1 = sample(back, samplerTransform(back, destCoord()));
-    p2 = sample(front, samplerTransform(front, t1));
-    p2 = t1.x < extent.x ? vec4(0.0) : (t1.x > extent.x + extent.z ? vec4(0.0) 
: (t1.y < extent.y ? vec4(0.0) : (t1.y > extent.y + extent.w ? vec4(0.0) : 
p2)));
-    p1.rgb *= shade;
+    t1 = destCoord() + offset1;
+    t2 = destCoord() + offset2;
+    p1 = sample(front, samplerTransform(front, t1));
+    p2 = sample(back, samplerTransform(back, t2));
+    p1 = t1.x < extent.x ? vec4(0.0) : (t1.x > extent.x + extent.z ? vec4(0.0) 
: (t1.y < extent.y ? vec4(0.0) : (t1.y > extent.y + extent.w ? vec4(0.0) : 
p1)));
+    p2 = t2.x < extent.x ? vec4(0.0) : (t2.x > extent.x + extent.z ? vec4(0.0) 
: (t2.y < extent.y ? vec4(0.0) : (t2.y > extent.y + extent.w ? vec4(0.0) : 
p2)));
+    p2.rgb *= darken;
     
-    return p2 + (1.0 - p2.a) * p1;
+    return p1 + (1.0 - p1.a) * p2;
 }
 
 kernel vec4 holeDistortion(sampler src, sampler trgt, vec2 center, float 
radius)  {
@@ -121,21 +123,6 @@
     return p1 + (1.0 - p1.a) * p2;
 }
 
-kernel vec4 slideTransition(sampler src, sampler trgt, vec4 extent, vec2 
offset1, vec2 offset2)
-{
-    vec2 t1, t2;
-    vec4 p1, p2;
-    
-    t1 = destCoord() + offset1;
-    t2 = destCoord() + offset2;
-    p1 = sample(src, samplerTransform(src, t1));
-    p2 = sample(trgt, samplerTransform(trgt, t2));
-    p1 = t1.x < extent.x ? vec4(0.0) : (t1.x > extent.x + extent.z ? vec4(0.0) 
: (t1.y < extent.y ? vec4(0.0) : (t1.y > extent.y + extent.w ? vec4(0.0) : 
p1)));
-    p2 = t2.x < extent.x ? vec4(0.0) : (t2.x > extent.x + extent.z ? vec4(0.0) 
: (t2.y < extent.y ? vec4(0.0) : (t2.y > extent.y + extent.w ? vec4(0.0) : 
p2)));
-
-    return p1 + (1.0 - p1.a) * p2;
-}
-
 kernel vec4 stripsTransition(sampler src, sampler trgt, vec4 extent, float 
width, float t)
 {
     vec2 t1;

Modified: trunk/SkimTransitions/SlideTransition/SKTSlideTransition.m
===================================================================
--- trunk/SkimTransitions/SlideTransition/SKTSlideTransition.m  2022-02-09 
15:54:50 UTC (rev 12773)
+++ trunk/SkimTransitions/SlideTransition/SKTSlideTransition.m  2022-02-09 
17:03:00 UTC (rev 12774)
@@ -22,7 +22,7 @@
 - (id)init
 {
     if (_SKTSlideTransitionKernel == nil)
-        _SKTSlideTransitionKernel = [SKTPlugInLoader 
kernelWithName:@"slideTransition"];
+        _SKTSlideTransitionKernel = [SKTPlugInLoader 
kernelWithName:@"offsetComposition"];
     return [super init];
 }
 
@@ -81,8 +81,9 @@
     CGFloat d2 = [inputExtent Z] * (t - 1.0) / fmax(fabs(c), fabs(s));
     CIVector *offset1 = [CIVector vectorWithX:d1 * c Y:d1 * s];
     CIVector *offset2 = [CIVector vectorWithX:d2 * c Y:d2 * s];
+    NSNumber *one = [NSNumber numberWithDouble:1.0];
     NSArray *extent = [NSArray arrayWithObjects:[NSNumber 
numberWithDouble:[inputExtent X]], [NSNumber numberWithDouble:[inputExtent Y]], 
[NSNumber numberWithDouble:[inputExtent Z]], [NSNumber 
numberWithDouble:[inputExtent W]], nil];
-    NSArray *arguments = [NSArray arrayWithObjects:src, trgt, inputExtent, 
offset1, offset2, nil];
+    NSArray *arguments = [NSArray arrayWithObjects:src, trgt, inputExtent, 
offset1, offset2, one, nil];
     NSArray *userInfo = [NSArray arrayWithObjects:offset1, offset2, nil];
     NSDictionary *options  = [NSDictionary 
dictionaryWithObjectsAndKeys:extent, kCIApplyOptionDefinition, extent, 
kCIApplyOptionExtent, userInfo, kCIApplyOptionUserInfo, nil];
     

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



_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to