Cheryl Engine

Getting started

  • First game
    • 1. Set up the checkout and build the application
    • 2. Start the engine and keep its owners alive
    • 3. Give the game its hooks and controls
    • 4. Load a controlled game asset directory
    • 5. Pass retained resources into game-owned state
    • 6. Select a font and prepare the score label
    • 7. Update simulation and select image cells
    • 8. Submit the sprite and text as a complete frame
    • 9. Release the game’s resources
    • Continue with background loading
    • Use the example as an independent project
  • Project setup
    • Prebuilt development SDKs
    • Command-line startup
    • Game hooks and ownership
      • Minimal native application
    • Dependencies and headers
    • Crash and exception traces
    • Independent consumers and header probes
    • Optional output terminal
    • Standard headers in an existing build

Assets

  • Loading
    • Runtime entry point
    • Publication and retry
    • Resources and application bootstrap
    • Typed manifest data and consumers
  • Manifests
    • Index selection and paths
    • Identity and inheritance
    • Grid and cell addressing
    • Pivots
    • Animations
    • Autotiles
    • Runtime implementation
    • Shader/material definitions
    • Recovered college definitions
  • Types
    • API domains
    • Coordinates and grid geometry
    • Resources and caches
    • Sprite playback
    • Tile playback and rules
    • Tile selection
    • Fonts and CPU submission
  • Discovery
    • File index
    • System-font candidates
    • Legacy font cache
  • Text
    • Font selection
    • Shaping, direction and width
    • Preparation, upload and retained submission
      • Positioned text runs
    • Native acceptance scope
  • Text encoding
  • Packages
    • Located packages
    • Image placement
      • MiniWorld sprites
      • Character Customizer
      • Puny World
      • Mage City Arcanos
      • Dungeon tileset
    • Packages awaiting manifests
    • Recovered college assets
  • Legacy fonts
    • Legacy layout
    • Recovered evidence and preserved legacy behavior

Rendering

  • Drawing
    • API domains
    • Parameters and ownership
    • Independent binding
      • Immutable sampling
    • Frame and recipe integration
      • Rectangular clipping
    • Native bootstrap and binding
    • Manual material construction
    • CPU submission
      • Frame storage and writers
      • Camera observations

Resources

  • Caches
    • Cache ownership
    • Immutable resource publication
    • Native retirement and maintenance
    • Failure and recovery
  • Memory
    • Pool ownership
    • Reservations
    • Release contexts
    • Block transactions
    • Object construction

Runtime contracts

  • Architecture
    • Application APIs
    • Execution and shutdown
    • Current limits
  • Lifecycle
    • Input and owner threads
    • Queued preparation and stop requests
    • Frame publication and recycling
    • Shutdown
  • Timing
    • Defaults and pacing
    • Fixed steps
    • Catch-up recovery
    • Input and tick time
    • Frame preparation
    • Suspension and limits
    • Configuration and validation
  • Display
    • Native GLFW inventory and selection
    • Sizes, modes and observation
    • Scale and UI capabilities
  • Input
    • Bindings
    • Poll snapshots
    • Tick input
    • Ownership and validation
    • Polling backlog and scheduling
    • Ordered Events and OS Text
    • Focus, routing, and editing controls
  • Events
    • Registrations
    • Immediate delivery
    • Removal and shutdown
    • Typed channels
    • Optional queued delivery
    • Worker-stream acceptance and cancellation
  • Dispatch
    • Simulation boundary
  • Workers
    • Jobs
    • Pool lifetime
    • Topology providers and capacity
    • CPU policy and capabilities
    • Typed and JSON configuration
    • Context ownership
    • Policy example
  • Audio
    • Clips and voices
    • Lifetime and scheduling
    • Backends and limits
  • Logging
    • Native output terminal
    • Compile policy
    • Runtime settings and ownership
    • Filtering and failure boundaries
    • Validation
  • Diagnostics
    • Runtime statistics
    • Native resource statistics
    • Worker statistics
    • Dispatcher statistics
    • Event statistics
    • Asset diagnostics
    • Shader diagnostics
    • Memory statistics
    • Platform diagnostics
    • OpenGL diagnostics
    • Validation and limits
  • Failures
    • Native callbacks
    • Shutdown failures
    • Emergency reporting
    • Traces and exception storage
    • Destruction failures
    • Validation

Reference

  • C++ API
    • Namespaces
    • Entry points
    • Migration
      • Symbols
        • Page Hierarchy
        • Class Hierarchy
        • File Hierarchy
        • Full API
        • Concepts
  • Utilities
    • Sampled and synchronized state
    • Transition tables
    • Timing and numeric helpers
    • Packed bits, addresses and geometry
    • File discovery

Development

  • Build
    • Configuration options
      • Build configurations
      • Engine-only configuration
    • Dependency and toolchain settings
    • System dependencies
    • Troubleshooting
    • Optional worker support
    • Development SDK builds
    • GitHub CI and SDK artifacts
      • Hosted Windows coverage limits
  • Modules
    • Module boundary criteria
    • Select an assembly
    • Standalone modules
    • Add a module
  • UI adapters
    • Module and application ownership
    • Bridge responsibilities
    • Update, publication and shutdown
    • Routing and unavailable services
    • Acceptance
    • Repeating Linux root validation
  • Documentation
    • Generate locally
    • Tool selection and reuse
    • CMake entry points
    • Refreshing the pinned tools
    • Publishing contract
      • Version policy
      • First account and site setup
      • Publication verification and recovery
  • Contributing
    • Validation
    • Documentation and planning
  • Code style
    • Formatting
    • Code conventions
    • Scope and tests

Validation

  • Tests
    • Runner selection
    • Acceptance and consumers
    • CI and installed SDK checks
    • Optional terminal probes
    • Native and fixture coverage
  • Architecture
    • Coverage and selection
    • Repeating validation
      • Engine only
      • Engine-only composition graph
      • Engine asset and text regressions
      • Worker topology and configuration
      • Installed SDK consumers
      • Typed events
      • Native, OpenGL and standalone composition
      • Neutral UI consumer
    • Native and fixture checks
      • Sampling and positioned text
    • Manual acceptance drivers
    • Evidence limits
  • Logging
  • Desktop
    • Repeatable sequence
    • Linux controller automation
    • Linux joystick controller checks
Cheryl Engine
  • C++ API
  • C++ API reference
  • Namespace CE::Application
  • View page source

Namespace CE::Application

Contents

  • Namespaces

  • Classes

  • Typedefs

Namespaces

  • Namespace CE::Application::DebugTerminal

  • Namespace CE::Application::GLFWOpenGL

Classes

  • Struct RuntimeOptions

  • Struct StartupBackend

  • Struct StartupOptions

  • Struct StartupResult

  • Class Startup

Typedefs

  • Typedef CE::Application::OptionDefinitions

Previous Next

© Copyright 2026, Cheryl Engine contributors.

Built with Sphinx using a theme provided by Read the Docs.

Source revision: 530d8aa506f3 · Build details · Declaring source