3#include <Core/Asset/MaterialData.hpp>
4#include <Engine/Data/Material.hpp>
5#include <Engine/Data/RenderParameters.hpp>
6#include <Engine/Data/ShaderConfiguration.hpp>
7#include <Engine/RaEngine.hpp>
17class RawShaderMaterialConverter;
44 MaterialData( instanceName,
"Ra::Engine::Data::RawShaderMaterial" ),
45 m_shaders { shaders },
46 m_paramProvider {
std::move( paramProvider ) } {}
115 void registerDefaultTechnique();
133 void updateGL() override final;
140 static
void registerMaterial();
146 static
void unregisterMaterial();
152 std::
string computeKey();
156 std::
string m_materialKey {};
162 return new RawShaderMaterial( mat->getName(), mat->m_shaders, mat->m_paramProvider );
166 return m_paramProvider->getParameters();
170 return m_paramProvider->getParameters();
represent material data loaded by a file loader. Material data must be identified by a unique name....
RawShaderMaterialData(const std::string &instanceName, const std::vector< std::pair< Ra::Engine::Data::ShaderType, std::string > > &shaders, std::shared_ptr< Ra::Engine::Data::ShaderParameterProvider > paramProvider)
Base class for materials.
Data::RenderParameters & getParameters() override
RawShaderMaterial(const RawShaderMaterial &)=delete
Management of shader parameters with automatic binding of a named parameter to the corresponding glsl...
Shader program parameter provider.
hepler function to manage enum as underlying types in VariableSet