![]() |
ezEngine
Release 25.03
|
Public Types | |
using | SUPER = ezApplication |
Public Member Functions | |
ezGameApplicationBase (ezStringView sAppName) | |
![]() | |
ezApplication (ezStringView sAppName) | |
Constructor. | |
virtual | ~ezApplication () |
Virtual destructor. | |
void | SetApplicationName (ezStringView sAppName) |
Changes the application name. | |
const ezString & | GetApplicationName () const |
Returns the application name. | |
virtual void | AfterHighLevelSystemsShutdown () |
Called after ezStartup::ShutdownHighLevelSystems() has been executed. | |
virtual void | AfterCoreSystemsShutdown () |
This function is called after ezStartup::ShutdownCoreSystems() has been called. More... | |
virtual void | BeforeEnterBackground () |
This function is called when an application is moved to the background. More... | |
virtual void | BeforeEnterForeground () |
This function is called whenever an application is resumed from background mode. More... | |
void | SetReturnCode (ezInt32 iReturnCode) |
Sets the value that the application will return to the OS. You can call this function at any point during execution to update the return value of the application. Default is zero. | |
ezInt32 | GetReturnCode () const |
Returns the currently set value that the application will return to the OS. | |
virtual const char * | TranslateReturnCode () const |
If the return code is not zero, this function might be called to get a string to print the error code in human readable form. | |
void | SetCommandLineArguments (ezUInt32 uiArgumentCount, const char **pArguments) |
Will set the command line arguments that were passed to the app by the OS. This is automatically called by EZ_APPLICATION_ENTRY_POINT(). | |
ezUInt32 | GetArgumentCount () const |
Returns the number of command line arguments that were passed to the application. More... | |
const char * | GetArgument (ezUInt32 uiArgument) const |
Returns one of the command line arguments that was passed to the application. | |
const char ** | GetArgumentsArray () const |
Returns the complete array of command line arguments that were passed to the application. | |
void | EnableMemoryLeakReporting (bool bEnable) |
bool | IsMemoryLeakReportingEnabled () const |
virtual void | RequestApplicationQuit () |
Calling this function requests that the application quits after the current invocation of Run() finishes. More... | |
EZ_ALWAYS_INLINE bool | ShouldApplicationQuit () const |
Returns whether RequestQuit() was called. | |
Protected Member Functions | |
Application Shutdown | |
virtual void | BeforeHighLevelSystemsShutdown () override |
This function is called after the application main loop has run for the last time, before engine deinitialization. More... | |
virtual void | BeforeCoreSystemsShutdown () override |
This function is called after the application main loop has run for the last time, before engine deinitialization. More... | |
virtual void | Deinit_ShutdownGraphicsDevice ()=0 |
virtual void | Deinit_UnloadPlugins () |
virtual void | Deinit_ShutdownLogging () |
Basics | |
static ezGameApplicationBase * | s_pGameApplicationBaseInstance = nullptr |
static ezGameApplicationBase * | GetGameApplicationBaseInstance () |
Returns the ezGameApplicationBase singleton. | |
Capturing Data | |
bool | m_bTakeScreenshot = false |
ezConsoleFunction< void()> | m_ConFunc_TakeScreenshot |
expose TakeScreenshot() as a console function | |
void | TakeProfilingCapture () |
Does a profiling capture and writes it to disk at ':appdata'. | |
void | TakeScreenshot () |
Schedules a screenshot to be taken at the end of the frame. More... | |
virtual void | StoreScreenshot (ezImage &&image, ezStringView sContext={}) |
Called with the result from taking a screenshot. The default implementation writes the image to disk at ':appdata/Screenshots'. | |
void | ExecuteTakeScreenshot (ezWindowOutputTargetBase *pOutputTarget, ezStringView sContext={}) |
Frame Captures | |
bool | m_bContinuousFrameCapture = false |
bool | m_bCaptureFrame = false |
ezConsoleFunction< void()> | m_ConFunc_CaptureFrame |
expose CaptureFrame() as a console function | |
void | CaptureFrame () |
Schedules a frame capture if the corresponding plugin is loaded. More... | |
void | SetContinuousFrameCapture (bool bEnable) |
Controls if frame captures are taken continuously (without being persisted) or only on-demand. More... | |
bool | GetContinousFrameCapture () const |
virtual ezResult | GetAbsFrameCaptureOutputPath (ezStringBuilder &ref_sOutputPath) |
Get the absolute base output path for frame captures. | |
void | ExecuteFrameCapture (ezWindowHandle targetWindowHandle, ezStringView sContext={}) |
GameState | |
ezUniquePtr< ezGameStateBase > | m_pGameState |
void | ActivateGameState (ezWorld *pWorld, ezStringView sStartPosition, const ezTransform &startPositionOffset) |
Creates and activates the game state for this application. More... | |
void | DeactivateGameState () |
Deactivates and destroys the active game state. More... | |
ezGameStateBase * | GetActiveGameState () const |
Returns the currently active game state. Could be nullptr. | |
virtual ezUniquePtr< ezGameStateBase > | CreateGameState () |
Creates a game state for the application to use. More... | |
virtual void | ActivateGameStateAtStartup () |
Allows to override whether a game state is created and activated at application startup. More... | |
Platform Profile | |
ezPlatformProfile | m_PlatformProfile |
const ezPlatformProfile & | GetPlatformProfile () const |
Returns the ezPlatformProfile that has been loaded for this application. | |
Application Startup | |
ezEventSubscriptionID | m_LogToConsoleID = 0 |
ezEventSubscriptionID | m_LogToVsID = 0 |
ezEvent< const ezGameApplicationStaticEvent & > | m_StaticEvents |
virtual ezResult | BeforeCoreSystemsStartup () override |
This function is called before any kind of engine initialization is done. More... | |
virtual void | AfterCoreSystemsStartup () override |
This function is called after basic engine initialization has been done. More... | |
virtual ezString | FindProjectDirectory () const =0 |
Returns the target of the 'project' special data directory. More... | |
virtual ezString | GetBaseDataDirectoryPath () const |
Returns the target of the 'base' data directory. More... | |
virtual ezString | GetProjectDataDirectoryPath () const |
Returns the target of the 'project' data directory. More... | |
virtual void | ExecuteBaseInitFunctions () |
Executes all 'BaseInit_' functions. Typically done very early, before core system startup. | |
virtual void | BaseInit_ConfigureLogging () |
virtual void | ExecuteInitFunctions () |
Executes all 'Init_' functions. Typically done after core system startup. | |
virtual void | Init_PlatformProfile_SetPreferred () |
virtual void | Init_ConfigureTelemetry () |
virtual void | Init_FileSystem_SetSpecialDirs () |
virtual void | Init_LoadRequiredPlugins () |
virtual void | Init_ConfigureAssetManagement () |
virtual void | Init_FileSystem_ConfigureDataDirs () |
virtual void | Init_LoadWorldModuleConfig () |
virtual void | Init_LoadProjectPlugins () |
virtual void | Init_PlatformProfile_LoadForRuntime () |
virtual void | Init_ConfigureInput () |
virtual void | Init_ConfigureTags () |
virtual void | Init_ConfigureCVars () |
virtual void | Init_SetupGraphicsDevice ()=0 |
virtual void | Init_SetupDefaultResources () |
Application Execution | |
ezTime | m_FrameTime |
ezCopyOnBroadcastEvent< const ezGameApplicationExecutionEvent & > | m_ExecutionEvents |
virtual void | Run () override |
Main run function which is called periodically. This function must be overridden. More... | |
void | RunOneFrame () |
ezTime | GetFrameTime () const |
virtual bool | IsGameUpdateEnabled () const |
virtual void | Run_InputUpdate () |
virtual bool | Run_ProcessApplicationInput () |
virtual void | Run_AcquireImage () |
This function can be used to acquire a new window from a swap-chain or do any other update operations on windows before the multi-threaded rendering and update phase starts. | |
virtual void | Run_WorldUpdateAndRender ()=0 |
virtual void | Run_BeforeWorldUpdate () |
virtual void | Run_AfterWorldUpdate () |
virtual void | Run_UpdatePlugins () |
virtual void | Run_PresentImage () |
This function can be used to present the final image to a window. It is run at the end of the rendering phase. It can also be used to inspect the swap-chain e.g. for screenshot purposes before presenting. | |
virtual void | Run_FinishFrame () |
void | UpdateFrameTime () |
Additional Inherited Members | |
![]() | |
static ezApplication * | GetApplicationInstance () |
Returns the one instance of ezApplication that is available. | |
![]() | |
bool | m_bWasQuitRequested = false |
void ezGameApplicationBase::ActivateGameState | ( | ezWorld * | pWorld, |
ezStringView | sStartPosition, | ||
const ezTransform & | startPositionOffset | ||
) |
Creates and activates the game state for this application.
If the application already has a world (such as the editor), it can pass this to the newly created game state. Otherwise the game state should create its own world.
In the editor case, there are cases where a 'player start position' is specified, which can be used by the game state to place the player.
Broadcasts local event: ezGameApplicationStaticEvent::AfterGameStateActivated Broadcasts global event: AfterGameStateActivation(ezGameStateBase*)
|
protectedvirtual |
Allows to override whether a game state is created and activated at application startup.
The default implementation just calls ActivateGameState(), but applications that run inside the editor override this to do nothing, as they only want the game state to become active during simulation, not during editing.
Reimplemented in ezEngineProcessGameApplication.
|
overrideprotectedvirtual |
This function is called after basic engine initialization has been done.
ezApplication will automatically call ezStartup::StartupCoreSystems() to initialize the application. This function can be overridden to do additional application specific initialization. To startup entire subsystems, you should however use the features provided by ezStartup and ezSubSystem.
Reimplemented from ezApplication.
Reimplemented in ezEngineProcessGameApplication, ezShaderCompilerApplication, and ezPlayerApplication.
|
overrideprotectedvirtual |
This function is called after the application main loop has run for the last time, before engine deinitialization.
Override this function to do application specific deinitialization that still requires a running engine. After this function returns ezStartup::ShutdownCoreSystems() is called and thus everything, including allocators, is shut down. To shut down entire subsystems, you should, however, use the features provided by ezStartup and ezSubSystem.
Reimplemented from ezApplication.
Reimplemented in ezEngineProcessGameApplication.
|
overrideprotectedvirtual |
This function is called before any kind of engine initialization is done.
Override this function to be able to configure subsystems, before they are initialized. After this function returns, ezStartup::StartupCoreSystems() is automatically called. If you need to set up custom allocators, this is the place to do this.
Reimplemented from ezApplication.
Reimplemented in ezEngineProcessGameApplication, ezShaderCompilerApplication, and ezPlayerApplication.
|
overrideprotectedvirtual |
This function is called after the application main loop has run for the last time, before engine deinitialization.
After this function call, ezApplication executes ezStartup::ShutdownHighLevelSystems().
Reimplemented from ezApplication.
void ezGameApplicationBase::CaptureFrame | ( | ) |
Schedules a frame capture if the corresponding plugin is loaded.
If continuous capture mode is enabled the currently running frame capture is persisted (and not discarded). Otherwise, the next frame will be captured and persisted.
|
protectedvirtual |
Creates a game state for the application to use.
The default implementation will query all available game states for the best match. By overriding this, one can also just create a specific game state directly.
void ezGameApplicationBase::DeactivateGameState | ( | ) |
Deactivates and destroys the active game state.
Broadcasts local event: ezGameApplicationStaticEvent::BeforeGameStateDeactivated Broadcasts global event: BeforeGameStateDeactivation(ezGameStateBase*)
|
protectedpure virtual |
Returns the target of the 'project' special data directory.
The return value of this function will be passed into ezFileSystem::SetSpecialDirectory. Afterwards, any path starting with the special directory marker (">project/") will point into this directory.
Implemented in ezEngineProcessGameApplication, and ezGameApplication.
|
protectedvirtual |
Returns the target of the 'base' data directory.
Path needs to start with a special directory marker (">marker/"). This is passed into the target of the 'base' data directory. Target defaults to ">sdk/Data/Base".
|
protectedvirtual |
Returns the target of the 'project' data directory.
Path needs to start with a special directory marker (">marker/"). This is passed into the target of the 'project' data directory. Target defaults to ">project/".
|
overridevirtual |
Main run function which is called periodically. This function must be overridden.
Call RequestApplicationQuit() at any point to prevent Run() from being called again.
Implements ezApplication.
Reimplemented in ezEngineProcessGameApplication, and ezShaderCompilerApplication.
void ezGameApplicationBase::SetContinuousFrameCapture | ( | bool | bEnable | ) |
Controls if frame captures are taken continuously (without being persisted) or only on-demand.
If continuous frame capture is enabled, calling CaptureFrame() will persist the result of the frame capture that is currently in progress. If continuous frame capture is disabled, CaptureFrame() will capture and persist the next frame. Note that continuous capture mode comes with a performance cost, but allows the user to decide on-the-fly if the current frame capture is to be persisted, e.g., when a unit test image comparison fails.
void ezGameApplicationBase::TakeScreenshot | ( | ) |
Schedules a screenshot to be taken at the end of the frame.
After taking a screenshot, StoreScreenshot() is executed, which may decide where to write the result to.