2011-12-30 6 views
6

Xcode 4の "Capture OpenGL ES Frame"機能は素晴らしいです。これは、単一のレンダリングフレーム中に行われたすべてのOpenGL関連の呼び出しをリストします。しかし、私のコードにこれらの呼び出しを接続し、重要なデータをより簡単に検索するのに役立つ追加機能があります。この機能がすでに利用可能かどうかは分かりません。XcodeでOpenGL ESフレームキャプチャデータにアノテーションを追加するにはどうすればよいですか?

自分の「注釈」を追加することも、キャプチャされた通話リストに「マーカー」、「擬似呼び出し」、「ラベル」を何でも自由に呼び出すことが可能ですか?たとえば、「ここでHUDのレンダリングを開始します」というエントリを追加して、実際にHUDをレンダリングする呼び出しのすぐ上に表示させることができますか?

DirectXのPIXツールにも同様の機能があり、それが私が望んでいる機能です。

答えて

12

XcodeのデバッグナビゲータにEXT_debug_marker拡張機能を使用してラベルを追加できます。コード内の関数glPushGroupMarkerEXT()とglPopGroupMarkerEXT()を呼び出します。注釈を付けるOpenGL ESコールの前にglPushGroupMarkerEXT()を呼び出します。

glPushGroupMarkerEXT(0, "Marker Name"); 

これらの呼び出しの後で、glPopGroupMarkerEXT()を呼び出します。

glPopGroupMarkerEXT(); 
+2

テクスチャなどに人間が読めるラベルを与えるためのglLabelObjectEXT()もあります。私は 'glInsertEventMarkerEXT()'も参照していますが、これはWWDCでアップルが言及していませんでしたが(私のメモによると)、イベントのグループ化の代わりに標識を導入すると思います。 –

+0

はい、 'glInsertEventMarkerEXT'は標識を挿入します - そのうちいくつかはデバッガによって解釈される特別な標識とすることができます。たとえば、 'glInsertEventMarkerEXT(0、" com.apple.GPUTools.event.debug-frame ")'を呼び出すことによって、Xcode OpenGL ESフレームキャプチャツールをプログラムで呼び出すことができます。 (これは、WWDC 2011で示されたInsertEventMarkerの唯一の使用法でした。) – rickster

関連する問題