#ifndef HGL_GRAPH_RENDER_LIST_INCLUDE #define HGL_GRAPH_RENDER_LIST_INCLUDE #include #include #include #include namespace hgl { namespace graph { template struct GPUArray { List list; GPUBuffer *buffer; public: GPUArray() { buffer=nullptr; } ~GPUArray() { SAFE_CLEAR(buffer); } void Clear() { list.ClearData(); } void Add(const T &data) { list.Add(data); } };// class RenderList { RenderCmdBuffer *cmd_buf; private: GPUArray LocalToWorld; List scene_node_list; Pipeline * last_pipeline; MaterialInstance * last_mat_inst; RenderableInstance *last_ri; void Render(SceneNode *,RenderableInstance *); void Render(SceneNode *,List &); public: RenderList(); ~RenderList()=default; void Begin (); void Add (SceneNode *); void End (); bool Render (RenderCmdBuffer *); };//class RenderList }//namespace graph }//namespace hgl #endif//HGL_GRAPH_RENDER_LIST_INCLUDE