X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Fdali-toolkit-test-utils%2Ftest-gl-abstraction.h;h=861f4ae8586f1e350e87bd3f895bab1b762f077a;hp=c69e4e3e426265d1857f7eca9479a9c3e01680eb;hb=b86fa7f2bedebe580b0e9a20f9b42cf2d628fafa;hpb=b2e09d9eeceadc9153c97c64b93639d0c0a94b43 diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-gl-abstraction.h b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-gl-abstraction.h index c69e4e3..861f4ae 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-gl-abstraction.h +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-gl-abstraction.h @@ -2,7 +2,7 @@ #define TEST_GL_ABSTRACTION_H /* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. + * 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. @@ -19,28 +19,28 @@ */ // EXTERNAL INCLUDES -#include -#include -#include -#include #include +#include #include // for strcmp +#include +#include +#include #include // INTERNAL INCLUDES -#include +#include #include #include #include -#include +#include #include +#include namespace Dali { - static const unsigned int MAX_ATTRIBUTE_CACHE_SIZE = 64; -static const char *mStdAttribs[MAX_ATTRIBUTE_CACHE_SIZE] = -{ +static const char* mStdAttribs[MAX_ATTRIBUTE_CACHE_SIZE] = + { "aPosition", // ATTRIB_POSITION "aNormal", // ATTRIB_NORMAL "aTexCoord", // ATTRIB_TEXCOORD @@ -49,21 +49,33 @@ static const char *mStdAttribs[MAX_ATTRIBUTE_CACHE_SIZE] = "aBoneIndices" // ATTRIB_BONE_INDICES }; -class DALI_CORE_API TestGlAbstraction: public Dali::Integration::GlAbstraction +class DALI_CORE_API TestGlAbstraction : public Dali::Integration::GlAbstraction { public: TestGlAbstraction(); - ~TestGlAbstraction(); + ~TestGlAbstraction() override; void Initialize(); - void PreRender(); - void PostRender(); + void PreRender() override; + void PostRender() override; + + bool IsSurfacelessContextSupported() const override; + + bool IsAdvancedBlendEquationSupported() override; + + bool IsBlendEquationSupported(DevelBlendEquation::Type blendEquation) override; - void ConvertTexture( uint8_t* buffer, GLenum& imageGlFormat, const uint32_t dataSize, const GLenum textureGlFormat, const bool isSubImage ); + std::string GetShaderVersionPrefix(); + + std::string GetVertexShaderPrefix(); + + std::string GetFragmentShaderPrefix(); + + bool TextureRequiresConverting(const GLenum imageGlFormat, const GLenum textureGlFormat, const bool isSubImage) const override; /* OpenGL ES 2.0 */ - inline void ActiveTexture( GLenum textureUnit ) + inline void ActiveTexture(GLenum textureUnit) override { mActiveTextureUnit = textureUnit - GL_TEXTURE0; } @@ -73,32 +85,32 @@ public: return mActiveTextureUnit + GL_TEXTURE0; } - inline void AttachShader( GLuint program, GLuint shader ) + inline void AttachShader(GLuint program, GLuint shader) override { std::stringstream out; out << program << ", " << shader; TraceCallStack::NamedParams namedParams; namedParams["program"] = ToString(program); - namedParams["shader"] = ToString(shader); + namedParams["shader"] = ToString(shader); mShaderTrace.PushCall("AttachShader", out.str(), namedParams); } - inline void BindAttribLocation( GLuint program, GLuint index, const char* name ) + inline void BindAttribLocation(GLuint program, GLuint index, const char* name) override { } - inline void BindBuffer( GLenum target, GLuint buffer ) + inline void BindBuffer(GLenum target, GLuint buffer) override { } - inline void BindFramebuffer( GLenum target, GLuint framebuffer ) + inline void BindFramebuffer(GLenum target, GLuint framebuffer) override { //Add 010 bit; mFramebufferStatus |= 2; } - inline void BindRenderbuffer( GLenum target, GLuint renderbuffer ) + inline void BindRenderbuffer(GLenum target, GLuint renderbuffer) override { } @@ -116,9 +128,9 @@ public: * @param[in] activeTextureUnit The specific active texture unit. * @return A vector containing the IDs that were bound. */ - inline const std::vector& GetBoundTextures( GLuint activeTextureUnit ) const + inline const std::vector& GetBoundTextures(GLuint activeTextureUnit) const { - return mActiveTextures[ activeTextureUnit - GL_TEXTURE0 ].mBoundTextures; + return mActiveTextures[activeTextureUnit - GL_TEXTURE0].mBoundTextures; } /** @@ -128,22 +140,22 @@ public: { mBoundTextures.clear(); - for( unsigned int i=0; i::iterator iter=mDeletedTextureIds.begin(); iter != mDeletedTextureIds.end(); ++iter) + for(std::vector::iterator iter = mDeletedTextureIds.begin(); iter != mDeletedTextureIds.end(); ++iter) { if(*iter == textureId) { @@ -460,7 +481,7 @@ public: mDeletedTextureIds.clear(); } - inline void DepthFunc(GLenum func) + inline void DepthFunc(GLenum func) override { std::stringstream out; out << func; @@ -471,7 +492,7 @@ public: mDepthFunctionTrace.PushCall("DepthFunc", out.str(), namedParams); } - inline void DepthMask(GLboolean flag) + inline void DepthMask(GLboolean flag) override { mLastDepthMask = flag; } @@ -481,21 +502,21 @@ public: return mLastDepthMask; } - inline void DepthRangef(GLclampf zNear, GLclampf zFar) + inline void DepthRangef(GLclampf zNear, GLclampf zFar) override { } - inline void DetachShader(GLuint program, GLuint shader) + inline void DetachShader(GLuint program, GLuint shader) override { std::stringstream out; out << program << ", " << shader; TraceCallStack::NamedParams namedParams; namedParams["program"] = ToString(program); - namedParams["shader"] = ToString(shader); + namedParams["shader"] = ToString(shader); mShaderTrace.PushCall("DetachShader", out.str(), namedParams); } - inline void Disable(GLenum cap) + inline void Disable(GLenum cap) override { std::stringstream out; out << cap; @@ -504,36 +525,36 @@ public: mEnableDisableTrace.PushCall("Disable", out.str(), namedParams); } - inline void DisableVertexAttribArray(GLuint index) + inline void DisableVertexAttribArray(GLuint index) override { - SetVertexAttribArray( index, false ); + SetVertexAttribArray(index, false); } - inline void DrawArrays(GLenum mode, GLint first, GLsizei count) + inline void DrawArrays(GLenum mode, GLint first, GLsizei count) override { std::stringstream out; out << mode << ", " << first << ", " << count; TraceCallStack::NamedParams namedParams; - namedParams["mode"] = ToString(mode); + namedParams["mode"] = ToString(mode); namedParams["first"] = ToString(first); namedParams["count"] = ToString(count); mDrawTrace.PushCall("DrawArrays", out.str(), namedParams); } - inline void DrawElements(GLenum mode, GLsizei count, GLenum type, const void* indices) + inline void DrawElements(GLenum mode, GLsizei count, GLenum type, const void* indices) override { std::stringstream out; out << mode << ", " << count << ", " << type << ", indices"; TraceCallStack::NamedParams namedParams; - namedParams["mode"] = ToString(mode); + namedParams["mode"] = ToString(mode); namedParams["count"] = ToString(count); - namedParams["type"] = ToString(type); + namedParams["type"] = ToString(type); // Skip void pointers - are they of any use? mDrawTrace.PushCall("DrawElements", out.str(), namedParams); } - inline void Enable(GLenum cap) + inline void Enable(GLenum cap) override { std::stringstream out; out << cap; @@ -542,66 +563,71 @@ public: mEnableDisableTrace.PushCall("Enable", out.str(), namedParams); } - inline void EnableVertexAttribArray(GLuint index) + inline void EnableVertexAttribArray(GLuint index) override { - SetVertexAttribArray( index, true); + SetVertexAttribArray(index, true); } - inline void Finish(void) + inline void Finish(void) override { } - inline void Flush(void) + inline void Flush(void) override { } - inline void FramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) + inline void FramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) override { - if (attachment == GL_DEPTH_ATTACHMENT) + if(attachment == GL_DEPTH_ATTACHMENT) { mFramebufferDepthAttached = true; } - else if (attachment == GL_STENCIL_ATTACHMENT) + else if(attachment == GL_STENCIL_ATTACHMENT) { mFramebufferStencilAttached = true; } } - inline void FramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) + inline void FramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) override { //Add 100 bit; mFramebufferStatus |= 4; //We check 4 attachment colors - if ((attachment == GL_COLOR_ATTACHMENT0) || (attachment == GL_COLOR_ATTACHMENT1) || (attachment == GL_COLOR_ATTACHMENT2) || (attachment == GL_COLOR_ATTACHMENT4)) + if((attachment >= GL_COLOR_ATTACHMENT0) && (attachment < GL_COLOR_ATTACHMENT0 + Dali::DevelFrameBuffer::MAX_COLOR_ATTACHMENTS)) { - mFramebufferColorAttached = true; + uint8_t mask = 1 << (attachment - GL_COLOR_ATTACHMENT0); + if((mFrameBufferColorStatus & mask) == 0) + { + mFrameBufferColorStatus |= mask; + ++mFramebufferColorAttachmentCount; + } } } - inline void FrontFace(GLenum mode) + inline void FrontFace(GLenum mode) override { } - inline void GenBuffers(GLsizei n, GLuint* buffers) + inline void GenBuffers(GLsizei n, GLuint* buffers) override { // avoids an assert in GpuBuffers *buffers = 1u; } - inline void GenerateMipmap(GLenum target) + inline void GenerateMipmap(GLenum target) override { std::stringstream out; - out<& ids ) + inline void SetNextTextureIds(const std::vector& ids) { mNextTextureIds = ids; } @@ -632,18 +658,18 @@ public: return mNextTextureIds; } - inline void GenTextures(GLsizei count, GLuint* textures) + inline void GenTextures(GLsizei count, GLuint* textures) override { - for( int i=0; isecond; - UniformIDMap::iterator it2 = uniformIDs.find( name ); - if( it2 == uniformIDs.end() ) + UniformIDMap& uniformIDs = it->second; + UniformIDMap::iterator it2 = uniformIDs.find(name); + if(it2 == uniformIDs.end()) { // Uniform not found, so add it... uniformIDs[name] = ++mLastUniformIdUsed; @@ -851,62 +879,62 @@ public: return it2->second; } - inline void GetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params) + inline void GetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params) override { } - inline void GetVertexAttribiv(GLuint index, GLenum pname, GLint* params) + inline void GetVertexAttribiv(GLuint index, GLenum pname, GLint* params) override { } - inline void GetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer) + inline void GetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer) override { } - inline void Hint(GLenum target, GLenum mode) + inline void Hint(GLenum target, GLenum mode) override { } - inline GLboolean IsBuffer(GLuint buffer) + inline GLboolean IsBuffer(GLuint buffer) override { return mIsBufferResult; } - inline GLboolean IsEnabled(GLenum cap) + inline GLboolean IsEnabled(GLenum cap) override { return mIsEnabledResult; } - inline GLboolean IsFramebuffer(GLuint framebuffer) + inline GLboolean IsFramebuffer(GLuint framebuffer) override { return mIsFramebufferResult; } - inline GLboolean IsProgram(GLuint program) + inline GLboolean IsProgram(GLuint program) override { return mIsProgramResult; } - inline GLboolean IsRenderbuffer(GLuint renderbuffer) + inline GLboolean IsRenderbuffer(GLuint renderbuffer) override { return mIsRenderbufferResult; } - inline GLboolean IsShader(GLuint shader) + inline GLboolean IsShader(GLuint shader) override { return mIsShaderResult; } - inline GLboolean IsTexture(GLuint texture) + inline GLboolean IsTexture(GLuint texture) override { return mIsTextureResult; } - inline void LineWidth(GLfloat width) + inline void LineWidth(GLfloat width) override { } - inline void LinkProgram(GLuint program) + inline void LinkProgram(GLuint program) override { std::stringstream out; out << program; @@ -915,58 +943,58 @@ public: namedParams["program"] = ToString(program); mShaderTrace.PushCall("LinkProgram", out.str(), namedParams); - mNumberOfActiveUniforms=3; + mNumberOfActiveUniforms = 3; GetUniformLocation(program, "sTexture"); GetUniformLocation(program, "sEffect"); GetUniformLocation(program, "sGloss"); } - inline void PixelStorei(GLenum pname, GLint param) + inline void PixelStorei(GLenum pname, GLint param) override { } - inline void PolygonOffset(GLfloat factor, GLfloat units) + inline void PolygonOffset(GLfloat factor, GLfloat units) override { } - inline void ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels) + inline void ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels) override { } - inline void ReleaseShaderCompiler(void) + inline void ReleaseShaderCompiler(void) override { } - inline void RenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) + inline void RenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) override { } - inline void SampleCoverage(GLclampf value, GLboolean invert) + inline void SampleCoverage(GLclampf value, GLboolean invert) override { } - inline void Scissor(GLint x, GLint y, GLsizei width, GLsizei height) + inline void Scissor(GLint x, GLint y, GLsizei width, GLsizei height) override { - mScissorParams.x = x; - mScissorParams.y = y; - mScissorParams.width = width; + mScissorParams.x = x; + mScissorParams.y = y; + mScissorParams.width = width; mScissorParams.height = height; std::stringstream out; out << x << ", " << y << ", " << width << ", " << height; TraceCallStack::NamedParams namedParams; - namedParams["x"] = ToString( x ); - namedParams["y"] = ToString( y ); - namedParams["width"] = ToString( width ); - namedParams["height"] = ToString( height ); - mScissorTrace.PushCall( "Scissor", out.str(), namedParams ); + namedParams["x"] = ToString(x); + namedParams["y"] = ToString(y); + namedParams["width"] = ToString(width); + namedParams["height"] = ToString(height); + mScissorTrace.PushCall("Scissor", out.str(), namedParams); } - inline void ShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length) + inline void ShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length) override { } - inline void ShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length) + inline void ShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length) override { std::string stringBuilder; for(int i = 0; i < count; ++i) @@ -974,21 +1002,21 @@ public: stringBuilder += string[i]; } mShaderSources[shader] = stringBuilder; - mLastShaderCompiled = shader; + mLastShaderCompiled = shader; } - inline void GetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source) + inline void GetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source) override { - const std::string shaderSource = mShaderSources[shader]; - const int shaderSourceLength = static_cast(shaderSource.length()); - if( shaderSourceLength < bufsize ) + const std::string shaderSource = mShaderSources[shader]; + const int shaderSourceLength = static_cast(shaderSource.length()); + if(shaderSourceLength < bufsize) { - strncpy( source, shaderSource.c_str(), shaderSourceLength ); + strncpy(source, shaderSource.c_str(), shaderSourceLength); *length = shaderSourceLength; } else { - *length = bufsize -1; + *length = bufsize - 1; strncpy(source, shaderSource.c_str(), *length); source[*length] = 0x0; } @@ -999,188 +1027,188 @@ public: return mShaderSources[shader]; } - inline void StencilFunc(GLenum func, GLint ref, GLuint mask) + inline void StencilFunc(GLenum func, GLint ref, GLuint mask) override { std::stringstream out; out << func << ", " << ref << ", " << mask; TraceCallStack::NamedParams namedParams; - namedParams["func"] = ToString( func ); - namedParams["ref"] = ToString( ref ); - namedParams["mask"] = ToString( mask ); + namedParams["func"] = ToString(func); + namedParams["ref"] = ToString(ref); + namedParams["mask"] = ToString(mask); - mStencilFunctionTrace.PushCall( "StencilFunc", out.str(), namedParams ); + mStencilFunctionTrace.PushCall("StencilFunc", out.str(), namedParams); } - inline void StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) + inline void StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) override { std::stringstream out; out << face << ", " << func << ", " << ref << ", " << mask; TraceCallStack::NamedParams namedParams; - namedParams["face"] = ToString( face ); - namedParams["func"] = ToString( func ); - namedParams["ref"] = ToString( ref ); - namedParams["mask"] = ToString( mask ); + namedParams["face"] = ToString(face); + namedParams["func"] = ToString(func); + namedParams["ref"] = ToString(ref); + namedParams["mask"] = ToString(mask); - mStencilFunctionTrace.PushCall( "StencilFuncSeparate", out.str(), namedParams ); + mStencilFunctionTrace.PushCall("StencilFuncSeparate", out.str(), namedParams); } - inline void StencilMask(GLuint mask) + inline void StencilMask(GLuint mask) override { std::stringstream out; out << mask; TraceCallStack::NamedParams namedParams; - namedParams["mask"] = ToString( mask ); + namedParams["mask"] = ToString(mask); - mStencilFunctionTrace.PushCall( "StencilMask", out.str(), namedParams ); + mStencilFunctionTrace.PushCall("StencilMask", out.str(), namedParams); } - inline void StencilMaskSeparate(GLenum face, GLuint mask) + inline void StencilMaskSeparate(GLenum face, GLuint mask) override { std::stringstream out; out << face << ", " << mask; TraceCallStack::NamedParams namedParams; - namedParams["face"] = ToString( face ); - namedParams["mask"] = ToString( mask ); + namedParams["face"] = ToString(face); + namedParams["mask"] = ToString(mask); - mStencilFunctionTrace.PushCall( "StencilMaskSeparate", out.str(), namedParams ); + mStencilFunctionTrace.PushCall("StencilMaskSeparate", out.str(), namedParams); } - inline void StencilOp(GLenum fail, GLenum zfail, GLenum zpass) + inline void StencilOp(GLenum fail, GLenum zfail, GLenum zpass) override { std::stringstream out; out << fail << ", " << zfail << ", " << zpass; TraceCallStack::NamedParams namedParams; - namedParams["fail"] = ToString( fail ); - namedParams["zfail"] = ToString( zfail ); - namedParams["zpass"] = ToString( zpass ); + namedParams["fail"] = ToString(fail); + namedParams["zfail"] = ToString(zfail); + namedParams["zpass"] = ToString(zpass); - mStencilFunctionTrace.PushCall( "StencilOp", out.str(), namedParams ); + mStencilFunctionTrace.PushCall("StencilOp", out.str(), namedParams); } - inline void StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) + inline void StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) override { std::stringstream out; out << face << ", " << fail << ", " << zfail << "," << zpass; TraceCallStack::NamedParams namedParams; - namedParams["face"] = ToString( face ); - namedParams["fail"] = ToString( fail ); - namedParams["zfail"] = ToString( zfail ); - namedParams["zpass"] = ToString( zpass ); + namedParams["face"] = ToString(face); + namedParams["fail"] = ToString(fail); + namedParams["zfail"] = ToString(zfail); + namedParams["zpass"] = ToString(zpass); - mStencilFunctionTrace.PushCall( "StencilOpSeparate", out.str(), namedParams ); + mStencilFunctionTrace.PushCall("StencilOpSeparate", out.str(), namedParams); } - inline void TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels) + inline void TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels) override { std::stringstream out; - out << target<<", "<second == location ) + if(it->second == location) { - name = it->first; + name = it->first; matched = true; break; } } - if ( matched ) + if(matched) { - mSetUniformTrace.PushCall( name, value ); + mSetUniformTrace.PushCall(name, value); } } - public: // TEST FUNCTIONS - inline void SetCompileStatus( GLuint value ) { mCompileStatus = value; } - inline void SetLinkStatus( GLuint value ) { mLinkStatus = value; } - inline void SetGetAttribLocationResult( int result) { mGetAttribLocationResult = result; } - inline void SetGetErrorResult( GLenum result) { mGetErrorResult = result; } - inline void SetGetStringResult( GLubyte* result) { mGetStringResult = result; } - inline void SetIsBufferResult( GLboolean result) { mIsBufferResult = result; } - inline void SetIsEnabledResult( GLboolean result) { mIsEnabledResult = result; } - inline void SetIsFramebufferResult( GLboolean result) { mIsFramebufferResult = result; } - inline void SetIsProgramResult( GLboolean result) { mIsProgramResult = result; } - inline void SetIsRenderbufferResult( GLboolean result) { mIsRenderbufferResult = result; } - inline void SetIsShaderResult( GLboolean result) { mIsShaderResult = result; } - inline void SetIsTextureResult( GLboolean result) { mIsTextureResult = result; } - inline void SetCheckFramebufferStatusResult( GLenum result) { mCheckFramebufferStatusResult = result; } - inline void SetNumBinaryFormats( GLint numFormats ) { mNumBinaryFormats = numFormats; } - inline void SetBinaryFormats( GLint binaryFormats ) { mBinaryFormats = binaryFormats; } - inline void SetProgramBinaryLength( GLint length ) { mProgramBinaryLength = length; } + inline void SetCompileStatus(GLuint value) + { + mCompileStatus = value; + } + inline void SetLinkStatus(GLuint value) + { + mLinkStatus = value; + } + inline void SetGetAttribLocationResult(int result) + { + mGetAttribLocationResult = result; + } + inline void SetGetErrorResult(GLenum result) + { + mGetErrorResult = result; + } + inline void SetGetStringResult(GLubyte* result) + { + mGetStringResult = result; + } + inline void SetIsBufferResult(GLboolean result) + { + mIsBufferResult = result; + } + inline void SetIsEnabledResult(GLboolean result) + { + mIsEnabledResult = result; + } + inline void SetIsFramebufferResult(GLboolean result) + { + mIsFramebufferResult = result; + } + inline void SetIsProgramResult(GLboolean result) + { + mIsProgramResult = result; + } + inline void SetIsRenderbufferResult(GLboolean result) + { + mIsRenderbufferResult = result; + } + inline void SetIsShaderResult(GLboolean result) + { + mIsShaderResult = result; + } + inline void SetIsTextureResult(GLboolean result) + { + mIsTextureResult = result; + } + inline void SetCheckFramebufferStatusResult(GLenum result) + { + mCheckFramebufferStatusResult = result; + } + inline void SetNumBinaryFormats(GLint numFormats) + { + mNumBinaryFormats = numFormats; + } + inline void SetBinaryFormats(GLint binaryFormats) + { + mBinaryFormats = binaryFormats; + } + inline void SetProgramBinaryLength(GLint length) + { + mProgramBinaryLength = length; + } inline bool GetVertexAttribArrayState(GLuint index) { - if( index >= MAX_ATTRIBUTE_CACHE_SIZE ) + if(index >= MAX_ATTRIBUTE_CACHE_SIZE) { // out of range return false; } - return mVertexAttribArrayState[ index ]; + return mVertexAttribArrayState[index]; + } + inline void ClearVertexAttribArrayChanged() + { + mVertexAttribArrayChanged = false; + } + inline bool GetVertexAttribArrayChanged() + { + return mVertexAttribArrayChanged; } - inline void ClearVertexAttribArrayChanged() { mVertexAttribArrayChanged = false; } - inline bool GetVertexAttribArrayChanged() { return mVertexAttribArrayChanged; } //Methods for CullFace verification - inline void EnableCullFaceCallTrace(bool enable) { mCullFaceTrace.Enable(enable); } - inline void ResetCullFaceCallStack() { mCullFaceTrace.Reset(); } - inline TraceCallStack& GetCullFaceTrace() { return mCullFaceTrace; } + inline void EnableCullFaceCallTrace(bool enable) + { + mCullFaceTrace.Enable(enable); + } + inline void ResetCullFaceCallStack() + { + mCullFaceTrace.Reset(); + } + inline TraceCallStack& GetCullFaceTrace() + { + return mCullFaceTrace; + } //Methods for Enable/Disable call verification - inline void EnableEnableDisableCallTrace(bool enable) { mEnableDisableTrace.Enable(enable); } - inline void ResetEnableDisableCallStack() { mEnableDisableTrace.Reset(); } - inline TraceCallStack& GetEnableDisableTrace() { return mEnableDisableTrace; } + inline void EnableEnableDisableCallTrace(bool enable) + { + mEnableDisableTrace.Enable(enable); + } + inline void ResetEnableDisableCallStack() + { + mEnableDisableTrace.Reset(); + } + inline TraceCallStack& GetEnableDisableTrace() + { + return mEnableDisableTrace; + } //Methods for Shader verification - inline void EnableShaderCallTrace(bool enable) { mShaderTrace.Enable(enable); } - inline void ResetShaderCallStack() { mShaderTrace.Reset(); } - inline TraceCallStack& GetShaderTrace() { return mShaderTrace; } + inline void EnableShaderCallTrace(bool enable) + { + mShaderTrace.Enable(enable); + } + inline void ResetShaderCallStack() + { + mShaderTrace.Reset(); + } + inline TraceCallStack& GetShaderTrace() + { + return mShaderTrace; + } //Methods for Texture verification - inline void EnableTextureCallTrace(bool enable) { mTextureTrace.Enable(enable); } - inline void ResetTextureCallStack() { mTextureTrace.Reset(); } - inline TraceCallStack& GetTextureTrace() { return mTextureTrace; } + inline void EnableTextureCallTrace(bool enable) + { + mTextureTrace.Enable(enable); + } + inline void ResetTextureCallStack() + { + mTextureTrace.Reset(); + } + inline TraceCallStack& GetTextureTrace() + { + return mTextureTrace; + } //Methods for Texture verification - inline void EnableTexParameterCallTrace(bool enable) { mTexParamaterTrace.Enable(enable); } - inline void ResetTexParameterCallStack() { mTexParamaterTrace.Reset(); } - inline TraceCallStack& GetTexParameterTrace() { return mTexParamaterTrace; } + inline void EnableTexParameterCallTrace(bool enable) + { + mTexParamaterTrace.Enable(enable); + } + inline void ResetTexParameterCallStack() + { + mTexParamaterTrace.Reset(); + } + inline TraceCallStack& GetTexParameterTrace() + { + return mTexParamaterTrace; + } //Methods for Draw verification - inline void EnableDrawCallTrace(bool enable) { mDrawTrace.Enable(enable); } - inline void ResetDrawCallStack() { mDrawTrace.Reset(); } - inline TraceCallStack& GetDrawTrace() { return mDrawTrace; } + inline void EnableDrawCallTrace(bool enable) + { + mDrawTrace.Enable(enable); + } + inline void ResetDrawCallStack() + { + mDrawTrace.Reset(); + } + inline TraceCallStack& GetDrawTrace() + { + return mDrawTrace; + } //Methods for Depth function verification - inline void EnableDepthFunctionCallTrace(bool enable) { mDepthFunctionTrace.Enable(enable); } - inline void ResetDepthFunctionCallStack() { mDepthFunctionTrace.Reset(); } - inline TraceCallStack& GetDepthFunctionTrace() { return mDepthFunctionTrace; } + inline void EnableDepthFunctionCallTrace(bool enable) + { + mDepthFunctionTrace.Enable(enable); + } + inline void ResetDepthFunctionCallStack() + { + mDepthFunctionTrace.Reset(); + } + inline TraceCallStack& GetDepthFunctionTrace() + { + return mDepthFunctionTrace; + } //Methods for Stencil function verification - inline void EnableStencilFunctionCallTrace(bool enable) { mStencilFunctionTrace.Enable(enable); } - inline void ResetStencilFunctionCallStack() { mStencilFunctionTrace.Reset(); } - inline TraceCallStack& GetStencilFunctionTrace() { return mStencilFunctionTrace; } + inline void EnableStencilFunctionCallTrace(bool enable) + { + mStencilFunctionTrace.Enable(enable); + } + inline void ResetStencilFunctionCallStack() + { + mStencilFunctionTrace.Reset(); + } + inline TraceCallStack& GetStencilFunctionTrace() + { + return mStencilFunctionTrace; + } //Methods for Scissor verification - inline void EnableScissorCallTrace(bool enable) { mScissorTrace.Enable(enable); } - inline void ResetScissorCallStack() { mScissorTrace.Reset(); } - inline TraceCallStack& GetScissorTrace() { return mScissorTrace; } + inline void EnableScissorCallTrace(bool enable) + { + mScissorTrace.Enable(enable); + } + inline void ResetScissorCallStack() + { + mScissorTrace.Reset(); + } + inline TraceCallStack& GetScissorTrace() + { + return mScissorTrace; + } //Methods for Uniform function verification - inline void EnableSetUniformCallTrace(bool enable) { mSetUniformTrace.Enable(enable); } - inline void ResetSetUniformCallStack() { mSetUniformTrace.Reset(); } - inline TraceCallStack& GetSetUniformTrace() { return mSetUniformTrace; } + inline void EnableSetUniformCallTrace(bool enable) + { + mSetUniformTrace.Enable(enable); + } + inline void ResetSetUniformCallStack() + { + mSetUniformTrace.Reset(); + } + inline TraceCallStack& GetSetUniformTrace() + { + return mSetUniformTrace; + } - template - inline bool GetUniformValue( const char* name, T& value ) const + //Methods for Viewport verification + inline void EnableViewportCallTrace(bool enable) { - for( ProgramUniformMap::const_iterator program_it = mUniforms.begin(); - program_it != mUniforms.end(); - ++program_it ) + mViewportTrace.Enable(enable); + } + inline void ResetViewportCallStack() + { + mViewportTrace.Reset(); + } + inline TraceCallStack& GetViewportTrace() + { + return mViewportTrace; + } + + template + inline bool GetUniformValue(const char* name, T& value) const + { + for(ProgramUniformMap::const_iterator program_it = mUniforms.begin(); + program_it != mUniforms.end(); + ++program_it) { - const UniformIDMap &uniformIDs = program_it->second; + const UniformIDMap& uniformIDs = program_it->second; - UniformIDMap::const_iterator uniform_it = uniformIDs.find( name ); - if( uniform_it != uniformIDs.end() ) + UniformIDMap::const_iterator uniform_it = uniformIDs.find(name); + if(uniform_it != uniformIDs.end()) { // found one matching uniform name, lets check the value... GLuint programId = program_it->first; - GLint uniformId = uniform_it->second; + GLint uniformId = uniform_it->second; - const ProgramUniformValue &mProgramUniforms = GetProgramUniformsForType( value ); - return mProgramUniforms.GetUniformValue( programId, uniformId, value ); + const ProgramUniformValue& mProgramUniforms = GetProgramUniformsForType(value); + return mProgramUniforms.GetUniformValue(programId, uniformId, value); } } return false; } - - template - inline bool CheckUniformValue( const char* name, const T& value ) const + template + inline bool CheckUniformValue(const char* name, const T& value) const { - for( ProgramUniformMap::const_iterator program_it = mUniforms.begin(); - program_it != mUniforms.end(); - ++program_it ) + for(ProgramUniformMap::const_iterator program_it = mUniforms.begin(); + program_it != mUniforms.end(); + ++program_it) { - const UniformIDMap &uniformIDs = program_it->second; + const UniformIDMap& uniformIDs = program_it->second; - UniformIDMap::const_iterator uniform_it = uniformIDs.find( name ); - if( uniform_it != uniformIDs.end() ) + UniformIDMap::const_iterator uniform_it = uniformIDs.find(name); + if(uniform_it != uniformIDs.end()) { // found one matching uniform name, lets check the value... GLuint programId = program_it->first; - GLint uniformId = uniform_it->second; + GLint uniformId = uniform_it->second; - const ProgramUniformValue &mProgramUniforms = GetProgramUniformsForType( value ); - if( mProgramUniforms.CheckUniformValue( programId, uniformId, value ) ) + const ProgramUniformValue& mProgramUniforms = GetProgramUniformsForType(value); + if(mProgramUniforms.CheckUniformValue(programId, uniformId, value)) { // the value matches return true; @@ -2021,50 +2212,50 @@ public: // TEST FUNCTIONS } } - fprintf(stderr, "Not found, printing possible values:\n" ); - for( ProgramUniformMap::const_iterator program_it = mUniforms.begin(); - program_it != mUniforms.end(); - ++program_it ) + fprintf(stderr, "Not found, printing possible values:\n"); + for(ProgramUniformMap::const_iterator program_it = mUniforms.begin(); + program_it != mUniforms.end(); + ++program_it) { - const UniformIDMap &uniformIDs = program_it->second; + const UniformIDMap& uniformIDs = program_it->second; - UniformIDMap::const_iterator uniform_it = uniformIDs.find( name ); - if( uniform_it != uniformIDs.end() ) + UniformIDMap::const_iterator uniform_it = uniformIDs.find(name); + if(uniform_it != uniformIDs.end()) { // found one matching uniform name, lets check the value... GLuint programId = program_it->first; - GLint uniformId = uniform_it->second; + GLint uniformId = uniform_it->second; - const ProgramUniformValue &mProgramUniforms = GetProgramUniformsForType( value ); - T origValue; - if ( mProgramUniforms.GetUniformValue(programId, uniformId, origValue) ) + const ProgramUniformValue& mProgramUniforms = GetProgramUniformsForType(value); + T origValue; + if(mProgramUniforms.GetUniformValue(programId, uniformId, origValue)) { std::stringstream out; out << uniform_it->first << ": " << origValue; - fprintf(stderr, "%s\n", out.str().c_str() ); + fprintf(stderr, "%s\n", out.str().c_str()); } } } return false; } - template - inline bool GetUniformValue( GLuint programId, GLuint uniformId, T& outValue) const + template + inline bool GetUniformValue(GLuint programId, GLuint uniformId, T& outValue) const { - const ProgramUniformValue &mProgramUniforms = GetProgramUniformsForType( outValue ); - return mProgramUniforms.GetUniformValue( programId, uniformId, outValue ); + const ProgramUniformValue& mProgramUniforms = GetProgramUniformsForType(outValue); + return mProgramUniforms.GetUniformValue(programId, uniformId, outValue); } - inline bool GetUniformIds( const char* name, GLuint& programId, GLuint& uniformId ) const + inline bool GetUniformIds(const char* name, GLuint& programId, GLuint& uniformId) const { - for( ProgramUniformMap::const_iterator program_it = mUniforms.begin(); - program_it != mUniforms.end(); - ++program_it ) + for(ProgramUniformMap::const_iterator program_it = mUniforms.begin(); + program_it != mUniforms.end(); + ++program_it) { - const UniformIDMap &uniformIDs = program_it->second; + const UniformIDMap& uniformIDs = program_it->second; - UniformIDMap::const_iterator uniform_it = uniformIDs.find( name ); - if( uniform_it != uniformIDs.end() ) + UniformIDMap::const_iterator uniform_it = uniformIDs.find(name); + if(uniform_it != uniformIDs.end()) { programId = program_it->first; uniformId = uniform_it->second; @@ -2103,16 +2294,25 @@ public: // TEST FUNCTIONS struct ScissorParams { - GLint x; - GLint y; + GLint x; + GLint y; GLsizei width; GLsizei height; - ScissorParams() : x( 0 ), y( 0 ), width( 0 ), height( 0 ) { } + ScissorParams() + : x(0), + y(0), + width(0), + height(0) + { + } }; // Methods to check scissor tests - inline const ScissorParams& GetScissorParams() const { return mScissorParams; } + inline const ScissorParams& GetScissorParams() const + { + return mScissorParams; + } struct ColorMaskParams { @@ -2121,57 +2321,86 @@ public: // TEST FUNCTIONS GLboolean blue; GLboolean alpha; - ColorMaskParams() : red( true ), green( true ), blue( true ), alpha( true ) { } + ColorMaskParams() + : red(true), + green(true), + blue(true), + alpha(true) + { + } }; - inline bool GetProgramBinaryCalled() const { return mGetProgramBinaryCalled; } + inline bool GetProgramBinaryCalled() const + { + return mGetProgramBinaryCalled; + } - inline unsigned int GetClearCountCalled() const { return mClearCount; } + inline unsigned int GetClearCountCalled() const + { + return mClearCount; + } - inline const ColorMaskParams& GetColorMaskParams() const { return mColorMaskParams; } + inline const ColorMaskParams& GetColorMaskParams() const + { + return mColorMaskParams; + } - typedef std::vector BufferDataCalls; - inline const BufferDataCalls& GetBufferDataCalls() const { return mBufferDataCalls; } - inline void ResetBufferDataCalls() { mBufferDataCalls.clear(); } + typedef std::vector BufferDataCalls; + inline const BufferDataCalls& GetBufferDataCalls() const + { + return mBufferDataCalls; + } + inline void ResetBufferDataCalls() + { + mBufferDataCalls.clear(); + } - typedef std::vector BufferSubDataCalls; - inline const BufferSubDataCalls& GetBufferSubDataCalls() const { return mBufferSubDataCalls; } - inline void ResetBufferSubDataCalls() { mBufferSubDataCalls.clear(); } + typedef std::vector BufferSubDataCalls; + inline const BufferSubDataCalls& GetBufferSubDataCalls() const + { + return mBufferSubDataCalls; + } + inline void ResetBufferSubDataCalls() + { + mBufferSubDataCalls.clear(); + } private: - GLuint mCurrentProgram; - GLuint mCompileStatus; - BufferDataCalls mBufferDataCalls; - BufferSubDataCalls mBufferSubDataCalls; - GLuint mLinkStatus; - GLint mNumberOfActiveUniforms; - GLint mGetAttribLocationResult; - GLenum mGetErrorResult; - GLubyte* mGetStringResult; - GLboolean mIsBufferResult; - GLboolean mIsEnabledResult; - GLboolean mIsFramebufferResult; - GLboolean mIsProgramResult; - GLboolean mIsRenderbufferResult; - GLboolean mIsShaderResult; - GLboolean mIsTextureResult; - GLenum mActiveTextureUnit; - GLenum mCheckFramebufferStatusResult; - GLint mFramebufferStatus; - GLenum mFramebufferColorAttached; - GLenum mFramebufferDepthAttached; - GLenum mFramebufferStencilAttached; - GLint mNumBinaryFormats; - GLint mBinaryFormats; - GLint mProgramBinaryLength; - bool mVertexAttribArrayState[MAX_ATTRIBUTE_CACHE_SIZE]; - bool mVertexAttribArrayChanged; // whether the vertex attrib array has been changed - bool mGetProgramBinaryCalled; - typedef std::map< GLuint, std::string> ShaderSourceMap; - ShaderSourceMap mShaderSources; - GLuint mLastShaderCompiled; - GLbitfield mLastClearBitMask; - unsigned int mClearCount; + GLuint mCurrentProgram; + GLuint mCompileStatus; + BufferDataCalls mBufferDataCalls; + BufferSubDataCalls mBufferSubDataCalls; + GLuint mLinkStatus; + GLint mNumberOfActiveUniforms; + GLint mGetAttribLocationResult; + GLenum mGetErrorResult; + GLubyte* mGetStringResult; + GLboolean mIsBufferResult; + GLboolean mIsEnabledResult; + GLboolean mIsFramebufferResult; + GLboolean mIsProgramResult; + GLboolean mIsRenderbufferResult; + GLboolean mIsShaderResult; + GLboolean mIsTextureResult; + GLenum mActiveTextureUnit; + GLenum mCheckFramebufferStatusResult; + GLint mFramebufferStatus; + GLenum mFramebufferDepthAttached; + GLenum mFramebufferStencilAttached; + GLuint mFramebufferColorAttachmentCount; + GLuint mFrameBufferColorStatus; + GLint mNumBinaryFormats; + GLint mBinaryFormats; + GLint mProgramBinaryLength; + bool mVertexAttribArrayState[MAX_ATTRIBUTE_CACHE_SIZE]; + bool mVertexAttribArrayChanged; // whether the vertex attrib array has been changed + bool mGetProgramBinaryCalled; + typedef std::map ShaderSourceMap; + ShaderSourceMap mShaderSources; + GLuint mLastShaderCompiled; + GLbitfield mLastClearBitMask; + Vector4 mLastClearColor; + unsigned int mClearCount; Vector4 mLastBlendColor; GLenum mLastBlendEquationRgb; @@ -2184,8 +2413,8 @@ private: GLboolean mLastDepthMask; // Data for manipulating the IDs returned by GenTextures - GLuint mLastAutoTextureIdUsed; - GLuint mNumGeneratedTextures; + GLuint mLastAutoTextureIdUsed; + GLuint mNumGeneratedTextures; std::vector mNextTextureIds; std::vector mDeletedTextureIds; std::vector mBoundTextures; @@ -2195,7 +2424,7 @@ private: std::vector mBoundTextures; }; - ActiveTextureType mActiveTextures[ MIN_TEXTURE_UNIT_LIMIT ]; + ActiveTextureType mActiveTextures[MIN_TEXTURE_UNIT_LIMIT]; TraceCallStack mCullFaceTrace; TraceCallStack mEnableDisableTrace; @@ -2207,48 +2436,49 @@ private: TraceCallStack mStencilFunctionTrace; TraceCallStack mScissorTrace; TraceCallStack mSetUniformTrace; + TraceCallStack mViewportTrace; // Shaders & Uniforms - GLuint mLastShaderIdUsed; - GLuint mLastProgramIdUsed; - GLuint mLastUniformIdUsed; - typedef std::map< std::string, GLint > UniformIDMap; - typedef std::map< GLuint, UniformIDMap > ProgramUniformMap; - ProgramUniformMap mUniforms; + GLuint mLastShaderIdUsed; + GLuint mLastProgramIdUsed; + GLuint mLastUniformIdUsed; + typedef std::map UniformIDMap; + typedef std::map ProgramUniformMap; + ProgramUniformMap mUniforms; - template - struct ProgramUniformValue : public std::map< GLuint, std::map< GLint, T > > + template + struct ProgramUniformValue : public std::map > { public: - typedef std::map< GLint, T > UniformValueMap; - typedef std::map< GLuint, UniformValueMap > Map; + typedef std::map UniformValueMap; + typedef std::map Map; - bool SetUniformValue( GLuint program, GLuint uniform, const T& value ) + bool SetUniformValue(GLuint program, GLuint uniform, const T& value) { - if( program == 0 ) + if(program == 0) { return false; } - typename Map::iterator it = Map::find( program ); - if( it == Map::end() ) + typename Map::iterator it = Map::find(program); + if(it == Map::end()) { // if its the first uniform for this program add it - std::pair< typename Map::iterator, bool > result = - Map::insert( typename Map::value_type( program, UniformValueMap() ) ); + std::pair result = + Map::insert(typename Map::value_type(program, UniformValueMap())); it = result.first; } UniformValueMap& uniforms = it->second; - uniforms[uniform] = value; + uniforms[uniform] = value; return true; } - bool CheckUniformValue( GLuint program, GLuint uniform, const T& value ) const + bool CheckUniformValue(GLuint program, GLuint uniform, const T& value) const { T uniformValue; - if ( GetUniformValue( program, uniform, uniformValue ) ) + if(GetUniformValue(program, uniform, uniformValue)) { return CompareType(value, uniformValue, Math::MACHINE_EPSILON_10); } @@ -2256,24 +2486,24 @@ private: return false; } - bool GetUniformValue( GLuint program, GLuint uniform, T& value ) const + bool GetUniformValue(GLuint program, GLuint uniform, T& value) const { - if( program == 0 ) + if(program == 0) { return false; } - typename Map::const_iterator it = Map::find( program ); - if( it == Map::end() ) + typename Map::const_iterator it = Map::find(program); + if(it == Map::end()) { // Uniform values always initialised as 0 value = GetZero(); return true; } - const UniformValueMap& uniforms = it->second; - typename UniformValueMap::const_iterator it2 = uniforms.find( uniform ); - if( it2 == uniforms.end() ) + const UniformValueMap& uniforms = it->second; + typename UniformValueMap::const_iterator it2 = uniforms.find(uniform); + if(it2 == uniforms.end()) { // Uniform values always initialised as 0 value = GetZero(); @@ -2286,97 +2516,97 @@ private: T GetZero() const; }; - ProgramUniformValue mProgramUniforms1i; - ProgramUniformValue mProgramUniforms1f; + ProgramUniformValue mProgramUniforms1i; + ProgramUniformValue mProgramUniforms1f; ProgramUniformValue mProgramUniforms2f; ProgramUniformValue mProgramUniforms3f; ProgramUniformValue mProgramUniforms4f; - ProgramUniformValue mProgramUniformsMat4; + ProgramUniformValue mProgramUniformsMat4; ProgramUniformValue mProgramUniformsMat3; - inline const ProgramUniformValue& GetProgramUniformsForType( const int ) const + inline const ProgramUniformValue& GetProgramUniformsForType(const int) const { return mProgramUniforms1i; } - inline const ProgramUniformValue& GetProgramUniformsForType( const float ) const + inline const ProgramUniformValue& GetProgramUniformsForType(const float) const { return mProgramUniforms1f; } - inline const ProgramUniformValue& GetProgramUniformsForType( const Vector2& ) const + inline const ProgramUniformValue& GetProgramUniformsForType(const Vector2&) const { return mProgramUniforms2f; } - inline const ProgramUniformValue& GetProgramUniformsForType( const Vector3& ) const + inline const ProgramUniformValue& GetProgramUniformsForType(const Vector3&) const { return mProgramUniforms3f; } - inline const ProgramUniformValue& GetProgramUniformsForType( const Vector4& ) const + inline const ProgramUniformValue& GetProgramUniformsForType(const Vector4&) const { return mProgramUniforms4f; } - inline const ProgramUniformValue& GetProgramUniformsForType( const Matrix& ) const + inline const ProgramUniformValue& GetProgramUniformsForType(const Matrix&) const { return mProgramUniformsMat4; } - inline const ProgramUniformValue& GetProgramUniformsForType( const Matrix3& ) const + inline const ProgramUniformValue& GetProgramUniformsForType(const Matrix3&) const { return mProgramUniformsMat3; } inline void SetVertexAttribArray(GLuint index, bool state) { - if( index >= MAX_ATTRIBUTE_CACHE_SIZE ) + if(index >= MAX_ATTRIBUTE_CACHE_SIZE) { // out of range return; } - mVertexAttribArrayState[ index ] = state; - mVertexAttribArrayChanged = true; + mVertexAttribArrayState[index] = state; + mVertexAttribArrayChanged = true; } - ScissorParams mScissorParams; + ScissorParams mScissorParams; ColorMaskParams mColorMaskParams; }; -template <> +template<> inline int TestGlAbstraction::ProgramUniformValue::GetZero() const { return 0; } -template <> +template<> inline float TestGlAbstraction::ProgramUniformValue::GetZero() const { return 0.0f; } -template <> +template<> inline Vector2 TestGlAbstraction::ProgramUniformValue::GetZero() const { return Vector2::ZERO; } -template <> +template<> inline Vector3 TestGlAbstraction::ProgramUniformValue::GetZero() const { return Vector3::ZERO; } -template <> +template<> inline Vector4 TestGlAbstraction::ProgramUniformValue::GetZero() const { return Vector4::ZERO; } -template <> +template<> inline Matrix TestGlAbstraction::ProgramUniformValue::GetZero() const { return Matrix(); } -template <> +template<> inline Matrix3 TestGlAbstraction::ProgramUniformValue::GetZero() const { - return Matrix3( Matrix() ); + return Matrix3(Matrix()); } } // namespace Dali @@ -2384,5 +2614,4 @@ inline Matrix3 TestGlAbstraction::ProgramUniformValue::GetZero() const bool BlendEnabled(const Dali::TraceCallStack& callStack); bool BlendDisabled(const Dali::TraceCallStack& callStack); - #endif // TEST_GL_ABSTRACTION_H