2010-06-21 5 views
1

iPhone/iPod/iPad/MacOSX/Windows에서 DirectX8 유지 모드의 렌더러와 로더를 생성했습니다. DirectX8 유지 모드 형식은 장면 그래프 스타일이며 계층 구조가 너무 깊습니다. 따라서 Android NDK OpenGLES 만 GL 오류 코드 0x503,0x0504 (명령 스택 오버 플로우 또는 플로우 미만)가 발생했습니다.안드로이드에서 매트릭스 스택 용량이 조금 있음 NDK

안드로이드의 스택 용량이 조금입니까? 누가 각 장치의 용량을 확인하려고 했습니까? (NexusOne, HTC03A, 등등 이드, Xpedia합니다.)

답변

1

이 최대 스택 크기를 조회 GL_MAX_MODELVIEW_STACK_DEPTH 및 GL_MAX_PROJECTION_STACK_DEPTH와 glGetIntegerv을 사용합니다. 너무 많은 행렬을 푸시하면 오버플로됩니다.

스택에 언더 플로우가 발생했습니다. 코드에 버그가 있습니다. 스택에 아무 ​​것도 없을 때 튀어 나오지 마십시오.

스택 공간이 너무 작 으면 소프트웨어로 자체 매트릭스 스택을 만들 수 있으며 GL ES 구현의 제한이 없습니다.

+0

glGetIntegerv를 사용하여 행렬 스택을 검사했습니다. 모델보기 행렬이 16이고 Android 에뮬레이터에서 투영이 2입니다. 그건 그렇고, 모델보기는 Mac 응용 프로그램에서 32, 프로젝션 16입니다. (당신이 스택 공간이 너무 작은 것을 발견하면, 당신은 소프트웨어에 의해 자신의 행렬 스택을 만들 수 있으며, 이것은 GL ES 구현의 제한이 없습니다.) 아, 내가 볼 ... 감사! – Shiva

관련 문제