예제 #1
0
파일: scene3d.py 프로젝트: vkolev/flappy
    def _render(self, rect):
        gl.enable(gl.SCISSOR_TEST)
        gl.enable(gl.CULL_FACE)

        if (not self._render_to_texture and self._depth_n_stencil) or \
            (self._render_to_texture and self._fb_depth_n_stencil):
            gl.enable(gl.DEPTH_TEST)
            gl.enable(gl.DEPTH_STENCIL)
        
        gl.viewport(rect.x, rect.y, rect.width, rect.height)
        gl.scissor(rect.x, rect.y, rect.width, rect.height)

        for com in self._queue:
            com[0](*com[1:])

        self._queue = []
        gl.disable(gl.SCISSOR_TEST)
        gl.disable(gl.CULL_FACE)
        gl.disable(gl.DEPTH_TEST)

        gl.useProgram(0)
        gl.bindBuffer(gl.ARRAY_BUFFER, 0)
        gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, 0)
        gl.bindFramebuffer(gl.FRAMEBUFFER, 0)
        gl.viewport(0.0, 0.0, self.stage.stageWidth, self.stage.stageHeight)
예제 #2
0
파일: scene3d.py 프로젝트: vkolev/flappy
 def setProgram(self, program):
     self._current_prog = program
     self._do(gl.useProgram, program.gl_program)
     gl.useProgram(program.gl_program)