Foundation
Loading...
Searching...
No Matches
Private Member Functions | List of all members
Examples::TriangleDemoApp Class Reference
Inheritance diagram for Examples::TriangleDemoApp:
Foundation::Rendering::RenderApplication Foundation::Rendering::RenderApplication Foundation::Native::NativeApplication Foundation::Native::NativeApplication

Private Member Functions

void OnRendererSetup () override
 Set up the renderer by creating passes, resources, and other configurations.
 
void OnRendererSetup () override
 Set up the renderer by creating passes, resources, and other configurations.
 

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.
 
RendererGetRenderer () const
 Retrieve the underlying Renderer instance.
 
RHISwapchainGetSwapchain () const
 Retrieve the current RHISwapchain instance.
 
Native::NativeWindowGetNativeWindow ()
 Retrieve the current NativeWindow instance.
 
AllocatorGetAllocator ()
 Retrieve the allocator used for general application allocations.
 
AllocatorGetRendererAllocator ()
 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 OnDeviceSetup ()
 Actions to take after device specific resources has been set up.
 
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.
 
virtual void OnApplicationTick ()
 Action to take on every application tick.
 
- Protected Attributes inherited from Foundation::Rendering::RenderApplication
ApplicationInitDesc mDesc
 
DefaultAllocator mAlloc
 
DefaultAllocator mAllocRenderer
 
Native::NativeWindow mWindow
 
UniquePtr< RHIApplicationmRHI
 
RHIApplicationScopedObjectHandle< RHIDevicemDevice
 
RHIDeviceScopedObjectHandle< RHISwapchainmSwapchain
 
UniquePtr< RenderermRenderer
 
FrameTiming mTiming {}
 
Async::Thread mRenderThread
 
Async::Condition mRenderFrame
 
Async::Mutex mRenderMutex
 
bool mRenderThreadReset {false}
 
bool mRenderThreadStarted {false}
 
bool mAppShouldClose {false}
 

Detailed Description

Examples
MeshShader.cpp, and Triangle.cpp.

Member Function Documentation

◆ OnRendererSetup() [1/2]

void Examples::TriangleDemoApp::OnRendererSetup ( )
inlineoverrideprivatevirtual

Set up the renderer by creating passes, resources, and other configurations.

Note
This is where you should set up your rendering pipeline.
This is invoked by InitializeRenderer on the Render thread, within a Renderer::BeginSetup and Renderer::EndSetup clause, thus invoking Renderer::BeginSetup, Renderer::EndSetup here again is incorrect. and will be called again if the swapchain is recreated.
This MUST be implemented by the subclass.
This should not be directly called.

Implements Foundation::Rendering::RenderApplication.

Examples
MeshShader.cpp, and Triangle.cpp.

◆ OnRendererSetup() [2/2]

void Examples::TriangleDemoApp::OnRendererSetup ( )
inlineoverrideprivatevirtual

Set up the renderer by creating passes, resources, and other configurations.

Note
This is where you should set up your rendering pipeline.
This is invoked by InitializeRenderer on the Render thread, within a Renderer::BeginSetup and Renderer::EndSetup clause, thus invoking Renderer::BeginSetup, Renderer::EndSetup here again is incorrect. and will be called again if the swapchain is recreated.
This MUST be implemented by the subclass.
This should not be directly called.

Implements Foundation::Rendering::RenderApplication.


The documentation for this class was generated from the following files: