TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/ProwlEngine/Prowl/llms.txt
Use this file to discover all available pages before exploring further.
Application class is the static entry point for every Prowl runtime session. It owns the primary event loop, coordinates initialization of the graphics, audio, and scene subsystems, and exposes the four main lifecycle events — Initialize, Update, Render, and Quitting — that the rest of the engine and your game code hook into. Because it is a static class, every member is accessed directly without instantiation; a single call to Application.Run(...) launches the window, drives the per-frame loop, and tears everything down cleanly when the window closes or Quit() is called.
Application is not thread-safe. All lifecycle events fire on the main thread. Avoid modifying IsRunning or IsPlaying from worker threads.Properties
true from the moment Run(...) is called until AppClose fires. Set to false as the first action of the shutdown sequence, before Quitting is invoked. Read this field to detect whether the engine loop is still active.true when the game simulation is running. In a standalone build this is set to true immediately inside Run(...) and stays true for the entire session. In the Prowl Editor it is false while in edit mode and true while the Play button is active.true when the current host is the Prowl Editor, false in standalone builds. Set once by Run(...) and read-only thereafter (private setter).Optional root path for application data. Defaults to
null; the asset pipeline may populate this before calling Run(...) so that file-relative asset loading resolves correctly.The active asset provider injected by the host (editor or game launcher) via
Run(...). All asset loading throughout the engine routes through this interface.Events
All four events follow theAction delegate (no parameters, no return value). Subscribe with += and unsubscribe with -=.
Fires once after the window, graphics device, scene manager, and audio system have all been created. Use this to load your first scene or register global services.
Fires once per frame. The engine’s internal
AppUpdate method updates the time data, pushes a TimeData stack frame, invokes audio pooling, then raises Update followed immediately by Render within the same frame. Scene update logic and input polling belong here.Fires once per frame after
Update, still within the same AppUpdate call and the same TimeData scope. Camera rendering, post-processing, and UI drawing should subscribe here.Fires when the application is closing, after
IsRunning is set to false and before graphics and audio are disposed. Use this to flush save data, release unmanaged handles, or log shutdown telemetry.Methods
Run
Starts the full engine loop. This call blocks until the window is closed. For standalone (non-editor) builds,IsPlaying is set to true immediately inside this method.
The base window title. The active graphics backend name is appended automatically, e.g.
"My Game - OpenGL".Initial client-area width in pixels. The window opens in
Maximized state, so this value acts as a minimum hint.Initial client-area height in pixels.
The asset provider implementation to use for the lifetime of this session. Stored in
Application.AssetProvider.Pass
true when the host is the Prowl Editor. Stored in Application.IsEditor and influences Quit() behavior.Quit
Requests the application window to close. Has no effect when running inside the editor while in play mode; in that case use the editor’s Stop button instead.When
Application.IsEditor is true and Application.IsPlaying is true, Quit() is a no-op. This prevents scripts from accidentally closing the editor during a play session.GetBackend
Returns the preferredGraphicsBackend for the current operating system. The selection order is:
| Platform | Priority order |
|---|---|
| Windows | OpenGL → Vulkan → Direct3D 11 → OpenGLES |
| macOS | Metal → OpenGL → OpenGLES |
| Linux / Unix | OpenGL → Vulkan → OpenGLES |
The first backend in the platform’s preferred list (index
[0]).Lifecycle Sequence
Full startup and shutdown flow
Full startup and shutdown flow