picogl.protocols.drawable_buffer

OpenGL buffer protocols for ElMo.

Defines a shared interface (DrawableBuffer) for buffer/VAO objects used in legacy and modern backends, so group-level and draw code can treat them uniformly.

Classes

DrawableBuffer

Protocol for OpenGL buffer/VAO objects that can be bound, drawn, and deleted.

Module Contents

class picogl.protocols.drawable_buffer.DrawableBuffer[source]

Bases: Protocol

Protocol for OpenGL buffer/VAO objects that can be bound, drawn, and deleted.

Implementors must provide bind(), unbind(), draw(), and delete(). Optional: is_valid() for validity checks; __enter__/__exit__ for context-manager support (with obj: obj.draw()).

Legacy VBO groups and modern VAOs (AtomVAO, BondsVAO, RibbonVAO, CalphasVAO, RibbonVBG, etc.) conform to this protocol.

bind() None[source]

Bind this buffer/VAO for rendering.

unbind() None[source]

Unbind this buffer/VAO after rendering.

draw(*args: Any, **kwargs: Any) None[source]

Issue draw calls. Signature is backend-specific (e.g. atom_count, index_count).

delete() None[source]

Release GPU resources.