ULRE/inc/hgl/graph/VKPipeline.h

56 lines
1.1 KiB
C
Raw Normal View History

2019-04-18 16:38:58 +08:00
#ifndef HGL_GRAPH_VULKAN_PIPELINE_INCLUDE
#define HGL_GRAPH_VULKAN_PIPELINE_INCLUDE
#include<hgl/graph/VK.h>
#include<hgl/graph/VKPipelineData.h>
#include<hgl/graph/VKInlinePipeline.h>
#include<hgl/io/DataOutputStream.h>
2019-04-18 16:38:58 +08:00
VK_NAMESPACE_BEGIN
class Pipeline
{
VkDevice device;
2023-10-12 05:55:39 +08:00
AnsiString name;
2019-04-18 16:38:58 +08:00
VkPipeline pipeline;
const VIL *vil;
2020-09-19 14:58:54 +08:00
PipelineData *data;
2019-04-18 16:38:58 +08:00
bool alpha_test;
bool alpha_blend;
2021-09-22 15:32:20 +08:00
private:
friend class RenderPass;
2021-09-22 15:32:20 +08:00
Pipeline(const AnsiString &n,VkDevice dev,VkPipeline p,const VIL *v,PipelineData *pd)
2021-09-22 15:32:20 +08:00
{
2023-10-12 05:55:39 +08:00
name=n;
2021-09-22 15:32:20 +08:00
device=dev;
pipeline=p;
vil=v;
2021-09-22 15:32:20 +08:00
data=pd;
alpha_test=false;
alpha_blend=false;
}
2019-04-18 16:38:58 +08:00
public:
virtual ~Pipeline();
2019-04-18 21:02:42 +08:00
2023-10-12 05:55:39 +08:00
const AnsiString &GetName()const{return name;}
2019-04-18 21:02:42 +08:00
operator VkPipeline(){return pipeline;}
const VIL *GetVIL()const{return vil;}
2023-03-29 21:19:06 +08:00
const PipelineData *GetData()const{return data;}
2020-09-19 14:58:54 +08:00
const bool IsAlphaTest()const{return data->alpha_test>0;}
const bool IsAlphaBlend()const{return data->alpha_blend;}
2019-04-18 16:38:58 +08:00
};//class GraphicsPipeline
VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_PIPELINE_INCLUDE
2020-09-19 16:43:23 +08:00