MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / Create

Method Create

Source/Engine/Graphics/Materials/MaterialShader.cpp:143–183  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

141}
142
143MaterialShader* MaterialShader::Create(const StringView& name, MemoryReadStream& shaderCacheStream, const MaterialInfo& info)
144{
145 PROFILE_MEM(GraphicsMaterials);
146 MaterialShader* material;
147 switch (info.Domain)
148 {
149 case MaterialDomain::Surface:
150 material = info.BlendMode == MaterialBlendMode::Opaque ? (MaterialShader*)New<DeferredMaterialShader>(name) : (MaterialShader*)New<ForwardMaterialShader>(name);
151 break;
152 case MaterialDomain::PostProcess:
153 material = New<PostFxMaterialShader>(name);
154 break;
155 case MaterialDomain::Decal:
156 material = New<DecalMaterialShader>(name);
157 break;
158 case MaterialDomain::GUI:
159 material = New<GUIMaterialShader>(name);
160 break;
161 case MaterialDomain::Terrain:
162 material = New<TerrainMaterialShader>(name);
163 break;
164 case MaterialDomain::Particle:
165 material = New<ParticleMaterialShader>(name);
166 break;
167 case MaterialDomain::Deformable:
168 material = New<DeformableMaterialShader>(name);
169 break;
170 case MaterialDomain::VolumeParticle:
171 material = New<VolumeParticleMaterialShader>(name);
172 break;
173 default:
174 LOG(Error, "Unknown material type.");
175 return nullptr;
176 }
177 if (material->Load(shaderCacheStream, info))
178 {
179 Delete(material);
180 return nullptr;
181 }
182 return material;
183}
184
185class DummyMaterial : public MaterialShader
186{

Callers 1

LoadMethod · 0.45

Calls 2

DeleteFunction · 0.85
LoadMethod · 0.45

Tested by

no test coverage detected