[Tizen] Revert "Support multiple window rendering"
[platform/core/uifw/dali-core.git] / dali / internal / event / rendering / texture-set-impl.cpp
index 428ab9e..349eaa6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 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.
@@ -20,7 +20,7 @@
 
 // INTERNAL INCLUDES
 #include <dali/public-api/object/type-registry.h>
-#include <dali/internal/event/common/object-impl-helper.h> // Dali::Internal::ObjectHelper
+#include <dali/internal/event/common/stage-impl.h>
 #include <dali/internal/update/manager/update-manager.h>
 #include <dali/internal/update/rendering/scene-graph-texture-set.h>
 
@@ -36,72 +36,34 @@ TextureSetPtr TextureSet::New()
   return textureSet;
 }
 
-void TextureSet::SetImage( size_t index, ImagePtr image )
+void TextureSet::SetTexture( uint32_t index, TexturePtr texture )
 {
-  if( !mNewTextures.empty() )
+  uint32_t textureCount = static_cast<uint32_t>( mTextures.size() );
+  if( index >= textureCount )
   {
-    DALI_LOG_ERROR( "Error: Cannot mix images and textures in the same TextureSet\n");
-    return;
-  }
+    mTextures.resize(index + 1);
 
-  size_t textureCount( mImages.size() );
-  if( index < textureCount )
-  {
-    if( mImages[index] && mOnStage )
+    bool samplerExist = true;
+    if( mSamplers.size() < index + 1 )
     {
-      mImages[index]->Disconnect();
+      mSamplers.resize( index + 1 );
+      samplerExist = false;
     }
-  }
-  else
-  {
-    mImages.resize(index + 1);
-    mSamplers.resize(index + 1);
-    for( size_t i(textureCount); i<=index; ++i )
-    {
-      mImages[i] = NULL;
-      mSamplers[i] = NULL;
-    }
-  }
-  mImages[index] = image;
 
-
-  if( image )
-  {
-    if( mOnStage )
+    for( uint32_t i(textureCount); i<=index; ++i )
     {
-      image->Connect();
-    }
-    SceneGraph::SetImageMessage( mEventThreadServices, *mSceneObject, index, image->GetResourceId() );
-  }
-  else
-  {
-    SceneGraph::SetImageMessage( mEventThreadServices, *mSceneObject, index, Integration::InvalidResourceId );
-  }
-}
-
-void TextureSet::SetTexture( size_t index, NewTexturePtr texture )
-{
-  if( !mImages.empty() )
-  {
-    DALI_LOG_ERROR( "Error: Cannot mix images and textures in the same texture set\n");
-    return;
-  }
+      mTextures[i] = NULL;
 
-  size_t textureCount( mNewTextures.size() );
-  if( index >= textureCount )
-  {
-    mNewTextures.resize(index + 1);
-    mSamplers.resize(index + 1);
-    for( size_t i(textureCount); i<=index; ++i )
-    {
-      mNewTextures[i] = NULL;
-      mSamplers[i] = NULL;
+      if( !samplerExist )
+      {
+        mSamplers[i] = NULL;
+      }
     }
   }
 
-  mNewTextures[index]= texture;
+  mTextures[index]= texture;
 
-  Render::NewTexture* renderTexture(0);
+  Render::Texture* renderTexture(0);
   if( texture )
   {
     renderTexture = texture->GetRenderObject();
@@ -110,27 +72,12 @@ void TextureSet::SetTexture( size_t index, NewTexturePtr texture )
   SceneGraph::SetTextureMessage( mEventThreadServices, *mSceneObject, index, renderTexture );
 }
 
-Image* TextureSet::GetImage( size_t index ) const
+Texture* TextureSet::GetTexture( uint32_t index ) const
 {
-  Image* result(0);
-  if( index < mImages.size() )
+  Texture* result(0);
+  if( index < mTextures.size() )
   {
-    result = mImages[index].Get();
-  }
-  else
-  {
-    DALI_LOG_ERROR( "Error: Invalid index to TextureSet::GetImage\n");
-  }
-
-  return result;
-}
-
-NewTexture* TextureSet::GetTexture( size_t index ) const
-{
-  NewTexture* result(0);
-  if( index < mNewTextures.size() )
-  {
-    result = mNewTextures[index].Get();
+    result = mTextures[index].Get();
   }
   else
   {
@@ -140,19 +87,15 @@ NewTexture* TextureSet::GetTexture( size_t index ) const
   return result;
 }
 
-void TextureSet::SetSampler( size_t index, SamplerPtr sampler )
+void TextureSet::SetSampler( uint32_t index, SamplerPtr sampler )
 {
-  size_t samplerCount( mSamplers.size() );
+  uint32_t samplerCount = static_cast<uint32_t>( mSamplers.size() );
   if( samplerCount < index + 1  )
   {
     mSamplers.resize( index + 1 );
-    mNewTextures.resize( index + 1 );
-    mImages.resize( index + 1 );
-    for( size_t i(samplerCount); i<=index; ++i )
+    for( uint32_t i = samplerCount; i<=index; ++i )
     {
-      mImages[i] = NULL;
       mSamplers[i] = NULL;
-      mNewTextures[i] = NULL;
     }
   }
 
@@ -167,7 +110,7 @@ void TextureSet::SetSampler( size_t index, SamplerPtr sampler )
   SceneGraph::SetSamplerMessage( mEventThreadServices, *mSceneObject, index, renderSampler );
 }
 
-Sampler* TextureSet::GetSampler( size_t index ) const
+Sampler* TextureSet::GetSampler( uint32_t index ) const
 {
   Sampler* result(0);
   if( index < mSamplers.size() )
@@ -182,9 +125,9 @@ Sampler* TextureSet::GetSampler( size_t index ) const
   return result;
 }
 
-size_t TextureSet::GetTextureCount() const
+uint32_t TextureSet::GetTextureCount() const
 {
-  return mSamplers.size();
+  return static_cast<uint32_t>( mTextures.size() );
 }
 
 const SceneGraph::TextureSet* TextureSet::GetTextureSetSceneObject() const
@@ -192,46 +135,9 @@ const SceneGraph::TextureSet* TextureSet::GetTextureSetSceneObject() const
   return mSceneObject;
 }
 
-bool TextureSet::OnStage() const
-{
-  return mOnStage;
-}
-
-void TextureSet::Connect()
-{
-  mOnStage = true;
-
-  for( size_t i(0); i<mImages.size(); ++i )
-  {
-    if( mImages[i] )
-    {
-      mImages[i]->Connect();
-      SceneGraph::SetImageMessage( mEventThreadServices, *mSceneObject, i, mImages[i]->GetResourceId() );
-    }
-    else
-    {
-      SceneGraph::SetImageMessage( mEventThreadServices, *mSceneObject, i, Integration::InvalidResourceId );
-    }
-  }
-}
-
-void TextureSet::Disconnect()
-{
-  for( size_t i(0); i<mImages.size(); ++i )
-  {
-    if( mImages[i] )
-    {
-      mImages[i]->Disconnect();
-    }
-  }
-
-  mOnStage = false;
-}
-
 TextureSet::TextureSet()
 :mEventThreadServices( *Stage::GetCurrent() ),
- mSceneObject( NULL ),
- mOnStage( false )
+ mSceneObject( NULL )
 {
 }
 
@@ -240,7 +146,8 @@ void TextureSet::Initialize()
   SceneGraph::UpdateManager& updateManager = mEventThreadServices.GetUpdateManager();
 
   mSceneObject = SceneGraph::TextureSet::New();
-  AddTextureSetMessage( updateManager, *mSceneObject );
+  OwnerPointer< SceneGraph::TextureSet > transferOwnership( mSceneObject );
+  AddTextureSetMessage( updateManager, transferOwnership );
 }
 
 TextureSet::~TextureSet()