Remove unused custom shader prefix method
[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 bool ApplyNativeFragmentShader(std::string& shader)
82   {
83     mCallStack.PushCall("ApplyNativeFragmentShader", "");
84     shader = "#extension GL_OES_EGL_image_external:require\n" + shader;
85
86     //Get custom sampler type name
87     const char* customSamplerTypename = GetCustomSamplerTypename();
88     if(customSamplerTypename)
89     {
90       size_t samplerPosition = shader.find("sampler2D");
91       if(samplerPosition != std::string::npos)
92       {
93         shader.replace(samplerPosition, strlen("sampler2D"), customSamplerTypename);
94       }
95     }
96     return true;
97   };
98   inline const char* GetCustomSamplerTypename() const override
99   {
100     mCallStack.PushCall("GetCustomSamplerTypename", "");
101     return "samplerExternalOES";
102   };
103
104   inline Any GetNativeImageHandle() const override
105   {
106     return nullptr;
107   };
108   inline bool SourceChanged() const override
109   {
110     return false;
111   };
112
113   inline virtual Dali::NativeImageInterface::Extension* GetExtension()
114   {
115     return nullptr;
116   }
117
118 private:
119   TestNativeImage(uint32_t width, uint32_t height);
120   virtual ~TestNativeImage();
121
122   uint32_t mWidth;
123   uint32_t mHeight;
124
125 public:
126   int32_t                mExtensionCreateCalls;
127   int32_t                mExtensionDestroyCalls;
128   int32_t                mTargetTextureCalls;
129   uint32_t               mTargetTextureError{0u};
130   bool                   createResult;
131   mutable TraceCallStack mCallStack;
132 };
133
134 } // namespace Dali
135
136 #endif // TEST_NATIVE_IMAGE_H