From 13c8247e67be92f85c07fbb038c64925633f0897 Mon Sep 17 00:00:00 2001 From: "everLEEst(SangHyeon Lee)" Date: Wed, 4 Sep 2024 14:06:13 +0900 Subject: [PATCH] Revert "[Tizen] Revert "Use Texture for not file save case" This reverts commit 573a61405b0e5ca2f1ed7e4f88579c0626c823a2. --- dali/internal/system/common/capture-impl.cpp | 26 ++++++++++++++++++++++---- dali/internal/system/common/capture-impl.h | 5 +++++ dali/public-api/capture/capture.cpp | 5 +++++ dali/public-api/capture/capture.h | 8 ++++++++ 4 files changed, 40 insertions(+), 4 deletions(-) diff --git a/dali/internal/system/common/capture-impl.cpp b/dali/internal/system/common/capture-impl.cpp index 4e02417..1777550 100644 --- a/dali/internal/system/common/capture-impl.cpp +++ b/dali/internal/system/common/capture-impl.cpp @@ -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; } diff --git a/dali/internal/system/common/capture-impl.h b/dali/internal/system/common/capture-impl.h index 67159f2..6d42f8f 100644 --- a/dali/internal/system/common/capture-impl.h +++ b/dali/internal/system/common/capture-impl.h @@ -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(); diff --git a/dali/public-api/capture/capture.cpp b/dali/public-api/capture/capture.cpp index ce9cd16..4c96a61 100644 --- a/dali/public-api/capture/capture.cpp +++ b/dali/public-api/capture/capture.cpp @@ -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(); diff --git a/dali/public-api/capture/capture.h b/dali/public-api/capture/capture.h index b202576..6f133da 100644 --- a/dali/public-api/capture/capture.h +++ b/dali/public-api/capture/capture.h @@ -21,6 +21,7 @@ // EXTERNAL HEADERS #include #include +#include #include // 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 -- 2.7.4