From 735fc58ccb902aad7a97cd818ab7c6a78d960afe Mon Sep 17 00:00:00 2001 From: seungho Date: Thu, 22 Apr 2021 16:09:03 +0900 Subject: [PATCH] [Tizen] Add IsUploaded devel api in Texture Change-Id: I100a3ff6a7f8361ad5c857ee18c89ea5544a4fdf Signed-off-by: seungho --- dali/devel-api/rendering/texture-devel.cpp | 6 ++++++ dali/devel-api/rendering/texture-devel.h | 2 ++ dali/internal/event/rendering/texture-impl.cpp | 9 +++++++++ dali/internal/event/rendering/texture-impl.h | 5 +++++ dali/internal/render/renderers/render-texture.cpp | 7 +++++-- dali/internal/render/renderers/render-texture.h | 6 ++++++ 6 files changed, 33 insertions(+), 2 deletions(-) diff --git a/dali/devel-api/rendering/texture-devel.cpp b/dali/devel-api/rendering/texture-devel.cpp index d56cae6..5897d41 100644 --- a/dali/devel-api/rendering/texture-devel.cpp +++ b/dali/devel-api/rendering/texture-devel.cpp @@ -33,5 +33,11 @@ bool ApplyNativeFragmentShader(Dali::Texture texture, std::string& shader) return impl.ApplyNativeFragmentShader(shader); } +bool IsUploaded(Dali::Texture texture) +{ + auto& impl = GetImplementation(texture); + return impl.IsUploaded(); +} + } // namespace DevelTexture } // namespace Dali diff --git a/dali/devel-api/rendering/texture-devel.h b/dali/devel-api/rendering/texture-devel.h index 0204a41..7214e0b 100644 --- a/dali/devel-api/rendering/texture-devel.h +++ b/dali/devel-api/rendering/texture-devel.h @@ -44,6 +44,8 @@ bool DALI_CORE_API IsNative(Dali::Texture texture); */ bool DALI_CORE_API ApplyNativeFragmentShader(Dali::Texture texture, std::string& shader); +bool DALI_CORE_API IsUploaded(Dali::Texture texture); + } // namespace DevelTexture } // namespace Dali diff --git a/dali/internal/event/rendering/texture-impl.cpp b/dali/internal/event/rendering/texture-impl.cpp index 54d611f..926cf99 100644 --- a/dali/internal/event/rendering/texture-impl.cpp +++ b/dali/internal/event/rendering/texture-impl.cpp @@ -244,5 +244,14 @@ bool Texture::ApplyNativeFragmentShader(std::string& shader) return modified; } +bool Texture::IsUploaded() +{ + if(EventThreadServices::IsCoreRunning() && mRenderObject) + { + return mRenderObject->IsUploaded(); + } + return false; +} + } // namespace Internal } // namespace Dali diff --git a/dali/internal/event/rendering/texture-impl.h b/dali/internal/event/rendering/texture-impl.h index 57b098d..ef56213 100644 --- a/dali/internal/event/rendering/texture-impl.h +++ b/dali/internal/event/rendering/texture-impl.h @@ -127,6 +127,11 @@ public: */ bool ApplyNativeFragmentShader(std::string& shader); + /** + * @brief Check whether texture is uploaded or not. + */ + bool IsUploaded(); + private: // implementation /** * Constructor diff --git a/dali/internal/render/renderers/render-texture.cpp b/dali/internal/render/renderers/render-texture.cpp index f77ddb6..9452866 100644 --- a/dali/internal/render/renderers/render-texture.cpp +++ b/dali/internal/render/renderers/render-texture.cpp @@ -672,7 +672,8 @@ Texture::Texture( Type type, Pixel::Format format, ImageDimensions size ) mMaxMipMapLevel( 0 ), mType( type ), mHasAlpha( HasAlpha( format ) ), - mIsCompressed( IsCompressedFormat( format ) ) + mIsCompressed( IsCompressedFormat( format ) ), + mIsUploaded( false ) { PixelFormatToGl( format, mGlFormat, @@ -693,7 +694,8 @@ Texture::Texture( NativeImageInterfacePtr nativeImageInterface ) mMaxMipMapLevel( 0 ), mType( TextureType::TEXTURE_2D ), mHasAlpha( nativeImageInterface->RequiresBlending() ), - mIsCompressed( false ) + mIsCompressed( false ), + mIsUploaded( false ) { } @@ -870,6 +872,7 @@ void Texture::Upload( Context& context, PixelDataPtr pixelData, const Internal:: glFormat, static_cast( pixelData->GetBufferSize() ), buffer ); } } + mIsUploaded = true; } bool Texture::Bind( Context& context, uint32_t textureUnit, Render::Sampler* sampler ) diff --git a/dali/internal/render/renderers/render-texture.h b/dali/internal/render/renderers/render-texture.h index 0dbfd4a..35421eb 100644 --- a/dali/internal/render/renderers/render-texture.h +++ b/dali/internal/render/renderers/render-texture.h @@ -145,6 +145,11 @@ public: return mNativeImage; } + bool IsUploaded() const + { + return mIsUploaded; + } + private: /** @@ -167,6 +172,7 @@ private: Type mType:3; ///< Type of the texture bool mHasAlpha : 1; ///< Whether the format has an alpha channel bool mIsCompressed : 1; ///< Whether the format is compressed + bool mIsUploaded : 1; }; -- 2.7.4