X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Feffects-view%2Feffects-view-impl.cpp;h=24f82bc5c11112eefb475b068979b9bf9538a732;hp=d0d019ed813d9f7a3b28debf309b0c1e5a708b9c;hb=831bd867847c32ac74b56c08757b0bed74f73238;hpb=3d485e1b28628f0c6e1c5489c2dc31a65ac7ec52 diff --git a/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp b/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp index d0d019e..24f82bc 100644 --- a/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp +++ b/dali-toolkit/internal/controls/effects-view/effects-view-impl.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. @@ -26,12 +26,17 @@ #include #include #include +#include +#include // INTERNAL INCLUDES +#include #include +#include #include #include #include +#include namespace Dali { @@ -61,6 +66,8 @@ const float ARBITRARY_FIELD_OF_VIEW = Math::PI / 4.0f; const Vector4 EFFECTS_VIEW_DEFAULT_BACKGROUND_COLOR( 1.0f, 1.0f, 1.0f, 0.0 ); const bool EFFECTS_VIEW_REFRESH_ON_DEMAND(false); +#define DALI_COMPOSE_SHADER(STR) #STR + const char* EFFECTS_VIEW_VERTEX_SOURCE = DALI_COMPOSE_SHADER( attribute mediump vec2 aPosition;\n varying mediump vec2 vTexCoord;\n @@ -130,7 +137,7 @@ Toolkit::EffectsView EffectsView::New() } EffectsView::EffectsView() -: Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ), +: Control( ControlBehaviour( CONTROL_BEHAVIOUR_DEFAULT ) ), mChildrenRoot(Actor::New()), mBackgroundColor( EFFECTS_VIEW_DEFAULT_BACKGROUND_COLOR ), mTargetSize( Vector2::ZERO ), @@ -155,8 +162,6 @@ void EffectsView::SetType( Toolkit::EffectsView::EffectType type ) RemoveFilters(); Actor self = Self(); - Property::Map rendererMap; - rendererMap.Insert( "rendererType", "image" ); switch( type ) { @@ -179,11 +184,13 @@ void EffectsView::SetType( Toolkit::EffectsView::EffectType type ) } } + FrameBufferImage dummyImage = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat ); + + InitializeVisual( self, mVisualPostFilter, dummyImage ); Property::Map customShader; - customShader[ "vertexShader" ] = EFFECTS_VIEW_VERTEX_SOURCE; - customShader[ "fragmentShader" ] = EFFECTS_VIEW_FRAGMENT_SOURCE; - rendererMap[ "shader" ] = customShader; - Toolkit::RendererFactory::Get().ResetRenderer( mRendererPostFilter, self, rendererMap ); + customShader[ Toolkit::Visual::Shader::Property::VERTEX_SHADER ] = EFFECTS_VIEW_VERTEX_SOURCE; + customShader[ Toolkit::Visual::Shader::Property::FRAGMENT_SHADER ] = EFFECTS_VIEW_FRAGMENT_SOURCE; + Toolkit::GetImplementation( mVisualPostFilter ).SetCustomShader( customShader ); mEffectType = type; } @@ -297,13 +304,13 @@ void EffectsView::OnStageConnection( int depth ) Enable(); Actor self = Self(); - if( mRendererPostFilter ) + if( mVisualPostFilter ) { - mRendererPostFilter.SetOnStage( self ); + mVisualPostFilter.SetOnStage( self ); } - if( mRendererForChildren ) + if( mVisualForChildren ) { - mRendererForChildren.SetOnStage( self ); + mVisualForChildren.SetOnStage( self ); } } @@ -318,13 +325,13 @@ void EffectsView::OnStageDisconnection() } Actor self = Self(); - if( mRendererPostFilter ) + if( mVisualPostFilter ) { - mRendererPostFilter.SetOffStage( self ); + mVisualPostFilter.SetOffStage( self ); } - if( mRendererForChildren ) + if( mVisualForChildren ) { - mRendererForChildren.SetOffStage( self ); + mVisualForChildren.SetOffStage( self ); } Control::OnStageDisconnection(); @@ -427,16 +434,17 @@ void EffectsView::AllocateResources() mLastSize = mTargetSize; SetupCameras(); - Toolkit::RendererFactory rendererFactory = Toolkit::RendererFactory::Get(); - Actor self = Self(); + Actor self( Self() ); - mImageForChildren = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat, Dali::Image::UNUSED ); - rendererFactory.ResetRenderer(mRendererForChildren, self, mImageForChildren); - mRendererForChildren.SetDepthIndex( DepthIndex::CONTENT+1 ); + mImageForChildren = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat ); + InitializeVisual( self, mVisualForChildren, mImageForChildren ); + mVisualForChildren.SetDepthIndex( DepthIndex::CONTENT+1 ); - mImagePostFilter = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat, Dali::Image::UNUSED ); - rendererFactory.ResetRenderer(mRendererPostFilter, self, mImagePostFilter); - mRendererPostFilter.SetDepthIndex( DepthIndex::CONTENT ); + mImagePostFilter = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat ); + TextureSet textureSet = TextureSet::New(); + TextureSetImage( textureSet, 0u, mImagePostFilter ); + self.GetRendererAt( 0 ).SetTextures( textureSet ); + mVisualPostFilter.SetDepthIndex( DepthIndex::CONTENT ); SetupFilters(); }