ULRE/inc/hgl/graph/RenderTask.h

45 lines
1.1 KiB
C
Raw Normal View History

2025-05-28 02:27:59 +08:00
#pragma once
#include<hgl/graph/VK.h>
#include<hgl/type/IDName.h>
namespace hgl::graph
{
HGL_DEFINE_IDNAME(RenderTaskName,char)
/**
*
*/
class RenderTask
{
RenderTaskName task_name;
IRenderTarget * render_target;
2025-05-30 00:32:45 +08:00
RenderList * render_list;
2025-05-28 02:27:59 +08:00
Camera * camera;
public:
const RenderTaskName &GetName ()const;
IRenderTarget * GetRenderTarget ()const{return render_target;}
RenderList * GetRenderList ()const{return render_list;}
Camera * GetCamera ()const{return camera;}
public:
2025-05-30 00:32:45 +08:00
RenderTask(const RenderTaskName &tn,IRenderTarget *rt=nullptr,Camera *c=nullptr);
2025-05-28 02:27:59 +08:00
virtual ~RenderTask();
bool SetRenderTarget(IRenderTarget *rt);
void SetCamera(Camera *c){camera=c;}
2025-05-28 02:27:59 +08:00
2025-05-30 00:32:45 +08:00
bool RebuildRenderList(SceneNode *);
2025-05-28 02:27:59 +08:00
bool IsEmpty()const; ///<是否是空的,不可渲染或是没啥可渲染的
bool Render(RenderCmdBuffer *);
};//class RenderTask
}//namespace hgl::graph