Revert bug fix in renderer
[platform/core/uifw/dali-core.git] / dali / internal / render / renderers / render-renderer.cpp
index 2c44c52..5400c12 100644 (file)
@@ -117,9 +117,10 @@ Renderer* Renderer::New( SceneGraph::RenderDataProvider* dataProvider,
                          FaceCullingMode::Type faceCullingMode,
                          bool preMultipliedAlphaEnabled,
                          DepthWriteMode::Type depthWriteMode,
+                         DepthTestMode::Type depthTestMode,
                          DepthFunction::Type depthFunction )
 {
-  return new Renderer( dataProvider, geometry, blendingBitmask, blendColor, faceCullingMode, preMultipliedAlphaEnabled, depthWriteMode, depthFunction );
+  return new Renderer( dataProvider, geometry, blendingBitmask, blendColor, faceCullingMode, preMultipliedAlphaEnabled, depthWriteMode, depthTestMode, depthFunction );
 }
 
 Renderer::Renderer( SceneGraph::RenderDataProvider* dataProvider,
@@ -129,6 +130,7 @@ Renderer::Renderer( SceneGraph::RenderDataProvider* dataProvider,
                     FaceCullingMode::Type faceCullingMode,
                     bool preMultipliedAlphaEnabled,
                     DepthWriteMode::Type depthWriteMode,
+                    DepthTestMode::Type depthTestMode,
                     DepthFunction::Type depthFunction )
 : mRenderDataProvider( dataProvider ),
   mContext(NULL),
@@ -138,11 +140,12 @@ Renderer::Renderer( SceneGraph::RenderDataProvider* dataProvider,
   mUniformIndexMap(),
   mAttributesLocation(),
   mBlendingOptions(),
-  mFaceCullingMode( faceCullingMode  ),
-  mDepthWriteMode( depthWriteMode ),
+  mFaceCullingMode( faceCullingMode ),
   mDepthFunction( depthFunction ),
   mIndexedDrawFirstElement( 0 ),
   mIndexedDrawElementsCount( 0 ),
+  mDepthWriteMode( depthWriteMode ),
+  mDepthTestMode( depthTestMode ),
   mUpdateAttributesLocation( true ),
   mPremultipledAlphaEnabled( preMultipliedAlphaEnabled )
 {
@@ -359,6 +362,7 @@ bool Renderer::BindTextures( Context& context, SceneGraph::TextureCache& texture
   std::vector<Render::Sampler*>& samplers( mRenderDataProvider->GetSamplers() );
 
   std::vector<Render::Texture>& textures( mRenderDataProvider->GetTextures() );
+  GLint uniformLocation(-1);
   for( size_t i(0); result && i<textures.size(); ++i )
   {
     ResourceId textureId = textures[i].GetTextureId();
@@ -371,6 +375,7 @@ bool Renderer::BindTextures( Context& context, SceneGraph::TextureCache& texture
       {
         GLint uniformLocation;
 
+        //TODO : This is a bug, result variable is being shadowed. Fix it!
         bool result = program.GetSamplerUniformLocation( i, uniformLocation );
         if( result && Program::UNIFORM_UNKNOWN != uniformLocation )
         {
@@ -392,15 +397,15 @@ bool Renderer::BindTextures( Context& context, SceneGraph::TextureCache& texture
   }
 
   std::vector<Render::NewTexture*>& newTextures( mRenderDataProvider->GetNewTextures() );
-  GLint uniformLocation(0);
   for( size_t i(0); result && i<newTextures.size(); ++i )
   {
     if( newTextures[i] )
     {
-      bool result = program.GetSamplerUniformLocation( i, uniformLocation );
+      result = program.GetSamplerUniformLocation( i, uniformLocation ) &&
+               newTextures[i]->Bind(context, textureUnit, samplers[i] );
+
       if( result )
       {
-        newTextures[i]->Bind(context, textureUnit, samplers[i] );
         program.SetUniform1i( uniformLocation, textureUnit );
         ++textureUnit;
       }
@@ -445,11 +450,21 @@ void Renderer::SetDepthWriteMode( DepthWriteMode::Type depthWriteMode )
   mDepthWriteMode = depthWriteMode;
 }
 
+void Renderer::SetDepthTestMode( DepthTestMode::Type depthTestMode )
+{
+  mDepthTestMode = depthTestMode;
+}
+
 DepthWriteMode::Type Renderer::GetDepthWriteMode() const
 {
   return mDepthWriteMode;
 }
 
+DepthTestMode::Type Renderer::GetDepthTestMode() const
+{
+  return mDepthTestMode;
+}
+
 void Renderer::SetDepthFunction( DepthFunction::Type depthFunction )
 {
   mDepthFunction = depthFunction;