added SetGlobal/GetGlobal/Free at RenderResource
This commit is contained in:
parent
8bf1ad2a46
commit
44620abc21
@ -98,7 +98,7 @@ private:
|
||||
|
||||
bool InitAutoMaterial()
|
||||
{
|
||||
auto *mci=mtl::CreateVertexColor2DNDC();
|
||||
MaterialCreateInfo *mci=mtl::CreateVertexColor2DNDC();
|
||||
|
||||
material_instance=db->CreateMaterialInstance(mci,&vil_config);
|
||||
|
||||
|
@ -47,6 +47,8 @@ class RenderResource
|
||||
IDResManage<TextureID, Texture> rm_textures; ///<纹理合集
|
||||
IDResManage<RenderableID, Renderable> rm_renderables; ///<渲染实例集合集
|
||||
|
||||
Map<AnsiString,DeviceBuffer *> global_buffer_map; ///<全局UBO
|
||||
|
||||
public:
|
||||
|
||||
RenderResource(GPUDevice *dev):device(dev){}
|
||||
@ -63,6 +65,14 @@ public: //Add
|
||||
TextureID Add(Texture * t ){return rm_textures.Add(t);}
|
||||
RenderableID Add(Renderable * r ){return rm_renderables.Add(r);}
|
||||
|
||||
public: //全局属性
|
||||
|
||||
void SetGlobal(const AnsiString &name,DeviceBuffer *buf);
|
||||
|
||||
DeviceBuffer *GetGlobal(const AnsiString &name);
|
||||
|
||||
void Free(DeviceBuffer *);
|
||||
|
||||
public: // VBO/VAO
|
||||
|
||||
VBO *CreateVBO(VkFormat format,uint32_t count,const void *data,SharingMode sm=SharingMode::Exclusive);
|
||||
|
@ -5,6 +5,33 @@
|
||||
#include<hgl/graph/VKVertexAttribBuffer.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
void RenderResource::SetGlobal(const AnsiString &name,DeviceBuffer *buf)
|
||||
{
|
||||
if(!buf)return;
|
||||
if(name.IsEmpty())return;
|
||||
|
||||
global_buffer_map.Add(name,buf);
|
||||
}
|
||||
|
||||
DeviceBuffer *RenderResource::GetGlobal(const AnsiString &name)
|
||||
{
|
||||
if(name.IsEmpty())return(nullptr);
|
||||
|
||||
DeviceBuffer *buf;
|
||||
|
||||
if(global_buffer_map.Get(name,buf))
|
||||
return buf;
|
||||
else
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void RenderResource::Free(DeviceBuffer *buf)
|
||||
{
|
||||
rm_buffers.Release(buf);
|
||||
|
||||
global_buffer_map.DeleteByValue(buf);
|
||||
}
|
||||
|
||||
VBO *RenderResource::CreateVBO(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode)
|
||||
{
|
||||
VBO *vb=device->CreateVBO(format,count,data,sharing_mode);
|
||||
|
Loading…
x
Reference in New Issue
Block a user