Data classes for Scene Layer management [v26.02.0].
Overview
This module defines the internal data structures used to manage the different types of layers within the Scene. While Scene acts as the controller, these classes handle the specific data and logic for each layer type.
Class Hierarchy
-
SceneLayer (Base): Abstract base class providing common properties and virtual hooks for custom logic:
-
Position, Velocity, and Parallax factors.
-
Visibility and Alpha modulation.
-
Feature flags (Render, Update, Loop, SmoothScroll).
-
Event callbacks.
-
Unified SceneLayerContext for synchronized update and render logic.
-
SceneLayerTile: Manages a 2D array of tile indices.
-
Handles tileset mapping and cell rendering.
-
Optimized for large static grids.
-
SceneLayerObject: Implements the HEGA system.
-
SpatialGrid: A sparse hash-map for O(1) average spatial lookups.
-
SceneObject: Represents game entities with position, bounds (AABB), and optional visual representation (Tile/Shape).
-
Supports efficient region queries and dynamic object management.
-
SceneLayerImage: Manages a single large image.
-
Efficiently handles repeating textures for infinite backgrounds.
-
Supports internal optimization for display hardware.
◆ SceneLayerCallback
Scene layer callback type.
- Parameters
-
| rContext | Read-only context for the current layer update or render callback. |
◆ SceneCameraOffsetCallback
Scene camera offset callback type.
Used by ::SCM_OFFSET mode. Callback should return true and write a pixel offset in ptOffset. Returning false disables additional offset for that tick (equivalent to {0,0}).
- Parameters
-
| rScene | Scene requesting the camera offset. |
| iLayer | Layer index for which the offset is requested. |
| ptOffset | Receives the camera offset in pixels. |
- Returns
- true when ptOffset was supplied, or false to use no additional offset.