Core Graphics >     CGDisplayStreamFrameAvailableHandler


型エイリアス


CGDisplayStreamFrameAvailableHandler


処理すべき新しいフレーム・イベントがデータ・ストリームにあるときに呼び出されるブロック。





宣言


typealias CGDisplayStreamFrameAvailableHandler = (CGDisplayStreamFrameStatus, UInt64, IOSurfaceRef?, CGDisplayStreamUpdate?) -> Void


議論


ディスプレイストリームに処理すべき更新コンテンツがあるとき、および他のイベントが発生したときにハンドラが呼び出されます。新しいフレームが生成されるたびに、ブロックはピクセルデータとフレーム更新を記述する更新オブジェクトを含む IOSurface オブジェクトを受け取ります。


ハンドラは以下のパラメータを受け取ります。


statusハンドラに渡される更新の種類を記述します。CGDisplayStreamFrameStatus を参照してください。
displayTimeイベントが発生したときのマッハの絶対時間。フレームイベントの場合は、フレームがウィンドウサーバーによって表示されたときです。
frameSurfaceピクセルデータを含む IOSurface オブジェクト。場合によっては NULL になることがあります。

ハンドラ呼び出しの寿命を超えてサーフェスへの参照を維持する必要がある場合は、サーフェスを保持するために CFRetain 関数を呼び出さなければなりません。また、IOSurfaceIncrementUseCount(_:) 関数を使用して、フレームが再使用の準備されていないことをディスプレイストリームに知らせなければなりません。サーフェスの使用が終了したら、IOSurfaceDecrementUseCount(_:) 関数を呼び出して、CFRelease 関数を呼び出さなければなりません。サーフェス(サーフェスのコンテンツから作成された GL テクスチャオブジェクトなど) に関する情報のキャッシュを保持している場合は、キャッシュから削除するまで解放してはいけません。

ディスプレイストリームで使用されているサーフェスの集合を静的にすることはできません。したがって、しばらくの間再利用されていないサーフェスをキャッシュから削除する必要があります。
updateRef現在のフレームの更新メタデータを保持する CGDisplayStreamUpdate への参照。

ハンドラ呼び出しの存続期間を超えてメタデータを保持する必要がある場合は、ハンドラの終了前に更新参照で CFRetain 関数を呼び出す必要があります。更新が終了したら、CFRelease 関数を呼び出して下さい。

このパラメータは、status パラメータの値が frameComplete 以外の場合は NULL を保持します。





目次
Xcode の新機能

  • 言語:Swift | Objective-C
  • SDK
  • macOS 10.8+
  • 宣言
  • 議論












  • トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)












    トップへ(Core Graphics)