pyopengl:glFramebuffer函数错误

pyopengl:glFramebuffer函数错误,opengl,framebuffer,pyopengl,Opengl,Framebuffer,Pyopengl,以下函数不适用于我(pyopengl和opengl 4.2) 我做错什么了吗 glGetIntegerv(GL_MAX_FRAMEBUFFER_WIDTH) KeyError:(“未知说明符GL_MAX_FRAMEBUFFER_WIDTH(0x9315)”,“cConverter中失败”,(GL_MAX_FRAMEBUFFER_WIDTH,),1,) OpenGL.error.NullFunctionError:尝试调用未定义的函数glGetFramebufferParameteriv,在调用

以下函数不适用于我(pyopengl和opengl 4.2)

我做错什么了吗

glGetIntegerv(GL_MAX_FRAMEBUFFER_WIDTH)
KeyError:(“未知说明符GL_MAX_FRAMEBUFFER_WIDTH(0x9315)”,“cConverter中失败”,(GL_MAX_FRAMEBUFFER_WIDTH,),1,)

OpenGL.error.NullFunctionError:尝试调用未定义的函数glGetFramebufferParameteriv,在调用前检查bool(glGetFramebufferParameteriv)

glFramebufferParameteri(GL_DRAW_FRAMEBUFFER, GL_FRAMEBUFFER_DEFAULT_WIDTH, 512);
OpenGL.error.NullFunctionError:尝试调用未定义的函数glFramebufferParameteri,在调用前检查bool(glFramebufferParameteri)

glFramebufferParameteri(GL_DRAW_FRAMEBUFFER, GL_FRAMEBUFFER_DEFAULT_WIDTH, 512);
示例代码:

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()

您列出的每一个错误都是不支持扩展的实现的症状。您试图在OpenGL 4.3中使用的功能是核心功能,要在4.2中使用这些功能,您必须支持上述扩展

也就是说,考虑到这并不是一个特殊的硬件特性,您可能只需升级驱动程序就可以解决这个问题。如果您的硬件来自NV或AMD