3#include <Engine/RaEngine.hpp>
5#include <Core/Asset/MaterialData.hpp>
6#include <Engine/Data/Material.hpp>
12class RawShaderMaterialConverter;
39 MaterialData( instanceName,
"Ra::Engine::Data::RawShaderMaterial" ),
40 m_shaders { shaders },
41 m_paramProvider {
std::move( paramProvider ) } {}
110 void registerDefaultTechnique();
128 void updateGL() override final;
135 static
void registerMaterial();
141 static
void unregisterMaterial();
147 std::
string computeKey();
151 std::
string m_materialKey {};
157 return new RawShaderMaterial( mat->getName(), mat->m_shaders, mat->m_paramProvider );
161 return m_paramProvider->getParameters();
165 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