X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-scene3d%2Fpublic-api%2Floader%2Fmaterial-definition.h;h=43dabc1621629b2a7de0e61b6698e176ad200034;hb=4dec2735f5e5b5ed74f70a402c9a008d6c21af05;hp=08b59c60a5c1a8b69465e08d7c9d63fd1d12605f;hpb=35ea9a04faa2f2fdca4d8d4a378ac4524896e15b;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 08b59c6..43dabc1 100644 --- a/dali-scene3d/public-api/loader/material-definition.h +++ b/dali-scene3d/public-api/loader/material-definition.h @@ -1,7 +1,7 @@ #ifndef DALI_SCENE3D_LOADER_MATERIAL_DEFINITION_H #define DALI_SCENE3D_LOADER_MATERIAL_DEFINITION_H /* - * Copyright (c) 2022 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,23 +17,20 @@ * */ -// INTERNAL INCLUDES -#include "dali-scene3d/public-api/api.h" -#include "dali-scene3d/public-api/loader/environment-definition.h" -#include "dali-scene3d/public-api/loader/index.h" -#include "dali-scene3d/public-api/loader/utils.h" - // EXTERNAL INCLUDES +#include #include +#include #include -#include "dali/public-api/common/vector-wrapper.h" -#include "dali/public-api/math/vector4.h" -namespace Dali -{ -namespace Scene3D -{ -namespace Loader +// INTERNAL INCLUDES +#include +#include +#include +#include +#include + +namespace Dali::Scene3D::Loader { /** * @brief Helper enum for encoding and decoding sampler states. @@ -114,12 +111,16 @@ struct DALI_SCENE3D_API SamplerFlags */ struct DALI_SCENE3D_API TextureDefinition { - std::string mImageUri; - SamplerFlags::Type mSamplerFlags; - ImageDimensions mMinImageDimensions; - SamplingMode::Type mSamplingMode; + std::string mImageUri; // When the texture is loaded from embedded resources, this URI is used as a data stream. + std::string mDirectoryPath; + SamplerFlags::Type mSamplerFlags; + ImageDimensions mMinImageDimensions; + SamplingMode::Type mSamplingMode; + std::vector mTextureBuffer; 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); + TextureDefinition(std::vector&& textureBuffer, SamplerFlags::Type samplerFlags = SamplerFlags::DEFAULT, ImageDimensions minImageDimensions = ImageDimensions(), SamplingMode::Type samplingMode = SamplingMode::BOX_THEN_LINEAR); }; /** @@ -188,7 +189,7 @@ struct DALI_SCENE3D_API MaterialDefinition * which is then returned. * @note This may be called from any thread. */ - RawData LoadRaw(const std::string& imagesPath) const; + RawData LoadRaw(const std::string& imagesPath); /** * @brief Creates Textures from the pixel data in @a raw, gets the @@ -224,7 +225,8 @@ struct DALI_SCENE3D_API MaterialDefinition } public: // DATA - uint32_t mFlags = 0x0; + std::shared_ptr mRawData; + uint32_t mFlags = 0x0; Index mEnvironmentIdx = 0; Vector4 mColor = Color::WHITE; @@ -234,6 +236,7 @@ public: // DATA float mNormalScale = 1.f; float mOcclusionStrength = 1.f; Vector3 mEmissiveFactor = Vector3::ZERO; + float mIor = -1.0f; float mDielectricSpecular = 0.04f; float mSpecularFactor = 1.0f; Vector3 mSpecularColorFactor = Vector3::ONE; @@ -244,11 +247,16 @@ public: // DATA bool mNeedNormalTexture = true; bool mDoubleSided = false; + Scene3D::Material::AlphaModeType mAlphaModeType = Scene3D::Material::AlphaModeType::OPAQUE; + bool mIsOpaque = true; + bool mIsMask = false; + + bool mShadowAvailable = false; + std::vector mTextureStages; + Material mMaterial; }; -} // namespace Loader -} // namespace Scene3D -} // namespace Dali +} // namespace Dali::Scene3D::Loader #endif //DALI_SCENE3D_LOADER_MATERIAL_DEFINITION_H