moved GPUArrays to RenderList.cpp

This commit is contained in:
2020-12-18 16:52:45 +08:00
parent e03800955e
commit 5806a88964
2 changed files with 106 additions and 45 deletions

View File

@@ -9,55 +9,34 @@ namespace hgl
{
namespace graph
{
template<typename T> struct GPUArray
{
List<T> list;
GPUBuffer *buffer;
public:
GPUArray()
{
buffer=nullptr;
}
~GPUArray()
{
SAFE_CLEAR(buffer);
}
void Clear()
{
list.ClearData();
}
void Add(const T &data)
{
list.Add(data);
}
};//
struct L2WArrays;
class RenderList
{
GPUDevice *device;
RenderCmdBuffer *cmd_buf;
private:
GPUArray<Matrix4f> LocalToWorld;
L2WArrays *LocalToWorld;
List<SceneNode *> scene_node_list;
Pipeline * last_pipeline;
MaterialInstance * last_mat_inst;
RenderableInstance *last_ri;
void Render(SceneNode *,RenderableInstance *);
void Render(SceneNode *,List<RenderableInstance *> &);
private:
friend class GPUDevice;
RenderList(GPUDevice *);
public:
RenderList();
virtual ~RenderList()=default;
virtual ~RenderList();
void Begin ();
void Add (SceneNode *);