Dont bind effect texture unless its actually used 23/35423/2
authorKimmo Hoikka <kimmo.hoikka@samsung.com>
Fri, 13 Feb 2015 13:47:11 +0000 (13:47 +0000)
committerKimmo Hoikka <kimmo.hoikka@samsung.com>
Fri, 13 Feb 2015 13:48:31 +0000 (05:48 -0800)
Change-Id: Ie7338dee44422b3a6929fabc8283018e27682296

dali/internal/render/shaders/shader.cpp

index 5d20a67..7c1bdc2 100644 (file)
@@ -314,16 +314,16 @@ void Shader::SetUniforms( Context& context,
 
   if( mTexture )
   {
-    // got effect texture, bind it to texture unit 1
-    mTextureCache->BindTexture( mTexture, mRenderTextureId, GL_TEXTURE_2D, TEXTURE_UNIT_SHADER);
-
-    // Just apply the default sampling options for now
-    mTexture->ApplySampler( TEXTURE_UNIT_SHADER, ImageSampler::PackBitfield( FilterMode::DEFAULT, FilterMode::DEFAULT ) );
-
-    // get effect sampler uniform
+    // if effect sampler uniform used by the program ?
     const GLint loc = program.GetUniformLocation( Program::UNIFORM_EFFECT_SAMPLER );
     if( Program::UNIFORM_UNKNOWN != loc )
     {
+      // got effect texture, bind it to texture unit 1
+      mTextureCache->BindTexture( mTexture, mRenderTextureId, GL_TEXTURE_2D, TEXTURE_UNIT_SHADER);
+
+      // Apply the default sampling options for now
+      mTexture->ApplySampler( TEXTURE_UNIT_SHADER, ImageSampler::PackBitfield( FilterMode::DEFAULT, FilterMode::DEFAULT ) );
+
       DALI_PRINT_UNIFORM( debugStream, bufferIndex, "sEffect", TEXTURE_UNIT_SHADER );
       // set the uniform
       program.SetUniform1i( loc, TEXTURE_UNIT_SHADER );