Emboss filter not to use Texture Set explictly
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / filters / emboss-filter.cpp
index c96d1bc..849e81b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2016 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.
 #include <dali/public-api/common/stage.h>
 #include <dali/public-api/object/property-map.h>
 #include <dali/public-api/render-tasks/render-task-list.h>
-#include <dali/devel-api/rendering/renderer.h>
-#include <dali-toolkit/devel-api/controls/renderer-factory/renderer-factory.h>
+#include <dali/public-api/rendering/renderer.h>
+#include <dali/devel-api/images/texture-set-image.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
+#include <dali-toolkit/devel-api/visual-factory/devel-visual-properties.h>
+#include <dali-toolkit/internal/visuals/visual-base-impl.h>
 
 namespace Dali
 {
@@ -85,13 +90,13 @@ EmbossFilter::~EmbossFilter()
 
 void EmbossFilter::Enable()
 {
-  mImageForEmboss1 = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat, Image::UNUSED );
-  mImageForEmboss2 = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat, Image::UNUSED );
+  mImageForEmboss1 = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat );
+  mImageForEmboss2 = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat );
 
   Property::Map customShader;
-  customShader[ "fragmentShader" ] = EMBOSS_FRAGMENT_SOURCE;
-  Property::Map rendererMap;
-  rendererMap.Insert( "shader", customShader );
+  customShader[ Toolkit::Visual::Shader::Property::FRAGMENT_SHADER ] = EMBOSS_FRAGMENT_SOURCE;
+  Property::Map visualMap;
+  visualMap.Insert( Toolkit::VisualProperty::SHADER, customShader );
 
   // create actor to render input with applied emboss effect
   mActorForInput1 = Toolkit::ImageView::New(mInputImage);
@@ -101,7 +106,7 @@ void EmbossFilter::Enable()
   mActorForInput1.RegisterProperty( TEX_SCALE_UNIFORM_NAME, textureScale );
   mActorForInput1.RegisterProperty( COEFFICIENT_UNIFORM_NAME, Vector3( 2.f, -1.f, -1.f ) );
   // set EMBOSS custom shader
-  mActorForInput1.SetProperty( Toolkit::ImageView::Property::IMAGE, rendererMap );
+  mActorForInput1.SetProperty( Toolkit::ImageView::Property::IMAGE, visualMap );
   mRootActor.Add( mActorForInput1 );
 
   mActorForInput2 = Toolkit::ImageView::New(mInputImage);
@@ -110,7 +115,7 @@ void EmbossFilter::Enable()
   mActorForInput2.RegisterProperty( TEX_SCALE_UNIFORM_NAME, textureScale );
   mActorForInput2.RegisterProperty( COEFFICIENT_UNIFORM_NAME, Vector3( -1.f, -1.f, 2.f ) );
   // set EMBOSS custom shader
-  mActorForInput2.SetProperty( Toolkit::ImageView::Property::IMAGE, rendererMap );
+  mActorForInput2.SetProperty( Toolkit::ImageView::Property::IMAGE, visualMap );
   mRootActor.Add( mActorForInput2 );
 
   mActorForComposite = Actor::New();
@@ -118,23 +123,15 @@ void EmbossFilter::Enable()
   mActorForComposite.SetSize(mTargetSize);
   mActorForComposite.SetColor( Color::BLACK );
 
-  customShader[ "fragmentShader" ] = COMPOSITE_FRAGMENT_SOURCE;
-  rendererMap[ "shader"] = customShader;
-  rendererMap[ "rendererType"] = "image";
+  customShader[ Toolkit::Visual::Shader::Property::FRAGMENT_SHADER ] = COMPOSITE_FRAGMENT_SOURCE;
 
   mRootActor.Add( mActorForComposite );
 
-  InitializeControlRenderer( mActorForComposite, mRendererForEmboss1, rendererMap );
-  InitializeControlRenderer( mActorForComposite, mRendererForEmboss2, rendererMap );
-
-  TextureSet textureSet1 = TextureSet::New();
-  textureSet1.SetImage( 0, mImageForEmboss1 );
-  mActorForComposite.GetRendererAt(0).SetTextures( textureSet1 );
+  InitializeVisual( mActorForComposite, mVisualForEmboss1, mImageForEmboss1 );
+  Toolkit::GetImplementation( mVisualForEmboss1 ).SetCustomShader( customShader );
   mActorForComposite.GetRendererAt(0).RegisterProperty( COLOR_UNIFORM_NAME, Color::BLACK );
-
-  TextureSet textureSet2 = TextureSet::New();
-  textureSet2.SetImage( 0, mImageForEmboss2 );
-  mActorForComposite.GetRendererAt(1).SetTextures( textureSet2 );
+  InitializeVisual( mActorForComposite, mVisualForEmboss2, mImageForEmboss2 );
+  Toolkit::GetImplementation( mVisualForEmboss2 ).SetCustomShader( customShader );
   mActorForComposite.GetRendererAt(1).RegisterProperty( COLOR_UNIFORM_NAME, Color::WHITE );
 
   SetupCamera();
@@ -165,10 +162,10 @@ void EmbossFilter::Disable()
 
     if( mActorForComposite )
     {
-      mRendererForEmboss1.SetOffStage( mActorForComposite );
-      mRendererForEmboss2.SetOffStage( mActorForComposite );
-      mRendererForEmboss1.Reset();
-      mRendererForEmboss2.Reset();
+      mVisualForEmboss1.SetOffStage( mActorForComposite );
+      mVisualForEmboss2.SetOffStage( mActorForComposite );
+      mVisualForEmboss1.Reset();
+      mVisualForEmboss2.Reset();
       mRootActor.Remove( mActorForComposite );
       mActorForComposite.Reset();
     }