def paintGL(self): context['mx'] += context['dmx'] context['my'] += context['dmy'] context['s'] += context['ds'] GL.Clear(240, 240, 240) GL.SetUniform(context['center'], context['mx'], context['my']) GL.SetUniform(context['scale'], 0.5**context['s']) GL.RenderTriangleStrip(context['vao'], 4) self.update()
def paintGL(self): z = 0.5**context['s'] context['mx'] += context['dmx'] * z context['my'] += context['dmy'] * z context['s'] += context['ds'] GL.Clear(240, 240, 240) GL.SetUniform(context['pos'], context['mx'] / z, context['my'] / z) GL.SetUniform(context['zoom'], z) GL.RenderTriangleStrip(context['vao'], 4) self.update()
def paintGL(self): GL.Clear(240, 240, 240) GL.RenderTriangleStrip(context['vao'], 4)
vao = GL.NewVertexArray(grass_prog, vbo, '3f3f3f1f1f', ['vert', 'direction', 'color', 'thickness', 'power'], ibo) ssao_vbo = GL.NewVertexBuffer( struct.pack('8f', 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0)) ssao_vao = GL.NewVertexArray(ssao_prog, ssao_vbo, '2f', ['vert']) ubo = GL.NewUniformBuffer(b''.join(struct.pack('2f', x, y) for x, y in kernel)) fbo, color, depth = GL.NewFramebuffer() GL.SetUniform(grass_prog['mat'], struct.pack('16f', *camera)) GL.SetUniform(ssao_prog['texture'], 0) GL.SetUniform(ssao_prog['depth'], 1) GL.UseUniformBuffer(ubo, ssao_prog['Kernel']) while WND.Update(): GL.UseFramebuffer(fbo) GL.EnableDepthTest() GL.Clear(0, 0, 0) GL.RenderTriangleStrip(vao, 1000 * 8) GL.UseFramebuffer(GL.SCREEN) GL.DisableDepthTest() GL.UseTexture(color, 0) GL.UseTexture(depth, 1) GL.RenderTriangleStrip(ssao_vao, 4)
z = v; } float cm = fract((i == iter ? 0.0 : float(i)) * 10 / iter); color = vec4(fract(cm + 0.0 / 3.0), fract(cm + 1.0 / 3.0), fract(cm + 2.0 / 3.0), 1.0); } ''') prog = GL.NewProgram([vert, frag]) vbo = GL.NewVertexBuffer( struct.pack('8f', -1.0, -1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 1.0)) vao = GL.NewVertexArray(prog, vbo, '2f', ['vert']) GL.SetUniform(prog['iter'], 100) GL.SetUniform(prog['scale'], 1.0) GL.SetUniform(prog['center'], 0.3, 0.2) x, y, scale = 0, 0, 1 while WND.Update(): GL.Clear(240, 240, 240) mx, my, mw = WND.GetMouse() scale *= 1.1**(mw / 150) x += mx / 100 y += my / 100 GL.SetUniform(prog['center'], x, y) GL.SetUniform(prog['scale'], scale) GL.RenderTriangleStrip(vao, 4)
GL.NewVertexShader() GL.ReadPixel() GL.ReadPixels() GL.ReadDepthPixel() GL.ReadDepthPixels() GL.ReadStorageBuffer() GL.RenderLineLoop() GL.RenderLineStrip() GL.RenderLines() GL.RenderPoints() GL.RenderTriangleFan() GL.RenderTriangleStrip() GL.RenderTriangles() GL.RenderLinesAdjacency() GL.RenderLineStripAdjacency() GL.RenderTrianglesAdjacency() GL.RenderTriangleStripAdjacency() GL.SetTextureFiltered() GL.SetTextureMipmapped() GL.SetTexturePixelated() GL.SetUniform() GL.SetUniformMatrix() # GL.UpdateIndexBuffer() # GL.UpdateTexture()