2014-02-07 8 views
0

다음 기능은 나를 위해 작동하지 않습니다 (pyopengl 및 opengl 4.2).pyopengl : glFramebuffer 함수 오류

내가 잘못 했나요?

glGetIntegerv(GL_MAX_FRAMEBUFFER_WIDTH) 

KeyError를 ('알 지정자 GL_MAX_FRAMEBUFFER_WIDTH (0x9315)', 'cConverter에 실패'(GL_MAX_FRAMEBUFFER_WIDTH,) 1,)

glGetFramebufferParameteriv(GL_DRAW_FRAMEBUFFER, GL_FRAMEBUFFER_DEFAULT_WIDTH) 

OpenGL.error.NullFunctionError : 시도가 호출 할 미정 (SECURITY) 기능을 비활성화를 호출 시도가 정의 기능 glGetFramebufferParameteriv는

glFramebufferParameteri(GL_DRAW_FRAMEBUFFER, GL_FRAMEBUFFER_DEFAULT_WIDTH, 512); 

OpenGL.error.NullFunctionError를 호출하기 전에 불리언 (glGetFramebufferParameteriv) 점검 이온 glFramebufferParameteri는

예제 코드를 호출하기 전에 부울 (glFramebufferParameteri) 확인 :

from __future__ import division 
import OpenGL 
from OpenGL.GL import * 
from OpenGL.GLU import * 
from OpenGL.GLUT import * 

def InitGL(): 
    glClearColor(0.0, 0.0, 0.0, 0.0) 
    glClearDepth(1.0) 
    glShadeModel(GL_SMOOTH) 
    glMatrixMode(GL_PROJECTION) 
    glLoadIdentity() 
    gluPerspective(45.0, 800/600, 0.1, 100.0) 
    glMatrixMode(GL_MODELVIEW) 


def DrawGLScene(): 
    fbo = glGenFramebuffers(1) 
    glBindFramebuffer(GL_FRAMEBUFFER, fbo) 
    #folowing not working 
    print glGetIntegerv(GL_MAX_FRAMEBUFFER_WIDTH); 
    print glGetFramebufferParameteriv(GL_DRAW_FRAMEBUFFER, GL_FRAMEBUFFER_DEFAULT_WIDTH) 
    glFramebufferParameteri(GL_DRAW_FRAMEBUFFER, GL_FRAMEBUFFER_DEFAULT_WIDTH, 512); 
    glFramebufferParameteri(GL_DRAW_FRAMEBUFFER, GL_FRAMEBUFFER_DEFAULT_HEIGHT, 512); 

glutInit(sys.argv) 
glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH) 
glutInitWindowSize(800, 600) 
window = glutCreateWindow("") 
glutDisplayFunc(DrawGLScene) 
InitGL() 
DrawGLScene() 

답변

1

나열된 오류의 모든 하나는 GL_ARB_framebuffer_no_attachments 확장을 지원하지 않는 구현의 증상이다. 사용하려고하는 기능은 OpenGL 4.3에서 핵심이되었으며 4.2에서 사용하려면 위에서 언급 한 확장 기능을 지원해야합니다.

그렇다면이 기능이 실제로 특별한 하드웨어 기능이 아니라고 생각하면 드라이버를 업그레이드하여이 문제를 해결할 수 있습니다. 하드웨어가 NV 또는 AMD에서 제공되는 경우.

관련 문제