2011-12-30 12 views
6

La característica "Capture OpenGL ES Frame" en Xcode 4 es maravillosa. Enumera cada llamada relacionada con OpenGL realizada durante un solo cuadro de representación. Pero hay una función adicional que me ayudaría a conectar estas llamadas a mi código y buscar datos significativos más fácilmente. Simplemente no sé si esta característica ya está disponible.¿Cómo puedo agregar anotaciones a los datos de captura de marcos de OpenGL ES en Xcode?

Es posible agregar mis propias "anotaciones", o llamarlas "marcadores", "pseudo-llamadas", "etiquetas", lo que sea que desee, a la lista de llamadas capturadas. Por ejemplo, ¿podría agregar una entrada que diga, "Aquí es donde empiezo a renderizar el HUD", y hacer que aparezca justo encima de las llamadas que realmente representan el HUD?

La herramienta PIX de DirectX tiene una funcionalidad similar, y eso es lo que estoy esperando.

Respuesta

12

Puede agregar etiquetas al navegador de depuración de Xcode utilizando la extensión EXT_debug_marker. Llame a las funciones glPushGroupMarkerEXT() y glPopGroupMarkerEXT() en su código. Llame a glPushGroupMarkerEXT() antes de las llamadas de OpenGL ES que desea anotar.

glPushGroupMarkerEXT(0, "Marker Name"); 

Llame glPopGroupMarkerEXT() después de esas llamadas.

glPopGroupMarkerEXT(); 
+2

También hay 'glLabelObjectEXT()' para dar texturas, etc. una etiqueta legible por humanos en el depurador. También veo 'glInsertEventMarkerEXT()', que Apple no mencionó en la WWDC (según mis notas aquí), pero supongo que le permitiría introducir una señal en lugar de grupos de eventos etiquetados. –

+0

Sí, 'glInsertEventMarkerEXT' inserta señales - algunas de las cuales pueden ser señales especiales interpretadas por un depurador. Por ejemplo, puede invocar mediante programación la herramienta Xcode OpenGL ES Frame Capture llamando a 'glInsertEventMarkerEXT (0," com.apple.GPUTools.event.debug-frame ")'. (Este fue el único uso de InsertEventMarker mostrado en WWDC 2011.) – rickster

Cuestiones relacionadas