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