X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ffilters%2Femboss-filter.cpp;h=6350a1d8515367001c143eefc17f639fb972095f;hb=518c9e7b5de69ff2401dffa6235a88e2dcf2bb72;hp=e44877e75eeac08ba1423601049e28deb8132392;hpb=b154e74ada0754b5b47adcdffcf4a70df43ebbec;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/filters/emboss-filter.cpp b/dali-toolkit/internal/filters/emboss-filter.cpp index e44877e..6350a1d 100644 --- a/dali-toolkit/internal/filters/emboss-filter.cpp +++ b/dali-toolkit/internal/filters/emboss-filter.cpp @@ -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. @@ -24,10 +24,14 @@ #include #include #include -#include -#include +#include +#include // INTERNAL INCLUDES +#include +#include +#include +#include namespace Dali { @@ -87,32 +91,32 @@ 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::DevelVisual::Property::SHADER, customShader ); // create actor to render input with applied emboss effect - mActorForInput1 = Toolkit::ImageView::New( mInputImage ); + mActorForInput1 = Toolkit::ImageView::New(mInputImage); mActorForInput1.SetParentOrigin( ParentOrigin::CENTER ); mActorForInput1.SetSize(mTargetSize); Vector2 textureScale( 1.5f/mTargetSize.width, 1.5f/mTargetSize.height); 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 ); + mActorForInput2 = Toolkit::ImageView::New(mInputImage); mActorForInput2.SetParentOrigin( ParentOrigin::CENTER ); mActorForInput2.SetSize(mTargetSize); 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(); @@ -120,20 +124,16 @@ void EmbossFilter::Enable() mActorForComposite.SetSize(mTargetSize); mActorForComposite.SetColor( Color::BLACK ); - customShader[ "fragmentShader" ] = COMPOSITE_FRAGMENT_SOURCE; - rendererMap[ "shader"] = customShader; - Toolkit::RendererFactory rendererFactory = Toolkit::RendererFactory::Get(); - mRendererForEmboss1 = rendererFactory.GetControlRenderer( mImageForEmboss1 ); - mRendererForEmboss2 = rendererFactory.GetControlRenderer( mImageForEmboss2 ); - // set COMPOSITE custom shader to both renderers - rendererFactory.ResetRenderer( mRendererForEmboss1, mActorForComposite, rendererMap); - rendererFactory.ResetRenderer( mRendererForEmboss2, mActorForComposite, rendererMap); - // apply renderers to the actor - mRendererForEmboss1.SetOnStage( mActorForComposite ); - mRendererForEmboss2.SetOnStage( mActorForComposite ); + customShader[ Toolkit::Visual::Shader::Property::FRAGMENT_SHADER ] = COMPOSITE_FRAGMENT_SOURCE; + + mRootActor.Add( mActorForComposite ); + + Internal::InitializeVisual( mActorForComposite, mVisualForEmboss1, mImageForEmboss1 ); + Toolkit::GetImplementation( mVisualForEmboss1 ).SetCustomShader( customShader ); mActorForComposite.GetRendererAt(0).RegisterProperty( COLOR_UNIFORM_NAME, Color::BLACK ); + Internal::InitializeVisual( mActorForComposite, mVisualForEmboss2, mImageForEmboss2 ); + Toolkit::GetImplementation( mVisualForEmboss2 ).SetCustomShader( customShader ); mActorForComposite.GetRendererAt(1).RegisterProperty( COLOR_UNIFORM_NAME, Color::WHITE ); - mRootActor.Add( mActorForComposite ); SetupCamera(); CreateRenderTasks(); @@ -163,10 +163,10 @@ void EmbossFilter::Disable() if( mActorForComposite ) { - mRendererForEmboss1.SetOffStage( mActorForComposite ); - mRendererForEmboss2.SetOffStage( mActorForComposite ); - mRendererForEmboss1.Reset(); - mRendererForEmboss2.Reset(); + Toolkit::GetImplementation(mVisualForEmboss1).SetOffStage( mActorForComposite ); + Toolkit::GetImplementation(mVisualForEmboss2).SetOffStage( mActorForComposite ); + mVisualForEmboss1.Reset(); + mVisualForEmboss2.Reset(); mRootActor.Remove( mActorForComposite ); mActorForComposite.Reset(); } @@ -182,6 +182,11 @@ void EmbossFilter::Disable() taskList.RemoveTask(mRenderTaskForEmboss2); } + if( mRenderTaskForOutput ) + { + taskList.RemoveTask( mRenderTaskForOutput ); + } + mRootActor.Reset(); } }