実装メモ
|
| 項目 | 初期値 |
| viewport | メインスクリーンのサイズいっぱい |
| clearColor | RGBA(0.0,0.0,0.0,0.0) |
| colorUpdate | enable |
| clearDepth | 1.0 |
| depthUpdate | enable |
| depthCompare | always |
| mtxProj | ortho l-r(-1,1) b-t(-1,1) n-f(0,1) |
| mtxView | identity |
こんな感じかな。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | - | | | | | ! - | | | | | | | | | | ! - | | | | | | | - | | | | | ! | | | | | | | | ! | |
スレッドでUIViewとかUIWindowを作っても表示されないところで数時間はまった。
スレッドがexitせずにsleepする状態だと怒るらしい。
スレッドを寝かす前に CATransaction::flush() で明示的にCoreAnimationを更新してやるといけた。
正しい方法かどうかは不明…。
元々WinとMacのクロスプラットフォームで考えていましたが
流行のiOSも対応させてみるのはおもしろそうと思いちょっと考えてみました。
iOS対応となると一番ネックなのがイベントドリブン式になるということ。
didFinishLaunchingWithOptions
applicationWillTerminate
applicationWillResignActive
applicationDidBecomeActive
初期化・後始末・アクティブ化・非アクティブ化のイベント。
後は毎秒60回のイベントが流れてくると考えれば良さそうです。
…という要件からメインループを書いてみる。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| - | | | | - | | | - | | | | | | | | | | | | | | | | | ! ! ! | |
なんとかいけるかな?