Changed scene item components to smart pointers

This commit is contained in:
2023-11-10 23:21:59 -06:00
parent 085facd079
commit 7b1933159b
33 changed files with 84 additions and 97 deletions

View File

@ -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.

View File

@ -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.