class

PointClickEngine::Core::RenderManager

Inherits PointClickEngine::Core::IRenderManager < PointClickEngine::Core::GameConstants < PointClickEngine::Core::ErrorHelpers < Reference < Object

Manages all rendering operations including layer management, effects, and optimization

The RenderManager centralizes rendering logic that was previously scattered throughout the Engine class. It provides layer-based rendering, visual effects, performance optimization, and debug visualization.

Features

  • Layer-based rendering with z-ordering
  • Visual effects and transitions
  • Performance optimization and culling
  • Debug visualization modes
  • Render target management
  • Camera integration

Usage

manager = RenderManager.new
manager.add_render_layer("background", -10)
manager.add_render_layer("game_objects", 0)
manager.add_render_layer("ui", 10)
manager.render(dt)

Constructors

Instance methods

add_render_layer(name : String, priority : Int32, enabled : Bool = true) : Result(Nil, RenderError)

Add a render layer with specified priority

Lower priority values are rendered first (background), higher priority values are rendered last (foreground/UI).

  • name : Unique name for the layer
  • priority : Render priority (lower = background)
  • enabled : Whether the layer is initially enabled
Source
add_renderer(layer_name : String, renderer : Proc(Float32, Nil)) : Result(Nil, RenderError)

Add a renderer to a specific layer

  • layer_name : Name of the layer to add to
  • renderer : The rendering function
Source
debug_mode?
Source
disable_debug_mode
Source
disable_hotspot_highlighting
Source
enable_debug_mode
Source
enable_hotspot_highlighting(color : Raylib::Color | Nil = nil, pulse : Bool = true)
Source
get_render_stats
Source
hide_ui
Source
hotspot_highlighting_enabled?
Source
remove_renderer(layer_name : String, renderer : Proc(Float32, Nil)) : Result(Bool, RenderError)

Remove a renderer from a layer

Source
render(dt : Float32)

Main rendering method

Renders all enabled layers in priority order and handles debug visualization, performance tracking, and effects.

  • dt : Delta time since last frame
Source
render_internal(dt : Float32)

Internal rendering method (without begin/end drawing) Used by transition system to wrap rendering

Source
render_scene(scene : Scenes::Scene | Nil, camera : Graphics::Camera | Nil = nil, dt : Float32 = 0.0_f32)

Render a scene with camera support

Specialized rendering method for scenes that handles camera transformations, culling, and scene-specific rendering.

Source
reset_stats
Source
set_debug_options(show_bounds : Bool = false, show_hotspots : Bool = false, show_fps : Bool = false)
Source
set_layer_enabled(layer_name : String, enabled : Bool) : Result(Nil, RenderError)

Enable or disable a render layer

Source
show_ui
Source
ui_visible?
Source