! * \brief Builds a ParameterList with material data * * \param matData Destination parameter list which will receive material data */
| 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()) |
nothing calls this directly
no test coverage detected