X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fimaging%2Ftizen%2Fnative-image-source-impl-tizen.h;h=35299ba62b891ba0652ba96d82796a1c81d13f5c;hb=2eb17a0add04d011b5cac0d6513ee41c7fc89005;hp=fdeca56bb428a190442a0f3ef3668ece8dc1278b;hpb=5039d69c76712fc03debdd2a0196302772ff9baf;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/imaging/tizen/native-image-source-impl-tizen.h b/dali/internal/imaging/tizen/native-image-source-impl-tizen.h old mode 100755 new mode 100644 index fdeca56..35299ba --- a/dali/internal/imaging/tizen/native-image-source-impl-tizen.h +++ b/dali/internal/imaging/tizen/native-image-source-impl-tizen.h @@ -2,7 +2,7 @@ #define DALI_INTERNAL_NATIVE_IMAGE_SOURCE_IMPL_TIZEN_H /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,34 +19,30 @@ */ // EXTERNAL INCLUDES -#include -#include #include #include +#include +#include // INTERNAL INCLUDES -#include #include +#include namespace Dali { - namespace Internal { - namespace Adaptor { - class EglGraphics; class EglImageExtensions; /** * Dali internal NativeImageSource. */ -class NativeImageSourceTizen: public Internal::Adaptor::NativeImageSource, public NativeImageInterface::Extension +class NativeImageSourceTizen : public Internal::Adaptor::NativeImageSource { public: - /** * Create a new NativeImageSource internally. * Depending on hardware the width and height may have to be a power of two. @@ -56,10 +52,10 @@ public: * @param[in] nativeImageSource contains tbm_surface_h or is empty * @return A smart-pointer to a newly allocated image. */ - static NativeImageSourceTizen* New(uint32_t width, - uint32_t height, - Dali::NativeImageSource::ColorDepth depth, - Any nativeImageSource); + static NativeImageSourceTizen* New(uint32_t width, + uint32_t height, + Dali::NativeImageSource::ColorDepth depth, + Any nativeImageSource); /** * @copydoc Dali::NativeImageSource::GetNativeImageSource() @@ -69,22 +65,17 @@ public: /** * @copydoc Dali::NativeImageSource::GetPixels() */ - bool GetPixels(std::vector &pixbuf, uint32_t &width, uint32_t &height, Pixel::Format& pixelFormat ) const override; - - /** - * @copydoc Dali::NativeImageSource::EncodeToFile(const std::string& ) - */ - bool EncodeToFile(const std::string& filename) const override; + bool GetPixels(std::vector& pixbuf, uint32_t& width, uint32_t& height, Pixel::Format& pixelFormat) const override; /** * @copydoc Dali::NativeImageSource::SetSource( Any source ) */ - void SetSource( Any source ) override; + void SetSource(Any source) override; /** * @copydoc Dali::NativeImageSource::IsColorDepthSupported( ColorDepth colorDepth ) */ - bool IsColorDepthSupported( Dali::NativeImageSource::ColorDepth colorDepth ) override; + bool IsColorDepthSupported(Dali::NativeImageSource::ColorDepth colorDepth) override; /** * destructor @@ -92,14 +83,14 @@ public: ~NativeImageSourceTizen() override; /** - * @copydoc Dali::NativeImageSource::GlExtensionCreate() + * @copydoc Dali::NativeImageSource::CreateResource() */ - bool GlExtensionCreate() override; + bool CreateResource() override; /** - * @copydoc Dali::NativeImageSource::GlExtensionDestroy() + * @copydoc Dali::NativeImageSource::DestroyResource() */ - void GlExtensionDestroy() override; + void DestroyResource() override; /** * @copydoc Dali::NativeImageSource::TargetTexture() @@ -136,30 +127,54 @@ public: } /** + * @copydoc Dali::NativeImageInterface::ApplyNativeFragmentShader(std::string& shader) + */ + bool ApplyNativeFragmentShader(std::string& shader) override; + + /** + * @copydoc Dali::NativeImageInterface::GetCustomSamplerTypename() + */ + const char* GetCustomSamplerTypename() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetTextureTarget() + */ + int GetTextureTarget() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetNativeImageHandle() + */ + Any GetNativeImageHandle() const override; + + /** + * @copydoc Dali::NativeImageInterface::SourceChanged() + */ + bool SourceChanged() const override; + + /** * @copydoc Dali::NativeImageInterface::GetExtension() */ NativeImageInterface::Extension* GetNativeImageInterfaceExtension() override { - return this; + return nullptr; } /** - * @copydoc Dali::NativeImageInterface::Extension::GetCustomFragmentPreFix() + * @copydoc Dali::Internal::Adaptor::NativeImageSource::AcquireBuffer() */ - const char* GetCustomFragmentPreFix() override; + uint8_t* AcquireBuffer(uint16_t& width, uint16_t& height, uint16_t& stride) override; /** - * @copydoc Dali::NativeImageInterface::Extension::GetCustomSamplerTypename() + * @copydoc Dali::Internal::Adaptor::NativeImageSource::ReleaseBuffer() */ - const char* GetCustomSamplerTypename() override; + bool ReleaseBuffer() override; /** - * @copydoc Dali::NativeImageInterface::Extension::GetEglImageTextureTarget() + * @copydoc Dali::NativeImageSource::SetResourceDestructionCallback() */ - int GetEglImageTextureTarget() override; + void SetResourceDestructionCallback(EventThreadCallback* callback) override; private: - /** * Private constructor; @see NativeImageSource::New() * @param[in] width The width of the image. @@ -167,31 +182,34 @@ private: * @param[in] colour depth of the image. * @param[in] nativeImageSource contains either: pixmap of type X11 Pixmap , a Ecore_X_Pixmap or is empty */ - NativeImageSourceTizen(uint32_t width, - unsigned int height, - Dali::NativeImageSource::ColorDepth depth, - Any nativeImageSource); + NativeImageSourceTizen(uint32_t width, + unsigned int height, + Dali::NativeImageSource::ColorDepth depth, + Any nativeImageSource); void Initialize(); - tbm_surface_h GetSurfaceFromAny( Any source ) const; + tbm_surface_h GetSurfaceFromAny(Any source) const; - bool CheckBlending( tbm_format format ); + bool CheckBlending(tbm_format format); -private: + void DestroySurface(); - uint32_t mWidth; ///< image width - uint32_t mHeight; ///< image height - bool mOwnTbmSurface; ///< Whether we created pixmap or not - tbm_surface_h mTbmSurface; - tbm_format mTbmFormat; - bool mBlendingRequired; ///< Whether blending is required - Dali::NativeImageSource::ColorDepth mColorDepth; ///< color depth of image - void* mEglImageKHR; ///< From EGL extension - EglGraphics* mEglGraphics; ///< EGL Graphics - EglImageExtensions* mEglImageExtensions; ///< The EGL Image Extensions - bool mSetSource; - mutable Dali::Mutex mMutex; +private: + uint32_t mWidth; ///< image width + uint32_t mHeight; ///< image height + bool mOwnTbmSurface; ///< Whether we created pixmap or not + tbm_surface_h mTbmSurface; + tbm_format mTbmFormat; + bool mBlendingRequired; ///< Whether blending is required + Dali::NativeImageSource::ColorDepth mColorDepth; ///< color depth of image + void* mEglImageKHR; ///< From EGL extension + EglGraphics* mEglGraphics; ///< EGL Graphics + EglImageExtensions* mEglImageExtensions; ///< The EGL Image Extensions + bool mSetSource; + mutable Dali::Mutex mMutex; + bool mIsBufferAcquired; ///< Whether AcquireBuffer is called + std::unique_ptr mResourceDestructionCallback; ///< The Resource Destruction Callback }; } // namespace Adaptor