Asynchronous loading of Scene3D resources
[platform/core/uifw/dali-toolkit.git] / dali-scene3d / public-api / loader / material-definition.h
index 119f7c4..00c2a83 100644 (file)
@@ -24,6 +24,7 @@
 #include "dali-scene3d/public-api/loader/utils.h"
 
 // EXTERNAL INCLUDES
+#include <dali/public-api/images/image-operations.h>
 #include <cmath>
 #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);
 };
 
 /**
@@ -221,7 +225,8 @@ struct DALI_SCENE3D_API MaterialDefinition
   }
 
 public: // DATA
-  uint32_t mFlags = 0x0;
+  std::shared_ptr<RawData> mRawData;
+  uint32_t                 mFlags = 0x0;
 
   Index   mEnvironmentIdx      = 0;
   Vector4 mColor               = Color::WHITE;
@@ -241,6 +246,9 @@ public: // DATA
   bool mNeedNormalTexture            = true;
   bool mDoubleSided                  = false;
 
+  bool mIsOpaque = true;
+  bool mIsMask   = false;
+
   std::vector<TextureStage> mTextureStages;
 };