X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-scene3d%2Fpublic-api%2Floader%2Fmaterial-definition.h;h=00c2a836fc44e89ef9bcf8dd5b3bea321d2afdd0;hb=d3ab7a4cc307562e687de2b2751f2f0a687c2835;hp=e45b69b95b0fb59664cab152071a82203ec575c8;hpb=d5540a3ae34396882044417e296ddce650a1c6f5;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-scene3d/public-api/loader/material-definition.h b/dali-scene3d/public-api/loader/material-definition.h index e45b69b..00c2a83 100644 --- a/dali-scene3d/public-api/loader/material-definition.h +++ b/dali-scene3d/public-api/loader/material-definition.h @@ -24,6 +24,7 @@ #include "dali-scene3d/public-api/loader/utils.h" // EXTERNAL INCLUDES +#include #include #include "dali/public-api/common/vector-wrapper.h" #include "dali/public-api/math/vector4.h" @@ -115,8 +116,11 @@ struct DALI_SCENE3D_API TextureDefinition { std::string mImageUri; SamplerFlags::Type mSamplerFlags; + ImageDimensions mMinImageDimensions; + SamplingMode::Type mSamplingMode; - TextureDefinition(const std::string& imageUri = "", SamplerFlags::Type samplerFlags = SamplerFlags::DEFAULT); + TextureDefinition(const std::string& imageUri = "", SamplerFlags::Type samplerFlags = SamplerFlags::DEFAULT, ImageDimensions minImageDimensions = ImageDimensions(), SamplingMode::Type samplingMode = SamplingMode::BOX_THEN_LINEAR); + TextureDefinition(std::string&& imageUri, SamplerFlags::Type samplerFlags = SamplerFlags::DEFAULT, ImageDimensions minImageDimensions = ImageDimensions(), SamplingMode::Type samplingMode = SamplingMode::BOX_THEN_LINEAR); }; /** @@ -130,13 +134,15 @@ struct DALI_SCENE3D_API MaterialDefinition enum Flags : uint32_t { // Texture semantics - ALBEDO = NthBit(0), - METALLIC = NthBit(1), - ROUGHNESS = NthBit(2), - NORMAL = NthBit(3), - EMISSIVE = NthBit(4), // TODO: support - OCCLUSION = NthBit(5), // TODO: support - SUBSURFACE = NthBit(6), // Note: dli-only + ALBEDO = NthBit(0), + METALLIC = NthBit(1), + ROUGHNESS = NthBit(2), + NORMAL = NthBit(3), + EMISSIVE = NthBit(4), + OCCLUSION = NthBit(5), + SPECULAR = NthBit(6), + SPECULAR_COLOR = NthBit(7), + SUBSURFACE = NthBit(8), // Note: dli-only // Other binary options TRANSPARENCY = NthBit(20), @@ -219,16 +225,20 @@ struct DALI_SCENE3D_API MaterialDefinition } public: // DATA - uint32_t mFlags = 0x0; - - Index mEnvironmentIdx = 0; - Vector4 mColor = Color::WHITE; - float mMetallic = 1.f; - float mRoughness = 1.f; - Vector4 mBaseColorFactor = Vector4::ONE; - float mNormalScale = 1.f; - float mOcclusionStrength = 1.f; - Vector3 mEmissiveFactor = Vector3::ZERO; + std::shared_ptr mRawData; + uint32_t mFlags = 0x0; + + Index mEnvironmentIdx = 0; + Vector4 mColor = Color::WHITE; + float mMetallic = 1.f; + float mRoughness = 1.f; + Vector4 mBaseColorFactor = Vector4::ONE; + float mNormalScale = 1.f; + float mOcclusionStrength = 1.f; + Vector3 mEmissiveFactor = Vector3::ZERO; + float mDielectricSpecular = 0.04f; + float mSpecularFactor = 1.0f; + Vector3 mSpecularColorFactor = Vector3::ONE; // For the glTF, each of albedo, metallicRoughness, normal textures are not essential. bool mNeedAlbedoTexture = true; @@ -236,6 +246,9 @@ public: // DATA bool mNeedNormalTexture = true; bool mDoubleSided = false; + bool mIsOpaque = true; + bool mIsMask = false; + std::vector mTextureStages; };