Skip to content

Commit

Permalink
removed shared pointers in shader lib
Browse files Browse the repository at this point in the history
  • Loading branch information
jmacey committed Jun 6, 2023
1 parent 9694e36 commit aec12b8
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 12 deletions.
7 changes: 3 additions & 4 deletions include/ngl/ShaderLib.h
Original file line number Diff line number Diff line change
Expand Up @@ -418,7 +418,6 @@ class NGL_DLLEXPORT ShaderLib
/// @brief method to return the specified shader object
/// @param _shaderName the name of the shader to return
//----------------------------------------------------------------------------------------------------------------------
static std::shared_ptr< ngl::Shader > getShader(std::string_view _shaderName) noexcept;
static bool setUniformBuffer(std::string_view _uniformBlockName, size_t _size, void *_data);


Expand Down Expand Up @@ -461,15 +460,15 @@ class NGL_DLLEXPORT ShaderLib
//----------------------------------------------------------------------------------------------------------------------
/// @brief a map of shader Programs using name as key to shader pointer
//----------------------------------------------------------------------------------------------------------------------
static std::unordered_map< std::string, std::shared_ptr< ShaderProgram > > m_shaderPrograms;
static std::unordered_map< std::string, std::unique_ptr< ShaderProgram>> m_shaderPrograms;
//----------------------------------------------------------------------------------------------------------------------
/// @brief map of shaders using name as key
//----------------------------------------------------------------------------------------------------------------------
static std::unordered_map< std::string, std::shared_ptr< Shader > > m_shaders;
static std::unordered_map< std::string, std::unique_ptr< Shader>> m_shaders;
//----------------------------------------------------------------------------------------------------------------------
/// @brief null ShaderProgram so we can return when shader not know;
//----------------------------------------------------------------------------------------------------------------------
static std::shared_ptr< ShaderProgram > m_nullProgram;
static std::unique_ptr< ShaderProgram > m_nullProgram;
//----------------------------------------------------------------------------------------------------------------------
/// @brief the name of the currently active shader
// ----------------------------------------------------------------------------------------------------------------------
Expand Down
1 change: 0 additions & 1 deletion include/ngl/Text.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ struct FontChar
int bearingy;
unsigned int advance;
GLuint textureID; /// @brief the texture id of the font billboard
// std::shared_ptr<AbstractVAO> vao; /// a vao for the font
};

class NGL_DLLEXPORT Text
Expand Down
15 changes: 8 additions & 7 deletions src/ShaderLib.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@
namespace ngl
{

std::shared_ptr< ShaderProgram > ShaderLib::m_nullProgram = std::make_shared< ShaderProgram >("NULL");
std::unique_ptr< ShaderProgram > ShaderLib::m_nullProgram = std::make_unique< ShaderProgram >("NULL");

std::unordered_map< std::string, std::shared_ptr< ShaderProgram > > ShaderLib::m_shaderPrograms;
std::unordered_map< std::string, std::unique_ptr< ShaderProgram > > ShaderLib::m_shaderPrograms;

std::unordered_map< std::string, std::shared_ptr< Shader > > ShaderLib::m_shaders;
std::unordered_map< std::string, std::unique_ptr< Shader > > ShaderLib::m_shaders;

std::string ShaderLib::m_currentShader = "NULL";
bool ShaderLib::m_debugState = true;
Expand All @@ -53,7 +53,7 @@ void ShaderLib::loadDefaultShaders()
return;
else
{
m_shaderPrograms["NULL"] = m_nullProgram;
m_shaderPrograms["NULL"] = std::move(m_nullProgram);
loadTextShaders();
loadColourShaders();
loadDiffuseShaders();
Expand Down Expand Up @@ -164,7 +164,7 @@ GLuint ShaderLib::getShaderID(std::string_view _shaderName) noexcept
}
return value;
}

/*
std::shared_ptr< ngl::Shader > ShaderLib::getShader(std::string_view _shaderName) noexcept
{
std::shared_ptr< ngl::Shader > shaderPointer;
Expand All @@ -181,10 +181,11 @@ std::shared_ptr< ngl::Shader > ShaderLib::getShader(std::string_view _shaderName
}
return shaderPointer;
}
*/
//----------------------------------------------------------------------------------------------------------------------
void ShaderLib::attachShader(std::string_view _name, ShaderType _type, ErrorExit _exitOnError) noexcept
{
m_shaders[_name.data()] = std::make_shared< Shader >(_name, _type, _exitOnError);
m_shaders[_name.data()] = std::make_unique< Shader >(_name, _type, _exitOnError);
if(m_debugState == true)
NGLMessage::addMessage(fmt::format("just attached {0} to ngl::ShaderLib", _name.data()));
}
Expand Down Expand Up @@ -231,7 +232,7 @@ void ShaderLib::createShaderProgram(std::string_view _name, ErrorExit _exitOnErr
{
if(m_debugState)
NGLMessage::addMessage(fmt::format("creating empty ShaderProgram {0}", _name.data()));
m_shaderPrograms[_name.data()] = std::make_shared< ShaderProgram >(_name, _exitOnError);
m_shaderPrograms[_name.data()] = std::make_unique< ShaderProgram >(_name, _exitOnError);
}
//----------------------------------------------------------------------------------------------------------------------
void ShaderLib::attachShaderToProgram(std::string_view _program, std::string_view _shader) noexcept
Expand Down

0 comments on commit aec12b8

Please sign in to comment.