Scene增加RenderFramework属性,SceneNode增加获取RenderFramework功能
This commit is contained in:
@@ -6,12 +6,16 @@
|
|||||||
|
|
||||||
namespace hgl::graph
|
namespace hgl::graph
|
||||||
{
|
{
|
||||||
|
class RenderFramework;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 场景管理器<Br>
|
* 场景管理器<Br>
|
||||||
* 管理一个场景中的所有资源与场景节点
|
* 管理一个场景中的所有资源与场景节点
|
||||||
*/
|
*/
|
||||||
class Scene
|
class Scene
|
||||||
{
|
{
|
||||||
|
RenderFramework *render_framework=nullptr; ///<渲染框架
|
||||||
|
|
||||||
U8String SceneName; ///<场景名称
|
U8String SceneName; ///<场景名称
|
||||||
|
|
||||||
ObjectList<SceneNode> SceneNodePool; ///<场景节点池
|
ObjectList<SceneNode> SceneNodePool; ///<场景节点池
|
||||||
@@ -28,10 +32,17 @@ namespace hgl::graph
|
|||||||
|
|
||||||
SceneNode * GetRootNode (){return root_node;} ///<获取场景根节点
|
SceneNode * GetRootNode (){return root_node;} ///<获取场景根节点
|
||||||
|
|
||||||
|
RenderFramework * GetRenderFramework()const
|
||||||
|
{
|
||||||
|
return render_framework;
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Scene()
|
Scene(RenderFramework *rf)
|
||||||
{
|
{
|
||||||
|
render_framework=rf;
|
||||||
|
|
||||||
root_node=new SceneNode(this);
|
root_node=new SceneNode(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -18,6 +18,8 @@ namespace hgl::graph
|
|||||||
//每个SceneNode都要记录Scene来区分自己属于那个场景
|
//每个SceneNode都要记录Scene来区分自己属于那个场景
|
||||||
//这个场景可能是一个确实是一个场景,也有可能只是一个StaticMesh
|
//这个场景可能是一个确实是一个场景,也有可能只是一个StaticMesh
|
||||||
|
|
||||||
|
class CameraControl;
|
||||||
|
|
||||||
using SceneNodeID =int64;
|
using SceneNodeID =int64;
|
||||||
|
|
||||||
using SceneNodeList =ObjectList<SceneNode>;
|
using SceneNodeList =ObjectList<SceneNode>;
|
||||||
@@ -59,7 +61,9 @@ namespace hgl::graph
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Scene *GetScene()const{ return main_scene; } ///<取得主场景
|
Scene * GetScene()const{ return main_scene; } ///<取得主场景
|
||||||
|
RenderFramework * GetRenderFramework()const; ///<取得渲染框架
|
||||||
|
CameraControl * GetCameraControl()const; ///<取得默认摄像机控制器
|
||||||
|
|
||||||
const SceneNodeID & GetNodeID ()const { return node_id; } ///<取得节点ID
|
const SceneNodeID & GetNodeID ()const { return node_id; } ///<取得节点ID
|
||||||
const SceneNodeName & GetNodeName ()const { return node_name; } ///<取得节点名称
|
const SceneNodeName & GetNodeName ()const { return node_name; } ///<取得节点名称
|
||||||
|
@@ -134,7 +134,7 @@ bool RenderFramework::Init(uint w,uint h)
|
|||||||
|
|
||||||
render_resource=new RenderResource(device);
|
render_resource=new RenderResource(device);
|
||||||
|
|
||||||
OnChangeDefaultScene(new Scene);
|
OnChangeDefaultScene(new Scene(this));
|
||||||
|
|
||||||
default_camera=new Camera();
|
default_camera=new Camera();
|
||||||
|
|
||||||
|
@@ -2,9 +2,20 @@
|
|||||||
#include<hgl/component/SceneComponent.h>
|
#include<hgl/component/SceneComponent.h>
|
||||||
#include<hgl/graph/Mesh.h>
|
#include<hgl/graph/Mesh.h>
|
||||||
#include<hgl/graph/Scene.h>
|
#include<hgl/graph/Scene.h>
|
||||||
|
#include<hgl/graph/RenderFramework.h>
|
||||||
|
|
||||||
namespace hgl::graph
|
namespace hgl::graph
|
||||||
{
|
{
|
||||||
|
RenderFramework *SceneNode::GetRenderFramework()const
|
||||||
|
{
|
||||||
|
return main_scene?main_scene->GetRenderFramework():nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
CameraControl *SceneNode::GetCameraControl()const
|
||||||
|
{
|
||||||
|
return main_scene?main_scene->GetRenderFramework()->GetDefaultCameraControl():nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
//void SceneNode::SetRenderable(Mesh *ri)
|
//void SceneNode::SetRenderable(Mesh *ri)
|
||||||
//{
|
//{
|
||||||
// render_obj=ri;
|
// render_obj=ri;
|
||||||
|
Reference in New Issue
Block a user