Core Graphics >     CGDisplayStreamFrameAvailableHandler
型エイリアス
CGDisplayStreamFrameAvailableHandler
処理すべき新しいフレーム・イベントがデータ・ストリームにあるときに呼び出されるブロック。
宣言
議論
ディスプレイストリームに処理すべき更新コンテンツがあるとき、および他のイベントが発生したときにハンドラが呼び出されます。新しいフレームが生成されるたびに、ブロックはピクセルデータとフレーム更新を記述する更新オブジェクトを含む IOSurface オブジェクトを受け取ります。
ハンドラは以下のパラメータを受け取ります。
status | ハンドラに渡される更新の種類を記述します。CGDisplayStreamFrameStatus を参照してください。 |
displayTime | イベントが発生したときのマッハの絶対時間。フレームイベントの場合は、フレームがウィンドウサーバーによって表示されたときです。 |
frameSurface | ピクセルデータを含む IOSurface オブジェクト。場合によっては NULL になることがあります。 ハンドラ呼び出しの寿命を超えてサーフェスへの参照を維持する必要がある場合は、サーフェスを保持するために CFRetain 関数を呼び出さなければなりません。また、IOSurfaceIncrementUseCount(_:) 関数を使用して、フレームが再使用の準備されていないことをディスプレイストリームに知らせなければなりません。サーフェスの使用が終了したら、IOSurfaceDecrementUseCount(_:) 関数を呼び出して、CFRelease 関数を呼び出さなければなりません。サーフェス(サーフェスのコンテンツから作成された GL テクスチャオブジェクトなど) に関する情報のキャッシュを保持している場合は、キャッシュから削除するまで解放してはいけません。 ディスプレイストリームで使用されているサーフェスの集合を静的にすることはできません。したがって、しばらくの間再利用されていないサーフェスをキャッシュから削除する必要があります。 |
updateRef | 現在のフレームの更新メタデータを保持する CGDisplayStreamUpdate への参照。 ハンドラ呼び出しの存続期間を超えてメタデータを保持する必要がある場合は、ハンドラの終了前に更新参照で CFRetain 関数を呼び出す必要があります。更新が終了したら、CFRelease 関数を呼び出して下さい。 このパラメータは、status パラメータの値が frameComplete 以外の場合は NULL を保持します。 |