From 492b4272e37c9bdcd07738d37154c4680b3bd9e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 6 Jun 2022 19:03:54 +0200 Subject: [PATCH] Trade: *MaterialData::hasTextureCoordinates() returns false when it's 0. All other classes were fixed to do the same as Phong. Plus the docs were clarified for PbrClearCoatMaterialData. --- src/Magnum/Trade/FlatMaterialData.cpp | 6 +++--- src/Magnum/Trade/PbrClearCoatMaterialData.cpp | 10 +++++----- src/Magnum/Trade/PbrClearCoatMaterialData.h | 5 +++-- .../Trade/PbrMetallicRoughnessMaterialData.cpp | 14 +++++++------- .../Trade/PbrSpecularGlossinessMaterialData.cpp | 14 +++++++------- 5 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/Magnum/Trade/FlatMaterialData.cpp b/src/Magnum/Trade/FlatMaterialData.cpp index ee2700bc2..def1bb81e 100644 --- a/src/Magnum/Trade/FlatMaterialData.cpp +++ b/src/Magnum/Trade/FlatMaterialData.cpp @@ -44,9 +44,9 @@ bool FlatMaterialData::hasTextureTransformation() const { } bool FlatMaterialData::hasTextureCoordinates() const { - return (hasAttribute(MaterialAttribute::BaseColorTexture) && hasAttribute(MaterialAttribute::BaseColorTextureCoordinates)) || - (hasAttribute(MaterialAttribute::DiffuseTexture) && hasAttribute(MaterialAttribute::DiffuseTextureCoordinates)) || - hasAttribute(MaterialAttribute::TextureCoordinates); + return (hasAttribute(MaterialAttribute::BaseColorTexture) && attributeOr(MaterialAttribute::BaseColorTextureCoordinates, 0u)) || + (hasAttribute(MaterialAttribute::DiffuseTexture) && attributeOr(MaterialAttribute::DiffuseTextureCoordinates, 0u)) || + attributeOr(MaterialAttribute::TextureCoordinates, 0u); } Color4 FlatMaterialData::color() const { diff --git a/src/Magnum/Trade/PbrClearCoatMaterialData.cpp b/src/Magnum/Trade/PbrClearCoatMaterialData.cpp index 796cc048e..e88fd47af 100644 --- a/src/Magnum/Trade/PbrClearCoatMaterialData.cpp +++ b/src/Magnum/Trade/PbrClearCoatMaterialData.cpp @@ -67,11 +67,11 @@ bool PbrClearCoatMaterialData::hasCommonTextureTransformation() const { } bool PbrClearCoatMaterialData::hasTextureCoordinates() const { - return hasAttribute(MaterialAttribute::LayerFactorTextureCoordinates) || - hasAttribute(MaterialAttribute::RoughnessTextureCoordinates) || - hasAttribute(MaterialAttribute::NormalTextureCoordinates) || - hasAttribute(MaterialAttribute::TextureCoordinates) || - hasAttribute(0, MaterialAttribute::TextureCoordinates); + return attributeOr(MaterialAttribute::LayerFactorTextureCoordinates, 0u) || + attributeOr(MaterialAttribute::RoughnessTextureCoordinates, 0u) || + attributeOr(MaterialAttribute::NormalTextureCoordinates, 0u) || + attributeOr(MaterialAttribute::TextureCoordinates, 0u) || + attributeOr(0, MaterialAttribute::TextureCoordinates, 0u); } bool PbrClearCoatMaterialData::hasCommonTextureCoordinates() const { diff --git a/src/Magnum/Trade/PbrClearCoatMaterialData.h b/src/Magnum/Trade/PbrClearCoatMaterialData.h index 6fa9ff71b..b2f1c1a39 100644 --- a/src/Magnum/Trade/PbrClearCoatMaterialData.h +++ b/src/Magnum/Trade/PbrClearCoatMaterialData.h @@ -119,8 +119,9 @@ class MAGNUM_TRADE_EXPORT PbrClearCoatMaterialData: public MaterialLayerData