Updated test files to match dali-core
[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) 2021 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     mCallStack.PushCall("CreateResource", "");
44     return createResult;
45   };
46   inline virtual void DestroyResource()
47   {
48     ++mExtensionDestroyCalls;
49     mCallStack.PushCall("DestroyResource", "");
50   };
51   inline virtual GLenum TargetTexture()
52   {
53     ++mTargetTextureCalls;
54     mCallStack.PushCall("TargetTexture", "");
55     return mTargetTextureError--;
56   };
57   inline virtual void PrepareTexture()
58   {
59     mCallStack.PushCall("PrepareTexture", "");
60   };
61   inline virtual uint32_t GetWidth() const
62   {
63     mCallStack.PushCall("GetWidth", "");
64     return mWidth;
65   };
66   inline virtual uint32_t GetHeight() const
67   {
68     mCallStack.PushCall("GetHeight", "");
69     return mHeight;
70   };
71   inline virtual bool RequiresBlending() const
72   {
73     mCallStack.PushCall("RequiresBlending", "");
74     return true;
75   };
76   inline virtual int GetTextureTarget() const
77   {
78     mCallStack.PushCall("GetTextureTarget", "");
79     return GL_TEXTURE_EXTERNAL_OES;
80   };
81   inline virtual const char* GetCustomFragmentPrefix() const
82   {
83     mCallStack.PushCall("GetCustomFragmentPrefix", "");
84     return "#extension GL_OES_EGL_image_external:require\n";
85   };
86   inline const char* GetCustomSamplerTypename() const override
87   {
88     mCallStack.PushCall("GetCustomSamplerTypename", "");
89     return "samplerExternalOES";
90   };
91
92   inline Any GetNativeImageHandle() const override
93   {
94     return nullptr;
95   };
96   inline bool SourceChanged() const override
97   {
98     return false;
99   };
100
101   inline virtual Dali::NativeImageInterface::Extension* GetExtension()
102   {
103     return nullptr;
104   }
105
106 private:
107   TestNativeImage(uint32_t width, uint32_t height);
108   virtual ~TestNativeImage();
109
110   uint32_t mWidth;
111   uint32_t mHeight;
112
113 public:
114   int32_t                mExtensionCreateCalls;
115   int32_t                mExtensionDestroyCalls;
116   int32_t                mTargetTextureCalls;
117   uint32_t               mTargetTextureError{0u};
118   bool                   createResult;
119   mutable TraceCallStack mCallStack{"NativeImage:"};
120 };
121
122 } // namespace Dali
123
124 #endif // TEST_NATIVE_IMAGE_H