Fix the build fail of toolkit-test-util
[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) 2020 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
24 #include <dali/integration-api/gl-defines.h>
25
26 namespace Dali
27 {
28 class TestNativeImage;
29 typedef IntrusivePtr<TestNativeImage> TestNativeImagePointer;
30
31 class DALI_CORE_API TestNativeImage : public Dali::NativeImageInterface
32 {
33 public:
34   static TestNativeImagePointer New(uint32_t width, uint32_t height);
35
36   inline void SetGlExtensionCreateResult(bool result)
37   {
38     createResult = result;
39   }
40   inline virtual bool CreateResource()
41   {
42     ++mExtensionCreateCalls;
43     return createResult;
44   };
45   inline virtual void DestroyResource()
46   {
47     ++mExtensionDestroyCalls;
48   };
49   inline virtual GLenum TargetTexture()
50   {
51     ++mTargetTextureCalls;
52     return mTargetTextureError;
53   };
54   inline virtual void     PrepareTexture(){};
55   inline virtual uint32_t GetWidth() const
56   {
57     return mWidth;
58   };
59   inline virtual uint32_t GetHeight() const
60   {
61     return mHeight;
62   };
63   inline virtual bool RequiresBlending() const
64   {
65     return true;
66   };
67   inline virtual int GetTextureTarget() const
68   {
69     return GL_TEXTURE_EXTERNAL_OES;
70   };
71   inline virtual const char* GetCustomFragmentPrefix() const
72   {
73     return "#extension GL_OES_EGL_image_external:require\n";
74   };
75   inline const char* GetCustomSamplerTypename() const override
76   {
77     return "samplerExternalOES";
78   };
79
80   inline Any GetNativeImageHandle() const override
81   {
82     return nullptr;
83   };
84   inline bool SourceChanged() const override
85   {
86     return false;
87   };
88
89   inline virtual Dali::NativeImageInterface::Extension* GetExtension()
90   {
91     return nullptr;
92   }
93
94 private:
95   TestNativeImage(uint32_t width, uint32_t height);
96   virtual ~TestNativeImage();
97
98   uint32_t mWidth;
99   uint32_t mHeight;
100
101 public:
102   int32_t  mExtensionCreateCalls;
103   int32_t  mExtensionDestroyCalls;
104   int32_t  mTargetTextureCalls;
105   uint32_t mTargetTextureError = 0u;
106   bool     createResult;
107 };
108
109 } // namespace Dali
110
111 #endif // TEST_NATIVE_IMAGE_H