Fix BloomView bug
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / bloom-view / bloom-view-impl.cpp
index 8c167ab..c05e954 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
@@ -34,7 +34,7 @@
 // INTERNAL INCLUDES
 #include <dali-toolkit/devel-api/controls/gaussian-blur-view/gaussian-blur-view.h>
 #include <dali-toolkit/devel-api/controls/bloom-view/bloom-view.h>
-#include <dali-toolkit/devel-api/visual-factory/devel-visual-properties.h>
+#include <dali-toolkit/public-api/visuals/visual-properties.h>
 #include <dali-toolkit/internal/controls/gaussian-blur-view/gaussian-blur-view-impl.h>
 
 namespace Dali
@@ -277,8 +277,6 @@ void BloomView::OnInitialize()
 
 void BloomView::OnSizeSet(const Vector3& targetSize)
 {
-  Control::OnSizeSet( targetSize );
-
   mTargetSize = Vector2(targetSize);
   mChildrenRoot.SetSize(targetSize);
   mCompositeImageView.SetSize(targetSize);
@@ -300,16 +298,18 @@ void BloomView::OnSizeSet(const Vector3& targetSize)
     Deactivate();
     Activate();
   }
+
+  Control::OnSizeSet( targetSize );
 }
 
 void BloomView::OnChildAdd( Actor& child )
 {
-  Control::OnChildAdd( child );
-
   if( child != mChildrenRoot && child != mInternalRoot)
   {
     mChildrenRoot.Add( child );
   }
+
+  Control::OnChildAdd( child );
 }
 
 void BloomView::OnChildRemove( Actor& child )
@@ -358,6 +358,7 @@ void BloomView::AllocateResources()
     mGaussianBlurView.SetSize(mTargetSize);
     GetImpl(mGaussianBlurView).AllocateResources();
 
+    mGaussianBlurView.SetVisible( true );
 
     //////////////////////////////////////////////////////
     // Create render targets
@@ -378,7 +379,7 @@ void BloomView::AllocateResources()
     Property::Map customShader;
     customShader[ Toolkit::Visual::Shader::Property::FRAGMENT_SHADER ] = BLOOM_EXTRACT_FRAGMENT_SOURCE;
     Property::Map visualMap;
-    visualMap.Insert( Toolkit::VisualProperty::SHADER, customShader );
+    visualMap.Insert( Toolkit::Visual::Property::SHADER, customShader );
     mBloomExtractImageView.SetProperty( Toolkit::ImageView::Property::IMAGE, visualMap );
 
     // set GaussianBlurView to blur our extracted bloom
@@ -388,7 +389,7 @@ void BloomView::AllocateResources()
     mCompositeImageView.SetImage( mRenderTargetForRenderingChildren );
     // Create shader used to composite bloom and original image to output render target
     customShader[ Toolkit::Visual::Shader::Property::FRAGMENT_SHADER ] = COMPOSITE_FRAGMENT_SOURCE;
-    visualMap[ Toolkit::VisualProperty::SHADER ] = customShader;
+    visualMap[ Toolkit::Visual::Property::SHADER ] = customShader;
     mCompositeImageView.SetProperty( Toolkit::ImageView::Property::IMAGE, visualMap );
     TextureSet textureSet = mCompositeImageView.GetRendererAt(0).GetTextures();
     TextureSetImage( textureSet, 1u, mBlurExtractTarget );
@@ -458,9 +459,18 @@ void BloomView::Deactivate()
   // stop render tasks processing
   // Note: render target resources are automatically freed since we set the Image::Unused flag
   RemoveRenderTasks();
+
   mRenderTargetForRenderingChildren.Reset();
   mBloomExtractTarget.Reset();
   mOutputRenderTarget.Reset();
+
+  // Reset children
+  mBloomExtractImageView.SetImage( "" );
+  mTargetImageView.SetImage( "" );
+  mCompositeImageView.SetImage( "" );
+
+  mGaussianBlurView.SetVisible( false );
+
   mActivated = false;
 }