| CRM64Pro GDK v0.19.0 A free cross-platform game development kit built on top of SDL 3.0

Loading...
Searching...
No Matches
Scene Layer
Scene modules

## Description

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.

## Topics
| Scene Layer Tile
| TileLayer class for tile-based map layers.
| Scene Layer Object
| Object layer containing game objects with spatial partitioning.
| Scene Layer Image
| Image layer containing a single image for background/foreground display.

## Classes
struct | CRM64Pro::SceneLayerContext
| Layer Context structure. More...
class | CRM64Pro::SceneLayer
| Base class for all Scene layer types. More...

## Typedefs
using | CRM64Pro::SceneLayerCallback = function<void(const SceneLayerContext& rContext)>
| Scene layer callback type.
using | CRM64Pro::SceneCameraOffsetCallback = function<bool(Scene& rScene, Sint32 iLayer, SDL_FPoint& ptOffset)>
| Scene camera offset callback type.

## Typedef Documentation

## ◆ SceneLayerCallback

using CRM64Pro::SceneLayerCallback = function<void(const SceneLayerContext& rContext)>

Scene layer callback type.

Parameters

  rContext | Read-only context for the current layer update or render callback.

## ◆ SceneCameraOffsetCallback

using CRM64Pro::SceneCameraOffsetCallback = function<bool(Scene& rScene, Sint32 iLayer, SDL_FPoint& ptOffset)>

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.