ULRE/inc/hgl/graph/vulkan/VKRenderPass.h

57 lines
1.5 KiB
C
Raw Normal View History

2019-04-22 17:46:49 +08:00
#ifndef HGL_GRAPH_VULKAN_RENDER_PASS_INCLUDE
2019-04-12 16:39:22 +08:00
#define HGL_GRAPH_VULKAN_RENDER_PASS_INCLUDE
#include<hgl/graph/vulkan/VK.h>
2019-04-12 16:39:22 +08:00
VK_NAMESPACE_BEGIN
2019-04-22 17:46:49 +08:00
/**
* RenderPass功能封装<br>
* RenderPass在创建时color imageview与depth imageview象素格式
* Framebuffer时RenderPass与ColorImageView,DepthImageView
*/
2019-04-12 16:39:22 +08:00
class RenderPass
{
VkDevice device;
VkRenderPass render_pass;
List<VkFormat> color_formats;
VkFormat depth_format;
private:
friend class Device;
2019-04-12 16:39:22 +08:00
RenderPass(VkDevice d,VkRenderPass rp,const List<VkFormat> &cf,VkFormat df)
{
device=d;
render_pass=rp;
color_formats=cf;
depth_format=df;
}
RenderPass(VkDevice d,VkRenderPass rp,VkFormat cf,VkFormat df)
2019-04-12 16:39:22 +08:00
{
device=d;
render_pass=rp;
color_formats.Add(cf);
depth_format=df;
2019-04-12 16:39:22 +08:00
}
public:
2019-04-12 16:39:22 +08:00
virtual ~RenderPass();
2019-04-18 21:02:42 +08:00
operator VkRenderPass(){return render_pass;}
const uint GetColorCount()const{return color_formats.GetCount();}
const List<VkFormat> & GetColorFormat()const{return color_formats;}
const VkFormat GetColorFormat(int index)const
{
if(index<0||index>=color_formats.GetCount())return VK_FORMAT_UNDEFINED;
return color_formats.GetData()[index];
}
const VkFormat GetDepthFormat()const{return depth_format;}
2019-04-12 16:39:22 +08:00
};//class RenderPass
VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_RENDER_PASS_INCLUDE