2011-12-30 21 views
6

Xcode 4中的「Capture OpenGL ES Frame」功能非常棒。它列出了在單個渲染幀期間進行的每個與OpenGL相關的調用。但是還有一個額外的功能可以幫助我將這些調用連接到我的代碼並更輕鬆地搜索重要數據。我只是不知道這個功能是否已經可用。如何在Xcode中添加註釋到OpenGL ES幀捕獲數據?

是否可以將我自己的「註釋」 - 或稱爲「標記」,「僞通話」,「標籤」,無論您將會對捕獲的呼叫列表進行調用。例如,我可以添加一個條目,說:「這裏是我開始渲染HUD的位置」,並讓它出現在實際渲染HUD的調用的正上方?

DirectX的PIX工具具有類似的功能,這就是我所希望的。

回答

12

您可以使用EXT_debug_marker擴展名將標籤添加到Xcode的調試導航器中。在您的代碼中調用函數glPushGroupMarkerEXT()和glPopGroupMarkerEXT()。在OpenGL ES調用您要註釋之前調用glPushGroupMarkerEXT()。

glPushGroupMarkerEXT(0, "Marker Name"); 

在這些調用之後調用glPopGroupMarkerEXT()。

glPopGroupMarkerEXT(); 
+2

還有'glLabelObjectEXT()'在調試器中爲紋理等提供可讀的標籤。我還看到'glInsertEventMarkerEXT()',這在蘋果公司WWDC上沒有提及(根據我在這裏的筆記),但我想會讓你引入一個路標,而不是標記事件組。 – 2011-12-30 20:55:05

+0

是的,'glInsertEventMarkerEXT'插入路標 - 其中一些可以是由調試器解釋的特殊路標。例如,您可以通過調用'glInsertEventMarkerEXT(0,「com.apple.GPUTools.event.debug-frame」)'以編程方式調用Xcode OpenGL ES幀捕獲工具。 (這是在WWDC 2011上展示的InsertEventMarker的唯一用法。) – rickster 2013-11-08 19:16:26