X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Fdali-toolkit-test-utils%2Ftest-native-image.h;h=fb9451c091025768cc61bc6c134f58a4d062d544;hp=a664107909780008af0864423336e20331eea3c5;hb=bdbfbd90942156c5ecd2f2f1b3bfb3a8254e1cc3;hpb=07a73413cfefa18105d94f952efb62884b8ed9a1 diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-native-image.h b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-native-image.h index a664107..fb9451c 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-native-image.h +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-native-image.h @@ -1,8 +1,8 @@ -#ifndef __TEST_NATIVE_IMAGE_H__ -#define __TEST_NATIVE_IMAGE_H__ +#ifndef TEST_NATIVE_IMAGE_H +#define TEST_NATIVE_IMAGE_H /* - * Copyright (c) 2018 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. @@ -20,40 +20,105 @@ // 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 { 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 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 void SetGlExtensionCreateResult(bool result) + { + createResult = result; + } + inline virtual bool CreateResource() + { + ++mExtensionCreateCalls; + mCallStack.PushCall("CreateResource", ""); + return createResult; + }; + inline virtual void DestroyResource() + { + ++mExtensionDestroyCalls; + mCallStack.PushCall("DestroyResource", ""); + }; + inline virtual GLenum TargetTexture() + { + ++mTargetTextureCalls; + mCallStack.PushCall("TargetTexture", ""); + return mTargetTextureError--; + }; + inline virtual void PrepareTexture() + { + mCallStack.PushCall("PrepareTexture", ""); + }; + inline virtual uint32_t GetWidth() const + { + mCallStack.PushCall("GetWidth", ""); + return mWidth; + }; + inline virtual uint32_t GetHeight() const + { + mCallStack.PushCall("GetHeight", ""); + return mHeight; + }; + inline virtual bool RequiresBlending() const + { + mCallStack.PushCall("RequiresBlending", ""); + return true; + }; + inline virtual int GetTextureTarget() const + { + mCallStack.PushCall("GetTextureTarget", ""); + return GL_TEXTURE_EXTERNAL_OES; + }; + inline virtual const char* GetCustomFragmentPrefix() const + { + mCallStack.PushCall("GetCustomFragmentPrefix", ""); + return "#extension GL_OES_EGL_image_external:require\n"; + }; + inline virtual bool ApplyNativeFragmentShader(std::string& shader) + { + mCallStack.PushCall("ApplyNativeFragmentShader", ""); + shader = "#extension GL_OES_EGL_image_external:require\n" + shader; + + //Get custom sampler type name + const char* customSamplerTypename = GetCustomSamplerTypename(); + if(customSamplerTypename) + { + size_t samplerPosition = shader.find("sampler2D"); + if(samplerPosition != std::string::npos) + { + shader.replace(samplerPosition, strlen("sampler2D"), customSamplerTypename); + } + } + return true; + }; + inline const char* GetCustomSamplerTypename() const override + { + mCallStack.PushCall("GetCustomSamplerTypename", ""); + 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); @@ -61,43 +126,16 @@ private: uint32_t mWidth; uint32_t mHeight; -public: - int32_t mExtensionCreateCalls; - int32_t mExtensionDestroyCalls; - int32_t mTargetTextureCalls; - - 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; + int32_t mExtensionCreateCalls; + int32_t mExtensionDestroyCalls; + int32_t mTargetTextureCalls; + uint32_t mTargetTextureError{0u}; + bool createResult; + mutable TraceCallStack mCallStack; }; -} // Dali +} // namespace Dali -#endif +#endif // TEST_NATIVE_IMAGE_H