(Automated Tests) Clean up linking
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / test-gl-abstraction.cpp
1 /*
2  * Copyright (c) 2019 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 #include "test-gl-abstraction.h"
19
20 namespace Dali
21 {
22
23 TestGlAbstraction::TestGlAbstraction()
24 {
25   Initialize();
26 }
27
28 TestGlAbstraction::~TestGlAbstraction() {}
29
30 void TestGlAbstraction::Initialize()
31 {
32   mCurrentProgram = 0;
33   mCompileStatus = GL_TRUE;
34   mLinkStatus = GL_TRUE;
35   mNumberOfActiveUniforms = 0;
36   mGetAttribLocationResult = 0;
37   mGetErrorResult = 0;
38   mGetStringResult = NULL;
39   mIsBufferResult = 0;
40   mIsEnabledResult = 0;
41   mIsFramebufferResult = 0;
42   mIsProgramResult = 0;
43   mIsRenderbufferResult = 0;
44   mIsShaderResult = 0;
45   mIsTextureResult = 0;
46   mActiveTextureUnit = 0;
47   mCheckFramebufferStatusResult = 0;
48   mFramebufferStatus = 0;
49   mFramebufferColorAttached = 0;
50   mFramebufferDepthAttached = 0;
51   mFramebufferStencilAttached = 0;
52   mNumBinaryFormats = 0;
53   mBinaryFormats = 0;
54   mProgramBinaryLength = 0;
55
56   mVertexAttribArrayChanged = false;
57   mGetProgramBinaryCalled = false;
58
59   mLastShaderCompiled = 0;
60   mLastClearBitMask = 0;
61   mClearCount = 0;
62
63   mLastBlendEquationRgb   = 0;
64   mLastBlendEquationAlpha = 0;
65   mLastBlendFuncSrcRgb    = 0;
66   mLastBlendFuncDstRgb    = 0;
67   mLastBlendFuncSrcAlpha  = 0;
68   mLastBlendFuncDstAlpha  = 0;
69   mLastAutoTextureIdUsed = 0;
70   mNumGeneratedTextures = 0;
71   mLastShaderIdUsed = 0;
72   mLastProgramIdUsed = 0;
73   mLastUniformIdUsed = 0;
74   mLastDepthMask = false;
75
76   mUniforms.clear();
77   mProgramUniforms1i.clear();
78   mProgramUniforms1f.clear();
79   mProgramUniforms2f.clear();
80   mProgramUniforms3f.clear();
81   mProgramUniforms4f.clear();
82
83   mCullFaceTrace.Reset();
84   mDepthFunctionTrace.Reset();
85   mEnableDisableTrace.Reset();
86   mShaderTrace.Reset();
87   mStencilFunctionTrace.Reset();
88   mScissorTrace.Reset();
89   mTextureTrace.Reset();
90   mTexParamaterTrace.Reset();
91   mDrawTrace.Reset();
92
93   for( unsigned int i=0; i<MAX_ATTRIBUTE_CACHE_SIZE; ++i )
94   {
95     mVertexAttribArrayState[i] = false;
96   }
97 }
98
99 void TestGlAbstraction::PreRender()
100 {
101 }
102
103 void TestGlAbstraction::PostRender()
104 {
105 }
106
107 bool TestGlAbstraction::IsSurfacelessContextSupported() const
108 {
109   return true;
110 }
111
112 bool TestGlAbstraction::TextureRequiresConverting( const GLenum imageGlFormat, const GLenum textureGlFormat, const bool isSubImage ) const
113 {
114   return ( ( imageGlFormat == GL_RGB ) && ( textureGlFormat == GL_RGBA ) );
115 }
116
117 } // Namespace dali
118
119 bool BlendEnabled(const Dali::TraceCallStack& callStack)
120 {
121   std::stringstream out;
122   out << GL_BLEND;
123   bool blendEnabled = callStack.FindMethodAndParams( "Enable", out.str() );
124   return blendEnabled;
125 }
126
127 bool BlendDisabled(const Dali::TraceCallStack& callStack)
128 {
129   std::stringstream out;
130   out << GL_BLEND;
131   bool blendEnabled = callStack.FindMethodAndParams( "Disable", out.str() );
132   return blendEnabled;
133 }