Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
foray_blitstage.hpp
Go to the documentation of this file.
1#pragma once
3
4namespace foray::stages {
7 class BlitStage : public RenderStage
8 {
9 public:
10 BlitStage() = default;
11
15 void Init(core::ManagedImage* sourceImage = nullptr, core::ManagedImage* destImage = nullptr);
17 virtual void RecordFrame(VkCommandBuffer cmdBuffer, base::FrameRenderInfo& renderInfo) override;
18
20 virtual void SetSrcImage(core::ManagedImage* image);
22 virtual void SetSrcImage(VkImage image, VkExtent2D size);
23
25 virtual void SetDstImage(core::ManagedImage* image);
27 virtual void SetDstImage(VkImage image, VkExtent2D size);
28
29 FORAY_PROPERTY_V(FlipX)
30 FORAY_PROPERTY_V(FlipY)
31
32 protected:
36 VkImage mSrcVkImage = nullptr;
38 VkExtent2D mSrcImageSize = {};
39
43 VkImage mDstVkImage = nullptr;
45 VkExtent2D mDstImageSize = {};
46
48 virtual void ConfigureBlitRegion(VkImageBlit2& blit);
49
51 bool mFlipX = false;
53 bool mFlipY = false;
55 VkFilter mFilter = VkFilter::VK_FILTER_LINEAR;
56 };
57} // namespace foray::stages
Context used for render processes. This object is rebuilt for every frame. /.
Definition foray_framerenderinfo.hpp:14
Wraps allocation and lifetime functionality of VkImage.
Definition foray_managedimage.hpp:13
Stage which performs an image blit (more capable copy from one image to another)
Definition foray_blitstage.hpp:8
VkExtent2D mDstImageSize
Fallback to mDstImage.
Definition foray_blitstage.hpp:45
virtual void ConfigureBlitRegion(VkImageBlit2 &blit)
Configures the blit region.
bool mFlipX
If true, flips horizontal on blitting.
Definition foray_blitstage.hpp:51
virtual void RecordFrame(VkCommandBuffer cmdBuffer, base::FrameRenderInfo &renderInfo) override
Records pipeline barriers for source and destination images, and the blit command itself.
virtual void SetSrcImage(core::ManagedImage *image)
Set source Image (nullptr allowed)
virtual void SetDstImage(VkImage image, VkExtent2D size)
Set destination Image (nullptr allowed)
VkFilter mFilter
Filter used for blitting.
Definition foray_blitstage.hpp:55
VkExtent2D mSrcImageSize
Fallback to mSrcImage.
Definition foray_blitstage.hpp:38
core::ManagedImage * mDstImage
If set, preferred over mDStVkImage member. Allows for recreated ManagedImage instances.
Definition foray_blitstage.hpp:41
virtual void SetSrcImage(VkImage image, VkExtent2D size)
Set source Image (nullptr allowed)
virtual void SetDstImage(core::ManagedImage *image)
Set destination Image (nullptr allowed)
VkImage mSrcVkImage
Fallback to mSrcImage.
Definition foray_blitstage.hpp:36
VkImage mDstVkImage
Fallback to mDstImage.
Definition foray_blitstage.hpp:43
void Init(core::ManagedImage *sourceImage=nullptr, core::ManagedImage *destImage=nullptr)
Initialization.
bool mFlipY
If true, flips vertically on blitting.
Definition foray_blitstage.hpp:53
core::ManagedImage * mSrcImage
If set, preferred over mSrcVkImage member. Allows for recreated ManagedImage instances.
Definition foray_blitstage.hpp:34
Render stage base class giving a common interface for rendering processes.
Definition foray_renderstage.hpp:15
#define FORAY_PROPERTY_V(member)
Getter+Setter shorthand for value types.
Definition foray_basics.hpp:81
Definition foray_blitstage.hpp:4