wolfhece.opengl.filled_polygon_shader2d ======================================= .. py:module:: wolfhece.opengl.filled_polygon_shader2d .. autoapi-nested-parse:: 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 --------------- .. py:data:: SHADER_DIR .. py:class:: FilledPolygonShader2D Shared shader pipeline for CPU-triangulated filled polygons. .. py:attribute:: _instance :type: FilledPolygonShader2D | None :value: None .. py:attribute:: _program :type: int | None :value: None .. py:attribute:: _locs :type: dict[str, int] | None :value: None .. py:attribute:: _vao :type: int | None :value: None .. py:attribute:: _vbo :type: int | None :value: None .. py:attribute:: _texture_cache :type: dict[tuple[str, float], int] .. py:method:: get_instance() -> FilledPolygonShader2D :classmethod: .. py:method:: _init_program() .. py:method:: _compile_shader(shader_type: int, path: pathlib.Path) -> int :staticmethod: .. py:method:: _ensure_vao_vbo() .. py:method:: _upload(data: numpy.ndarray) .. py:method:: _get_texture_id(texture_path: str) -> int | None .. py:method:: _bind_material(material: wolfhece.pyvertexvectors.polygon_pbr_material.PolygonPBRMaterial | None) .. py:method:: 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) Draw triangles for a filled polygon. .. py:method:: destroy()