今回のテーマは、デスクトップマスコットです。Quartz Composer で作ったアニメーションをデスクトップマスコットにします。
推奨環境 この解説は、以下の環境が必要です。ご確認ください。
改版履歴
今回のテーマは、デスクトップマスコットです。Quartz Composer で作ったアニメーションをデスクトップマスコットにします。具体的には、以下のような感じです。Quartz Composer のアニメーションは、スクリーンセーバのように画面全体に表示するか、四角いウィンドウの中に表示するのが一般的ですが、ウィンドウの枠を取り払ったこのような表示も可能なのです。
やるべきことは、3つ。
Quartz Composer のアニメーションの背景を透明にするには、Clear パッチを置き、Clear Color を透明色にします。具体的には以下のようにします。
QCView の背景を透明にするには、Interface Builder 上で、Attributes の Erase Color に透明色を指定します。具体的には以下のようにします。
ウィンドウを透明化するのは、Apple のサンプルにありますので、それをそのまま使います。NSWindow のサブクラスを作って、以下の初期化メソッドをオーバーライドします。やっていることは、背景を透明色で塗ることです。
- (id) initWithContentRect : (NSRect) contentRect
styleMask : (unsigned int) aStyle
backing : (NSBackingStoreType) bufferingType
defer : (BOOL) flag
{
NSWindow* result = [ super initWithContentRect : contentRect
styleMask : NSBorderlessWindowMask
backing : NSBackingStoreBuffered
defer : NO ];
[ result setBackgroundColor : [ NSColor clearColor ] ]; // 透明色で塗る
[ result setAlphaValue : 1.0 ];
[ result setOpaque : NO ];
[ result setHasShadow : YES ];
return result;
}