glUseProgramObjectARB
을 사용할 때 "잘못된 연산"오류가 발생하며 그 이유를 알지 못합니다.glUseProgramObjectARB 잘못된 연산 오류
쉐이더 프로그램이 올바르게로드되고 있습니다. 저는 매우 확신합니다. glGetInfoLogARB
에 표시됩니다.
- Vertex shader가 하드웨어에서 성공적으로 컴파일되도록 컴파일되었습니다.
- 조각 쉐이더가이 하드웨어에서 성공적으로 컴파일되도록 컴파일되었습니다.
이 명령 이전에 이전의 OpenGL 오류가 없습니다. 그래서이 특정 명령을 가진 무언가가 확실히 문제로 보입니다.
저는 SDL에서 glew를 사용하고 있습니다. 이전에 GLee를 사용하고 있었고 동일한 문제가 발생했습니다.
내가 그것을 가정합니다 documentation 읽기이 오류입니다 :
GL_INVALID_OPERATION is generated if program could not be made part of current state.
하지만 난 그런 일이 발생할 수 정확히 모르겠어요. 이 명령은 이전의 모든 셰이더 명령이 제대로 작동하므로 작업중인 OpenGL 컨텍스트에서 실행됩니다. "시작"과 "끝"블록 사이에 있지 않습니다.
실제로 나는 그것이 의미하는 바가 무엇인지 잘 모르겠다. 명령이 발행 될 수없는 경우가있을 수 있습니다. 누군가가 더 잘 알고 있다면 그것은 위대 할 것입니다.
편집 :
해결 : 지체했다 오 예수, 내 기능 중 하나에 수익을 잃어버린 다른 곳에 그래서 다시 내가 제작했던 프로그램을 통과하지 않은 호출.
정보 기록은 정상이지만 개체/프로그램이 실제로 올바르게 컴파일/링크되어 있습니다. (glGetObjectiv (GL_COMPILE_STATUS), glGetProgramiv (GL_LINK_STATUS)). 나는 그것이 생산하는 "좋은"정보 기록에도 불구하고 링크가 실패한 시나리오를 알고있다. – kvark