wolfhece.opengl.filled_polygon_shader2d

Shared-resource filled polygon shader for vector rendering.

Renders filled polygons from CPU-triangulated geometry (triangle list) with optional alpha animation. The shader program is compiled once and reused for all vectors.

Module Contents

wolfhece.opengl.filled_polygon_shader2d.SHADER_DIR[source]
class wolfhece.opengl.filled_polygon_shader2d.FilledPolygonShader2D[source]

Shared shader pipeline for CPU-triangulated filled polygons.

_instance: FilledPolygonShader2D | None = None[source]
_program: int | None = None[source]
_locs: dict[str, int] | None = None[source]
_vao: int | None = None[source]
_vbo: int | None = None[source]
_texture_cache: dict[tuple[str, float], int][source]
classmethod get_instance() FilledPolygonShader2D[source]
_init_program()[source]
static _compile_shader(shader_type: int, path: pathlib.Path) int[source]
_ensure_vao_vbo()[source]
_upload(data: numpy.ndarray)[source]
_get_texture_id(texture_path: str) int | None[source]
_bind_material(material: wolfhece.pyvertexvectors.polygon_pbr_material.PolygonPBRMaterial | None)[source]
draw_filled(vbo_data: numpy.ndarray, vertex_count: int, mvp: numpy.ndarray, viewport: tuple[int, int], color: tuple[float, float, float, float], material: wolfhece.pyvertexvectors.polygon_pbr_material.PolygonPBRMaterial | None = None, fill_anim_center: tuple[float, float] = (0.0, 0.0), fill_anim_radius: float = 1.0, fill_anim_start_angle: float = 90.0, anim_phase: float = 0.0, anim_mode: int = 0, cushion_strength: float = 0.0, boundary_pts: numpy.ndarray | None = None, cushion_max_dist: float = 1.0)[source]

Draw triangles for a filled polygon.

destroy()[source]