[WIP] StaticMesh and GizmoMove
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#include<hgl/graph/VKMaterialInstance.h>
|
||||
#include<hgl/graph/VKRenderable.h>
|
||||
#include<hgl/graph/font/TextPrimitive.h>
|
||||
#include<hgl/graph/StaticMesh.h>
|
||||
#include<hgl/type/ObjectManage.h>
|
||||
#include<hgl/shadergen/MaterialCreateInfo.h>
|
||||
#include<hgl/graph/VKDescriptorBindingManage.h>
|
||||
@@ -34,6 +35,7 @@ using PrimitiveID =int;
|
||||
using RenderableID =int;
|
||||
using SamplerID =int;
|
||||
using TextureID =int;
|
||||
using StaticMeshID =int;
|
||||
|
||||
class VertexAttribData;
|
||||
|
||||
@@ -60,6 +62,8 @@ class RenderResource
|
||||
IDObjectManage<TextureID, Texture> rm_textures; ///<纹理合集
|
||||
IDObjectManage<RenderableID, Renderable> rm_renderables; ///<渲染实例集合集
|
||||
|
||||
IDObjectManage<StaticMeshID, StaticMesh> rm_static_mesh; ///<静态网格合集
|
||||
|
||||
private:
|
||||
|
||||
void AddBuffer(const AnsiString &buf_name,DeviceBuffer *buf)
|
||||
@@ -103,6 +107,7 @@ public: //添加数据到管理器(如果指针为nullptr会返回-1)
|
||||
SamplerID Add(Sampler * s ){return rm_samplers.Add(s);}
|
||||
TextureID Add(Texture * t ){return rm_textures.Add(t);}
|
||||
RenderableID Add(Renderable * r ){return rm_renderables.Add(r);}
|
||||
StaticMeshID Add(StaticMesh * sm ){return rm_static_mesh.Add(sm);}
|
||||
|
||||
public: // VAB/VAO
|
||||
|
||||
@@ -172,6 +177,40 @@ public: //Get
|
||||
Sampler * GetSampler (const SamplerID &id){return rm_samplers.Get(id);}
|
||||
Texture * GetTexture (const TextureID &id){return rm_textures.Get(id);}
|
||||
Renderable * GetRenderable (const RenderableID &id){return rm_renderables.Get(id);}
|
||||
|
||||
StaticMesh * GetStaticMesh (const StaticMeshID &id){return rm_static_mesh.Get(id);}
|
||||
|
||||
public: //Release
|
||||
|
||||
void Release(Material * mtl ){rm_material.Release(mtl);}
|
||||
void Release(MaterialInstance * mi ){rm_material_instance.Release(mi);}
|
||||
void Release(DescriptorSet * ds ){rm_desc_sets.Release(ds);}
|
||||
void Release(Primitive * p ){rm_primitives.Release(p);}
|
||||
void Release(DeviceBuffer * buf ){rm_buffers.Release(buf);}
|
||||
void Release(Sampler * s ){rm_samplers.Release(s);}
|
||||
void Release(Texture * t ){rm_textures.Release(t);}
|
||||
void Release(Renderable * r ){rm_renderables.Release(r);}
|
||||
|
||||
void Release(StaticMesh * sm ){rm_static_mesh.Release(sm);}
|
||||
};//class RenderResource
|
||||
|
||||
/**
|
||||
* 创建一个渲染资源对像<br>
|
||||
* 这个函数是临时的,以后会被更好的机制替代
|
||||
*/
|
||||
template<typename T,typename ...ARGS>
|
||||
T *CreateRRObject(RenderResource *rr,ARGS...args)
|
||||
{
|
||||
if(!rr)
|
||||
return(nullptr);
|
||||
|
||||
T *obj=T::CreateNewObject(rr,args...);
|
||||
|
||||
if(!obj)
|
||||
return(nullptr);
|
||||
|
||||
rr->Add(obj);
|
||||
return obj;
|
||||
}
|
||||
VK_NAMESPACE_END
|
||||
#endif//HGL_GRAPH_VULKAN_DATABASE_INCLUDE
|
||||
|
Reference in New Issue
Block a user