ULRE/inc/hgl/graph/Renderer.h

47 lines
1.1 KiB
C
Raw Normal View History

2025-05-28 02:27:59 +08:00
#pragma once
#include<hgl/graph/RenderTask.h>
#include<hgl/type/Map.h>
namespace hgl::graph
{
class Scene;
2025-05-28 02:27:59 +08:00
using RenderTaskNameMap=Map<RenderTaskName,RenderTask *>;
/**
*
*/
class Renderer
{
2025-05-30 00:32:45 +08:00
IRenderTarget *render_target;
Scene *world;
2025-05-28 02:27:59 +08:00
2025-05-30 00:32:45 +08:00
Camera *camera;
//RenderTaskNameMap static_render_task_list; ///<静态渲染任务列表
//RenderTaskNameMap dynamic_render_task_list; ///<动态渲染任务列表
RenderTask *render_task; ///<当前渲染任务
protected:
2025-05-28 02:27:59 +08:00
public:
Scene *GetScene () const { return world; } ///<获取场景世界
2025-05-30 00:32:45 +08:00
Camera * GetCurCamera () const { return camera; } ///<获取当前相机
public:
Renderer(IRenderTarget *);
virtual ~Renderer();
void SetCurWorld(Scene *);
2025-05-30 00:32:45 +08:00
void SetCurCamera(Camera *);
2025-05-28 02:27:59 +08:00
2025-05-30 00:32:45 +08:00
bool RenderFrame(RenderCmdBuffer *);
2025-05-28 02:27:59 +08:00
};//class Renderer
}//namespace hgl::graph