All pastes #560204 Raw Edit

Someone

public text v1 · immutable
·published 2007-06-12 00:57 UTC
rendered paste body
GL_FRAGMENT_PROGRAM_ARB = 0x8804
GL_PROGRAM_ERROR_STRING_ARB = 0x8874
GL_PROGRAM_FORMAT_ASCII_ARB = 0x8875

GLint = c_int
GLuint = c_uint

glGenProgramsARB = gl.glGenProgramsARB
glGenProgramsARB.argtypes = [GLuint, GLuint]
glBindProgramARB = gl.glBindProgramARB
glBindProgramARB.argtypes = [GLuint, GLuint]
glProgramStringARB = gl.glProgramStringARB
glProgramStringARB.argtypes = [GLuint, GLuint, GLuint, c_void_p]
glDeleteProgramsARB = gl.glDeleteProgramsARB
glDeleteProgramsARB.argtypes = [GLint, c_void_p]
glGetError = gl.glGetError

#resumbrae.com glGenProgramsARB

class Program:

    source = ""

    def __init__ (self, source):
        self.source = source
        self.id = c_uint(0)
        glGenProgramsARB (c_uint (1), addressof(self.id))
        if self.id.value == 0:
            print "Could not create fragment program, aborting"
            raise SystemExit
        self.check_error ()
        glBindProgramARB (GL_FRAGMENT_PROGRAM_ARB, self.id.value)
        print len(self.source)
        self.check_error ()
        glProgramStringARB (GL_FRAGMENT_PROGRAM_ARB,
                            GL_PROGRAM_FORMAT_ASCII_ARB,
                            len(self.source), self.source)
        self.check_error ()