Wasabi
Public Member Functions | Friends | List of all members
WRenderTargetManager Class Reference

#include <WRenderTarget.hpp>

Inheritance diagram for WRenderTargetManager:
WManager< WRenderTarget >

Public Member Functions

 WRenderTargetManager (class Wasabi *const app)
 
WRenderTargetCreateRenderTarget (uint32_t ID=0)
 
WRenderTargetCreateImmediateRenderTarget (uint32_t ID=0)
 
- Public Member Functions inherited from WManager< WRenderTarget >
 WManager (class Wasabi *const a)
 
bool RegisterChangeCallback (std::string name, std::function< void(WRenderTarget *, bool)> callback)
 
void RemoveChangeCallback (std::string name)
 
void AddEntity (WRenderTarget *entity)
 
bool RemoveEntity (WRenderTarget *entity)
 
void OnEntityNameChanged (WRenderTarget *entity, std::string oldName)
 
virtual void Init ()
 
WRenderTargetGetEntity (uint32_t ID) const
 
WRenderTargetGetEntity (std::string name) const
 
WRenderTargetGetEntityByIndex (uint32_t index) const
 
uint32_t GetEntitiesCount (void) const
 

Friends

class WRenderTarget
 

Additional Inherited Members

- Public Attributes inherited from WManager< WRenderTarget >
class Wasabi *const m_app
 
- Protected Attributes inherited from WManager< WRenderTarget >
std::vector< WRenderTarget * > m_entities [W_HASHTABLESIZE]
 
std::unordered_map< std::string, WRenderTarget * > m_entitiesByName
 

Detailed Description

Manager class for WRenderTarget.

Member Function Documentation

◆ CreateImmediateRenderTarget()

WRenderTarget* WRenderTargetManager::CreateImmediateRenderTarget ( uint32_t  ID = 0)

Allocates and initializes an "immediate" render target. An immediate render target is able to perform rendering to a texture at any point in the program and not strictly in a render stage. Immediate render targets are significantly slower than regular render taregts (refer to WRenderTargetManager::CreateRenderTarget) so consider using a regular render target whenever possible, and using an immediate render target only when necessary. Immediate render targets create their own command buffers and have to block on GPU operations before WRenderTarget::Begin() and after WRenderTarget::End().

◆ CreateRenderTarget()

WRenderTarget* WRenderTargetManager::CreateRenderTarget ( uint32_t  ID = 0)

Allocates and initializes a "regular" render target. Regular render targets must only be rendered to (i.e. calling WRenderTarget::Begin() and WRenderTarget::End()) within a WRenderStage.


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