Fixed all my pointers
This commit is contained in:
10
src/dawn/display/CMakeLists.txt
Normal file
10
src/dawn/display/CMakeLists.txt
Normal 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
|
||||
)
|
26
src/dawn/display/RenderPipeline.cpp
Normal file
26
src/dawn/display/RenderPipeline.cpp
Normal 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() {
|
||||
|
||||
}
|
24
src/dawn/display/RenderPipeline.hpp
Normal file
24
src/dawn/display/RenderPipeline.hpp
Normal 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();
|
||||
};
|
||||
}
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user