|
| xiiGameApplication (xiiStringView sAppName, xiiStringView sProjectPath={}) |
| sProjectPath may be empty, if FindProjectDirectory() is overridden.
|
|
virtual xiiString | FindProjectDirectory () const override |
| Implementation of xiiGameApplicationBase::FindProjectDirectory to define the 'project' special data directory.
|
|
void | ReinitializeInputConfig () |
| Used at runtime (by the editor) to reload input maps. Forwards to Init_ConfigureInput()
|
|
xiiStringView | GetAppProjectPath () const |
| Returns the project path that was given to the constructor (or modified by an overridden implementation).
|
|
| xiiGameApplicationBase (xiiStringView sAppName) |
|
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.
|
|
void | CaptureFrame () |
| Schedules a frame capture if the corresponding plugin is loaded.
|
|
void | SetContinuousFrameCapture (bool bEnable) |
| Controls if frame captures are taken continuously (without being persisted) or only on-demand.
|
|
bool | GetContinousFrameCapture () const |
|
virtual xiiResult | GetAbsFrameCaptureOutputPath (xiiStringBuilder &ref_sOutputPath) |
| Get the absolute base output path for frame captures.
|
|
void | ActivateGameState (xiiWorld *pWorld, xiiStringView sStartPosition, const xiiTransform &startPositionOffset) |
| Creates and activates the game state for this application.
|
|
void | DeactivateGameState () |
| Deactivates and destroys the active game state.
|
|
xiiGameStateBase * | GetActiveGameState () const |
| Returns the currently active game state. Could be nullptr.
|
|
const xiiPlatformProfile & | GetPlatformProfile () const |
| Returns the xiiPlatformProfile that has been loaded for this application.
|
|
virtual xiiApplication::Execution | Run () override |
| Main run function which is called periodically. This function must be overridden.
|
|
void | RunOneFrame () |
|
xiiTime | GetFrameTime () const |
|
| xiiApplication (xiiStringView sAppName) |
| Constructor.
|
|
virtual | ~xiiApplication () |
| Virtual destructor.
|
|
void | SetApplicationName (xiiStringView sAppName) |
| Changes the application name.
|
|
const xiiString & | GetApplicationName () const |
| Returns the application name.
|
|
virtual void | AfterHighLevelSystemsShutdown () |
| Called after xiiStartup::ShutdownHighLevelSystems() has been executed.
|
|
virtual void | AfterCoreSystemsShutdown () |
| This function is called after xiiStartup::ShutdownCoreSystems() has been called.
|
|
virtual void | BeforeEnterBackground () |
| This function is called when an application is moved to the background.
|
|
virtual void | BeforeEnterForeground () |
| This function is called whenever an application is resumed from background mode.
|
|
void | SetReturnCode (xiiInt32 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.
|
|
xiiInt32 | 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 (xiiUInt32 uiArgumentCount, const char **pArguments) |
| Will set the command line arguments that were passed to the app by the OS. This is automatically called by XII_APPLICATION_ENTRY_POINT() and XII_CONSOLEAPP_ENTRY_POINT().
|
|
xiiUInt32 | GetArgumentCount () const |
| Returns the number of command line arguments that were passed to the application.
|
|
const char * | GetArgument (xiiUInt32 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 | RequestQuit () |
| Calling this function requests that the application quits after the current invocation of Run() finishes.
|
|
XII_ALWAYS_INLINE bool | WasQuitRequested () const |
| Returns whether RequestQuit() was called.
|
|
|
virtual void | Init_ConfigureInput () override |
|
virtual void | Init_ConfigureAssetManagement () override |
|
virtual void | Init_LoadRequiredPlugins () override |
|
virtual void | Init_SetupDefaultResources () override |
|
virtual void | Init_SetupGraphicsDevice () override |
|
virtual void | Deinit_ShutdownGraphicsDevice () override |
|
virtual bool | IsGameUpdateEnabled () const override |
|
virtual bool | Run_ProcessApplicationInput () override |
|
virtual void | Run_AcquireImage () override |
| 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 () override |
|
virtual void | Run_PresentImage () override |
| 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 () override |
|
void | RenderFps () |
|
void | RenderConsole () |
|
void | UpdateWorldsAndExtractViews () |
|
virtual void | BeforeHighLevelSystemsShutdown () override |
| This function is called after the application main loop has run for the last time, before engine deinitialization.
|
|
virtual void | BeforeCoreSystemsShutdown () override |
| This function is called after the application main loop has run for the last time, before engine deinitialization.
|
|
virtual void | Deinit_UnloadPlugins () |
|
virtual void | Deinit_ShutdownLogging () |
|
virtual void | StoreScreenshot (xiiImage &&image, xiiStringView sContext={}) |
| Called with the result from taking a screenshot. The default implementation writes the image to disk at ':appdata/Screenshots'.
|
|
void | ExecuteTakeScreenshot (xiiWindowOutputTargetBase *pOutputTarget, xiiStringView sContext={}) |
|
void | ExecuteFrameCapture (xiiWindowHandle targetWindowHandle, xiiStringView sContext={}) |
|
virtual xiiUniquePtr< xiiGameStateBase > | CreateGameState () |
| Creates a game state for the application to use.
|
|
virtual void | ActivateGameStateAtStartup () |
| Allows to override whether a game state is created and activated at application startup.
|
|
virtual xiiResult | BeforeCoreSystemsStartup () override |
| This function is called before any kind of engine initialization is done.
|
|
virtual void | AfterCoreSystemsStartup () override |
| This function is called after basic engine initialization has been done.
|
|
virtual xiiString | GetBaseDataDirectoryPath () const |
| Returns the target of the 'base' data directory.
|
|
virtual xiiString | GetProjectDataDirectoryPath () const |
| Returns the target of the 'project' data directory.
|
|
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_FileSystem_ConfigureDataDirs () |
|
virtual void | Init_LoadWorldModuleConfig () |
|
virtual void | Init_LoadProjectPlugins () |
|
virtual void | Init_PlatformProfile_LoadForRuntime () |
|
virtual void | Init_ConfigureTags () |
|
virtual void | Init_ConfigureCVars () |
|
virtual void | Run_InputUpdate () |
|
virtual void | Run_BeforeWorldUpdate () |
|
virtual void | Run_AfterWorldUpdate () |
|
virtual void | Run_UpdatePlugins () |
|
void | UpdateFrameTime () |
|
The base class for all typical game applications made with xiiEngine.
While xiiApplication is an abstraction for the operating system entry point, xiiGameApplication extends this to implement startup and tear down functionality of a typical game that uses the standard functionality of xiiEngine.
xiiGameApplication implements a lot of functionality needed by most games, such as setting up data directories, loading plugins, configuring the input system, etc.
For every such step a virtual function is called, allowing to override steps in custom applications.
The default implementation tries to do as much of this in a data-driven way. E.g. plugin and data directory configurations are read from DDL files. These can be configured by hand or using xiiEditor.
You are NOT supposed to implement game functionality by deriving from xiiGameApplication. Instead see xiiGameState.
xiiGameApplication will create exactly one xiiGameState by looping over all available xiiGameState types (through reflection) and picking the one whose DeterminePriority function returns the highest priority. That game state will live throughout the entire application life-time and will be stepped every frame.