Changed scene item components to smart pointers
This commit is contained in:
@ -59,7 +59,7 @@ void RenderPipeline::renderScene(std::shared_ptr<Scene> scene) {
|
||||
// Now render backbuffers.
|
||||
auto backBuffer = rm->getBackBuffer();
|
||||
auto cameras = scene->findComponents<Camera>();
|
||||
Camera *backBufferCamera = nullptr;
|
||||
std::shared_ptr<Camera> backBufferCamera;
|
||||
|
||||
// First, render all non-backbuffer cameras.
|
||||
auto it = cameras.begin();
|
||||
@ -74,7 +74,7 @@ void RenderPipeline::renderScene(std::shared_ptr<Scene> scene) {
|
||||
} else if(cameraTarget == backBuffer) {
|
||||
backBufferCamera = *it;
|
||||
} else {
|
||||
renderSceneCamera(&(*scene), *it);
|
||||
renderSceneCamera(scene, *it);
|
||||
}
|
||||
|
||||
++it;
|
||||
@ -82,10 +82,10 @@ void RenderPipeline::renderScene(std::shared_ptr<Scene> scene) {
|
||||
|
||||
// Now render the backbuffer camera.
|
||||
if(backBufferCamera == nullptr) return;
|
||||
renderSceneCamera(&(*scene), backBufferCamera);
|
||||
renderSceneCamera(scene, backBufferCamera);
|
||||
}
|
||||
|
||||
void RenderPipeline::renderSceneCamera(Scene *scene, Camera *camera) {
|
||||
void RenderPipeline::renderSceneCamera(std::shared_ptr<Scene> scene, std::shared_ptr<Camera> camera) {
|
||||
auto rm = renderManager.lock();
|
||||
assertNotNull(rm, "RenderPipeline::renderSceneCamera: RenderManager cannot be null");
|
||||
|
||||
@ -114,7 +114,7 @@ void RenderPipeline::renderSceneCamera(Scene *scene, Camera *camera) {
|
||||
struct IRenderableContext context = {
|
||||
scene,
|
||||
camera,
|
||||
this
|
||||
shared_from_this()
|
||||
};
|
||||
|
||||
// Get the list of things to render first.
|
||||
|
@ -13,7 +13,7 @@
|
||||
namespace Dawn {
|
||||
class RenderManager;
|
||||
|
||||
class RenderPipeline {
|
||||
class RenderPipeline : public std::enable_shared_from_this<RenderPipeline> {
|
||||
private:
|
||||
int_fast16_t renderId = -1;
|
||||
|
||||
@ -54,7 +54,7 @@ namespace Dawn {
|
||||
* @param scene Scene to render.
|
||||
* @param camera Camera within the scene to render.
|
||||
*/
|
||||
virtual void renderSceneCamera(Scene *scene, Camera *camera);
|
||||
virtual void renderSceneCamera(std::shared_ptr<Scene> scene, std::shared_ptr<Camera> camera);
|
||||
|
||||
/**
|
||||
* Cleanup a render pipeline that has been initialized.
|
||||
|
Reference in New Issue
Block a user