def main(): setupWindow() mesh = Mesh(vertices, indices) camera = Camera2D(DIMENSIONS[0], DIMENSIONS[1]) # Create the shader program and configure its uniforms. shaderprogram = ShaderProgram("shaders/vertex.shader", "shaders/fragment.shader") shaderprogram.setUniform2f("resolution", DIMENSIONS[0], DIMENSIONS[1]) shaderprogram.setUniform2f("scale", camera.scaleVector[0], camera.scaleVector[1]) shaderprogram.setUniform1i("iterations", DEFAULT_ITERATIONS) while True: handleEvents() pan, zoom = camera.move() if pan: shaderprogram.setUniform2f("cameraPos", camera.position[0], camera.position[1]) if zoom: shaderprogram.setUniform2f("scale", camera.scaleVector[0], camera.scaleVector[1]) if AUTO_UPDATE_ITERATIONS: iterations = getIterationCount(camera.scale) shaderprogram.setUniform1i("iterations", iterations) renderer.clearScreen() # Render the quads. renderer.render2D(mesh, shaderprogram.shader) # Swap buffers. pygame.display.flip()