2014-11-24 5 views
1

Xcode의 "캡쳐 GPU 프레임"기능을 사용하여 왜 새 오브젝트 (쿼드)가 렌더링되지 않는지 디버깅하려고 시도했습니다. 대개 정상적으로 작동하지만 glDrawElements 동안 다른 렌더링 호출에서 EXC_BAD_ACCESS이 표시됩니다.GPU 프레임을 캡쳐 할 때 EXC_BAD_ACCESS

은 VBO의 혼합 사용과 관련하여 본 적이있는 버그와 비슷한입니다.

glBindBuffer(GL_ARRAY_BUFFER, 0); 
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); 

glDisableVertexAttribArray(posAttr); 
glDisableVertexAttribArray(texCoordAttr); 

(또한, "캡처 GPU 프레임"을 사용할 때 난 단지 충돌을지고있어 마음에 곰이 아니라 모든 : 그러나, 나는 확실히 사용 후 VBO를 바인딩 해제하고, 해제있어 정점 배열 속성 시간)

내가 뭘 잘못하고 있니? 아니면 이것이 Xcode의 버그 일 수 있습니까?

+0

또한 (죄송합니다, 이것은 지루 프로젝트 특정 문제였다). –

+0

참고 VBO 문제를 제거했습니다. VBO를 사용하지 않도록 코드를 변환했습니다. –

+0

또한 원래 쿼드가 렌더링되지 않는 이유를 수정했습니다 (크기 매개 변수가 0이었고 모든 정점이 같은 위치에 있음). 그러나 이것은 충돌을 해결하지 못했습니다. 아직도 그것을 추적하는 것이 좋을 것입니다! –

답변

0

이것은 실제로 일부 GL 상태가 남았 기 때문입니다. 구체적으로는 glVertexAttribPointer입니다. 내가 그것을 잡지 못하는 이유는 그것이 3D 엔진 자체 내에서 직접 조작 문제의 순서 였기 때문입니다. 일부 상태가 제거되기 전에 자식 오브젝트가 반복 (렌더링)되고있었습니다.

는 glGetError의()가`아무것도 따기되지 않은`,

관련 문제