"""
draw legacy bond vao
"""
from contextlib import contextmanager
from picogl.backend.gl.enums import GLDrawMode
from picogl.backend.gl.state.client import GLClientState
from picogl.backend.gl.wrappers import gl_draw_arrays
from picogl.backend.legacy.core.vertex.buffer.client_states import legacy_client_states
from picogl.backend.legacy.core.vertex.buffer.vertex import LegacyVBO
[docs]
def gl_draw_arrays_legacy(index_count: int, mode: int):
"""Legacy bond/atom VBG draw helper."""
gl_draw_arrays(index_count, mode, first=0)
@contextmanager
[docs]
def draw_arrays(mode: GLDrawMode, first: int, count: int):
"""
draw_arrays
:param mode: GLDrawMode
:param first: int
:param count: int
:return: None
"""
try:
yield lambda: gl_draw_arrays_legacy(mode, count)
finally:
pass
@contextmanager
[docs]
def bound_legacy_buffers(vbo: LegacyVBO, cbo: LegacyVBO, nbo: LegacyVBO):
with legacy_client_states(
GLClientState.VERTEX, GLClientState.COLOR, GLClientState.NORMAL
):
with vbo, cbo, nbo:
yield