picogl.renderer.legacy_glmesh

Classes

LegacyGLMeshNew

GL Mesh for Compatibility Profile (Legacy OpenGL)

LegacyGLMesh

GL Mesh fir Compatibility Profile

Module Contents

class picogl.renderer.legacy_glmesh.LegacyGLMeshNew(vertices: numpy.ndarray, faces: numpy.ndarray | None, colors: numpy.ndarray | None = None, normals: numpy.ndarray | None = None, uvs: numpy.ndarray | None = None, use_indices: bool = True)[source]

GL Mesh for Compatibility Profile (Legacy OpenGL)

Keeps a similar interface to theIndexed version, but uses client-side arrays / legacy calls instead of VAOs/VBOs/EBOs.

vertices[source]
use_indices = True[source]
colors[source]
normals[source]
uvs[source]
vao = None[source]
index_count: int[source]
_expanded_vertices = None[source]
_expanded_colors = None[source]
_expanded_normals = None[source]
_expanded_uvs = None[source]
classmethod from_mesh_data(mesh: MeshData) LegacyGLMesh[source]
_expand_to_non_indexed() None[source]

Expand indexed data to per-triangle vertex data for glDrawArrays.

upload() None[source]

Legacy GL uses client-side arrays; minimal setup is preserved for compatibility.

bind()[source]
unbind()[source]
delete()[source]

Legacy GL doesn’t hold GPU resources in VAOs/VBOs; keep API for symmetry.

__enter__()[source]
__exit__(exc_type, exc, tb)[source]
draw(mode=GL_TRIANGLES) None[source]

Draw the mesh using Legacy GL calls.

class picogl.renderer.legacy_glmesh.LegacyGLMesh(vertices: numpy.ndarray, faces: numpy.ndarray, colors: numpy.ndarray | None = None, normals: numpy.ndarray | None = None, uvs: numpy.ndarray | None = None)[source]

GL Mesh fir Compatibility Profile

GPU‐resident mesh: owns VAO/VBO/EBO/CBO/NBO for an indexed triangle mesh. It does not know anything about shaders or matrices.

vertices[source]
colors[source]
normals[source]
uvs[source]
vao: picogl.buffers.vertex.legacy.VertexBufferGroup | None = None[source]
index_count: int = 0[source]
classmethod from_mesh_data(mesh: MeshData) LegacyGLMesh[source]

Construct a GLMesh from a MeshData container.

Parameters:

mesh (MeshData) – Must have .vbo (Nx3), .ebo (Mx1), optional .cbo (Nx3), .nbo (Nx3), uvs (Nx2)

Returns:

Ready-to-upload mesh (GPU buffers are allocated only when upload() is called).

Return type:

LegacyGLMesh

upload() None[source]

Allocate & fill GPU buffers.

generate_dynamic_attributes()[source]

generate_dynamic_attributes

Create layout that matches the VBOs being added

bind()[source]
unbind()[source]
delete()[source]

Free GPU resources.

__enter__()[source]
__exit__(exc_type, exc, tb)[source]
draw(mode=GL_TRIANGLES) None[source]

Draw the mesh.