def load_shader(name, attributes=(), **defaults): vert = open('./shaders/%s.vert' % name, 'rb').read() frag = open('./shaders/%s.frag' % name, 'rb').read() shader = Shader([vert], [frag]) shader.initialize() for (index, name) in attributes: glBindAttribLocationARB(shader.handle, index, name) shader.link() shader.bind() for k, v in defaults.iteritems(): try: v = tuple(v) except TypeError: v = (v, ) if isinstance(v[0], float): func = shader.uniformf elif isinstance(v[0], int): func = shader.uniformi func(k, *v) shader.unbind() return shader
def load_shader(name, attributes = (), **defaults): vert = open('./shaders/%s.vert' % name, 'rb').read() frag = open('./shaders/%s.frag' % name, 'rb').read() shader = Shader([vert], [frag]) shader.initialize() for (index, name) in attributes: glBindAttribLocationARB(shader.handle, index, name) shader.link() shader.bind() for k, v in defaults.iteritems(): try: v = tuple(v) except TypeError: v = (v,) if isinstance(v[0], float): func = shader.uniformf elif isinstance(v[0], int): func = shader.uniformi func(k, *v) shader.unbind() return shader
def test_ok_shaders_link(self): shader = Shader(vertexCode, fragmentCode) shader.link() self.assertTrue(shader.linked)
def test_bad_shaders_link(self): shader = Shader("", "") shader.link() self.assertFalse(shader.linked)