picogl.backend.geometry.factory

Binding strategies that upload CPU meshes to GPU representations.

Classes

GLBindingStrategy

Upload CPU mesh data to a reusable GPUMesh.

LegacyBinding

Upload MeshData to a client-state LegacyMesh.

ModernBinding

Upload MeshData to a VAO-backed ModernMesh.

Module Contents

class picogl.backend.geometry.factory.GLBindingStrategy[source]

Bases: abc.ABC

Upload CPU mesh data to a reusable GPUMesh.

_last_gpu_mesh: picogl.backend.geometry.mesh.GPUMesh | None = None[source]
abstract upload(mesh: picogl.renderer.meshdata.MeshData) picogl.backend.geometry.mesh.GPUMesh[source]
bind_mesh(mesh) None[source]

Deprecated: upload, bind, and remember mesh for the next draw.

draw(mesh, mode) None[source]

Deprecated: draw the last bound mesh, or upload on demand.

class picogl.backend.geometry.factory.LegacyBinding[source]

Bases: GLBindingStrategy

Upload MeshData to a client-state LegacyMesh.

upload(mesh: picogl.renderer.meshdata.MeshData) picogl.backend.geometry.mesh.GPUMesh[source]
class picogl.backend.geometry.factory.ModernBinding[source]

Bases: GLBindingStrategy

Upload MeshData to a VAO-backed ModernMesh.

upload(mesh: picogl.renderer.meshdata.MeshData) picogl.backend.geometry.mesh.GPUMesh[source]
upload_gpu_object(mesh: Any) picogl.backend.geometry.mesh.GPUMesh[source]

Wrap an object that already has vao / ebo / index_count.

bind_mesh(mesh) None[source]

Deprecated: upload, bind, and remember mesh for the next draw.