2007年7月4日水曜日

NSViewからNSVIewへのトランジションをCoreImageで/ 1

追記(2008/10/06): サンプルプロジェクトを作った.エントリーと異なる部分もあるが許してください.


とりあえず概略
1.[大方針]NSTabViewでViewを2つ用意して切り替える.(Tabは非表示にしきます)
2.NSTabViewの子要素を用意して切り替えメソッドにトランジションを割り込ませる
   参考:“Interface Builder (IB)上の要素の子要素(拡張:extends (java))を作る
      “NSViewからNSVIewへのトランジションをCoreImageで/ 2
3.切換え前のView(NSTabViewItem *)からCIImageを一枚
   参考:“Core ImageのCIImageをNSViewからサクッとつくる
      “NSViewからNSVIewへのトランジションをCoreImageで/ 3
4.切換え後のViewからCIImageを一枚
   参考:“Core ImageのCIImageをNSViewからサクッとつくる
      “NSViewからNSVIewへのトランジションをCoreImageで/ 3
5.こいつをCIFilterのトランジションを用いてつなぐ
   参考:“NSViewからNSVIewへのトランジションをCoreImageで/ 4
6.NSAnimationをつかって切換え時のアニメーション時間制御
   参考:“NSViewからNSVIewへのトランジションをCoreImageで/ 5
7.NSAnimationが"setCurrentProgress"を呼び出すタイミングでトランジション画像を描画
   参考:“NSViewからNSVIewへのトランジションをCoreImageで/ 5
8.このときNSAnimationが持っている0-1.0への時間をCIFilterに与えると中間画像が得られる.
   参考:“NSViewからNSVIewへのトランジションをCoreImageで/ 6
9.中間画像をdrawメソッドで描いて(正確にはdrawの中で8をします)実現.
   参考:“NSViewからNSVIewへのトランジションをCoreImageで/ 6

参考ソース:
Core Image NSView Transitions [fernLightning]
http://www.fernlightning.com/doku.php?id=randd:fancy:start
ありがとうございます.

0 件のコメント: