Even more shared pointers.
This commit is contained in:
@ -9,28 +9,29 @@
|
||||
|
||||
using namespace Dawn;
|
||||
|
||||
RenderManager::RenderManager() :
|
||||
IRenderManager(),
|
||||
renderPipeline(this)
|
||||
{
|
||||
RenderManager::RenderManager() : IRenderManager() {
|
||||
renderPipeline = std::make_shared<RenderPipeline>();
|
||||
shaderManager = std::make_shared<ShaderManager>();
|
||||
backBuffer = std::make_shared<BackBufferRenderTarget>(*this);
|
||||
}
|
||||
|
||||
void RenderManager::init(std::weak_ptr<DawnGame> game) {
|
||||
this->game = game;
|
||||
|
||||
// Init the render pipeline
|
||||
renderPipeline->init(std::static_pointer_cast<RenderManager>(shared_from_this()));
|
||||
|
||||
// Lock the common shaders
|
||||
lockSimpleTextured = shaderManager.lockShader<SimpleTexturedShader>();
|
||||
simpleTexturedShader = shaderManager.getShader<SimpleTexturedShader>(
|
||||
lockSimpleTextured = shaderManager->lockShader<SimpleTexturedShader>();
|
||||
simpleTexturedShader = shaderManager->getShader<SimpleTexturedShader>(
|
||||
lockSimpleTextured
|
||||
);
|
||||
|
||||
lockUIShaderProgram = shaderManager.lockShader<UIShader>();
|
||||
uiShader = shaderManager.getShader<UIShader>(lockUIShaderProgram);
|
||||
lockUIShaderProgram = shaderManager->lockShader<UIShader>();
|
||||
uiShader = shaderManager->getShader<UIShader>(lockUIShaderProgram);
|
||||
|
||||
lockFontShader = shaderManager.lockShader<FontShader>();
|
||||
fontShader = shaderManager.getShader<FontShader>(lockFontShader);
|
||||
renderPipeline.init();
|
||||
lockFontShader = shaderManager->lockShader<FontShader>();
|
||||
fontShader = shaderManager->getShader<FontShader>(lockFontShader);
|
||||
assertNoGLError();
|
||||
|
||||
// Prepare the initial values
|
||||
@ -53,12 +54,12 @@ std::shared_ptr<RenderTarget> RenderManager::getBackBuffer() {
|
||||
return backBuffer;
|
||||
}
|
||||
|
||||
RenderPipeline * RenderManager::getRenderPipeline() {
|
||||
return &renderPipeline;
|
||||
std::shared_ptr<RenderPipeline> RenderManager::getRenderPipeline() {
|
||||
return renderPipeline;
|
||||
}
|
||||
|
||||
ShaderManager * RenderManager::getShaderManager() {
|
||||
return &shaderManager;
|
||||
std::shared_ptr<ShaderManager> RenderManager::getShaderManager() {
|
||||
return shaderManager;
|
||||
}
|
||||
|
||||
void RenderManager::setRenderFlags(flag_t flags) {
|
||||
@ -84,7 +85,7 @@ void RenderManager::update() {
|
||||
}
|
||||
|
||||
RenderManager::~RenderManager() {
|
||||
shaderManager.releaseShader<SimpleTexturedShader>(lockSimpleTextured);
|
||||
shaderManager.releaseShader<UIShader>(lockUIShaderProgram);
|
||||
shaderManager.releaseShader<FontShader>(lockFontShader);
|
||||
shaderManager->releaseShader<SimpleTexturedShader>(lockSimpleTextured);
|
||||
shaderManager->releaseShader<UIShader>(lockUIShaderProgram);
|
||||
shaderManager->releaseShader<FontShader>(lockFontShader);
|
||||
}
|
@ -15,8 +15,8 @@
|
||||
namespace Dawn {
|
||||
class RenderManager : public IRenderManager {
|
||||
private:
|
||||
RenderPipeline renderPipeline;
|
||||
ShaderManager shaderManager;
|
||||
std::shared_ptr<RenderPipeline> renderPipeline;
|
||||
std::shared_ptr<ShaderManager> shaderManager;
|
||||
shaderlock_t lockSimpleTextured = -1;
|
||||
shaderlock_t lockUIShaderProgram = -1;
|
||||
shaderlock_t lockFontShader = -1;
|
||||
@ -33,8 +33,8 @@ namespace Dawn {
|
||||
RenderManager();
|
||||
|
||||
std::shared_ptr<RenderTarget> getBackBuffer() override;
|
||||
RenderPipeline * getRenderPipeline() override;
|
||||
ShaderManager * getShaderManager() override;
|
||||
std::shared_ptr<RenderPipeline> getRenderPipeline() override;
|
||||
std::shared_ptr<ShaderManager> getShaderManager() override;
|
||||
void setRenderFlags(flag_t renderFlags) override;
|
||||
void init(std::weak_ptr<DawnGame> game) override;
|
||||
void update() override;
|
||||
|
Reference in New Issue
Block a user