picogl.protocols.drawable_buffer ================================ .. py:module:: picogl.protocols.drawable_buffer .. autoapi-nested-parse:: 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 ------- .. autoapisummary:: picogl.protocols.drawable_buffer.DrawableBuffer Module Contents --------------- .. py:class:: DrawableBuffer Bases: :py:obj:`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. .. py:method:: bind() -> None Bind this buffer/VAO for rendering. .. py:method:: unbind() -> None Unbind this buffer/VAO after rendering. .. py:method:: draw(*args: Any, **kwargs: Any) -> None Issue draw calls. Signature is backend-specific (e.g. atom_count, index_count). .. py:method:: delete() -> None Release GPU resources.