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