Blend Equation Advanced Supporting
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / test-gl-abstraction.cpp
index eaeef05..9e8c7a8 100644 (file)
@@ -1,60 +1,67 @@
-//
-// Copyright (c) 2014 Samsung Electronics Co., Ltd.
-//
-// Licensed under the Flora License, Version 1.0 (the License);
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://floralicense.org/license/
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an AS IS BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
 
 #include "test-gl-abstraction.h"
 
 namespace Dali
 {
-
 TestGlAbstraction::TestGlAbstraction()
 {
   Initialize();
 }
 
-TestGlAbstraction::~TestGlAbstraction() {}
+TestGlAbstraction::~TestGlAbstraction()
+{
+}
 
 void TestGlAbstraction::Initialize()
 {
-  mCurrentProgram = 0;
-  mCompileStatus = GL_TRUE;
-  mLinkStatus = GL_TRUE;
-
-  mGetAttribLocationResult = 0;
-  mGetErrorResult = 0;
-  mGetStringResult = NULL;
-  mIsBufferResult = 0;
-  mIsEnabledResult = 0;
-  mIsFramebufferResult = 0;
-  mIsProgramResult = 0;
-  mIsRenderbufferResult = 0;
-  mIsShaderResult = 0;
-  mIsTextureResult = 0;
-  mVertexAttribArrayChanged = false;
-
-  mCheckFramebufferStatusResult = 0;
-  mNumBinaryFormats = 1;
-  mBinaryFormats = 1;
-  mProgramBinaryLength = 0;
+  mCurrentProgram                  = 0;
+  mCompileStatus                   = GL_TRUE;
+  mLinkStatus                      = GL_TRUE;
+  mNumberOfActiveUniforms          = 0;
+  mGetAttribLocationResult         = 0;
+  mGetErrorResult                  = 0;
+  mGetStringResult                 = NULL;
+  mIsBufferResult                  = 0;
+  mIsEnabledResult                 = 0;
+  mIsFramebufferResult             = 0;
+  mIsProgramResult                 = 0;
+  mIsRenderbufferResult            = 0;
+  mIsShaderResult                  = 0;
+  mIsTextureResult                 = 0;
+  mActiveTextureUnit               = 0;
+  mCheckFramebufferStatusResult    = 0;
+  mFramebufferStatus               = 0;
+  mFramebufferDepthAttached        = 0;
+  mFramebufferStencilAttached      = 0;
+  mFramebufferColorAttachmentCount = 0;
+  mFrameBufferColorStatus          = 0;
+  mNumBinaryFormats                = 0;
+  mBinaryFormats                   = 0;
+  mProgramBinaryLength             = 0;
 
-  mLastAutoTextureIdUsed = 0;
+  mVertexAttribArrayChanged = false;
+  mGetProgramBinaryCalled   = false;
 
-  mLastShaderIdUsed = 0;
-  mLastProgramIdUsed = 0;
-  mLastUniformIdUsed = 0;
   mLastShaderCompiled = 0;
+  mLastClearBitMask   = 0;
+  mLastClearColor     = Color::TRANSPARENT;
+  mClearCount         = 0;
 
   mLastBlendEquationRgb   = 0;
   mLastBlendEquationAlpha = 0;
@@ -62,6 +69,12 @@ void TestGlAbstraction::Initialize()
   mLastBlendFuncDstRgb    = 0;
   mLastBlendFuncSrcAlpha  = 0;
   mLastBlendFuncDstAlpha  = 0;
+  mLastAutoTextureIdUsed  = 0;
+  mNumGeneratedTextures   = 0;
+  mLastShaderIdUsed       = 0;
+  mLastProgramIdUsed      = 0;
+  mLastUniformIdUsed      = 0;
+  mLastDepthMask          = false;
 
   mUniforms.clear();
   mProgramUniforms1i.clear();
@@ -69,9 +82,67 @@ void TestGlAbstraction::Initialize()
   mProgramUniforms2f.clear();
   mProgramUniforms3f.clear();
   mProgramUniforms4f.clear();
+
+  mCullFaceTrace.Reset();
+  mDepthFunctionTrace.Reset();
+  mEnableDisableTrace.Reset();
+  mShaderTrace.Reset();
+  mStencilFunctionTrace.Reset();
+  mScissorTrace.Reset();
+  mTextureTrace.Reset();
+  mTexParamaterTrace.Reset();
+  mDrawTrace.Reset();
+
+  for(unsigned int i = 0; i < MAX_ATTRIBUTE_CACHE_SIZE; ++i)
+  {
+    mVertexAttribArrayState[i] = false;
+  }
+}
+
+void TestGlAbstraction::PreRender()
+{
+}
+
+void TestGlAbstraction::PostRender()
+{
+}
+
+bool TestGlAbstraction::IsSurfacelessContextSupported() const
+{
+  return true;
+}
+
+bool TestGlAbstraction::IsAdvancedBlendEquationSupported()
+{
+  return true;
+}
+
+bool TestGlAbstraction::IsBlendEquationSupported(DevelBlendEquation::Type blendEquation)
+{
+  return true;
+}
+
+std::string TestGlAbstraction::GetShaderVersionPrefix()
+{
+  return std::string("");
+}
+
+std::string TestGlAbstraction::GetVertexShaderPrefix()
+{
+  return std::string("");
+}
+
+std::string TestGlAbstraction::GetFragmentShaderPrefix()
+{
+  return std::string("");
+}
+
+bool TestGlAbstraction::TextureRequiresConverting(const GLenum imageGlFormat, const GLenum textureGlFormat, const bool isSubImage) const
+{
+  return ((imageGlFormat == GL_RGB) && (textureGlFormat == GL_RGBA));
 }
 
-} // Namespace dali
+} // namespace Dali
 
 bool BlendEnabled(const Dali::TraceCallStack& callStack)
 {