[Tizen] Revert "[Tizen] Fix RenderTarget and RenderPass doesn't destroy issue"
[platform/core/uifw/dali-adaptor.git] / dali / internal / graphics / gles-impl / gles-graphics-texture.h
index 19754ad..2ae566f 100644 (file)
 
 // INTERNAL INCLUDES
 #include "gles-graphics-resource.h"
+#include "gles-graphics-types.h"
 
 namespace Dali::Graphics::GLES
 {
 using TextureResource = Resource<Graphics::Texture, Graphics::TextureCreateInfo>;
+class Sampler;
 
 /**
  * The Texture class represents a GPU texture object. It's slightly
@@ -65,6 +67,15 @@ public:
   }
 
   /**
+   * @brief Returns the type of the bound Gl texture
+   * @return The type of the bound Gl texture
+   */
+  [[nodiscard]] BoundTextureType GetTextureTypeId() const
+  {
+    return mCreateInfo.nativeImagePtr ? BoundTextureType::TEXTURE_EXTERNAL_OES : static_cast<BoundTextureType>(mCreateInfo.textureType);
+  }
+
+  /**
    * @brief Called when initializing the resource
    *
    * @return True on success
@@ -131,12 +142,30 @@ public:
 
   Format ValidateFormat(Format sourceFormat);
 
+  bool IsCompressed()
+  {
+    return mIsCompressed;
+  }
+
+  void SetSamplerParameter(uint32_t param, uint32_t& cacheValue, uint32_t value) const;
+
 private:
+  mutable struct SamplerStateCache
+  {
+    uint32_t minFilter{0};
+    uint32_t magFilter{0};
+    uint32_t wrapS{0};
+    uint32_t wrapT{0};
+    uint32_t wrapR{0};
+    uint32_t maxLevel{0};
+  } mDefaultSamplerState;
+
   std::vector<char> mStagingBuffer;
   uint32_t          mTextureId{0u};
   GLenum            mGlTarget{0u};
   uint32_t          mMaxMipMapLevel{0u};
   void*             mGLOwnerContext{nullptr};
+  bool              mIsCompressed{false};
 };
 
 } // namespace Dali::Graphics::GLES