No documentation
GEOMETRY_FAST: Any = 'geometry_fast'
OCCLUSION_MAP: Any = 'occlusion_map'
GEOMETRY_QUALITY: Any = 'geometry_quality'
HYBRID: Any = 'hybrid'
No methods defined.
No documentation
LOW: Any = 'low'
MEDIUM: Any = 'medium'
HIGH: Any = 'high'
No methods defined.
Light source for shadow casting
def __init__(self: Any, x: float, y: float, radius: float, color: Tuple[int, int, int] = (255, 255, 255), intensity: float = 1.0) -> Any
def get_hash(self: Any) -> str
Object that can cast shadows
def __init__(self: Any, vertices: List[Tuple[float, float]]) -> Any
def _calculate_bounds(self: Any) -> pygame.Rect
def get_hash(self: Any) -> str
def bounds(self: Any) -> pygame.Rect
Optimized shadow system for OpenGL rendering with stable performance
def __init__(self: Any, screen_width: int, screen_height: int, engine: Any) -> Any
def add_light(self: Any, x: float, y: float, radius: float, color: Tuple[int, int, int] = (255, 255, 255), intensity: float = 1.0) -> Light
def add_shadow_caster(self: Any, vertices: List[Tuple[float, float]]) -> ShadowCaster
def add_rectangle_caster(self: Any, x: float, y: float, width: float, height: float) -> ShadowCaster
def add_circle_caster(self: Any, x: float, y: float, radius: float, segments: int = 12) -> ShadowCaster
def clear_lights(self: Any) -> Any
def clear_shadow_casters(self: Any) -> Any
def _calculate_scene_hash(self: Any, camera_position: pygame.math.Vector2) -> str
def _get_visible_lights(self: Any, camera_position: pygame.math.Vector2) -> List[Light]
def _get_visible_shadow_casters(self: Any, camera_position: pygame.math.Vector2) -> List[ShadowCaster]
def _get_current_viewport(self: Any, camera_position: pygame.math.Vector2) -> pygame.Rect
def _world_to_screen(self: Any, world_pos: pygame.math.Vector2, camera_position: pygame.math.Vector2) -> Tuple[int, int]
def _get_current_zoom(self: Any) -> float
def _geometry_fast_technique(self: Any, camera_position: pygame.math.Vector2) -> pygame.Surface
def _draw_simple_shadow(self: Any, surface: pygame.Surface, light: Light, caster: ShadowCaster, camera_position: pygame.math.Vector2) -> Any
def _update_performance_stats(self: Any) -> Any
def render(self: Any, camera_position: pygame.math.Vector2, renderer: Any = None) -> pygame.Surface
def render_to_screen(self: Any, renderer: Any, camera_position: pygame.math.Vector2, x: int = 0, y: int = 0) -> Any
def get_stats(self: Any) -> Dict[str, Any]
def cleanup(self: Any) -> Any