14#include <utility/system_io/file.hpp>
16#include <utility/graphic/texture.hpp>
20 class RessourceProvider;
23namespace utility::graphic
35 enum class AlphaMode {
89 const std::string &shaderName,
90 const std::vector<File> &textureAssets);
109 std::shared_ptr<Texture>
getTexture(
const std::string &name)
const;
120 std::vector<std::shared_ptr<Texture>>
getTextures()
const;
176 std::map<std::string, std::shared_ptr<Texture>>
_textures;
The RessourceProvider class is responsible for managing and loading various resources such as fonts,...
The Material class represents a material that can be used for rendering objects in a graphics applica...
std::string _shaderName
The name of the shader associated with this material.
Material()=default
Constructs an empty Material.
std::map< std::string, std::shared_ptr< Texture > > _textures
A map of texture names to Texture objects associated with this material.
AlphaMode getAlphaMode(void) const
Retrieves the alpha semantics of this material.
float _alphaCutoff
The alpha cutoff, only meaningful for AlphaMode::Mask.
virtual ~Material()=default
Destructs the Material object, releasing any allocated resources.
const std::string & getShaderName() const
Retrieves the shader name associated with this material.
uint32_t _version
A version number for the material, used for tracking changes and updates.
std::shared_ptr< Texture > getTexture(const std::string &name) const
Retrieves a texture by its name.
std::vector< std::shared_ptr< Texture > > getTextures() const
Retrieves the textures associated with this material.
AlphaMode _alphaMode
The alpha semantics of this material.
uint32_t getVersion() const
Retrieves the version number of the material.
float getAlphaCutoff(void) const
Retrieves the alpha cutoff of this material.
The utility namespace contains classes and functions for the utility project.