Source code for picogl.buffers.abstract

"""
Abstract render atoms_buffers class
"""

from abc import ABC, abstractmethod

from picogl.buffers.attributes import LayoutDescriptor


[docs] class AbstractVertexGroup(ABC): """Public façade""" @abstractmethod
[docs] def bind(self) -> None: """Bind the underlying VAO/state for rendering.""" pass
@abstractmethod
[docs] def unbind(self) -> None: """Optionally unbind the VAO/state.""" pass
@abstractmethod
[docs] def delete(self) -> None: """Release resources (VAO or equivalent).""" pass
@abstractmethod
[docs] def set_layout(self, layout: LayoutDescriptor) -> None: """Define the attribute layout for this VAO/group.""" pass
@abstractmethod
[docs] def attach_buffers(self, nbo=None, cbo=None, vbo=None, ebo=None) -> None: """Attach the buffers that the VAO/group should coordinate.""" pass