standalone RenderList2D
This commit is contained in:
parent
19a20411d8
commit
8e52595123
@ -6,6 +6,7 @@
|
|||||||
#include<hgl/filesystem/FileSystem.h>
|
#include<hgl/filesystem/FileSystem.h>
|
||||||
#include<hgl/graph/VKRenderablePrimitiveCreater.h>
|
#include<hgl/graph/VKRenderablePrimitiveCreater.h>
|
||||||
#include<hgl/graph/mtl/2d/VertexColor2D.h>
|
#include<hgl/graph/mtl/2d/VertexColor2D.h>
|
||||||
|
#include<hgl/graph/RenderList2D.h>
|
||||||
|
|
||||||
using namespace hgl;
|
using namespace hgl;
|
||||||
using namespace hgl::graph;
|
using namespace hgl::graph;
|
||||||
@ -33,7 +34,7 @@ class TestApp:public VulkanApplicationFramework
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
SceneNode render_root;
|
SceneNode render_root;
|
||||||
RenderList * render_list =nullptr;
|
RenderList2D * render_list =nullptr;
|
||||||
|
|
||||||
MaterialInstance * material_instance =nullptr;
|
MaterialInstance * material_instance =nullptr;
|
||||||
Renderable * render_obj =nullptr;
|
Renderable * render_obj =nullptr;
|
||||||
@ -73,7 +74,7 @@ private:
|
|||||||
|
|
||||||
render_root.RefreshMatrix();
|
render_root.RefreshMatrix();
|
||||||
|
|
||||||
render_list->Expend(GetCameraInfo(),&render_root);
|
render_list->Expend(&render_root);
|
||||||
|
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
@ -90,7 +91,7 @@ public:
|
|||||||
if(!VulkanApplicationFramework::Init(SCREEN_WIDTH,SCREEN_HEIGHT))
|
if(!VulkanApplicationFramework::Init(SCREEN_WIDTH,SCREEN_HEIGHT))
|
||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
render_list=new RenderList(device);
|
render_list=new RenderList2D(device);
|
||||||
|
|
||||||
if(!InitMaterial())
|
if(!InitMaterial())
|
||||||
return(false);
|
return(false);
|
||||||
|
@ -13,25 +13,26 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
namespace graph
|
namespace graph
|
||||||
{
|
{
|
||||||
using MaterialSets=SortedSets<Material *>;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 渲染对象列表<br>
|
* 渲染对象列表<br>
|
||||||
* 已经展开的渲染对象列表,产生mvp用UBO/SSBO等数据,最终创建RenderCommandBuffer
|
* 已经展开的渲染对象列表,产生mvp用UBO/SSBO等数据,最终创建RenderCommandBuffer
|
||||||
*/
|
*/
|
||||||
class RenderList
|
class RenderList
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
GPUDevice * device;
|
GPUDevice * device;
|
||||||
RenderCmdBuffer *cmd_buf;
|
RenderCmdBuffer * cmd_buf;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
RenderNodeList render_node_list; ///<场景节点列表
|
GPUArrayBuffer * mvp_array;
|
||||||
MaterialSets material_sets; ///<材质合集
|
CameraInfo camera_info;
|
||||||
|
|
||||||
RenderNodeComparator *render_node_comparator;
|
RenderNode3DList render_node_list; ///<场景节点列表
|
||||||
|
MaterialSets material_sets; ///<材质合集
|
||||||
|
|
||||||
|
RenderNode3DComparator *render_node_comparator;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@ -61,49 +62,11 @@ namespace hgl
|
|||||||
|
|
||||||
RenderList(GPUDevice *);
|
RenderList(GPUDevice *);
|
||||||
virtual ~RenderList();
|
virtual ~RenderList();
|
||||||
|
|
||||||
virtual bool Expend(const CameraInfo &,SceneNode *);
|
virtual bool Expend(const CameraInfo &,SceneNode *);
|
||||||
|
|
||||||
virtual bool Render(RenderCmdBuffer *);
|
virtual bool Render(RenderCmdBuffer *);
|
||||||
};//class RenderList
|
};//class RenderList
|
||||||
|
|
||||||
class RenderList2D:public RenderList
|
|
||||||
{
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
virtual bool Begin() override;
|
|
||||||
virtual bool Expend(SceneNode *) override;
|
|
||||||
virtual void End() override;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
RenderList2D();
|
|
||||||
virtual ~RenderList2D() override;
|
|
||||||
|
|
||||||
virtual bool Expend(SceneNode *);
|
|
||||||
};
|
|
||||||
|
|
||||||
class RenderList3D:public RenderList
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
|
|
||||||
CameraInfo camera_info;
|
|
||||||
GPUArrayBuffer *mvp_array;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
virtual bool Begin() override;
|
|
||||||
virtual bool Expend(SceneNode *) override;
|
|
||||||
virtual void End() override;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
RenderList3D();
|
|
||||||
virtual ~RenderList3D() override;
|
|
||||||
|
|
||||||
bool Expend(const CameraInfo &,SceneNode *);
|
|
||||||
};
|
|
||||||
}//namespace graph
|
}//namespace graph
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
#endif//HGL_GRAPH_RENDER_LIST_INCLUDE
|
#endif//HGL_GRAPH_RENDER_LIST_INCLUDE
|
||||||
|
@ -1,37 +1,34 @@
|
|||||||
#ifndef HGL_GRAPH_RENDER_LIST_INCLUDE
|
#ifndef HGL_GRAPH_RENDER_LIST_2D_INCLUDE
|
||||||
#define HGL_GRAPH_RENDER_LIST_INCLUDE
|
#define HGL_GRAPH_RENDER_LIST_2D_INCLUDE
|
||||||
|
|
||||||
#include<hgl/graph/VK.h>
|
#include<hgl/graph/VK.h>
|
||||||
#include<hgl/graph/Camera.h>
|
|
||||||
#include<hgl/graph/SceneNode.h>
|
#include<hgl/graph/SceneNode.h>
|
||||||
#include<hgl/graph/RenderNode.h>
|
#include<hgl/graph/RenderNode2D.h>
|
||||||
#include<hgl/graph/VKArrayBuffer.h>
|
#include<hgl/graph/VKArrayBuffer.h>
|
||||||
#include<hgl/graph/SceneInfo.h>
|
#include<hgl/graph/VKMaterial.h>
|
||||||
#include<hgl/color/Color4f.h>
|
|
||||||
#include<hgl/type/SortedSets.h>
|
|
||||||
namespace hgl
|
namespace hgl
|
||||||
{
|
{
|
||||||
namespace graph
|
namespace graph
|
||||||
{
|
{
|
||||||
using MaterialSets=SortedSets<Material *>;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 渲染对象列表<br>
|
* 渲染对象列表<br>
|
||||||
* 已经展开的渲染对象列表,产生mvp用UBO/SSBO等数据,最终创建RenderCommandBuffer
|
* 已经展开的渲染对象列表,产生mvp用UBO/SSBO等数据,最终创建RenderCommandBuffer
|
||||||
*/
|
*/
|
||||||
class RenderList
|
class RenderList2D
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
GPUDevice * device;
|
GPUDevice * device;
|
||||||
RenderCmdBuffer *cmd_buf;
|
RenderCmdBuffer * cmd_buf;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
RenderNodeList render_node_list; ///<场景节点列表
|
// GPUArrayBuffer * mvp_array;
|
||||||
MaterialSets material_sets; ///<材质合集
|
|
||||||
|
|
||||||
RenderNodeComparator *render_node_comparator;
|
RenderNode2DList render_node_list; ///<场景节点列表
|
||||||
|
MaterialSets material_sets; ///<材质合集
|
||||||
|
|
||||||
|
RenderNode2DComparator render_node_comparator;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@ -46,7 +43,7 @@ namespace hgl
|
|||||||
protected:
|
protected:
|
||||||
|
|
||||||
virtual bool Begin();
|
virtual bool Begin();
|
||||||
virtual bool Expend(SceneNode *);
|
virtual bool ExpendNode(SceneNode *);
|
||||||
virtual void End();
|
virtual void End();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -59,51 +56,13 @@ namespace hgl
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
RenderList(GPUDevice *);
|
RenderList2D(GPUDevice *);
|
||||||
virtual ~RenderList();
|
virtual ~RenderList2D();
|
||||||
|
|
||||||
virtual bool Expend(const CameraInfo &,SceneNode *);
|
virtual bool Expend(SceneNode *);
|
||||||
|
|
||||||
virtual bool Render(RenderCmdBuffer *);
|
virtual bool Render(RenderCmdBuffer *);
|
||||||
};//class RenderList
|
};//class RenderList2D
|
||||||
|
|
||||||
class RenderList2D:public RenderList
|
|
||||||
{
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
virtual bool Begin() override;
|
|
||||||
virtual bool Expend(SceneNode *) override;
|
|
||||||
virtual void End() override;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
RenderList2D();
|
|
||||||
virtual ~RenderList2D() override;
|
|
||||||
|
|
||||||
virtual bool Expend(SceneNode *);
|
|
||||||
};
|
|
||||||
|
|
||||||
class RenderList3D:public RenderList
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
|
|
||||||
CameraInfo camera_info;
|
|
||||||
GPUArrayBuffer *mvp_array;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
virtual bool Begin() override;
|
|
||||||
virtual bool Expend(SceneNode *) override;
|
|
||||||
virtual void End() override;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
RenderList3D();
|
|
||||||
virtual ~RenderList3D() override;
|
|
||||||
|
|
||||||
bool Expend(const CameraInfo &,SceneNode *);
|
|
||||||
};
|
|
||||||
}//namespace graph
|
}//namespace graph
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
#endif//HGL_GRAPH_RENDER_LIST_INCLUDE
|
#endif//HGL_GRAPH_RENDER_LIST_2D_INCLUDE
|
||||||
|
@ -1,30 +1,16 @@
|
|||||||
#ifndef HGL_GRAPH_RENDER_NODE_2D_INCLUDE
|
#ifndef HGL_GRAPH_RENDER_NODE_2D_INCLUDE
|
||||||
#define HGL_GRAPH_RENDER_NODE_2D_INCLUDE
|
#define HGL_GRAPH_RENDER_NODE_2D_INCLUDE
|
||||||
|
|
||||||
#include<hgl/math/Vector.h>
|
#include<hgl/math/Math.h>
|
||||||
#include<hgl/type/List.h>
|
|
||||||
#include<hgl/graph/SceneInfo.h>
|
|
||||||
namespace hgl
|
namespace hgl
|
||||||
{
|
{
|
||||||
namespace graph
|
namespace graph
|
||||||
{
|
{
|
||||||
class Renderable;
|
class Renderable;
|
||||||
|
|
||||||
struct Transiton2D
|
|
||||||
{
|
|
||||||
Vector2f move;
|
|
||||||
Vector2f center; //中心点
|
|
||||||
|
|
||||||
//下方的不管是缩放还是旋转,均以上面的center为中心变换
|
|
||||||
|
|
||||||
Vector2f scale;
|
|
||||||
float rotate;
|
|
||||||
float z;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct RenderNode2D
|
struct RenderNode2D
|
||||||
{
|
{
|
||||||
Transiton2D trans;
|
Matrix3x4f local_to_world;
|
||||||
|
|
||||||
Renderable *ri;
|
Renderable *ri;
|
||||||
};
|
};
|
||||||
|
@ -78,5 +78,7 @@ public:
|
|||||||
bool Release(VIL *);
|
bool Release(VIL *);
|
||||||
const uint GetVILCount();
|
const uint GetVILCount();
|
||||||
};//class Material
|
};//class Material
|
||||||
|
|
||||||
|
using MaterialSets=SortedSets<Material *>;
|
||||||
VK_NAMESPACE_END
|
VK_NAMESPACE_END
|
||||||
#endif//HGL_GRAPH_VULKAN_MATERIAL_INCLUDE
|
#endif//HGL_GRAPH_VULKAN_MATERIAL_INCLUDE
|
||||||
|
@ -43,7 +43,6 @@ public:
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
#define MP_TYPE_IS(name) const bool is##name()const{return set_type==DescriptorSetType::name;}
|
#define MP_TYPE_IS(name) const bool is##name()const{return set_type==DescriptorSetType::name;}
|
||||||
MP_TYPE_IS(Skeleton)
|
|
||||||
MP_TYPE_IS(Instance)
|
MP_TYPE_IS(Instance)
|
||||||
MP_TYPE_IS(PerObject)
|
MP_TYPE_IS(PerObject)
|
||||||
MP_TYPE_IS(PerMaterial)
|
MP_TYPE_IS(PerMaterial)
|
||||||
|
@ -41,9 +41,10 @@ SET(SCENE_GRAPH_HEADER ${SG_INCLUDE_PATH}/SceneInfo.h
|
|||||||
${SG_INCLUDE_PATH}/RenderList2D.h
|
${SG_INCLUDE_PATH}/RenderList2D.h
|
||||||
)
|
)
|
||||||
|
|
||||||
SET(SCENE_GRAPH_SOURCE RenderList.cpp
|
SET(SCENE_GRAPH_SOURCE
|
||||||
|
#RenderList.cpp
|
||||||
RenderList2D.cpp
|
RenderList2D.cpp
|
||||||
RenderList3D.cpp
|
#RenderList3D.cpp
|
||||||
SceneNode.cpp
|
SceneNode.cpp
|
||||||
SceneOrient.cpp)
|
SceneOrient.cpp)
|
||||||
|
|
||||||
@ -118,6 +119,7 @@ SET(VK_MEMORY_SOURCE ${SG_INCLUDE_PATH}/VKMemory.h
|
|||||||
Vulkan/VKMemory.cpp
|
Vulkan/VKMemory.cpp
|
||||||
Vulkan/VKMemoryAllocator.cpp
|
Vulkan/VKMemoryAllocator.cpp
|
||||||
Vulkan/VKBuffer.cpp
|
Vulkan/VKBuffer.cpp
|
||||||
|
Vulkan/VKArrayBuffer.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
SET(VK_DEVICE_TEXTURE_SOURCE Vulkan/Texture/BufferImageCopy2D.h
|
SET(VK_DEVICE_TEXTURE_SOURCE Vulkan/Texture/BufferImageCopy2D.h
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
#include<hgl/graph/RenderList.h>
|
#include<hgl/graph/RenderList2D.h>
|
||||||
#include<hgl/graph/Camera.h>
|
|
||||||
#include<hgl/graph/SceneNode.h>
|
#include<hgl/graph/SceneNode.h>
|
||||||
#include<hgl/graph/VKBuffer.h>
|
#include<hgl/graph/VKBuffer.h>
|
||||||
#include<hgl/graph/VKPrimitive.h>
|
#include<hgl/graph/VKPrimitive.h>
|
||||||
@ -15,11 +14,10 @@
|
|||||||
* for(pipeline)
|
* for(pipeline)
|
||||||
* for(material_instance)
|
* for(material_instance)
|
||||||
* for(vbo)
|
* for(vbo)
|
||||||
* for(distance)
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
int Comparator<RenderNode3DPointer>::compare(const RenderNode3DPointer &obj_one,const RenderNode3DPointer &obj_two) const
|
int Comparator<RenderNode2DPointer>::compare(const RenderNode2DPointer &obj_one,const RenderNode2DPointer &obj_two) const
|
||||||
{
|
{
|
||||||
int off;
|
int off;
|
||||||
|
|
||||||
@ -58,17 +56,6 @@ int Comparator<RenderNode3DPointer>::compare(const RenderNode3DPointer &obj_one,
|
|||||||
return off;
|
return off;
|
||||||
}
|
}
|
||||||
|
|
||||||
//比较距离
|
|
||||||
{
|
|
||||||
const double dist=obj_one->distance_to_camera_square-
|
|
||||||
obj_two->distance_to_camera_square;
|
|
||||||
|
|
||||||
//由于距离差距可能会小于1,但又返回int,所以需要做如此处理
|
|
||||||
|
|
||||||
if(dist>0)return 1;else
|
|
||||||
if(dist<0)return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,7 +63,7 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
namespace graph
|
namespace graph
|
||||||
{
|
{
|
||||||
RenderList::RenderList(GPUDevice *dev)
|
RenderList2D::RenderList2D(GPUDevice *dev)
|
||||||
{
|
{
|
||||||
device =dev;
|
device =dev;
|
||||||
cmd_buf =nullptr;
|
cmd_buf =nullptr;
|
||||||
@ -87,13 +74,15 @@ namespace hgl
|
|||||||
last_pipeline =nullptr;
|
last_pipeline =nullptr;
|
||||||
hgl_zero(last_mp);
|
hgl_zero(last_mp);
|
||||||
last_vbo =0;
|
last_vbo =0;
|
||||||
|
|
||||||
|
// mvp_array =new GPUArrayBuffer(device,VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,MVPMatrixBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
RenderList::~RenderList()
|
RenderList2D::~RenderList2D()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RenderList::Begin()
|
bool RenderList2D::Begin()
|
||||||
{
|
{
|
||||||
render_node_list.ClearData();
|
render_node_list.ClearData();
|
||||||
ri_list.ClearData();
|
ri_list.ClearData();
|
||||||
@ -103,7 +92,7 @@ namespace hgl
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderList::End()
|
void RenderList2D::End()
|
||||||
{
|
{
|
||||||
if(render_node_list.GetCount()<=0)return;
|
if(render_node_list.GetCount()<=0)return;
|
||||||
|
|
||||||
@ -116,46 +105,46 @@ namespace hgl
|
|||||||
|
|
||||||
{
|
{
|
||||||
//按当前总节点数量分配UBO
|
//按当前总节点数量分配UBO
|
||||||
mvp_array->Alloc(count);
|
// mvp_array->Alloc(count);
|
||||||
mvp_array->Clear();
|
// mvp_array->Clear();
|
||||||
|
|
||||||
ri_list.ClearData();
|
ri_list.ClearData();
|
||||||
ri_list.SetCount(count);
|
ri_list.SetCount(count);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
ubo_align=mvp_array->GetUnitSize();
|
// ubo_align=mvp_array->GetUnitSize();
|
||||||
|
|
||||||
char *mp=(char *)(mvp_array->Map(0,count));
|
// char *mp=(char *)(mvp_array->Map(0,count));
|
||||||
Renderable **ri=ri_list.GetData();
|
Renderable **ri=ri_list.GetData();
|
||||||
|
|
||||||
for(RenderNode *node:render_node_list) //未来可能要在Expend处考虑做去重
|
for(RenderNode2D *node:render_node_list) //未来可能要在Expend处考虑做去重
|
||||||
{
|
{
|
||||||
memcpy(mp,&(node->matrix),MVPMatrixBytes);
|
// memcpy(mp,&(node->matrix),MVPMatrixBytes);
|
||||||
mp+=ubo_align;
|
// mp+=ubo_align;
|
||||||
|
|
||||||
(*ri)=node->ri;
|
(*ri)=node->ri;
|
||||||
++ri;
|
++ri;
|
||||||
}
|
}
|
||||||
|
|
||||||
mvp_array->Flush(count);
|
// mvp_array->Flush(count);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//为所有的材质绑定
|
//为所有的材质绑定
|
||||||
for(Material *mtl:material_sets)
|
//for(Material *mtl:material_sets)
|
||||||
{
|
//{
|
||||||
MaterialParameters *mp=mtl->GetMP(DescriptorSetType::PerObject);
|
// MaterialParameters *mp=mtl->GetMP(DescriptorSetType::PerObject);
|
||||||
|
|
||||||
if(mp)
|
// if(mp)
|
||||||
{
|
// {
|
||||||
if(mp->BindUBO("r_scene_info",mvp_array->GetBuffer(),true))
|
// if(mp->BindUBO("r_scene_info",mvp_array->GetBuffer(),true))
|
||||||
mp->Update();
|
// mp->Update();
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RenderList::Expend(SceneNode *sn)
|
bool RenderList2D::ExpendNode(SceneNode *sn)
|
||||||
{
|
{
|
||||||
if(!sn)return(false);
|
if(!sn)return(false);
|
||||||
|
|
||||||
@ -163,14 +152,9 @@ namespace hgl
|
|||||||
|
|
||||||
if(ri)
|
if(ri)
|
||||||
{
|
{
|
||||||
RenderNode *rn=new RenderNode;
|
RenderNode2D *rn=new RenderNode2D;
|
||||||
|
|
||||||
rn->matrix.Set(sn->GetLocalToWorldMatrix(),camera_info.vp,camera_info.view);
|
rn->local_to_world=sn->GetLocalToWorldMatrix();
|
||||||
|
|
||||||
rn->WorldCenter=sn->GetWorldCenter();
|
|
||||||
|
|
||||||
rn->distance_to_camera_square=length_squared(rn->WorldCenter,camera_info.pos);
|
|
||||||
// rn->distance_to_camera=sqrtf(rn->distance_to_camera_square);
|
|
||||||
|
|
||||||
rn->ri=ri;
|
rn->ri=ri;
|
||||||
|
|
||||||
@ -185,20 +169,18 @@ namespace hgl
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RenderList::Expend(const CameraInfo &ci,SceneNode *sn)
|
bool RenderList2D::Expend(SceneNode *sn)
|
||||||
{
|
{
|
||||||
if(!device|!sn)return(false);
|
if(!device|!sn)return(false);
|
||||||
|
|
||||||
camera_info=ci;
|
|
||||||
|
|
||||||
Begin();
|
Begin();
|
||||||
Expend(sn);
|
ExpendNode(sn);
|
||||||
End();
|
End();
|
||||||
|
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderList::Render(Renderable *ri)
|
void RenderList2D::Render(Renderable *ri)
|
||||||
{
|
{
|
||||||
if(last_pipeline!=ri->GetPipeline())
|
if(last_pipeline!=ri->GetPipeline())
|
||||||
{
|
{
|
||||||
@ -273,7 +255,7 @@ namespace hgl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RenderList::Render(RenderCmdBuffer *cb)
|
bool RenderList2D::Render(RenderCmdBuffer *cb)
|
||||||
{
|
{
|
||||||
if(!cb)
|
if(!cb)
|
||||||
return(false);
|
return(false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user