Guest User

Untitled

a guest
Apr 25th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. @implementation NSBezierPath (Additions)
  2.  
  3. - (void)fillGradientFrom:(NSColor*)inStartColor to:(NSColor*)inEndColor angle:(float)inAngle {
  4. CIImage* coreimage;
  5.  
  6. inStartColor = [inStartColor colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
  7. inEndColor = [inEndColor colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
  8.  
  9. CIColor* startColor = [CIColor colorWithRed:[inStartColor redComponent] green:[inStartColor greenComponent] blue:[inStartColor blueComponent] alpha:[inStartColor alphaComponent]];
  10. CIColor* endColor = [CIColor colorWithRed:[inEndColor redComponent] green:[inEndColor greenComponent] blue:[inEndColor blueComponent] alpha:[inEndColor alphaComponent]];
  11.  
  12. CIFilter* filter;
  13.  
  14. filter = [CIFilter filterWithName:@"CILinearGradient"];
  15. [filter setValue:startColor forKey:@"inputColor0"];
  16. [filter setValue:endColor forKey:@"inputColor1"];
  17.  
  18. CIVector* startVector;
  19. CIVector* endVector;
  20.  
  21. startVector = [CIVector vectorWithX:0.0 Y:0.0];
  22. endVector = [CIVector vectorWithX:0.0 Y:[self bounds].size.height];
  23.  
  24. [filter setValue:startVector forKey:@"inputPoint0"];
  25. [filter setValue:endVector forKey:@"inputPoint1"];
  26.  
  27. coreimage = [filter valueForKey:@"outputImage"];
  28.  
  29.  
  30. [[NSGraphicsContext currentContext] saveGraphicsState];
  31.  
  32. CIContext* context;
  33.  
  34. context = [[NSGraphicsContext currentContext] CIContext];
  35.  
  36. [self setClip];
  37.  
  38. [context drawImage:coreimage atPoint:CGPointZero fromRect:
  39. CGRectMake( 0.0, 0.0, [self bounds].size.width, [self bounds].size.height )];
  40.  
  41. [[NSGraphicsContext currentContext] restoreGraphicsState];
  42. }
  43.  
  44.  
  45. @end
  46.  
  47.  
  48.  
  49.  
  50.  
  51. Use:
  52.  
  53. NSColor *startColor = [NSColor colorWithCalibratedRed:0xff/255. green:0xff/255. blue:0xff/255. alpha:1.0];
  54. NSColor *endColor = [NSColor colorWithCalibratedRed:0x99/255. green:0x99/255. blue:0x99/255. alpha:1.0];
  55.  
  56. NSBezierPath *path = [NSBezierPath bezierPathWithRect:eventsFrame];
  57. [path fillGradientFrom:startColor to:endColor angle:0.0];
Add Comment
Please, Sign In to add comment