ShaderProgramIndex enum was implemented
authorVladislav Reviakin <v.reviakin@samsung.com>
Thu, 9 Jan 2014 08:26:33 +0000 (10:26 +0200)
committerVladislav Reviakin <v.reviakin@samsung.com>
Thu, 9 Jan 2014 08:26:33 +0000 (10:26 +0200)
Change-Id: I2fb7ed5016c958d7a9425b782410dcab929aa7a4
Signed-off-by: Vladislav Reviakin <v.reviakin@samsung.com>
src/ui/animations/FUiAnim_GlContext.h
src/ui/animations/FUiAnim_GlRenderManager.cpp
src/ui/animations/platform/FUiAnim_GlContext.cpp

index 4e41a7d..c6f32ed 100644 (file)
 namespace Tizen { namespace Ui { namespace Animations
 {
 
+enum ShaderProgramIndex{
+       SHADER_PROGRAM_INDEX_WHITHOUT_SKINING = 0,
+       SHADER_PROGRAM_INDEX_WHITH_SKINING,
+       MAX_SHADER_PROGRAM_INDEX
+};
+
 class ShaderProgram;
 class _ShaderProgramImpl;
 struct TextureInfo;
@@ -120,18 +126,18 @@ protected:
        unsigned int __fboId;
 
        _ShaderProgramImpl* __pCurrentShader;
-       ShaderProgram* __pColorShader[2];
-       ShaderProgram* __pUniformColorShader[2];
-       ShaderProgram* __pTextureShader[2];
-       ShaderProgram* __pTextureOpacityShader[2];
-       ShaderProgram* __pLightShader[2];
-       ShaderProgram* __pLightShaderWithoutTextures[2];
-
-       ShaderProgram* __pTextureShaderExtra1[2];
-       ShaderProgram* __pTextureShaderExtra2[2];
-       ShaderProgram* __pTextureShadeAlphaMask[2];
-       ShaderProgram* __pTextureShaderAlphaMaskExtra1[2];
-       ShaderProgram* __pTextureShaderAlphaMaskExtra2[2];
+       ShaderProgram* __pColorShader[MAX_SHADER_PROGRAM_INDEX];
+       ShaderProgram* __pUniformColorShader[MAX_SHADER_PROGRAM_INDEX];
+       ShaderProgram* __pTextureShader[MAX_SHADER_PROGRAM_INDEX];
+       ShaderProgram* __pTextureOpacityShader[MAX_SHADER_PROGRAM_INDEX];
+       ShaderProgram* __pLightShader[MAX_SHADER_PROGRAM_INDEX];
+       ShaderProgram* __pLightShaderWithoutTextures[MAX_SHADER_PROGRAM_INDEX];
+
+       ShaderProgram* __pTextureShaderExtra1[MAX_SHADER_PROGRAM_INDEX];
+       ShaderProgram* __pTextureShaderExtra2[MAX_SHADER_PROGRAM_INDEX];
+       ShaderProgram* __pTextureShadeAlphaMask[MAX_SHADER_PROGRAM_INDEX];
+       ShaderProgram* __pTextureShaderAlphaMaskExtra1[MAX_SHADER_PROGRAM_INDEX];
+       ShaderProgram* __pTextureShaderAlphaMaskExtra2[MAX_SHADER_PROGRAM_INDEX];
 /*
        ShaderProgram* __pColorShader;
        ShaderProgram* __pUniformColorShader;
index 74870e7..8241929 100644 (file)
@@ -193,6 +193,7 @@ _GlRenderManager::_RenderObject::GetShaderProgram(int type)
        bool alphaMask = false;
        bool extraSurface[2] = {false, false};
        bool skining = false;
+       ShaderProgramIndex shaderProgramIndex = SHADER_PROGRAM_INDEX_WHITHOUT_SKINING;
 ////////////////////////////////////////////////// Parsing input parameters
        if (type & SHADER_TYPE_UNIFORM_COLOR)
        {
@@ -258,15 +259,16 @@ _GlRenderManager::_RenderObject::GetShaderProgram(int type)
        if (type & SHADER_TYPE_SKINING)
        {
                skining = true;
+               shaderProgramIndex = SHADER_PROGRAM_INDEX_WHITH_SKINING;
        }
 /////////////////////////////////////////////////////
                if (u_color)
                {
-                       return _GlRenderManager::GetInstance()->__pGlContext->__pUniformColorShader[0 + static_cast<int>(skining)];
+                       return _GlRenderManager::GetInstance()->__pGlContext->__pUniformColorShader[shaderProgramIndex];
                }
                else if (color)
                {
-                       return _GlRenderManager::GetInstance()->__pGlContext->__pColorShader[0 + static_cast<int>(skining)];
+                       return _GlRenderManager::GetInstance()->__pGlContext->__pColorShader[shaderProgramIndex];
                }
                else if (texture && ! light_perPixel)
                {
@@ -274,52 +276,52 @@ _GlRenderManager::_RenderObject::GetShaderProgram(int type)
                        {
                                if (alphaMask)
                                {
-                                       return _GlRenderManager::GetInstance()->__pGlContext->__pTextureShaderAlphaMaskExtra2[0 + static_cast<int>(skining)];
+                                       return _GlRenderManager::GetInstance()->__pGlContext->__pTextureShaderAlphaMaskExtra2[shaderProgramIndex];
                                }
                                else
                                {
-                                       return _GlRenderManager::GetInstance()->__pGlContext->__pTextureShaderExtra2[0 + static_cast<int>(skining)];
+                                       return _GlRenderManager::GetInstance()->__pGlContext->__pTextureShaderExtra2[shaderProgramIndex];
                                }
                        }
                        else if(extraSurface[0])
                        {
                                if (alphaMask)
                                {
-                                       return _GlRenderManager::GetInstance()->__pGlContext->__pTextureShaderAlphaMaskExtra1[0 + static_cast<int>(skining)];
+                                       return _GlRenderManager::GetInstance()->__pGlContext->__pTextureShaderAlphaMaskExtra1[shaderProgramIndex];
                                }
                                else
                                {
-                                       return _GlRenderManager::GetInstance()->__pGlContext->__pTextureShaderExtra1[0 + static_cast<int>(skining)];
+                                       return _GlRenderManager::GetInstance()->__pGlContext->__pTextureShaderExtra1[shaderProgramIndex];
                                }
                        }
                        else if (alphaMask)
                        {
-                               return _GlRenderManager::GetInstance()->__pGlContext->__pTextureShadeAlphaMask[0 + static_cast<int>(skining)];
+                               return _GlRenderManager::GetInstance()->__pGlContext->__pTextureShadeAlphaMask[shaderProgramIndex];
                        }
                        else
                        {
                                if (!opacity)
                                {
-                                       return _GlRenderManager::GetInstance()->__pGlContext->__pTextureShader[0 + static_cast<int>(skining)];
+                                       return _GlRenderManager::GetInstance()->__pGlContext->__pTextureShader[shaderProgramIndex];
                                }
                                else
                                {
-                                       return _GlRenderManager::GetInstance()->__pGlContext->__pTextureOpacityShader[0 + static_cast<int>(skining)];
+                                       return _GlRenderManager::GetInstance()->__pGlContext->__pTextureOpacityShader[shaderProgramIndex];
                                }
                        }
                }
                else if (texture && light_perPixel)
                {
-                       return _GlRenderManager::GetInstance()->__pGlContext->__pLightShader[0 + static_cast<int>(skining)];
+                       return _GlRenderManager::GetInstance()->__pGlContext->__pLightShader[shaderProgramIndex];
                }
                else if (!texture && light_perPixel)
                {
-                       return _GlRenderManager::GetInstance()->__pGlContext->__pLightShaderWithoutTextures[0 + static_cast<int>(skining)];
+                       return _GlRenderManager::GetInstance()->__pGlContext->__pLightShaderWithoutTextures[shaderProgramIndex];
                }
                // WARNING : is null right? or return default shader program ?
                //return null;
                SysLog(NID_UI_ANIM, "Shader program is not selected. So RenderManager choose the default shader(color).");
-               return _GlRenderManager::GetInstance()->__pGlContext->__pColorShader[0 + static_cast<int>(skining)];
+               return _GlRenderManager::GetInstance()->__pGlContext->__pColorShader[shaderProgramIndex];
 }
 
 void
index d91d0e0..7c7f9c4 100644 (file)
@@ -89,7 +89,7 @@ _GlContext::_GlContext(Handle nativeDisplay, EGLNativeWindowType window)
 {
        memset(__textureId, 0, sizeof(unsigned int) * (EXTRA_SURFACE_MAX+2));
 
-       for (int i = 0; i < 2; i++)
+       for (int i = 0; i < MAX_SHADER_PROGRAM_INDEX; i++)
        {
                __pColorShader[i] = null;
 
@@ -375,7 +375,7 @@ _GlContext::InitGL(void)
 void
 _GlContext::TerminateGL(void)
 {
-       for (int i = 0; i < 2; i++)
+       for (int i = 0; i < MAX_SHADER_PROGRAM_INDEX; i++)
        {
                delete __pColorShader[i];
                __pColorShader[i] = null;