예제 #1
0
def setupPyglet():
    window = pyglet.window.Window(width=width, height=height)
    pygl.glClearColor(0.05, 0.04, 0.04, 1)
    pygl.glPointSize(10)
    pygl.glLineWidth(5)
    pygl.glEnable(pygl.GL_BLEND)
    pygl.glBlendFunc(pygl.GL_SRC_ALPHA, pygl.GL_ONE_MINUS_SRC_ALPHA)

    def on_draw(dt):
        window.clear()

        global elapsedTime
        outputScene.drawScene(elapsedTime)
        if isRecording:
            write_to_video()

        elapsedTime += dt

    def write_to_video():
        buffer = (pygl.GLubyte * (3 * window.width * window.height))(0)
        pygl.glReadPixels(0, 0, width, height, pygl.GL_RGB,
                          pygl.GL_UNSIGNED_BYTE, buffer)
        pipe.stdin.write(buffer)

    pyglet.clock.schedule_interval(on_draw, 1 / 24)
예제 #2
0
파일: render.py 프로젝트: mjs/pyweek11-cube
    def init(self):
        gl.glEnableClientState(gl.GL_VERTEX_ARRAY)
        gl.glEnableClientState(gl.GL_COLOR_ARRAY)
        gl.glEnable(gl.GL_DEPTH_TEST)
        gl.glEnable(gl.GL_POLYGON_SMOOTH)
        gl.glEnable(gl.GL_BLEND)
        gl.glBlendFunc(gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA)
        gl.glHint(gl.GL_POLYGON_SMOOTH_HINT, gl.GL_NICEST)

        gl.glCullFace(gl.GL_BACK)
        gl.glEnable(gl.GL_CULL_FACE)

        gl.glClearColor(*self.world.sky_color)

        vs_file = join(path.SOURCE, 'view', 'shaders', 'lighting.vert')
        vs = VertexShader(vs_file)
        fs_file = join(path.SOURCE, 'view', 'shaders', 'lighting.frag')
        fs = FragmentShader(fs_file)
        shader = ShaderProgram(vs, fs)
        shader.compile()
        shader.use()

        # create glyphs for every item added to the world before now
        for item in self.world:
            self.world_add_item(item)
        # create glyphs for every item added after this
        self.world.item_added += self.world_add_item
예제 #3
0
파일: tiles.py 프로젝트: pennomi/overseer
 def draw_hp(self):
     full_hp = TILE_COSTS[self.type]
     if full_hp == math.inf:
         return
     percent = int((full_hp - self.hp) / full_hp * 4)
     if 0 < percent < 4:
         # TODO: Move this to the main function
         gl.glEnable(gl.GL_BLEND)
         gl.glBlendFunc(gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA)
         get_tile(percent, 3).blit(self.x, self.y)
예제 #4
0
    def main_loop(self):
        clock.set_fps_limit(30)
        nodeSize = 5

        timer = 0
        while not self.has_exit:
            self.dispatch_events()
            self.clear()

            # White, so reset the colour
            glColor4f(1, 1, 1, 1)
            gl.glLineWidth(1)

            gl.glEnable(gl.GL_BLEND)
            gl.glBlendFunc(gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA)

            glColor4f(0, 0, 0, 1.0)
            clock.tick()
예제 #5
0
    def draw(self, viewport):
        gl.glClearColor(183 / 255.0, 196 / 255.0, 200 / 255.0, 1)
        gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT)
        gl.glEnable(gl.GL_BLEND)
        gl.glBlendFunc(gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA)

        x1 = viewport.tl.x
        x2 = viewport.br.x

        backgrounds = [
            (self.clouds, self.clouds.width), 
            (self.fg, self.fg.width), 
        ]

        for img, w in backgrounds:
            cx = x1 - x1 % w - w
            while cx < x2:
                img.blit(cx, 0)
                cx += w
예제 #6
0
    def draw(self, viewport):
        gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT)
        gl.glEnable(gl.GL_BLEND)
        gl.glBlendFunc(gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA)

        alt = viewport.bl.y
        h = viewport.height 
        w = viewport.width
        c1 = self.gradient.colour(alt)
        c2 = self.gradient.colour(alt + 10000)

        o = v(0, 0)
        x = v(w, 0)
        y = v(0, h)

        vs = [o, x, x + y, y]
        cs = [c1, c1, c2, c2]
        
        pyglet.graphics.draw(4, gl.GL_QUADS,
            ('v2f', list(walk(vs))),
            ('c3f', list(walk(cs)))
        )