|
Foundation
|
Classes | |
| struct | PushConstant |
Private Member Functions | |
| void | OnDeviceSetup () override |
| Actions to take after device specific resources has been set up. | |
| void | OnRendererSetup () override |
| Set up the renderer by creating passes, resources, and other configurations. | |
| void | OnApplicationTick () override |
| Action to take on every application tick. | |
Private Attributes | |
| const char * | kShaders [2] |
| uint32_t | mShaderIndex {0} |
| UniquePtr< StagingBuffer > | mStaging |
| HDC | hScreenDC = NULL |
| HDC | hMemoryDC = NULL |
| HBITMAP | hBitmap = NULL |
Additional Inherited Members | |
Public Member Functions inherited from Foundation::Rendering::RenderApplication | |
| template<typename Backend , typename... Args> | |
| void | Initialize (ApplicationInitDesc const &desc={}, Args &&... args) |
| Initialize the application with the specified RHI backend. | |
| RHIExtent2D | GetFramebufferSize () const |
| Retrieve the framebuffer size of the current window. | |
| FrameTiming | GetTiming () const |
| Retrieve the timing information of the last frame. | |
| Renderer * | GetRenderer () const |
| Retrieve the underlying Renderer instance. | |
| RHISwapchain * | GetSwapchain () const |
| Retrieve the current RHISwapchain instance. | |
| Native::NativeWindow * | GetNativeWindow () |
| Retrieve the current NativeWindow instance. | |
| Allocator * | GetAllocator () |
| Retrieve the allocator used for general application allocations. | |
| Allocator * | GetRendererAllocator () |
| Retrieve the allocator used for renderer allocations. | |
| void | RunForever () |
| Start the Render thread and run the application loop indefinitely, until the window is closed or the application is exited. | |
| void | WaitForFrame () |
| Wait for the render thread to start, or the next frame to be rendered. | |
| void | ResetRendererOnNextFrame () |
| Reset the renderer on the next frame, calling OnRendererSetup internally. | |
| void | Shutdown () |
| Flag the application to exit. | |
Public Member Functions inherited from Foundation::Native::NativeApplication | |
| template<typename T = float> | |
| T | GetApplicationTime () const |
| Returns a high-resolution time in seconds since the application started. | |
| size_t | GetApplicationCounter () const |
| Returns a high-resolution time in nanoseconds since the application started. | |
| NativeApplication () | |
| virtual | ~NativeApplication () |
Static Public Member Functions inherited from Foundation::Native::NativeApplication | |
| static NativeWindow | CreateNativeWindow (uint32_t width, uint32_t height, const char *title) |
| Creates a window with the specified width, height, and title. | |
Protected Member Functions inherited from Foundation::Rendering::RenderApplication | |
| virtual void | OnBeforeFrame () |
| Action to take before each frame is executed. | |
| virtual void | OnAfterFrame () |
| Action to take after each frame is executed. | |
| virtual void | OnRendererPostSetup () |
| Action to take after the renderer has been set up. | |
Protected Attributes inherited from Foundation::Rendering::RenderApplication | |
| ApplicationInitDesc | mDesc |
| DefaultAllocator | mAlloc |
| DefaultAllocator | mAllocRenderer |
| Native::NativeWindow | mWindow |
| UniquePtr< RHIApplication > | mRHI |
| RHIApplicationScopedObjectHandle< RHIDevice > | mDevice |
| RHIDeviceScopedObjectHandle< RHISwapchain > | mSwapchain |
| UniquePtr< Renderer > | mRenderer |
| FrameTiming | mTiming {} |
| Async::Thread | mRenderThread |
| Async::Condition | mRenderFrame |
| Async::Mutex | mRenderMutex |
| bool | mRenderThreadReset {false} |
| bool | mRenderThreadStarted {false} |
| bool | mAppShouldClose {false} |
|
inlineoverrideprivatevirtual |
Action to take on every application tick.
Implementation may leave this empty if no action is needed.
Reimplemented from Foundation::Rendering::RenderApplication.
|
inlineoverrideprivatevirtual |
Actions to take after device specific resources has been set up.
This is run on the main thread, i.e. the calling thread of Initialize(), after the device and swapchain is created, but before the Renderer is created.
Implementation may leave this empty if no action is needed.
Reimplemented from Foundation::Rendering::RenderApplication.
|
inlineoverrideprivatevirtual |
Set up the renderer by creating passes, resources, and other configurations.
Implements Foundation::Rendering::RenderApplication.
|
private |
|
private |