Revision: 12529
          http://sourceforge.net/p/skim-app/code/12529
Author:   hofman
Date:     2021-11-06 18:08:31 +0000 (Sat, 06 Nov 2021)
Log Message:
-----------
Combine CIColorInvert and CIHueAdjust into a single CIColorMatrix

Modified Paths:
--------------
    trunk/NSGraphics_SKExtensions.m

Modified: trunk/NSGraphics_SKExtensions.m
===================================================================
--- trunk/NSGraphics_SKExtensions.m     2021-11-06 10:42:17 UTC (rev 12528)
+++ trunk/NSGraphics_SKExtensions.m     2021-11-06 18:08:31 UTC (rev 12529)
@@ -184,6 +184,9 @@
 
 #pragma mark -
 
+#define A 0.329
+#define B -0.658
+
 extern NSArray *SKColorEffectFilters(void) {
     NSMutableArray *filters = [NSMutableArray array];
     CIFilter *filter;
@@ -194,10 +197,10 @@
     }
     if (SKHasDarkAppearance(NSApp) && [[NSUserDefaults standardUserDefaults] 
boolForKey:SKInvertColorsInDarkModeKey]) {
         // this is almost equivalent to CIColorInvert, but with white mapped 
to dark gray ~ controlBackgroundColor
-        if ((filter = [CIFilter filterWithName:@"CIColorMatrix" 
keysAndValues:@"inputRVector", [CIVector vectorWithX:-0.987 Y:0.0 Z:0.0], 
@"inputGVector", [CIVector vectorWithX:0.0 Y:-0.987 Z:0.0], @"inputBVector", 
[CIVector vectorWithX:0.0 Y:0.0 Z:-0.987], @"inputBiasVector", [CIVector 
vectorWithX:1.0 Y:1.0 Z:1.0], nil]))
+        // combined with a matrix representation of CIHueAdjust with 
inpueAngle=M_PI
+        // CIColorInvert+CIHueAdjust would be A=1/3, B=-2/3
+        if ((filter = [CIFilter filterWithName:@"CIColorMatrix" 
keysAndValues:@"inputRVector", [CIVector vectorWithX:A Y:B Z:B], 
@"inputGVector", [CIVector vectorWithX:B Y:A Z:B], @"inputBVector", [CIVector 
vectorWithX:B Y:B Z:A], @"inputBiasVector", [CIVector vectorWithX:1.0 Y:1.0 
Z:1.0], nil]))
             [filters addObject:filter];
-        if ((filter = [CIFilter filterWithName:@"CIHueAdjust" 
keysAndValues:kCIInputAngleKey, [NSNumber numberWithDouble:M_PI], nil]))
-            [filters addObject:filter];
     }
     return filters;
 }

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