[OK] AutoInstance 范例完成迁移并测试成功。新结构下不再需要自己管理RenderList/SceneRoot。接下来请迁移其它范例。

This commit is contained in:
2025-06-04 01:09:05 +08:00
parent 118ee6e570
commit f762d77b1d
8 changed files with 113 additions and 89 deletions

View File

@@ -1,6 +1,7 @@
#pragma once
#include<hgl/graph/RenderTask.h>
#include<hgl/graph/VKRenderTarget.h>
#include<hgl/type/Map.h>
namespace hgl::graph
@@ -15,7 +16,7 @@ namespace hgl::graph
class Renderer
{
IRenderTarget *render_target;
Scene *world;
Scene *scene;
Camera *camera;
@@ -24,23 +25,31 @@ namespace hgl::graph
RenderTask *render_task; ///<当前渲染任务
protected:
Color4f clear_color; ///<清屏颜色
bool build_frame=false;
public:
Scene *GetScene () const { return world; } ///<获取场景世界
Camera * GetCurCamera () const { return camera; } ///<获取当前相机
RenderPass *GetRenderPass (){return render_target->GetRenderPass();} ///<取得当前渲染器RenderPass
const VkExtent2D &GetExtent ()const{return render_target->GetExtent();} ///<取得当前渲染器画面尺寸
Scene * GetScene ()const{return scene;} ///<获取场景世界
Camera * GetCurCamera ()const{return camera;} ///<获取当前相机
public:
Renderer(IRenderTarget *);
virtual ~Renderer();
void SetCurWorld(Scene *);
void SetRenderTarget(IRenderTarget *);
void SetCurScene(Scene *);
void SetCurCamera(Camera *);
bool RenderFrame(RenderCmdBuffer *);
void SetClearColor(const Color4f &c){clear_color=c;}
bool RenderFrame(); ///<重新重成这一帧的CommandList
bool Submit(); ///<提交CommandList到GPU
};//class Renderer
}//namespace hgl::graph