Я пытаюсь нарисовать отражение формы с помощью Cocoa. Я уже применил NSAffineTransform и успешно перерисовал фигуру, но теперь не могу понять, как нарисовать поверх нее альфа-маску. Я использую операцию NSCompositeDestinationOut
, но она дает нежелательный результат:http://img687.imageshack.us/img687/2417/capturedcran20100623094.png
Я не совсем уверен, как это исправить - мне нужно сделать так, чтобы градиент действовал только как альфа-маска и фактически не отображался. Я использую неправильный режим композитинга?
Спасибо! Вот код градиента, если необходимо:
- (void)fadeOutRect:(NSRect)rect {
[NSGraphicsContext saveGraphicsState];
[[NSGraphicsContext currentContext] setCompositingOperation:NSCompositeDestinationOut];
NSGradient *gradient = [[NSGradient alloc] initWithColorsAndLocations:
[[NSColor blackColor] colorWithAlphaComponent:0.5], 0.0,
[[NSColor blackColor] colorWithAlphaComponent:1.0], 0.8, nil];
[gradient drawInRect:NSMakeRect(rect.origin.x, rect.origin.y + rect.size.height - ( PILL_HEIGHT * 2 ),
rect.size.width, PILL_HEIGHT) angle:270];
[NSGraphicsContext restoreGraphicsState];
}