From 867351a542ed43d0621911f6dcb95ae5cdd1775e Mon Sep 17 00:00:00 2001 From: David Steele Date: Fri, 17 Jul 2020 17:53:05 +0100 Subject: [PATCH] Updates for NativeImageInterface Change-Id: Ic3876022a30503861172cff8c496b23eb0035d9c --- .../dali-test-suite-utils/test-native-image.cpp | 16 ------ .../dali-test-suite-utils/test-native-image.h | 57 +++++----------------- .../native-image-source-queue.cpp | 33 +++++++++++-- .../adaptor-framework/native-image-source-queue.h | 44 +++++++++++++---- .../android/native-image-source-impl-android.cpp | 30 ++++++++++-- .../android/native-image-source-impl-android.h | 39 +++++++++++++-- .../native-image-source-queue-impl-android.cpp | 22 ++++++--- .../native-image-source-queue-impl-android.h | 35 ++++++++----- .../imaging/common/native-bitmap-buffer-impl.cpp | 29 ++++++++++- .../imaging/common/native-bitmap-buffer-impl.h | 44 +++++++++++++---- .../imaging/common/native-image-source-impl.h | 33 +++++++++++-- .../common/native-image-source-queue-impl.h | 33 +++++++++++-- .../tizen/native-image-source-impl-tizen.cpp | 22 ++++++--- .../imaging/tizen/native-image-source-impl-tizen.h | 43 +++++++++------- .../tizen/native-image-source-queue-impl-tizen.cpp | 22 +++++++-- .../tizen/native-image-source-queue-impl-tizen.h | 43 +++++++++------- .../ubuntu-x11/native-image-source-impl-x.cpp | 31 ++++++++++-- .../ubuntu-x11/native-image-source-impl-x.h | 34 +++++++++++-- .../native-image-source-queue-impl-x.cpp | 20 ++++++-- .../ubuntu-x11/native-image-source-queue-impl-x.h | 43 +++++++++------- .../windows/native-image-source-impl-win.cpp | 31 ++++++++++-- .../imaging/windows/native-image-source-impl-win.h | 33 +++++++++++-- .../adaptor-framework/native-image-source.cpp | 33 +++++++++++-- .../adaptor-framework/native-image-source.h | 43 ++++++++++++---- 24 files changed, 600 insertions(+), 213 deletions(-) diff --git a/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-native-image.cpp b/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-native-image.cpp index ee6c17a..5fdc5c3 100644 --- a/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-native-image.cpp +++ b/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-native-image.cpp @@ -31,26 +31,10 @@ TestNativeImagePointer TestNativeImage::New(uint32_t width, uint32_t height) TestNativeImage::TestNativeImage(uint32_t width, uint32_t height) : mWidth(width), mHeight(height), mExtensionCreateCalls(0), mExtensionDestroyCalls(0), mTargetTextureCalls(0),createResult(true) { - mExtension = new TestNativeImageExtension(); } TestNativeImage::~TestNativeImage() { } - -TestNativeImageNoExtPointer TestNativeImageNoExt::New(uint32_t width, uint32_t height) -{ - return new TestNativeImageNoExt(width, height); -} - -TestNativeImageNoExt::TestNativeImageNoExt(uint32_t width, uint32_t height) -: mWidth(width), mHeight(height), mExtensionCreateCalls(0), mExtensionDestroyCalls(0), mTargetTextureCalls(0),createResult(true) -{ -} - -TestNativeImageNoExt::~TestNativeImageNoExt() -{ -} - } // namespace dali diff --git a/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-native-image.h b/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-native-image.h index 0c215b7..89d5095 100644 --- a/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-native-image.h +++ b/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-native-image.h @@ -20,25 +20,12 @@ // INTERNAL INCLUDES #include -#include #include namespace Dali { class TestNativeImage; -class TestNativeImageNoExt; typedef IntrusivePtr TestNativeImagePointer; -typedef IntrusivePtr TestNativeImageNoExtPointer; - -class DALI_CORE_API TestNativeImageExtension: public Dali::NativeImageInterface::Extension -{ -public: - inline const char* GetCustomFragmentPreFix(){return "#extension GL_OES_EGL_image_external:require\n";} - inline const char* GetCustomSamplerTypename(){return "samplerExternalOES";} - - inline int32_t GetEglImageTextureTarget(){return GL_TEXTURE_EXTERNAL_OES;} - -}; class DALI_CORE_API TestNativeImage : public Dali::NativeImageInterface { @@ -46,14 +33,21 @@ public: static TestNativeImagePointer New(uint32_t width, uint32_t height); inline void SetGlExtensionCreateResult(bool result){ createResult = result;} - inline virtual bool GlExtensionCreate() { ++mExtensionCreateCalls; return createResult;}; - inline virtual void GlExtensionDestroy() { ++mExtensionDestroyCalls; }; - inline virtual GLenum TargetTexture() { ++mTargetTextureCalls; return 0;}; + inline virtual bool CreateResource() { ++mExtensionCreateCalls; return createResult;}; + inline virtual void DestroyResource() { ++mExtensionDestroyCalls; }; + inline virtual GLenum TargetTexture() { ++mTargetTextureCalls; return mTargetTextureError;}; inline virtual void PrepareTexture() {}; inline virtual uint32_t GetWidth() const {return mWidth;}; inline virtual uint32_t GetHeight() const {return mHeight;}; inline virtual bool RequiresBlending() const {return true;}; - inline virtual Dali::NativeImageInterface::Extension* GetExtension() {return mExtension;} + inline virtual int GetTextureTarget() const {return GL_TEXTURE_EXTERNAL_OES;}; + inline virtual const char* GetCustomFragmentPrefix() const {return "#extension GL_OES_EGL_image_external:require\n";}; + inline const char* GetCustomSamplerTypename() const override { return "samplerExternalOES"; }; + + inline Any GetNativeImageHandle() const override { return nullptr; }; + inline bool SourceChanged() const override { return false; }; + + inline virtual Dali::NativeImageInterface::Extension* GetExtension() {return nullptr;} private: TestNativeImage(uint32_t width, uint32_t height); @@ -65,38 +59,11 @@ public: int32_t mExtensionCreateCalls; int32_t mExtensionDestroyCalls; int32_t mTargetTextureCalls; - + uint32_t mTargetTextureError=0u; bool createResult; - TestNativeImageExtension* mExtension; }; -class DALI_CORE_API TestNativeImageNoExt : public Dali::NativeImageInterface -{ -public: - static TestNativeImageNoExtPointer New(uint32_t width, uint32_t height); - - inline void SetGlExtensionCreateResult(bool result){ createResult = result;} - inline virtual bool GlExtensionCreate() { ++mExtensionCreateCalls; return createResult;}; - inline virtual void GlExtensionDestroy() { ++mExtensionDestroyCalls; }; - inline virtual GLenum TargetTexture() { ++mTargetTextureCalls; return 1;}; - inline virtual void PrepareTexture() {}; - inline virtual uint32_t GetWidth() const {return mWidth;}; - inline virtual uint32_t GetHeight() const {return mHeight;}; - inline virtual bool RequiresBlending() const {return true;}; - -private: - TestNativeImageNoExt(uint32_t width, uint32_t height); - virtual ~TestNativeImageNoExt(); - - uint32_t mWidth; - uint32_t mHeight; -public: - int32_t mExtensionCreateCalls; - int32_t mExtensionDestroyCalls; - int32_t mTargetTextureCalls; - bool createResult; -}; } // Dali diff --git a/dali/devel-api/adaptor-framework/native-image-source-queue.cpp b/dali/devel-api/adaptor-framework/native-image-source-queue.cpp index acb10d5..4041573 100755 --- a/dali/devel-api/adaptor-framework/native-image-source-queue.cpp +++ b/dali/devel-api/adaptor-framework/native-image-source-queue.cpp @@ -61,14 +61,14 @@ void NativeImageSourceQueue::IgnoreSourceImage() mImpl->IgnoreSourceImage(); } -bool NativeImageSourceQueue::GlExtensionCreate() +bool NativeImageSourceQueue::CreateResource() { - return mImpl->GlExtensionCreate(); + return mImpl->CreateResource(); } -void NativeImageSourceQueue::GlExtensionDestroy() +void NativeImageSourceQueue::DestroyResource() { - mImpl->GlExtensionDestroy(); + mImpl->DestroyResource(); } uint32_t NativeImageSourceQueue::TargetTexture() @@ -96,6 +96,31 @@ bool NativeImageSourceQueue::RequiresBlending() const return mImpl->RequiresBlending(); } +int NativeImageSourceQueue::GetTextureTarget() const +{ + return mImpl->GetTextureTarget(); +} + +const char* NativeImageSourceQueue::GetCustomFragmentPrefix() const +{ + return mImpl->GetCustomFragmentPrefix(); +} + +const char* NativeImageSourceQueue::GetCustomSamplerTypename() const +{ + return mImpl->GetCustomSamplerTypename(); +} + +Any NativeImageSourceQueue::GetNativeImageHandle() const +{ + return mImpl->GetNativeImageHandle(); +} + +bool NativeImageSourceQueue::SourceChanged() const +{ + return mImpl->SourceChanged(); +} + NativeImageInterface::Extension* NativeImageSourceQueue::GetExtension() { return mImpl->GetNativeImageInterfaceExtension(); diff --git a/dali/devel-api/adaptor-framework/native-image-source-queue.h b/dali/devel-api/adaptor-framework/native-image-source-queue.h index 0e02903..0848079 100755 --- a/dali/devel-api/adaptor-framework/native-image-source-queue.h +++ b/dali/devel-api/adaptor-framework/native-image-source-queue.h @@ -111,42 +111,68 @@ public: */ void IgnoreSourceImage(); + /** + * @copydoc Dali::NativeImageInterface::GetTextureTarget() + */ + int GetTextureTarget() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetCustomFragmentPrefix() + */ + const char* GetCustomFragmentPrefix() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetCustomSamplerTypename() + */ + const char* GetCustomSamplerTypename() const override; + + private: // native image /** - * @copydoc Dali::NativeImageInterface::GlExtensionCreate() + * @copydoc Dali::NativeImageInterface::CreateResource() */ - virtual bool GlExtensionCreate(); + bool CreateResource() override; /** - * @copydoc Dali::NativeImageInterface::GlExtensionDestroy() + * @copydoc Dali::NativeImageInterface::DestroyResource() */ - virtual void GlExtensionDestroy(); + void DestroyResource() override; /** * @copydoc Dali::NativeImageInterface::TargetTexture() */ - virtual uint32_t TargetTexture(); + uint32_t TargetTexture() override; /** * @copydoc Dali::NativeImageInterface::PrepareTexture() */ - virtual void PrepareTexture(); + void PrepareTexture() override; /** * @copydoc Dali::NativeImageInterface::GetWidth() */ - virtual uint32_t GetWidth() const; + uint32_t GetWidth() const override; /** * @copydoc Dali::NativeImageInterface::GetHeight() */ - virtual uint32_t GetHeight() const; + uint32_t GetHeight() const override; /** * @copydoc Dali::NativeImageInterface::RequiresBlending() */ - virtual bool RequiresBlending() const; + bool RequiresBlending() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetNativeImageHandle() + */ + Any GetNativeImageHandle() const override; + + /** + * @copydoc Dali::NativeImageInterface::SourceChanged() + */ + bool SourceChanged() const override; /** * @copydoc Dali::NativeImageInterface::GetExtension() diff --git a/dali/internal/imaging/android/native-image-source-impl-android.cpp b/dali/internal/imaging/android/native-image-source-impl-android.cpp index 19312b5..2a64bfb 100755 --- a/dali/internal/imaging/android/native-image-source-impl-android.cpp +++ b/dali/internal/imaging/android/native-image-source-impl-android.cpp @@ -34,6 +34,14 @@ #include #include + +namespace +{ +const char* FRAGMENT_PREFIX = "#extension GL_OES_EGL_image_external:require\n"; +const char* SAMPLER_TYPE = "samplerExternalOES"; +} + + namespace Dali { @@ -217,12 +225,12 @@ bool NativeImageSourceAndroid::IsColorDepthSupported( Dali::NativeImageSource::C return true; } -bool NativeImageSourceAndroid::GlExtensionCreate() +bool NativeImageSourceAndroid::CreateResource() { // if the image existed previously delete it. if( mEglImageKHR != NULL ) { - GlExtensionDestroy(); + DestroyResource(); } DALI_ASSERT_ALWAYS( mPixmap ); @@ -261,7 +269,7 @@ bool NativeImageSourceAndroid::GlExtensionCreate() return mEglImageKHR != NULL; } -void NativeImageSourceAndroid::GlExtensionDestroy() +void NativeImageSourceAndroid::DestroyResource() { mEglImageExtensions->DestroyImageKHR( mEglImageKHR ); @@ -279,6 +287,22 @@ void NativeImageSourceAndroid::PrepareTexture() { } +int NativeImageSourceAndroid::GetTextureTarget() const +{ + return GL_TEXTURE_2D; +} + +const char* NativeImageSourceAndroid::GetCustomFragmentPrefix() const +{ + return nullptr; +} + +const char* NativeImageSourceAndroid::GetCustomSamplerTypename() const +{ + return nullptr; +} + + void* NativeImageSourceAndroid::GetPixmapFromAny(Any pixmap) const { if( pixmap.Empty() ) diff --git a/dali/internal/imaging/android/native-image-source-impl-android.h b/dali/internal/imaging/android/native-image-source-impl-android.h index 3b68f1c..bd3e101 100755 --- a/dali/internal/imaging/android/native-image-source-impl-android.h +++ b/dali/internal/imaging/android/native-image-source-impl-android.h @@ -84,14 +84,14 @@ public: ~NativeImageSourceAndroid() 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() @@ -128,6 +128,37 @@ public: } /** + * @copydoc Dali::NativeImageSource::GetTargetTexture() + */ + int GetTextureTarget() const override; + + /** + * @copydoc Dali::NativeImageSource::GetCustomFragmentPrefix() + */ + const char* GetCustomFragmentPrefix() const override; + + /** + * @copydoc Dali::NativeImageSource::GetCustomSamplerTypename() + */ + const char* GetCustomSamplerTypename() const override; + + /** + * @copydoc Dali::NativeImageSource::GetNativeImageHandle() + */ + Any GetNativeImageHandle() const override + { + return GetNativeImageSource(); + } + + /** + * @copydoc Dali::NativeImageSource::SourceChanged() + */ + bool SourceChanged() const override + { + return false; + } + + /** * @copydoc Dali::NativeImageInterface::GetExtension() */ NativeImageInterface::Extension* GetNativeImageInterfaceExtension() override diff --git a/dali/internal/imaging/android/native-image-source-queue-impl-android.cpp b/dali/internal/imaging/android/native-image-source-queue-impl-android.cpp index 45905bd..db9ba4f 100644 --- a/dali/internal/imaging/android/native-image-source-queue-impl-android.cpp +++ b/dali/internal/imaging/android/native-image-source-queue-impl-android.cpp @@ -76,12 +76,12 @@ void NativeImageSourceQueueAndroid::IgnoreSourceImage() { } -bool NativeImageSourceQueueAndroid::GlExtensionCreate() +bool NativeImageSourceQueueAndroid::CreateResource() { return true; } -void NativeImageSourceQueueAndroid::GlExtensionDestroy() +void NativeImageSourceQueueAndroid::DestroyResource() { } @@ -94,19 +94,29 @@ void NativeImageSourceQueueAndroid::PrepareTexture() { } -const char* NativeImageSourceQueueAndroid::GetCustomFragmentPreFix() +const char* NativeImageSourceQueueAndroid::GetCustomFragmentPrefix() const { return FRAGMENT_PREFIX; } -const char* NativeImageSourceQueueAndroid::GetCustomSamplerTypename() +const char* NativeImageSourceQueueAndroid::GetCustomSamplerTypename() const { return SAMPLER_TYPE; } -int NativeImageSourceQueueAndroid::GetEglImageTextureTarget() +int NativeImageSourceQueueAndroid::GetTextureTarget() const { - return 0; + return GL_TEXTURE_2D; +} + +Any NativeImageSourceQueueAndroid::GetNativeImageHandle() const +{ + return nullptr; +} + +bool NativeImageSourceQueueAndroid::SourceChanged() const +{ + return false; } } // namespace Adaptor diff --git a/dali/internal/imaging/android/native-image-source-queue-impl-android.h b/dali/internal/imaging/android/native-image-source-queue-impl-android.h index be5b8b6..d0570d1 100644 --- a/dali/internal/imaging/android/native-image-source-queue-impl-android.h +++ b/dali/internal/imaging/android/native-image-source-queue-impl-android.h @@ -19,7 +19,6 @@ */ // EXTERNAL INCLUDES -#include // INTERNAL INCLUDES #include @@ -39,7 +38,7 @@ class EglImageExtensions; /** * Dali internal NativeImageSourceQueue. */ -class NativeImageSourceQueueAndroid: public Internal::Adaptor::NativeImageSourceQueue, public NativeImageInterface::Extension +class NativeImageSourceQueueAndroid: public Internal::Adaptor::NativeImageSourceQueue { public: @@ -75,14 +74,14 @@ public: ~NativeImageSourceQueueAndroid() override; /** - * @copydoc Dali::NativeImageInterface::GlExtensionCreate() + * @copydoc Dali::NativeImageInterface::CreateResource() */ - bool GlExtensionCreate() override; + bool CreateResource() override; /** - * @copydoc Dali::NativeImageInterface::GlExtensionDestroy() + * @copydoc Dali::NativeImageInterface::DestroyResource() */ - void GlExtensionDestroy() override; + void DestroyResource() override; /** * @copydoc Dali::NativeImageInterface::TargetTexture() @@ -123,23 +122,33 @@ public: */ NativeImageInterface::Extension* GetNativeImageInterfaceExtension() override { - return this; + return nullptr; } /** - * @copydoc Dali::NativeImageInterface::Extension::GetCustomFragmentPreFix() + * @copydoc Dali::NativeImageInterface::GetCustomFragmentPrefix() */ - const char* GetCustomFragmentPreFix() override; + const char* GetCustomFragmentPrefix() const override; /** - * @copydoc Dali::NativeImageInterface::Extension::GetCustomSamplerTypename() + * @copydoc Dali::NativeImageInterface::GetCustomSamplerTypename() */ - const char* GetCustomSamplerTypename() override; + const char* GetCustomSamplerTypename() const override; /** - * @copydoc Dali::NativeImageInterface::Extension::GetEglImageTextureTarget() + * @copydoc Dali::NativeImageInterface::GetTextureTarget() */ - int GetEglImageTextureTarget() override; + int GetTextureTarget() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetNativeImageHandle() + */ + Any GetNativeImageHandle() const override; + + /** + * @copydoc Dali::NativeImageInterface::SourceChanged() + */ + bool SourceChanged() const override; private: diff --git a/dali/internal/imaging/common/native-bitmap-buffer-impl.cpp b/dali/internal/imaging/common/native-bitmap-buffer-impl.cpp index 1741803..3aa9442 100644 --- a/dali/internal/imaging/common/native-bitmap-buffer-impl.cpp +++ b/dali/internal/imaging/common/native-bitmap-buffer-impl.cpp @@ -79,12 +79,12 @@ void NativeBitmapBuffer::Write( const unsigned char *src, size_t size ) mBuffer->Write( src, size ); // Write will cause LocklessBuffer to switch to the other buffer } -bool NativeBitmapBuffer::GlExtensionCreate() +bool NativeBitmapBuffer::CreateResource() { return true; } -void NativeBitmapBuffer::GlExtensionDestroy() +void NativeBitmapBuffer::DestroyResource() { } @@ -108,6 +108,31 @@ bool NativeBitmapBuffer::RequiresBlending() const return Pixel::HasAlpha( mPixelFormat ); } +int NativeBitmapBuffer::GetTextureTarget() const +{ + return 0; +} + +const char* NativeBitmapBuffer::GetCustomFragmentPrefix() const +{ + return nullptr; +} + +const char* NativeBitmapBuffer::GetCustomSamplerTypename() const +{ + return nullptr; +} + +Any NativeBitmapBuffer::GetNativeImageHandle() const +{ + return nullptr; +} + +bool NativeBitmapBuffer::SourceChanged() const +{ + return false; +} + } // namespace Adaptor } // namespace Internal diff --git a/dali/internal/imaging/common/native-bitmap-buffer-impl.h b/dali/internal/imaging/common/native-bitmap-buffer-impl.h index f1ff5fc..6a4fc43 100644 --- a/dali/internal/imaging/common/native-bitmap-buffer-impl.h +++ b/dali/internal/imaging/common/native-bitmap-buffer-impl.h @@ -72,39 +72,65 @@ public: public: /** - * @copydoc Dali::NativeImageInterface::GlExtensionCreate() + * @copydoc Dali::NativeImageInterface::CreateResource() */ - virtual bool GlExtensionCreate(); + bool CreateResource() override; /** - * @copydoc Dali::NativeImageInterface::GlExtensionDestroy() + * @copydoc Dali::NativeImageInterface::DestroyResource() */ - virtual void GlExtensionDestroy(); + void DestroyResource() override; /** * @copydoc Dali::NativeImageInterface::TargetTexture() */ - virtual unsigned int TargetTexture(); + unsigned int TargetTexture() override; /** * @copydoc Dali::NativeImageInterface::PrepareTexture() */ - virtual void PrepareTexture(); + void PrepareTexture() override; /** * @copydoc Dali::NativeImageInterface::GetWidth() */ - virtual unsigned int GetWidth() const; + unsigned int GetWidth() const override; /** * @copydoc Dali::NativeImageInterface::GetHeight() */ - virtual unsigned int GetHeight() const; + unsigned int GetHeight() const override; /** * @copydoc Dali::NativeImageInterface::RequiresBlending() */ - virtual bool RequiresBlending() const; + bool RequiresBlending() const override; + + /** + * @copydoc Dali::NativeImageInterface::RequiresBlending() + */ + int GetTextureTarget() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetCustomFragmentPrefix() + */ + const char* GetCustomFragmentPrefix() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetCustomSamplerTypename() + */ + const char* GetCustomSamplerTypename() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetNativeImageHandle() + */ + Any GetNativeImageHandle() const override; + + /** + * @copydoc Dali::NativeImageInterface::SourceChanged() + */ + bool SourceChanged() const override; + private: NativeBitmapBuffer( const NativeBitmapBuffer& ); ///< not defined diff --git a/dali/internal/imaging/common/native-image-source-impl.h b/dali/internal/imaging/common/native-image-source-impl.h index 0833f51..d0a8010 100755 --- a/dali/internal/imaging/common/native-image-source-impl.h +++ b/dali/internal/imaging/common/native-image-source-impl.h @@ -79,14 +79,14 @@ public: virtual ~NativeImageSource() = default; /** - * @copydoc Dali::NativeImageSource::GlExtensionCreate() + * @copydoc Dali::NativeImageSource::CreateResource() */ - virtual bool GlExtensionCreate() = 0; + virtual bool CreateResource() = 0; /** - * @copydoc Dali::NativeImageSource::GlExtensionDestroy() + * @copydoc Dali::NativeImageSource::DestroyResource() */ - virtual void GlExtensionDestroy() = 0; + virtual void DestroyResource() = 0; /** * @copydoc Dali::NativeImageSource::TargetTexture() @@ -114,6 +114,31 @@ public: virtual bool RequiresBlending() const = 0; /** + * @copydoc Dali::NativeImageSource::GetTextureTarget() + */ + virtual int GetTextureTarget() const = 0; + + /** + * @copydoc Dali::NativeImageSource::GetCustomFragmentPrefix() + */ + virtual const char* GetCustomFragmentPrefix() const = 0; + + /** + * @copydoc Dali::NativeImageSource::GetCustomSamplerTypename() + */ + virtual const char* GetCustomSamplerTypename() const = 0; + + /** + * @copydoc Dali::NativeImageSource::GetNativeImageHandle() + */ + virtual Any GetNativeImageHandle() const = 0; + + /** + * @copydoc Dali::NativeImageSource::SourceChanged() + */ + virtual bool SourceChanged() const = 0; + + /** * @copydoc Dali::NativeImageInterface::GetExtension() */ virtual NativeImageInterface::Extension* GetNativeImageInterfaceExtension() = 0; diff --git a/dali/internal/imaging/common/native-image-source-queue-impl.h b/dali/internal/imaging/common/native-image-source-queue-impl.h index eeb87f2..e7638c5 100755 --- a/dali/internal/imaging/common/native-image-source-queue-impl.h +++ b/dali/internal/imaging/common/native-image-source-queue-impl.h @@ -63,14 +63,14 @@ public: virtual ~NativeImageSourceQueue() = default; /** - * @copydoc Dali::NativeImageInterface::GlExtensionCreate() + * @copydoc Dali::NativeImageInterface::CreateResource() */ - virtual bool GlExtensionCreate() = 0; + virtual bool CreateResource() = 0; /** - * @copydoc Dali::NativeImageInterface::GlExtensionDestroy() + * @copydoc Dali::NativeImageInterface::DestroyResource() */ - virtual void GlExtensionDestroy() = 0; + virtual void DestroyResource() = 0; /** * @copydoc Dali::NativeImageInterface::TargetTexture() @@ -98,6 +98,31 @@ public: virtual bool RequiresBlending() const = 0; /** + * @copydoc Dali::NativeImageInterface::GetTextureTarget() + */ + virtual int GetTextureTarget() const = 0; + + /** + * @copydoc Dali::NativeImageInterface::GetCustomFragmentPrefix() + */ + virtual const char* GetCustomFragmentPrefix() const = 0; + + /** + * @copydoc Dali::NativeImageInterface::GetCustomSamplerTypename() + */ + virtual const char* GetCustomSamplerTypename() const = 0; + + /** + * @copydoc Dali::NativeImageInterface::GetNativeImageHandle() + */ + virtual Any GetNativeImageHandle() const = 0; + + /** + * @copydoc Dali::NativeImageInterface::SourceChanged() + */ + virtual bool SourceChanged() const = 0; + + /** * @copydoc Dali::NativeImageInterface::GetExtension() */ virtual NativeImageInterface::Extension* GetNativeImageInterfaceExtension() = 0; diff --git a/dali/internal/imaging/tizen/native-image-source-impl-tizen.cpp b/dali/internal/imaging/tizen/native-image-source-impl-tizen.cpp index 096944c..4c8621d 100755 --- a/dali/internal/imaging/tizen/native-image-source-impl-tizen.cpp +++ b/dali/internal/imaging/tizen/native-image-source-impl-tizen.cpp @@ -400,7 +400,7 @@ bool NativeImageSourceTizen::IsColorDepthSupported( Dali::NativeImageSource::Col return false; } -bool NativeImageSourceTizen::GlExtensionCreate() +bool NativeImageSourceTizen::CreateResource() { // casting from an unsigned int to a void *, which should then be cast back // to an unsigned int in the driver. @@ -418,7 +418,7 @@ bool NativeImageSourceTizen::GlExtensionCreate() return mEglImageKHR != NULL; } -void NativeImageSourceTizen::GlExtensionDestroy() +void NativeImageSourceTizen::DestroyResource() { Dali::Mutex::ScopedLock lock( mMutex ); if( mEglImageKHR ) @@ -443,7 +443,7 @@ void NativeImageSourceTizen::PrepareTexture() { void* eglImage = mEglImageKHR; - if( GlExtensionCreate() ) + if( CreateResource() ) { TargetTexture(); } @@ -454,21 +454,31 @@ void NativeImageSourceTizen::PrepareTexture() } } -const char* NativeImageSourceTizen::GetCustomFragmentPreFix() +const char* NativeImageSourceTizen::GetCustomFragmentPrefix() const { return FRAGMENT_PREFIX; } -const char* NativeImageSourceTizen::GetCustomSamplerTypename() +const char* NativeImageSourceTizen::GetCustomSamplerTypename() const { return SAMPLER_TYPE; } -int NativeImageSourceTizen::GetEglImageTextureTarget() +int NativeImageSourceTizen::GetTextureTarget() const { return GL_TEXTURE_EXTERNAL_OES; } +Any NativeImageSourceTizen::GetNativeImageHandle() const +{ + return GetNativeImageSource(); +} + +bool NativeImageSourceTizen::SourceChanged() const +{ + return false; +} + bool NativeImageSourceTizen::CheckBlending( tbm_format format ) { if( mTbmFormat != format ) diff --git a/dali/internal/imaging/tizen/native-image-source-impl-tizen.h b/dali/internal/imaging/tizen/native-image-source-impl-tizen.h index 9264a25..502ad7f 100755 --- a/dali/internal/imaging/tizen/native-image-source-impl-tizen.h +++ b/dali/internal/imaging/tizen/native-image-source-impl-tizen.h @@ -20,7 +20,6 @@ // EXTERNAL INCLUDES #include -#include #include #include @@ -43,7 +42,7 @@ class EglImageExtensions; /** * Dali internal NativeImageSource. */ -class NativeImageSourceTizen: public Internal::Adaptor::NativeImageSource, public NativeImageInterface::Extension +class NativeImageSourceTizen: public Internal::Adaptor::NativeImageSource { public: @@ -87,14 +86,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() @@ -131,27 +130,37 @@ public: } /** - * @copydoc Dali::NativeImageInterface::GetExtension() + * @copydoc Dali::NativeImageInterface::GetCustomFragmentPrefix() */ - NativeImageInterface::Extension* GetNativeImageInterfaceExtension() override - { - return this; - } + const char* GetCustomFragmentPrefix() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetCustomSamplerTypename() + */ + const char* GetCustomSamplerTypename() const override; /** - * @copydoc Dali::NativeImageInterface::Extension::GetCustomFragmentPreFix() + * @copydoc Dali::NativeImageInterface::GetTextureTarget() */ - const char* GetCustomFragmentPreFix() override; + int GetTextureTarget() const override; /** - * @copydoc Dali::NativeImageInterface::Extension::GetCustomSamplerTypename() + * @copydoc Dali::NativeImageInterface::GetNativeImageHandle() */ - const char* GetCustomSamplerTypename() override; + Any GetNativeImageHandle() const override; /** - * @copydoc Dali::NativeImageInterface::Extension::GetEglImageTextureTarget() + * @copydoc Dali::NativeImageInterface::SourceChanged() */ - int GetEglImageTextureTarget() override; + bool SourceChanged() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetExtension() + */ + NativeImageInterface::Extension* GetNativeImageInterfaceExtension() override + { + return nullptr; + } /** * @copydoc Dali::Internal::Adaptor::NativeImageSource::AcquireBuffer() diff --git a/dali/internal/imaging/tizen/native-image-source-queue-impl-tizen.cpp b/dali/internal/imaging/tizen/native-image-source-queue-impl-tizen.cpp index f95ee1a..9bf842c 100644 --- a/dali/internal/imaging/tizen/native-image-source-queue-impl-tizen.cpp +++ b/dali/internal/imaging/tizen/native-image-source-queue-impl-tizen.cpp @@ -209,7 +209,7 @@ void NativeImageSourceQueueTizen::IgnoreSourceImage() } } -bool NativeImageSourceQueueTizen::GlExtensionCreate() +bool NativeImageSourceQueueTizen::CreateResource() { mEglImageExtensions = mEglGraphics->GetImageExtensions(); DALI_ASSERT_DEBUG( mEglImageExtensions ); @@ -217,7 +217,7 @@ bool NativeImageSourceQueueTizen::GlExtensionCreate() return true; } -void NativeImageSourceQueueTizen::GlExtensionDestroy() +void NativeImageSourceQueueTizen::DestroyResource() { Dali::Mutex::ScopedLock lock( mMutex ); @@ -279,21 +279,33 @@ void NativeImageSourceQueueTizen::PrepareTexture() } } -const char* NativeImageSourceQueueTizen::GetCustomFragmentPreFix() +const char* NativeImageSourceQueueTizen::GetCustomFragmentPrefix() const { return FRAGMENT_PREFIX; } -const char* NativeImageSourceQueueTizen::GetCustomSamplerTypename() +const char* NativeImageSourceQueueTizen::GetCustomSamplerTypename() const { return SAMPLER_TYPE; } -int NativeImageSourceQueueTizen::GetEglImageTextureTarget() +int NativeImageSourceQueueTizen::GetTextureTarget() const { return GL_TEXTURE_EXTERNAL_OES; } +Any NativeImageSourceQueueTizen::GetNativeImageHandle() const +{ + return nullptr; +} + +bool NativeImageSourceQueueTizen::SourceChanged() const +{ + return false; +} + + + void NativeImageSourceQueueTizen::ResetEglImageList() { if( mConsumeSurface ) diff --git a/dali/internal/imaging/tizen/native-image-source-queue-impl-tizen.h b/dali/internal/imaging/tizen/native-image-source-queue-impl-tizen.h index 7f16352..f82059e 100755 --- a/dali/internal/imaging/tizen/native-image-source-queue-impl-tizen.h +++ b/dali/internal/imaging/tizen/native-image-source-queue-impl-tizen.h @@ -19,7 +19,6 @@ */ // EXTERNAL INCLUDES -#include #include #include #include @@ -43,7 +42,7 @@ class EglImageExtensions; /** * Dali internal NativeImageSource. */ -class NativeImageSourceQueueTizen: public Internal::Adaptor::NativeImageSourceQueue, public NativeImageInterface::Extension +class NativeImageSourceQueueTizen: public Internal::Adaptor::NativeImageSourceQueue { public: @@ -79,14 +78,14 @@ public: ~NativeImageSourceQueueTizen() override; /** - * @copydoc Dali::NativeImageInterface::GlExtensionCreate() + * @copydoc Dali::NativeImageInterface::CreateResource */ - bool GlExtensionCreate() override; + bool CreateResource() override; /** - * @copydoc Dali::NativeImageInterface::GlExtensionDestroy() + * @copydoc Dali::NativeImageInterface::DestroyResource() */ - void GlExtensionDestroy() override; + void DestroyResource() override; /** * @copydoc Dali::NativeImageInterface::TargetTexture() @@ -123,27 +122,37 @@ public: } /** - * @copydoc Dali::NativeImageInterface::GetExtension() + * @copydoc Dali::NativeImageInterface::GetCustomFragmentPrefix() */ - NativeImageInterface::Extension* GetNativeImageInterfaceExtension() override - { - return this; - } + const char* GetCustomFragmentPrefix() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetCustomSamplerTypename() + */ + const char* GetCustomSamplerTypename() const override; /** - * @copydoc Dali::NativeImageInterface::Extension::GetCustomFragmentPreFix() + * @copydoc Dali::NativeImageInterface::GetTextureTarget() */ - const char* GetCustomFragmentPreFix() override; + int GetTextureTarget() const override; /** - * @copydoc Dali::NativeImageInterface::Extension::GetCustomSamplerTypename() + * @copydoc Dali::NativeImageInterface::GetNativeImageHandle() */ - const char* GetCustomSamplerTypename() override; + Any GetNativeImageHandle() const override; /** - * @copydoc Dali::NativeImageInterface::Extension::GetEglImageTextureTarget() + * @copydoc Dali::NativeImageInterface::SourceChanged() */ - int GetEglImageTextureTarget() override; + bool SourceChanged() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetExtension() + */ + NativeImageInterface::Extension* GetNativeImageInterfaceExtension() override + { + return nullptr; + } private: diff --git a/dali/internal/imaging/ubuntu-x11/native-image-source-impl-x.cpp b/dali/internal/imaging/ubuntu-x11/native-image-source-impl-x.cpp index c222d3b..384844d 100755 --- a/dali/internal/imaging/ubuntu-x11/native-image-source-impl-x.cpp +++ b/dali/internal/imaging/ubuntu-x11/native-image-source-impl-x.cpp @@ -282,12 +282,12 @@ bool NativeImageSourceX::IsColorDepthSupported( Dali::NativeImageSource::ColorDe return true; } -bool NativeImageSourceX::GlExtensionCreate() +bool NativeImageSourceX::CreateResource() { // if the image existed previously delete it. if (mEglImageKHR != NULL) { - GlExtensionDestroy(); + DestroyResource(); } // casting from an unsigned int to a void *, which should then be cast back @@ -299,7 +299,7 @@ bool NativeImageSourceX::GlExtensionCreate() return mEglImageKHR != NULL; } -void NativeImageSourceX::GlExtensionDestroy() +void NativeImageSourceX::DestroyResource() { mEglImageExtensions->DestroyImageKHR(mEglImageKHR); @@ -350,6 +350,31 @@ int NativeImageSourceX::GetPixelDepth(Dali::NativeImageSource::ColorDepth depth) } } +int NativeImageSourceX::GetTextureTarget() const +{ + return GL_TEXTURE_2D; +} + +const char* NativeImageSourceX::GetCustomFragmentPrefix() const +{ + return nullptr; +} + +const char* NativeImageSourceX::GetCustomSamplerTypename() const +{ + return nullptr; +} + +Any NativeImageSourceX::GetNativeImageHandle() const +{ + return Any(mPixmap); +} + +bool NativeImageSourceX::SourceChanged() const +{ + return false; +} + Ecore_X_Pixmap NativeImageSourceX::GetPixmapFromAny(Any pixmap) const { if (pixmap.Empty()) diff --git a/dali/internal/imaging/ubuntu-x11/native-image-source-impl-x.h b/dali/internal/imaging/ubuntu-x11/native-image-source-impl-x.h index 1f37eaa..62b7410 100755 --- a/dali/internal/imaging/ubuntu-x11/native-image-source-impl-x.h +++ b/dali/internal/imaging/ubuntu-x11/native-image-source-impl-x.h @@ -84,14 +84,14 @@ public: ~NativeImageSourceX() 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() @@ -128,6 +128,32 @@ public: } /** + * @copydoc Dali::NativeImageSource::GetTextureTarget() + */ + virtual int GetTextureTarget() const; + + /** + * @copydoc Dali::NativeImageSource::GetCustomFragmentPrefix() + */ + virtual const char* GetCustomFragmentPrefix() const; + + /** + * @copydoc Dali::NativeImageSource::GetCustomSamplerTypename() + */ + virtual const char* GetCustomSamplerTypename() const; + + /** + * @copydoc Dali::NativeImageSource::GetNativeImageHandle() + */ + virtual Any GetNativeImageHandle() const; + + /** + * @copydoc Dali::NativeImageSource::SourceChanged() + */ + virtual bool SourceChanged() const; + + + /** * @copydoc Dali::NativeImageInterface::GetExtension() */ NativeImageInterface::Extension* GetNativeImageInterfaceExtension() override diff --git a/dali/internal/imaging/ubuntu-x11/native-image-source-queue-impl-x.cpp b/dali/internal/imaging/ubuntu-x11/native-image-source-queue-impl-x.cpp index 6488487..98edeba 100644 --- a/dali/internal/imaging/ubuntu-x11/native-image-source-queue-impl-x.cpp +++ b/dali/internal/imaging/ubuntu-x11/native-image-source-queue-impl-x.cpp @@ -77,12 +77,12 @@ void NativeImageSourceQueueX::IgnoreSourceImage() { } -bool NativeImageSourceQueueX::GlExtensionCreate() +bool NativeImageSourceQueueX::CreateResource() { return true; } -void NativeImageSourceQueueX::GlExtensionDestroy() +void NativeImageSourceQueueX::DestroyResource() { } @@ -95,21 +95,31 @@ void NativeImageSourceQueueX::PrepareTexture() { } -const char* NativeImageSourceQueueX::GetCustomFragmentPreFix() +const char* NativeImageSourceQueueX::GetCustomFragmentPrefix() const { return FRAGMENT_PREFIX; } -const char* NativeImageSourceQueueX::GetCustomSamplerTypename() +const char* NativeImageSourceQueueX::GetCustomSamplerTypename() const { return SAMPLER_TYPE; } -int NativeImageSourceQueueX::GetEglImageTextureTarget() +int NativeImageSourceQueueX::GetTextureTarget() const { return 0; } +Any NativeImageSourceQueueX::GetNativeImageHandle() const +{ + return nullptr; +} + +bool NativeImageSourceQueueX::SourceChanged() const +{ + return false; +} + } // namespace Adaptor } // namespace internal diff --git a/dali/internal/imaging/ubuntu-x11/native-image-source-queue-impl-x.h b/dali/internal/imaging/ubuntu-x11/native-image-source-queue-impl-x.h index 689f733..7bc1ce2 100755 --- a/dali/internal/imaging/ubuntu-x11/native-image-source-queue-impl-x.h +++ b/dali/internal/imaging/ubuntu-x11/native-image-source-queue-impl-x.h @@ -19,7 +19,6 @@ */ // EXTERNAL INCLUDES -#include // INTERNAL INCLUDES #include @@ -39,7 +38,7 @@ class EglImageExtensions; /** * Dali internal NativeImageSourceQueue. */ -class NativeImageSourceQueueX: public Internal::Adaptor::NativeImageSourceQueue, public NativeImageInterface::Extension +class NativeImageSourceQueueX: public Internal::Adaptor::NativeImageSourceQueue { public: @@ -75,14 +74,14 @@ public: ~NativeImageSourceQueueX() override; /** - * @copydoc Dali::NativeImageInterface::GlExtensionCreate() + * @copydoc Dali::NativeImageInterface::CreateResource() */ - bool GlExtensionCreate() override; + bool CreateResource() override; /** - * @copydoc Dali::NativeImageInterface::GlExtensionDestroy() + * @copydoc Dali::NativeImageInterface::DestroyResource() */ - void GlExtensionDestroy() override; + void DestroyResource() override; /** * @copydoc Dali::NativeImageInterface::TargetTexture() @@ -119,27 +118,37 @@ public: } /** - * @copydoc Dali::NativeImageInterface::GetExtension() + * @copydoc Dali::NativeImageInterface::GetTextureTarget() */ - NativeImageInterface::Extension* GetNativeImageInterfaceExtension() override - { - return this; - } + int GetTextureTarget() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetCustomFragmentPrefix() + */ + const char* GetCustomFragmentPrefix() const override; /** - * @copydoc Dali::NativeImageInterface::Extension::GetCustomFragmentPreFix() + * @copydoc Dali::NativeImageInterface::GetCustomSamplerTypename() */ - const char* GetCustomFragmentPreFix() override; + const char* GetCustomSamplerTypename() const override; /** - * @copydoc Dali::NativeImageInterface::Extension::GetCustomSamplerTypename() + * @copydoc Dali::NativeImageInterface::GetNativeImageHandle() */ - const char* GetCustomSamplerTypename() override; + Any GetNativeImageHandle() const override; /** - * @copydoc Dali::NativeImageInterface::Extension::GetEglImageTextureTarget() + * @copydoc Dali::NativeImageInterface::SourceChanged() */ - int GetEglImageTextureTarget() override; + bool SourceChanged() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetExtension() + */ + NativeImageInterface::Extension* GetNativeImageInterfaceExtension() override + { + return nullptr; + } private: diff --git a/dali/internal/imaging/windows/native-image-source-impl-win.cpp b/dali/internal/imaging/windows/native-image-source-impl-win.cpp index aabcdff..ad4851b 100755 --- a/dali/internal/imaging/windows/native-image-source-impl-win.cpp +++ b/dali/internal/imaging/windows/native-image-source-impl-win.cpp @@ -137,12 +137,12 @@ bool NativeImageSourceWin::IsColorDepthSupported( Dali::NativeImageSource::Color return true; } -bool NativeImageSourceWin::GlExtensionCreate() +bool NativeImageSourceWin::CreateResource() { // if the image existed previously delete it. if (mEglImageKHR != NULL) { - GlExtensionDestroy(); + DestroyResource(); } // casting from an unsigned int to a void *, which should then be cast back @@ -154,7 +154,7 @@ bool NativeImageSourceWin::GlExtensionCreate() return mEglImageKHR != NULL; } -void NativeImageSourceWin::GlExtensionDestroy() +void NativeImageSourceWin::DestroyResource() { mEglImageExtensions->DestroyImageKHR(mEglImageKHR); @@ -230,6 +230,31 @@ void NativeImageSourceWin::GetPixmapDetails() { } +const char* NativeImageSourceWin::GetCustomFragmentPrefix() const +{ + return nullptr; +} + +const char* NativeImageSourceWin::GetCustomSamplerTypename() const +{ + return nullptr; +} + +int NativeImageSourceWin::GetTextureTarget() const +{ + return GL_TEXTURE_2D; +} + +Any NativeImageSourceWin::GetNativeImageHandle() const +{ + return mPixmap; +} + +bool NativeImageSourceWin::SourceChanged() const +{ + return false; +} + uint8_t* NativeImageSourceWin::AcquireBuffer( uint16_t& width, uint16_t& height, uint16_t& stride ) { return NULL; diff --git a/dali/internal/imaging/windows/native-image-source-impl-win.h b/dali/internal/imaging/windows/native-image-source-impl-win.h index bc2a257..d8b13a0 100755 --- a/dali/internal/imaging/windows/native-image-source-impl-win.h +++ b/dali/internal/imaging/windows/native-image-source-impl-win.h @@ -79,14 +79,14 @@ public: ~NativeImageSourceWin() 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() @@ -123,6 +123,31 @@ public: } /** + * @copydoc Dali::NativeImageInterface::GetCustomFragmentPrefix() + */ + const char* GetCustomFragmentPrefix() const 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 diff --git a/dali/public-api/adaptor-framework/native-image-source.cpp b/dali/public-api/adaptor-framework/native-image-source.cpp index 5aa9262..64d80e4 100755 --- a/dali/public-api/adaptor-framework/native-image-source.cpp +++ b/dali/public-api/adaptor-framework/native-image-source.cpp @@ -66,14 +66,14 @@ bool NativeImageSource::IsColorDepthSupported( ColorDepth colorDepth ) return mImpl->IsColorDepthSupported( colorDepth ); } -bool NativeImageSource::GlExtensionCreate() +bool NativeImageSource::CreateResource() { - return mImpl->GlExtensionCreate(); + return mImpl->CreateResource(); } -void NativeImageSource::GlExtensionDestroy() +void NativeImageSource::DestroyResource() { - mImpl->GlExtensionDestroy(); + mImpl->DestroyResource(); } unsigned int NativeImageSource::TargetTexture() @@ -101,6 +101,31 @@ bool NativeImageSource::RequiresBlending() const return mImpl->RequiresBlending(); } +int NativeImageSource::GetTextureTarget() const +{ + return mImpl->GetTextureTarget(); +} + +const char* NativeImageSource::GetCustomFragmentPrefix() const +{ + return mImpl->GetCustomFragmentPrefix(); +} + +const char* NativeImageSource::GetCustomSamplerTypename() const +{ + return mImpl->GetCustomSamplerTypename(); +} + +Any NativeImageSource::GetNativeImageHandle() const +{ + return mImpl->GetNativeImageHandle(); +} + +bool NativeImageSource::SourceChanged() const +{ + return mImpl->SourceChanged(); +} + NativeImageInterface::Extension* NativeImageSource::GetExtension() { return mImpl->GetNativeImageInterfaceExtension(); diff --git a/dali/public-api/adaptor-framework/native-image-source.h b/dali/public-api/adaptor-framework/native-image-source.h index 597f063..3f52899 100755 --- a/dali/public-api/adaptor-framework/native-image-source.h +++ b/dali/public-api/adaptor-framework/native-image-source.h @@ -152,42 +152,67 @@ public: */ bool IsColorDepthSupported( ColorDepth colorDepth ); + /** + * @copydoc Dali::NativeImageInterface::GetTextureTarget() + */ + int GetTextureTarget() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetCustomFragmentPrefix() + */ + const char* GetCustomFragmentPrefix() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetCustomSamplerTypename() + */ + const char* GetCustomSamplerTypename() const override; + private: // native image /** - * @copydoc Dali::NativeImageInterface::GlExtensionCreate() + * @copydoc Dali::NativeImageInterface::CreateResource() */ - virtual bool GlExtensionCreate(); + bool CreateResource() override; /** - * @copydoc Dali::NativeImageInterface::GlExtensionDestroy() + * @copydoc Dali::NativeImageInterface::DestroyResource() */ - virtual void GlExtensionDestroy(); + void DestroyResource() override; /** * @copydoc Dali::NativeImageInterface::TargetTexture() */ - virtual unsigned int TargetTexture(); + unsigned int TargetTexture() override; /** * @copydoc Dali::NativeImageInterface::PrepareTexture() */ - virtual void PrepareTexture(); + void PrepareTexture() override; /** * @copydoc Dali::NativeImageInterface::GetWidth() */ - virtual unsigned int GetWidth() const; + unsigned int GetWidth() const override; /** * @copydoc Dali::NativeImageInterface::GetHeight() */ - virtual unsigned int GetHeight() const; + unsigned int GetHeight() const override; /** * @copydoc Dali::NativeImageInterface::RequiresBlending() */ - virtual bool RequiresBlending() const; + bool RequiresBlending() const override; + + /** + * @copydoc Dali::NativeImageInterface::GetNativeImageHandle() + */ + Any GetNativeImageHandle() const override; + + /** + * @copydoc Dali::NativeImageInterface::SourceChanged() + */ + bool SourceChanged() const override; /** * @copydoc Dali::NativeImageInterface::GetExtension() -- 2.7.4