improved PrimitiveCreater::CreateIBO.. functions for template

This commit is contained in:
2024-04-02 21:34:49 +08:00
parent ac81e4f8f0
commit 02169963de
2 changed files with 17 additions and 18 deletions

View File

@@ -74,8 +74,23 @@ namespace hgl
bool WriteVAD(const AnsiString &name,const void *data,const uint32_t bytes); ///<直接写入顶点属性数据
uint16 * CreateIBO16(uint count,const uint16 *data=nullptr); ///<创建16位的索引缓冲区
uint32 * CreateIBO32(uint count,const uint32 *data=nullptr); ///<创建32位的索引缓冲区
template<typename T,IndexType IT>
T * CreateIBO(const uint count,const T *data=nullptr) ///<创建索引缓冲区
{
if(ibo)
return(nullptr);
ibo=db->CreateIBO(IT,count,data);
if(!ibo)
return(nullptr);
return (T *)ibo->Map();
}
uint8 * CreateIBO8 (uint count,const uint8 *data=nullptr){return CreateIBO<uint8 ,IndexType::U8 >(count,data);} ///<创建8位的索引缓冲区
uint16 * CreateIBO16(uint count,const uint16 *data=nullptr){return CreateIBO<uint16,IndexType::U16>(count,data);} ///<创建16位的索引缓冲区
uint32 * CreateIBO32(uint count,const uint32 *data=nullptr){return CreateIBO<uint32,IndexType::U32>(count,data);} ///<创建32位的索引缓冲区
virtual Primitive * Finish(const AnsiString &); ///<结束并创建可渲染对象
};//class PrimitiveCreater