MCPcopy Create free account
hub / github.com/NazaraEngine/NazaraEngine / SaveToParameters

Method SaveToParameters

src/Nazara/Graphics/Material.cpp:272–367  ·  view source on GitHub ↗

! * \brief Builds a ParameterList with material data * * \param matData Destination parameter list which will receive material data */

Source from the content-addressed store, hash-verified

270 * \param matData Destination parameter list which will receive material data
271 */
272 void Material::SaveToParameters(ParameterList* matData)
273 {
274 NazaraAssert(matData, "Invalid ParameterList");
275
276 matData->SetParameter(MaterialData::AlphaTest, IsAlphaTestEnabled());
277 matData->SetParameter(MaterialData::AlphaThreshold, GetAlphaThreshold());
278 matData->SetParameter(MaterialData::AmbientColor, GetAmbientColor());
279 matData->SetParameter(MaterialData::CullingSide, static_cast<long long>(GetFaceCulling()));
280 matData->SetParameter(MaterialData::DepthFunc, static_cast<long long>(GetDepthFunc()));
281 matData->SetParameter(MaterialData::DepthSorting, IsDepthSortingEnabled());
282 matData->SetParameter(MaterialData::DiffuseColor, GetDiffuseColor());
283 matData->SetParameter(MaterialData::DstBlend, static_cast<long long>(GetDstBlend()));
284 matData->SetParameter(MaterialData::FaceFilling, static_cast<long long>(GetFaceFilling()));
285 matData->SetParameter(MaterialData::LineWidth, GetLineWidth());
286 matData->SetParameter(MaterialData::PointSize, GetPointSize());
287 matData->SetParameter(MaterialData::Shininess, GetShininess());
288 matData->SetParameter(MaterialData::SpecularColor, GetSpecularColor());
289 matData->SetParameter(MaterialData::SrcBlend, static_cast<long long>(GetSrcBlend()));
290
291 // RendererParameter
292 matData->SetParameter(MaterialData::Blending, IsBlendingEnabled());
293 matData->SetParameter(MaterialData::ColorWrite, IsColorWriteEnabled());
294 matData->SetParameter(MaterialData::DepthBuffer, IsDepthBufferEnabled());
295 matData->SetParameter(MaterialData::DepthWrite, IsDepthWriteEnabled());
296 matData->SetParameter(MaterialData::FaceCulling, IsFaceCullingEnabled());
297 matData->SetParameter(MaterialData::ScissorTest, IsScissorTestEnabled());
298 matData->SetParameter(MaterialData::StencilTest, IsStencilTestEnabled());
299
300 // Samplers
301 matData->SetParameter(MaterialData::DiffuseAnisotropyLevel, static_cast<long long>(GetDiffuseSampler().GetAnisotropicLevel()));
302 matData->SetParameter(MaterialData::DiffuseFilter, static_cast<long long>(GetDiffuseSampler().GetFilterMode()));
303 matData->SetParameter(MaterialData::DiffuseWrap, static_cast<long long>(GetDiffuseSampler().GetWrapMode()));
304
305 matData->SetParameter(MaterialData::SpecularAnisotropyLevel, static_cast<long long>(GetSpecularSampler().GetAnisotropicLevel()));
306 matData->SetParameter(MaterialData::SpecularFilter, static_cast<long long>(GetSpecularSampler().GetFilterMode()));
307 matData->SetParameter(MaterialData::SpecularWrap, static_cast<long long>(GetSpecularSampler().GetWrapMode()));
308
309 // Stencil
310 matData->SetParameter(MaterialData::StencilCompare, static_cast<long long>(GetPipelineInfo().stencilCompare.front));
311 matData->SetParameter(MaterialData::StencilFail, static_cast<long long>(GetPipelineInfo().stencilFail.front));
312 matData->SetParameter(MaterialData::StencilPass, static_cast<long long>(GetPipelineInfo().stencilPass.front));
313 matData->SetParameter(MaterialData::StencilZFail, static_cast<long long>(GetPipelineInfo().stencilDepthFail.front));
314 matData->SetParameter(MaterialData::StencilMask, static_cast<long long>(GetPipelineInfo().stencilWriteMask.front));
315 matData->SetParameter(MaterialData::StencilReference, static_cast<long long>(GetPipelineInfo().stencilReference.front));
316
317 // Stencil (back)
318 matData->SetParameter(MaterialData::BackFaceStencilCompare, static_cast<long long>(GetPipelineInfo().stencilCompare.back));
319 matData->SetParameter(MaterialData::BackFaceStencilFail, static_cast<long long>(GetPipelineInfo().stencilFail.back));
320 matData->SetParameter(MaterialData::BackFaceStencilPass, static_cast<long long>(GetPipelineInfo().stencilPass.back));
321 matData->SetParameter(MaterialData::BackFaceStencilZFail, static_cast<long long>(GetPipelineInfo().stencilDepthFail.back));
322 matData->SetParameter(MaterialData::BackFaceStencilMask, static_cast<long long>(GetPipelineInfo().stencilWriteMask.back));
323 matData->SetParameter(MaterialData::BackFaceStencilReference, static_cast<long long>(GetPipelineInfo().stencilReference.back));
324
325 // Textures
326 if (HasAlphaMap())
327 {
328 const String& path = GetAlphaMap()->GetFilePath();
329 if (!path.IsEmpty())

Callers

nothing calls this directly

Calls 5

SetParameterMethod · 0.80
GetAnisotropicLevelMethod · 0.80
GetFilterModeMethod · 0.80
GetWrapModeMethod · 0.80
IsEmptyMethod · 0.80

Tested by

no test coverage detected