2011-12-30 33 views
6

Tính năng "Capture OpenGL ES Frame" trong Xcode 4 thật tuyệt vời. Nó liệt kê ra mọi cuộc gọi liên quan đến OpenGL được thực hiện trong một khung hiển thị đơn lẻ. Nhưng có một tính năng bổ sung sẽ giúp tôi kết nối các cuộc gọi này với mã của tôi và tìm kiếm dữ liệu quan trọng dễ dàng hơn. Tôi chỉ không biết liệu tính năng này đã có sẵn chưa.Làm cách nào để thêm chú thích vào dữ liệu chụp khung OpenGL ES trong Xcode?

Có thể thêm "chú thích" của riêng mình hay gọi chúng là "điểm đánh dấu", "cuộc gọi giả", "nhãn", bất kể bạn sẽ làm gì - vào danh sách cuộc gọi bị bắt. Ví dụ, tôi có thể thêm một mục mà nói, "Đây là nơi tôi bắt đầu vẽ HUD", và nó xuất hiện ngay phía trên các cuộc gọi thực sự làm cho HUD?

Công cụ PIX từ DirectX có chức năng tương tự và đó là những gì tôi hy vọng.

Trả lời

12

Bạn có thể thêm nhãn vào trình điều hướng gỡ lỗi của Xcode bằng cách sử dụng phần mở rộng EXT_debug_marker. Gọi hàm glPushGroupMarkerEXT() và glPopGroupMarkerEXT() trong mã của bạn. Gọi glPushGroupMarkerEXT() trước khi OpenGL ES gọi bạn muốn chú thích.

glPushGroupMarkerEXT(0, "Marker Name"); 

Gọi glPopGroupMarkerEXT() sau các cuộc gọi đó.

glPopGroupMarkerEXT(); 
+2

Còn có 'glLabelObjectEXT()' để tạo họa tiết, v.v ... nhãn người đọc được trong trình gỡ lỗi. Tôi cũng thấy 'glInsertEventMarkerEXT()', không được Apple đề cập ở WWDC (theo ghi chú của tôi ở đây), nhưng tôi đoán sẽ cho phép bạn giới thiệu biển chỉ dẫn thay vì các nhóm sự kiện có gắn nhãn. –

+0

Có, 'glInsertEventMarkerEXT' chèn biển chỉ dẫn - một số trong đó có thể là biển chỉ dẫn đặc biệt được giải thích bởi trình gỡ lỗi. Ví dụ, bạn có thể lập trình gọi công cụ Xcode OpenGL ES Frame Capture bằng cách gọi 'glInsertEventMarkerEXT (0," com.apple.GPUTools.event.debug-frame ")'. (Đây là cách sử dụng duy nhất của InsertEventMarker được trình bày tại WWDC 2011.) – rickster

Các vấn đề liên quan