Fixed all my pointers

This commit is contained in:
2022-10-19 19:44:47 -07:00
parent f0cbae4cf8
commit acc9d798cb
31 changed files with 289 additions and 141 deletions

View File

@ -0,0 +1,10 @@
# Copyright (c) 2022 Dominic Masters
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
# Sources
target_sources(${DAWN_TARGET_NAME}
PRIVATE
RenderPipeline.cpp
)

View File

@ -0,0 +1,26 @@
// Copyright (c) 2022 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#include "RenderPipeline.hpp"
#include "game/DawnGame.hpp"
using namespace Dawn;
RenderPipeline::RenderPipeline(RenderManager &renderManager) :
renderManager(renderManager)
{
}
void RenderPipeline::init() {
}
void RenderPipeline::render() {
this->renderScene(*this->renderManager.game.scene);
}
RenderPipeline::~RenderPipeline() {
}

View File

@ -0,0 +1,24 @@
// Copyright (c) 2022 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#pragma once
#include "dawnlibs.hpp"
#include "display/RenderManager.hpp"
#include "scene/Scene.hpp"
#include "scene/components/Components.hpp"
namespace Dawn {
class RenderPipeline {
public:
RenderManager &renderManager;
RenderPipeline(RenderManager &renderManager);
virtual void init();
void render();
virtual void renderScene(Scene &scene) = 0;
virtual void renderSceneCamera(Scene &scene, Camera &camera) = 0;
virtual ~RenderPipeline();
};
}

View File

@ -8,10 +8,19 @@
namespace Dawn {
class DawnGame;
class RenderPipeline;
class IRenderManager {
public:
std::weak_ptr<DawnGame> game;
DawnGame &game;
std::shared_ptr<RenderPipeline> renderPipeline;
/**
* Default constructor for a render manager instance.
*
* @param game Game that this render manager belongs to.
*/
IRenderManager(DawnGame &game) : game(game) {}
/**
* Returns the primary render target (the backbuffer) that draws directly
@ -19,10 +28,14 @@ namespace Dawn {
*
* @return Shared pointer to the backbuffer render target.
*/
virtual std::shared_ptr<RenderTarget> getBackBuffer() = 0;
virtual RenderTarget & getBackBuffer() = 0;
virtual RenderPipeline & getRenderPipeline() = 0;
/**
* Initialize this render manager.
* Initialize / Start the Render Manager.
*
* @param game Game instance this render manager belongs to.
*/
virtual void init() = 0;

View File

@ -14,6 +14,6 @@ namespace Dawn {
*
* @param mesh Mesh to initialize as a triangle.
*/
static void createTriangleMesh(std::shared_ptr<Mesh> mesh);
static void createTriangleMesh(Mesh &mesh);
};
}