ページ

2008年3月30日日曜日

NSShadow

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

NSShadow を使って影を付けてみる。元ネタは ADCのドキュメントより。
ADC:Adding Shadows to Drawn Paths



ソース:Shadow.zip

MyView.h

- (void)drawRect:(NSRect)rect {
// Drawing code here.
[NSGraphicsContext saveGraphicsState];
NSShadow* shadow = [[NSShadow alloc] init];
[shadow setShadowOffset:NSMakeSize(10.0, -10.0)];
[shadow setShadowBlurRadius:3.0];
[shadow setShadowColor:[[NSColor blackColor] colorWithAlphaComponent:0.3]];
[shadow set];

[_image drawInRect:NSMakeRect(50, 50, 200, 180)
fromRect:NSZeroRect
operation:NSCompositeSourceOver
fraction:1.0];

[NSGraphicsContext restoreGraphicsState];
[shadow release];
}


NSShadowを作り、#set を実行する。その後の描画に対して影が付く。実に簡単。よくできているな。

- - - -
さて次回はRoundRectにこれを組み合わせてみる。