"""Adapt existing DrawableBuffer implementors to GPUMesh."""
from __future__ import annotations
from typing import Any
from picogl.backend.geometry.mesh import GPUMesh
[docs]
class DrawableBufferAdapter(GPUMesh):
"""Wrap a :class:`~picogl.protocols.drawable_buffer.DrawableBuffer` as GPUMesh."""
def __init__(self, buffer: Any, draw_kwargs: dict | None = None):
[docs]
self._draw_kwargs = draw_kwargs or {}
[docs]
def bind(self) -> None:
self._buffer.bind()
[docs]
def unbind(self) -> None:
self._buffer.unbind()
[docs]
def draw(self, mode: int) -> None:
kwargs = dict(self._draw_kwargs)
kwargs.setdefault("mode", mode)
self._buffer.draw(**kwargs)
[docs]
def delete(self) -> None:
self._buffer.delete()