FastEngine 0.9.3
A multiplayer oriented 2D engine made with Vulkan.
Loading...
Searching...
No Matches
fge::RenderTarget Class Referenceabstract
Inheritance diagram for fge::RenderTarget:
fge::vulkan::ContextAware fge::RenderTexture fge::RenderWindow

Public Types

enum class  RequestResults { ALREADY_INITIALIZED , UNINITIALIZED }
 

Public Member Functions

 RenderTarget (RenderTarget const &r)
 
 RenderTarget (RenderTarget &&r) noexcept
 
RenderTargetoperator= (RenderTarget const &r)
 
RenderTargetoperator= (RenderTarget &&r) noexcept
 
void setClearColor (fge::Color const &color)
 
fge::Color getClearColor () const
 
void setView (View const &view)
 
View const & getView () const
 
View const & getDefaultView () const
 
fge::vulkan::Viewport getViewport (View const &view) const
 
Vector2f mapFramebufferCoordsToViewSpace (Vector2i const &point) const
 
Vector2f mapFramebufferCoordsToViewSpace (Vector2i const &point, View const &view) const
 
Vector2f mapFramebufferCoordsToWorldSpace (Vector2i const &point) const
 
Vector2f mapFramebufferCoordsToWorldSpace (Vector2i const &point, View const &view) const
 
Vector2i mapViewCoordsToFramebufferSpace (Vector2f const &point) const
 
Vector2i mapViewCoordsToFramebufferSpace (Vector2f const &point, View const &view) const
 
Vector2i mapWorldCoordsToFramebufferSpace (Vector2f const &point) const
 
Vector2i mapWorldCoordsToFramebufferSpace (Vector2f const &point, View const &view) const
 
RectFloat mapFramebufferRectToViewSpace (RectInt const &rect) const
 
RectFloat mapFramebufferRectToViewSpace (RectInt const &rect, View const &view) const
 
RectFloat mapFramebufferRectToWorldSpace (RectInt const &rect) const
 
RectFloat mapFramebufferRectToWorldSpace (RectInt const &rect, View const &view) const
 
RectInt mapViewRectToFramebufferSpace (RectFloat const &rect) const
 
RectInt mapViewRectToFramebufferSpace (RectFloat const &rect, View const &view) const
 
RectInt mapWorldRectToFramebufferSpace (RectFloat const &rect) const
 
RectInt mapWorldRectToFramebufferSpace (RectFloat const &rect, View const &view) const
 
virtual uint32_t prepareNextFrame (VkCommandBufferInheritanceInfo const *inheritanceInfo, uint64_t timeout_ns)=0
 
virtual void beginRenderPass (uint32_t imageIndex)=0
 
void draw (fge::RenderStates &states, fge::vulkan::GraphicPipeline *graphicPipeline=nullptr) const
 
virtual void endRenderPass ()=0
 
virtual void display (uint32_t imageIndex)=0
 
virtual Vector2u getSize () const =0
 
virtual VkExtent2D getExtent2D () const =0
 
virtual fge::vulkan::CommandBuffergetCommandBuffer () const =0
 
virtual VkRenderPass getRenderPass () const =0
 
std::pair< fge::vulkan::GraphicPipeline &, RequestResults > requestGraphicPipeline (vulkan::GraphicPipeline::Key const &key) const
 
void clearGraphicPipelineCache ()
 
uint32_t requestGlobalTransform (fge::Transformable const &transformable, uint32_t parentGlobalTransform) const
 
uint32_t requestGlobalTransform (fge::Transformable const &transformable, fge::TransformUboData const &parentTransform) const
 
uint32_t requestGlobalTransform (fge::Transformable const &transformable, fge::RenderResourceTransform const &resource) const
 
uint32_t requestGlobalTransform (fge::Transformable const &transformable) const
 
fge::TransformUboData const * getGlobalTransform (fge::RenderResourceTransform const &resource) const
 
constexpr Context const & getContext () const
 
void swapContext (Context const &context)
 
virtual void destroy ()=0
 

Protected Member Functions

 RenderTarget (fge::vulkan::Context const &context)
 
void initialize ()
 
void refreshShaderCache ()
 
void resetDefaultView ()
 
void verifyContext (ContextAware const &r) const
 

Protected Attributes

shader::ShaderManager::DataBlockPointer _g_defaultFragmentShader
 
shader::ShaderManager::DataBlockPointer _g_defaultNoTextureFragmentShader
 
shader::ShaderManager::DataBlockPointer _g_defaultVertexShader
 
VkClearColorValue _g_clearColor
 
bool _g_forceGraphicPipelineUpdate
 
std::unordered_map< vulkan::GraphicPipeline::Key, vulkan::GraphicPipeline, vulkan::GraphicPipeline::Key::Hash, vulkan::GraphicPipeline::Key::Compare_g_graphicPipelineCache
 

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