コード例 #1
0
ファイル: test_program.py プロジェクト: joe311/vispy
    def test_set_attribute_vec4(self):
        vert = VertexShader("attribute vec4 color;")
        frag = FragmentShader("")

        program = Program(vert, frag)
        with self.assertRaises(ValueError):
            program["color"] = np.array(3, dtype=np.float32)

        program = Program(vert, frag)
        with self.assertRaises(ValueError):
            program["color"] = np.array((100, 5), dtype=np.float32)

        program = Program(vert, frag)
        program["color"] = ClientVertexBuffer(
            np.zeros((100, 4), dtype=np.float32))
        assert program._attributes["color"].count == 100

        program = Program(vert, frag)
        program["color"] = ClientVertexBuffer(
            np.zeros((100, 1, 4), dtype=np.float32))
        assert program._attributes["color"].count == 100

        program = Program(vert, frag)
        program["color"] = ClientVertexBuffer(
            np.zeros(100, dtype=(np.float32, 4)))
        assert program._attributes["color"].count == 100
コード例 #2
0
ファイル: test_program.py プロジェクト: joe311/vispy
 def test_detach(self):
     vert = VertexShader("A")
     frag = FragmentShader("B")
     program = Program(vert, frag)
     program.detach(frag)
     assert len(program.shaders) == 1
     assert program.shaders[0].code == "A"
コード例 #3
0
ファイル: test_program.py プロジェクト: joe311/vispy
 def test_detach(self):
     vert = VertexShader("A")
     frag = FragmentShader("B")
     program = Program(vert, frag)
     program.detach(frag)
     assert len(program.shaders) == 1
     assert program.shaders[0].code == "A"
コード例 #4
0
ファイル: test_program.py プロジェクト: joe311/vispy
 def test_attach(self):
     vert = VertexShader("A")
     frag = FragmentShader("B")
     program = Program(vert)
     program.attach(frag)
     assert len(program.shaders) == 2
     assert program.shaders[0].code == "A"
     assert program.shaders[1].code == "B"
コード例 #5
0
ファイル: test_program.py プロジェクト: joe311/vispy
 def test_attach(self):
     vert = VertexShader("A")
     frag = FragmentShader("B")
     program = Program(vert)
     program.attach(frag)
     assert len(program.shaders) == 2
     assert program.shaders[0].code == "A"
     assert program.shaders[1].code == "B"
コード例 #6
0
ファイル: test_program.py プロジェクト: joe311/vispy
    def test_setitem(self):
        vert = VertexShader("")
        frag = FragmentShader("")

        program = Program(vert, frag)
        with self.assertRaises(NameError):
            program["A"] = 1
コード例 #7
0
ファイル: test_program.py プロジェクト: joe311/vispy
 def test_uniform(self):
     vert = VertexShader("uniform float A;")
     frag = FragmentShader("uniform float A; uniform vec4 B;")
     program = Program(vert, frag)
     assert program.uniforms[0].name == 'A'
     assert program.uniforms[0].gtype == gl.GL_FLOAT
     assert program.uniforms[1].name == 'B'
     assert program.uniforms[1].gtype == gl.GL_FLOAT_VEC4
コード例 #8
0
ファイル: test_program.py プロジェクト: joe311/vispy
    def test_set_attribute_float(self):

        vert = VertexShader("attribute float f;")
        frag = FragmentShader("")

        program = Program(vert, frag)
        program["f"] = VertexBuffer(np.zeros(100, dtype=np.float32))
        assert program._attributes["f"].count == 100

        program = Program(vert, frag)
        program["f"] = ClientVertexBuffer(
            np.zeros((100, 1, 1), dtype=np.float32))
        assert program._attributes["f"].count == 100

        program = Program(vert, frag)
        with self.assertRaises(ValueError):
            program["f"] = np.zeros((100, 1, 1), dtype=np.float32)
コード例 #9
0
ファイル: test_program.py プロジェクト: joe311/vispy
    def test_failed_build(self):
        vert = VertexShader("A")
        frag = FragmentShader("B")

        program = Program(vert=vert)
        with self.assertRaises(RuntimeError):
            program.activate()

        program = Program(frag=frag)
        with self.assertRaises(RuntimeError):
            program.activate()
コード例 #10
0
ファイル: test_program.py プロジェクト: joe311/vispy
    def test_failed_build(self):
        vert = VertexShader("A")
        frag = FragmentShader("B")

        program = Program(vert = vert)
        with self.assertRaises(RuntimeError):
            program.activate()

        program = Program(frag = frag)
        with self.assertRaises(RuntimeError):
            program.activate()
コード例 #11
0
ファイル: test_program.py プロジェクト: joe311/vispy
 def test_attributes(self):
     vert = VertexShader("attribute float A;")
     frag = FragmentShader("")
     program = Program(vert, frag)
     assert program.attributes[0].name == 'A'
     assert program.attributes[0].gtype == gl.GL_FLOAT
コード例 #12
0
ファイル: test_program.py プロジェクト: joe311/vispy
 def test_unique_shader(self):
     vert = VertexShader("A")
     frag = FragmentShader("B")
     program = Program([vert, vert], [frag, frag, frag])
     assert len(program.shaders) == 2
コード例 #13
0
ファイル: test_program.py プロジェクト: joe311/vispy
 def test_init_from_string(self):
     program = Program("A", "B")
     assert len(program.shaders) == 2
     assert program.shaders[0].code == "A"
     assert program.shaders[1].code == "B"
コード例 #14
0
ファイル: test_program.py プロジェクト: joe311/vispy
 def test_delete_no_context(self):
     program = Program()
     program.delete()
コード例 #15
0
ファイル: test_program.py プロジェクト: joe311/vispy
 def test_init(self):
     program = Program()
     assert program._handle == 0
     assert program._need_update == False
     assert program._valid == False
     assert program.shaders == []
コード例 #16
0
ファイル: test_program.py プロジェクト: joe311/vispy
 def test_init_from_shader(self):
     program = Program(VertexShader("A"), FragmentShader("B"))
     assert len(program.shaders) == 2
     assert program.shaders[0].code == "A"
     assert program.shaders[1].code == "B"
コード例 #17
0
ファイル: test_program.py プロジェクト: joe311/vispy
    def test_set_uniform_vec4(self):
        vert = VertexShader("uniform vec4 color;")
        frag = FragmentShader("")

        program = Program(vert, frag)
        program["color"] = 1, 1, 1, 1
コード例 #18
0
ファイル: test_program.py プロジェクト: joe311/vispy
 def test_delete_no_context(self):
     program = Program()
     program.delete()