ULRE/inc/hgl/graph/VKMaterialInstance.h

37 lines
1017 B
C
Raw Normal View History

#ifndef HGL_GRAPH_VULKAN_MATERIAL_INSTANCE_INCLUDE
#define HGL_GRAPH_VULKAN_MATERIAL_INSTANCE_INCLUDE
#include<hgl/graph/VK.h>
VK_NAMESPACE_BEGIN
class MaterialInstance
{
Material *material;
VAB *vab;
MaterialParameters *mp_value;
private:
2021-09-14 20:31:15 +08:00
friend class GPUDevice;
MaterialInstance(Material *,VAB *,MaterialParameters *);
public:
virtual ~MaterialInstance();
Material *GetMaterial(){return material;}
const VAB *GetVAB()const{return vab;}
MaterialParameters *GetMP(){return mp_value;}
MaterialParameters *GetMP(const DescriptorSetsType &type);
2022-03-09 20:33:26 +08:00
bool BindUBO(const DescriptorSetsType &type,const AnsiString &name,GPUBuffer *ubo,bool dynamic=false);
bool BindSSBO(const DescriptorSetsType &type,const AnsiString &name,GPUBuffer *ubo,bool dynamic=false);
bool BindSampler(const DescriptorSetsType &type,const AnsiString &name,Texture *tex,Sampler *sampler);
};//class MaterialInstance
VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_MATERIAL_INSTANCE_INCLUDE
2022-01-05 11:26:24 +08:00