Updates for NativeImageInterface
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / test-native-image.h
1 #ifndef TEST_NATIVE_IMAGE_H
2 #define TEST_NATIVE_IMAGE_H
3
4 /*
5  * Copyright (c) 2019 Samsung Electronics Co., Ltd.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20
21 // INTERNAL INCLUDES
22 #include <dali/public-api/images/native-image-interface.h>
23 #include <dali/integration-api/gl-defines.h>
24
25 namespace Dali
26 {
27 class TestNativeImage;
28 typedef IntrusivePtr<TestNativeImage> TestNativeImagePointer;
29
30 class DALI_CORE_API TestNativeImage : public Dali::NativeImageInterface
31 {
32 public:
33   static TestNativeImagePointer New(uint32_t width, uint32_t height);
34
35   inline void SetGlExtensionCreateResult(bool result){ createResult = result;}
36   inline virtual bool CreateResource() { ++mExtensionCreateCalls; return createResult;};
37   inline virtual void DestroyResource() { ++mExtensionDestroyCalls; };
38   inline virtual GLenum TargetTexture() { ++mTargetTextureCalls; return mTargetTextureError;};
39   inline virtual void PrepareTexture() {};
40   inline virtual uint32_t GetWidth() const {return mWidth;};
41   inline virtual uint32_t GetHeight() const {return mHeight;};
42   inline virtual bool RequiresBlending() const {return true;};
43   inline virtual int GetTextureTarget() const {return GL_TEXTURE_EXTERNAL_OES;};
44   inline virtual const char* GetCustomFragmentPrefix() const {return "#extension GL_OES_EGL_image_external:require\n";};
45   inline const char* GetCustomSamplerTypename() const override { return "samplerExternalOES"; };
46
47   inline Any GetNativeImageHandle() const override { return nullptr; };
48   inline bool SourceChanged() const override { return false; };
49
50   inline virtual Dali::NativeImageInterface::Extension* GetExtension() {return nullptr;}
51
52 private:
53   TestNativeImage(uint32_t width, uint32_t height);
54   virtual ~TestNativeImage();
55
56   uint32_t mWidth;
57   uint32_t mHeight;
58 public:
59   int32_t mExtensionCreateCalls;
60   int32_t mExtensionDestroyCalls;
61   int32_t mTargetTextureCalls;
62   uint32_t mTargetTextureError=0u;
63   bool createResult;
64 };
65
66
67
68 } // Dali
69
70 #endif // TEST_NATIVE_IMAGE_H