Revert "[Tizen] Revert "Use Texture for not file save case"
authoreverLEEst(SangHyeon Lee) <sh10233.lee@samsung.com>
Wed, 4 Sep 2024 05:06:13 +0000 (14:06 +0900)
committereverLEEst(SangHyeon Lee) <sh10233.lee@samsung.com>
Wed, 4 Sep 2024 05:06:46 +0000 (14:06 +0900)
This reverts commit 573a61405b0e5ca2f1ed7e4f88579c0626c823a2.

dali/internal/system/common/capture-impl.cpp
dali/internal/system/common/capture-impl.h
dali/public-api/capture/capture.cpp
dali/public-api/capture/capture.h

index 4e02417..1777550 100644 (file)
@@ -43,7 +43,6 @@ namespace
 static constexpr uint32_t ORDER_INDEX_CAPTURE_RENDER_TASK              = 1000;
 constexpr int32_t         SHADER_VERSION_NATIVE_IMAGE_SOURCE_AVAILABLE = 300;
 constexpr uint32_t        TIME_OUT_DURATION                            = 1000;
-constexpr int32_t  GL_VERSION_NATIVE_IMAGE_SOURCE_AVAILABLE = 30;
 } // namespace
 
 Capture::Capture()
@@ -142,6 +141,11 @@ Dali::NativeImageSourcePtr Capture::GetNativeImageSource() const
   return mNativeImageSourcePtr;
 }
 
+Dali::Texture Capture::GetTexture() const
+{
+  return mTexture;
+}
+
 Dali::Devel::PixelBuffer Capture::GetCapturedBuffer()
 {
   if(!mPixelBuffer || (mPixelBuffer && !mPixelBuffer.GetBuffer()))
@@ -166,10 +170,17 @@ Dali::Capture::CaptureFinishedSignalType& Capture::FinishedSignal()
 
 void Capture::CreateTexture(const Vector2& size)
 {
-  if(!mNativeImageSourcePtr)
+  if(mFileSave)
+  {
+    if(!mNativeImageSourcePtr)
+    {
+      mNativeImageSourcePtr = Dali::NativeImageSource::New(size.width, size.height, Dali::NativeImageSource::COLOR_DEPTH_DEFAULT);
+      mTexture              = Dali::Texture::New(*mNativeImageSourcePtr);
+    }
+  }
+  else
   {
-    mNativeImageSourcePtr = Dali::NativeImageSource::New(size.width, size.height, Dali::NativeImageSource::COLOR_DEPTH_DEFAULT);
-    mTexture              = Dali::Texture::New(*mNativeImageSourcePtr);
+    mTexture = Dali::Texture::New(TextureType::TEXTURE_2D, Pixel::RGBA8888, unsigned(size.width), unsigned(size.height));
   }
 }
 
@@ -306,6 +317,12 @@ bool Capture::IsRenderTaskSetup()
 
 void Capture::SetupResources(const Dali::Vector2& position, const Dali::Vector2& size, const Dali::Vector4& clearColor, Dali::Actor source)
 {
+  if(mFileSave && Dali::Shader::GetShaderLanguageVersion() < SHADER_VERSION_NATIVE_IMAGE_SOURCE_AVAILABLE)
+  {
+    DALI_LOG_ERROR("GLES is 2.0, we can't use native image source \n");
+    mFileSave = false;
+  }
+
   CreateTexture(size);
 
   CreateFrameBuffer();
@@ -371,6 +388,7 @@ bool Capture::SaveFile()
   {
     return Dali::DevelNativeImageSource::EncodeToFile(*mNativeImageSourcePtr, mPath, mQuality);
   }
+
   return false;
 }
 
index 67159f2..6d42f8f 100644 (file)
@@ -103,6 +103,11 @@ public:
   Dali::Devel::PixelBuffer GetCapturedBuffer();
 
   /**
+   * @copydoc Dali::Capture::GetTexture
+   */
+  Dali::Texture GetTexture() const;
+
+  /**
    * @copydoc Dali::Capture::FinishedSignal
    */
   Dali::Capture::CaptureFinishedSignalType& FinishedSignal();
index ce9cd16..4c96a61 100644 (file)
@@ -98,6 +98,11 @@ Dali::NativeImageSourcePtr Capture::GetNativeImageSource() const
   return GetImpl(*this).GetNativeImageSource();
 }
 
+Dali::Texture Capture::GetTexture() const
+{
+  return GetImpl(*this).GetTexture();
+}
+
 Capture::CaptureFinishedSignalType& Capture::FinishedSignal()
 {
   return GetImpl(*this).FinishedSignal();
index b202576..6f133da 100644 (file)
@@ -21,6 +21,7 @@
 // EXTERNAL HEADERS
 #include <dali/public-api/actors/actor.h>
 #include <dali/public-api/actors/camera-actor.h>
+#include <dali/public-api/rendering/texture.h>
 #include <dali/public-api/signals/dali-signal.h>
 
 // INTERNAL INCLUDES
@@ -274,6 +275,13 @@ public:
   Dali::NativeImageSourcePtr GetNativeImageSource() const;
 
   /**
+   * @brief Get Texture of captured image.
+   *
+   * @return Texture Captured result
+   */
+  Dali::Texture GetTexture() const;
+
+  /**
    * @brief Get finished signal.
    *
    * @SINCE_1_3_4