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

Classes

struct  PushConstant
 

Public Member Functions

 TexturePoolApp ()
 
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.
 
- 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 ()
 

Private Attributes

UniquePtr< TexturePoolmTexturePool
 
Vector< TexturePoolHandlemHandles
 

Additional Inherited Members

- 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.
 
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
TexturePool.cpp.

Constructor & Destructor Documentation

◆ TexturePoolApp()

Examples::TexturePoolApp::TexturePoolApp ( )
inline
Examples
TexturePool.cpp.

Member Function Documentation

◆ OnDeviceSetup()

void Examples::TexturePoolApp::OnDeviceSetup ( )
inlineoverridevirtual

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.

Note
This should not be directly called.

Reimplemented from Foundation::Rendering::RenderApplication.

Examples
TexturePool.cpp.

◆ OnRendererSetup()

void Examples::TexturePoolApp::OnRendererSetup ( )
inlineoverridevirtual

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.

Member Data Documentation

◆ mHandles

Vector<TexturePoolHandle> Examples::TexturePoolApp::mHandles
private
Examples
TexturePool.cpp.

◆ mTexturePool

UniquePtr<TexturePool> Examples::TexturePoolApp::mTexturePool
private
Examples
TexturePool.cpp.

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