![]() |
Plasma Engine
2.0
|
Public Types | |
using | SUPER = plGameApplication |
![]() | |
using | SUPER = plGameApplicationBase |
![]() | |
using | SUPER = plApplication |
![]() | |
enum class | Execution { Continue , Quit } |
Defines the possible return values for the plApplication::Run() function. More... | |
Public Member Functions | |
virtual plApplication::Execution | Run () override |
Main run function which is called periodically. This function must be overridden. | |
![]() | |
plGameApplication (const char *szAppName, const char *szProjectPath) | |
szProjectPath may be nullptr, if FindProjectDirectory() is overridden. | |
virtual plString | FindProjectDirectory () const override |
Implementation of plGameApplicationBase::FindProjectDirectory to define the 'project' special data directory. | |
void | ReinitializeInputConfig () |
Used at runtime (by the editor) to reload input maps. Forwards to Init_ConfigureInput() | |
plStringView | GetAppProjectPath () const |
Returns the project path that was given to the constructor (or modified by an overridden implementation). | |
![]() | |
plGameApplicationBase (plStringView 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 plResult | GetAbsFrameCaptureOutputPath (plStringBuilder &ref_sOutputPath) |
Get the absolute base output path for frame captures. | |
plResult | ActivateGameState (plWorld *pWorld=nullptr, const plTransform *pStartPosition=nullptr) |
Creates and activates the game state for this application. | |
void | DeactivateGameState () |
Deactivates and destroys the active game state. | |
plGameStateBase * | GetActiveGameState () const |
Returns the currently active game state. Could be nullptr. | |
plGameStateBase * | GetActiveGameStateLinkedToWorld (const plWorld *pWorld) const |
Returns the currently active game state IF it was created for the given world. | |
const plPlatformProfile & | GetPlatformProfile () const |
Returns the plPlatformProfile that has been loaded for this application. | |
void | RunOneFrame () |
plTime | GetFrameTime () const |
![]() | |
plApplication (plStringView sAppName) | |
Constructor. | |
virtual | ~plApplication () |
Virtual destructor. | |
void | SetApplicationName (plStringView sAppName) |
Changes the application name. | |
const plString & | GetApplicationName () const |
Returns the application name. | |
virtual void | AfterHighLevelSystemsShutdown () |
Called after plStartup::ShutdownHighLevelSystems() has been executed. | |
virtual void | AfterCoreSystemsShutdown () |
This function is called after plStartup::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 (plInt32 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. | |
plInt32 | 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 (plUInt32 uiArgumentCount, const char **pArguments) |
Will set the command line arguments that were passed to the app by the OS. This is automatically called by PL_APPLICATION_ENTRY_POINT() and PL_CONSOLEAPP_ENTRY_POINT(). | |
plUInt32 | GetArgumentCount () const |
Returns the number of command line arguments that were passed to the application. | |
const char * | GetArgument (plUInt32 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. | |
PL_ALWAYS_INLINE bool | WasQuitRequested () const |
Returns whether RequestQuit() was called. | |
Private Member Functions | |
virtual plResult | 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. | |
Additional Inherited Members | |
![]() | |
static plGameApplication * | GetGameApplicationInstance () |
Returns the plGameApplication singleton. | |
static plStringView | GetActiveRenderer () |
Returns the active renderer of the current app. Either the default or overridden via -render command line flag. | |
static void | SetOverrideDefaultDeviceCreator (plDelegate< plGALDevice *(const plGALDeviceCreationDescription &)> creator) |
When the graphics device is created, by default the game application will pick a platform specific implementation. This function allows to override that by setting a custom function that creates a graphics device. | |
![]() | |
static plGameApplicationBase * | GetGameApplicationBaseInstance () |
Returns the plGameApplicationBase singleton. | |
![]() | |
static plApplication * | GetApplicationInstance () |
Returns the one instance of plApplication that is available. | |
![]() | |
plCopyOnBroadcastEvent< const plGameApplicationExecutionEvent & > | m_ExecutionEvents |
![]() | |
static plCVarBool | cvar_AppVSync |
static plCVarBool | cvar_AppShowFPS |
static plCVarBool | cvar_AppShowInfo |
![]() | |
virtual void | Init_ConfigureAssetManagement () override |
virtual void | Init_LoadRequiredPlugins () override |
virtual void | Init_SetupGraphicsDevice () override |
virtual void | Deinit_ShutdownGraphicsDevice () override |
virtual bool | IsGameUpdateEnabled () const 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 | RenderInfo () |
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 (plImage &&image, plStringView sContext={}) |
Called with the result from taking a screenshot. The default implementation writes the image to disk at ':appdata/Screenshots'. | |
void | ExecuteTakeScreenshot (plWindowOutputTargetBase *pOutputTarget, plStringView sContext={}) |
void | ExecuteFrameCapture (plWindowHandle targetWindowHandle, plStringView sContext={}) |
virtual plUniquePtr< plGameStateBase > | CreateGameState (plWorld *pWorld) |
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 plString | GetBaseDataDirectoryPath () const |
Returns the target of the 'base' data directory. | |
virtual plString | 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_PlatformProfile_LoadForRuntime () |
virtual void | Init_ConfigureCVars () |
virtual void | Run_InputUpdate () |
virtual void | Run_BeforeWorldUpdate () |
virtual void | Run_AfterWorldUpdate () |
virtual void | Run_UpdatePlugins () |
void | UpdateFrameTime () |
![]() | |
plString | m_sAppProjectPath |
Stores what is given to the constructor. | |
bool | m_bIgnoreErrors = false |
plSharedPtr< plDelegateTask< void > > | m_pUpdateTask |
bool | m_bShowConsole = false |
plUniquePtr< plQuakeConsole > | m_pConsole |
![]() | |
bool | m_bTakeScreenshot = false |
plConsoleFunction< void()> | m_ConFunc_TakeScreenshot |
expose TakeScreenshot() as a console function | |
bool | m_bContinuousFrameCapture = false |
bool | m_bCaptureFrame = false |
plConsoleFunction< void()> | m_ConFunc_CaptureFrame |
expose CaptureFrame() as a console function | |
plUniquePtr< plGameStateBase > | m_pGameState |
plWorld * | m_pWorldLinkedWithGameState = nullptr |
plPlatformProfile | m_PlatformProfile |
plEventSubscriptionID | m_LogToConsoleID = 0 |
plEventSubscriptionID | m_LogToVsID = 0 |
plEvent< const plGameApplicationStaticEvent & > | m_StaticEvents |
plTime | m_FrameTime |
![]() | |
bool | m_bWasQuitRequested = false |
![]() | |
static plGameApplication * | s_pGameApplicationInstance = nullptr |
static plDelegate< plGALDevice *(const plGALDeviceCreationDescription &)> | s_DefaultDeviceCreator |
![]() | |
static plGameApplicationBase * | s_pGameApplicationBaseInstance = nullptr |
|
overrideprivatevirtual |
This function is called after basic engine initialization has been done.
plApplication will automatically call plStartup::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 plStartup and plSubSystem.
Reimplemented from plGameApplicationBase.
|
overrideprivatevirtual |
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, plStartup::StartupCoreSystems() is automatically called. If you need to set up custom allocators, this is the place to do this.
Reimplemented from plGameApplicationBase.
|
inlineoverrideprivatevirtual |
Reimplemented from plGameApplication.
|
inlineoverrideprivatevirtual |
Reimplemented from plGameApplicationBase.
|
inlineoverrideprivatevirtual |
Reimplemented from plGameApplicationBase.
|
inlineoverrideprivatevirtual |
Reimplemented from plGameApplication.
|
overridevirtual |
Main run function which is called periodically. This function must be overridden.
Return Execution::Quit when the application should quit. You may set a return code via SetReturnCode() beforehand.
Reimplemented from plGameApplicationBase.
|
inlineoverrideprivatevirtual |
Reimplemented from plGameApplication.