2012-10-22 4 views
1

NDK에서 OpenGL ES 1.1을 사용하고 있으며 glGenTextures을 호출 할 때 가끔 전달하는 이름 보유자의 값을 변경하지 않습니다 (0으로 설정하지 않음).glGenTextures가 이름을 생성하지 않습니다.

  • glGetError은 0을 반환하고 오류는 발생하지 않습니다.
  • 모든 GL 코드는 표면 렌더러의 에서 호출되는 JNI 메소드에 있으므로 컨텍스트가 문제가되지 않아야합니다. (편집 : 이것은 잘못된 가정이었고 문제의 원인이었습니다)
  • 이 코드는 일부 경우에만 작동하며 다른 코드에서는 작동하지 않습니다. 각 프레임에 대해 호출을 반복하면 약 5 번 시도한 후에 작동합니다. (나는 요청에 따라 글리프를 생성하고있다).
  • 텍스처의 첫 번째 부분은 적어도 # 32 이상으로 생성되지만 이후에는 적중됩니다.

glGenTextures에 아무런 조치가없는 이유를 아는 사람이 있습니까?

답변

2

유효한 OpenGL (-ES) 컨텍스트로 활성화 된 glGenTextures가 활성화되어 있습니까? 다중 스레드를 사용하는 경우 : 한 번에 하나의 스레드에서만 OpenGL (-ES) 컨텍스트를 활성화 할 수 있습니다. 그러나 각 스레드는 서로 다른 컨텍스트를 활성화 할 수 있습니다.

+0

예, GL 스레드가 아닌 UI 스레드에서 크기 조정 호출 (글꼴 크기가 변경되고 다시 글리프를 다시로드해야하는 경우)이 호출된다는 점이 문제였습니다. 이것은 내 컴퓨터에서 UI 및 GL 스레드가 해당 구현에서 동일하게 작동하는 이유를 설명합니다. – DrYap

관련 문제