picogl.buffers.upload
This module provides utilities for uploading vertex and element data to OpenGL buffers, including VAOs (Vertex Array Objects), VBOs (Vertex Buffer Objects), and optionally EBOs (Element Buffer Objects). It supports interleaved vertex attributes and automatic binding of attribute pointers.
Functions:
Parameters:
vao_target: Name of the VAO attribute in the target object.
vbo_target: Name of the VBO attribute in the target object.
render_buffers: Object or dataclass holding OpenGL buffer handles.
vertex_data: Interleaved vertex attributes (e.g., positions, normals).
attributes: List of tuples (location, size, offset) for attribute pointers.
element_data: Optional index data for indexed rendering.
ebo_target: Name of the EBO attribute in the target object.
usage: Buffer usage hint (e.g., GL_STATIC_DRAW).
Usage Example:
upload_geometry_buffers(
vao_target="mesh_vao",
vbo_target="mesh_vbo",
render_buffers=my_buffers,
vertex_data=vertices,
attributes=[(0, 3, 0), (1, 3, 12)],
element_data=indices,
ebo_target="mesh_ebo"
)
Functions
|
upload_geometry_buffers |
|
upload_vertex_buffer |
Module Contents
- picogl.buffers.upload.upload_geometry_buffers(vao_target: str, vbo_target: str, render_buffers: object, vertex_data: numpy.ndarray, attributes: list[tuple[int, int, int]], *, element_data: numpy.ndarray = None, ebo_target: str = None, usage: int = GL_STATIC_DRAW) None[source]
upload_geometry_buffers
- Parameters:
vao_target – Name of the VAO attribute in render_buffers (e.g. “calpha_vao”)
vbo_target – Name of the VBO attribute in render_buffers (e.g. “calpha_buffer_group”)
render_buffers – Any object or dataclass holding OpenGL buffer handles
vertex_data – Interleaved vertex attributes (e.g. position_array + normal)
attributes – List of tuples (location, size, offset) for glVertexAttribPointer
element_data – Optional index data (e.g. for GL_TRIANGLES)
ebo_target – Name of the EBO attribute in render_buffers
usage – GL_STATIC_DRAW or GL_DYNAMIC_DRAW
General-purpose VAO/VBO upload function for vertex geometry.
- picogl.buffers.upload.upload_vertex_buffer(vao: int, vbo: int, points: numpy.ndarray)[source]
upload_vertex_buffer
- Parameters:
vao – int
vbo – int
points – np.ndarray
- Returns:
list indices