#ifndef HGL_GRAPH_RENDER_LIST_INCLUDE #define HGL_GRAPH_RENDER_LIST_INCLUDE #include #include #include #include namespace hgl { namespace graph { class RenderList { vulkan::GPUCmdBuffer *cmd_buf; private: List scene_node_list; vulkan::PushConstant * last_pc; vulkan::Pipeline * last_pipeline; vulkan::MaterialInstance * last_mat_inst; vulkan::RenderableInstance *last_ri; void Render(SceneNode *,vulkan::RenderableInstance *); void Render(SceneNode *,List &); public: RenderList() { cmd_buf=nullptr; last_pc=nullptr; last_pipeline=nullptr; last_mat_inst=nullptr; last_ri=nullptr; } ~RenderList()=default; void Add (SceneNode *node) {if(node)scene_node_list.Add(node);} void Clear () {scene_node_list.ClearData();} bool Render(vulkan::GPUCmdBuffer *); };//class RenderList }//namespace graph }//namespace hgl #endif//HGL_GRAPH_RENDER_LIST_INCLUDE