Example #1
0
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
Example #2
0
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
Example #3
0
 def test_ok_shaders_link(self):
     shader = Shader(vertexCode, fragmentCode)
     shader.link()
     self.assertTrue(shader.linked)
Example #4
0
 def test_bad_shaders_link(self):
     shader = Shader("", "")
     shader.link()
     self.assertFalse(shader.linked)