Merge "Fixed an issue where the multi-tap did not work properly. (https://review...
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / test-gl-abstraction.cpp
index 8372e03..b85cf4d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 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.
  */
 
 #include "test-gl-abstraction.h"
+#include "test-trace-call-stack.h"
+
+static const bool TRACE{
+  false};
 
 namespace Dali
 {
-
 TestGlAbstraction::TestGlAbstraction()
+: mBufferTrace(TRACE, std::string("gl")),
+  mCullFaceTrace(TRACE, "gl"),
+  mEnableDisableTrace(TRACE, "gl"),
+  mShaderTrace(TRACE, "gl"),
+  mTextureTrace(TRACE, std::string("gl")),
+  mTexParameterTrace(TRACE, "gl"),
+  mDrawTrace(TRACE, "gl"),
+  mDepthFunctionTrace(TRACE, "gl"),
+  mStencilFunctionTrace(TRACE, "gl"),
+  mScissorTrace(TRACE, "gl"),
+  mSetUniformTrace(TRACE, "Uniform "),
+  mViewportTrace(TRACE, "gl")
 {
   Initialize();
 }
 
-TestGlAbstraction::~TestGlAbstraction() {}
+TestGlAbstraction::~TestGlAbstraction()
+{
+}
 
 void TestGlAbstraction::Initialize()
 {
-  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;
-  mFramebufferColorAttached = 0;
-  mFramebufferDepthAttached = 0;
-  mFramebufferStencilAttached = 0;
-  mNumBinaryFormats = 0;
-  mBinaryFormats = 0;
-  mProgramBinaryLength = 0;
+  mCurrentProgram                  = 0;
+  mCompileStatus                   = GL_TRUE;
+  mLinkStatus                      = GL_TRUE;
+  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;
 
   mVertexAttribArrayChanged = false;
-  mGetProgramBinaryCalled = false;
+  mGetProgramBinaryCalled   = false;
 
   mLastShaderCompiled = 0;
-  mLastClearBitMask = 0;
-  mClearCount = 0;
+  mLastClearBitMask   = 0;
+  mLastClearColor     = Color::TRANSPARENT;
+  mClearCount         = 0;
 
   mLastBlendEquationRgb   = 0;
   mLastBlendEquationAlpha = 0;
@@ -66,12 +83,12 @@ void TestGlAbstraction::Initialize()
   mLastBlendFuncDstRgb    = 0;
   mLastBlendFuncSrcAlpha  = 0;
   mLastBlendFuncDstAlpha  = 0;
-  mLastAutoTextureIdUsed = 0;
-  mNumGeneratedTextures = 0;
-  mLastShaderIdUsed = 0;
-  mLastProgramIdUsed = 0;
-  mLastUniformIdUsed = 0;
-  mLastDepthMask = false;
+  mLastAutoTextureIdUsed  = 0;
+  mNumGeneratedTextures   = 0;
+  mLastShaderIdUsed       = 0;
+  mLastProgramIdUsed      = 0;
+  mLastUniformIdUsed      = 0;
+  mLastDepthMask          = false;
 
   mUniforms.clear();
   mProgramUniforms1i.clear();
@@ -80,6 +97,9 @@ void TestGlAbstraction::Initialize()
   mProgramUniforms3f.clear();
   mProgramUniforms4f.clear();
 
+  mAttribLocs.clear();
+  mAttribLocs.push_back("aPosition");
+  mAttribLocs.push_back("aTexCoord");
   mCullFaceTrace.Reset();
   mDepthFunctionTrace.Reset();
   mEnableDisableTrace.Reset();
@@ -87,13 +107,38 @@ void TestGlAbstraction::Initialize()
   mStencilFunctionTrace.Reset();
   mScissorTrace.Reset();
   mTextureTrace.Reset();
-  mTexParamaterTrace.Reset();
+  mTexParameterTrace.Reset();
   mDrawTrace.Reset();
 
-  for( unsigned int i=0; i<MAX_ATTRIBUTE_CACHE_SIZE; ++i )
+  for(unsigned int i = 0; i < MAX_ATTRIBUTE_CACHE_SIZE; ++i)
   {
     mVertexAttribArrayState[i] = false;
   }
+
+  mActiveUniforms = std::vector<ActiveUniform>{
+    {"uRendererColor", GL_FLOAT, 1},
+    {"uCustom", GL_FLOAT_VEC3, 1},
+    {"uCustom3", GL_FLOAT_VEC3, 1},
+    {"uFadeColor", GL_FLOAT_VEC4, 1},
+    {"uUniform1", GL_FLOAT_VEC4, 1},
+    {"uUniform2", GL_FLOAT_VEC4, 1},
+    {"uUniform3", GL_FLOAT_VEC4, 1},
+    {"uFadeProgress", GL_FLOAT, 1},
+    {"uANormalMatrix", GL_FLOAT_MAT3, 1},
+    {"sEffect", GL_SAMPLER_2D, 1},
+    {"sTexture", GL_SAMPLER_2D, 1},
+    {"sTextureRect", GL_SAMPLER_2D, 1},
+    {"sGloss", GL_SAMPLER_2D, 1},
+    {"uColor", GL_FLOAT_VEC4, 1},
+    {"uModelMatrix", GL_FLOAT_MAT4, 1},
+    {"uModelView", GL_FLOAT_MAT4, 1},
+    {"uMvpMatrix", GL_FLOAT_MAT4, 1},
+    {"uNormalMatrix", GL_FLOAT_MAT4, 1},
+    {"uProjection", GL_FLOAT_MAT4, 1},
+    {"uSize", GL_FLOAT_VEC3, 1},
+    {"uViewMatrix", GL_FLOAT_MAT4, 1},
+    {"uLightCameraProjectionMatrix", GL_FLOAT_MAT4, 1},
+    {"uLightCameraViewMatrix", GL_FLOAT_MAT4, 1}};
 }
 
 void TestGlAbstraction::PreRender()
@@ -109,18 +154,43 @@ bool TestGlAbstraction::IsSurfacelessContextSupported() const
   return true;
 }
 
-bool TestGlAbstraction::TextureRequiresConverting( const GLenum imageGlFormat, const GLenum textureGlFormat, const bool isSubImage ) const
+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 ) );
+  return ((imageGlFormat == GL_RGB) && (textureGlFormat == GL_RGBA));
 }
 
-} // Namespace dali
+} // namespace Dali
 
 bool BlendEnabled(const Dali::TraceCallStack& callStack)
 {
   std::stringstream out;
   out << GL_BLEND;
-  bool blendEnabled = callStack.FindMethodAndParams( "Enable", out.str() );
+  bool blendEnabled = callStack.FindMethodAndParams("Enable", out.str());
   return blendEnabled;
 }
 
@@ -128,6 +198,6 @@ bool BlendDisabled(const Dali::TraceCallStack& callStack)
 {
   std::stringstream out;
   out << GL_BLEND;
-  bool blendEnabled = callStack.FindMethodAndParams( "Disable", out.str() );
+  bool blendEnabled = callStack.FindMethodAndParams("Disable", out.str());
   return blendEnabled;
 }