X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fsuper-blur-view%2Fsuper-blur-view-impl.cpp;h=47a079015efefc86171e20c6a8d098266732f9fc;hp=8251b6953c8c9eddfe7240d408ce6192c91f8a69;hb=9fff4fa5534b563329dc8cd6c0598888f667ee39;hpb=397218b6cdd85915f5fe00fa9d3615dfa3867422 diff --git a/dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.cpp b/dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.cpp index 8251b69..47a0790 100644 --- a/dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.cpp +++ b/dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.cpp @@ -24,11 +24,14 @@ #include #include #include -#include +#include #include #include #include +// INTERNAL_INCLUDES +#include + namespace //Unnamed namespace { @@ -154,21 +157,6 @@ Toolkit::SuperBlurView SuperBlurView::New( unsigned int blurLevels ) void SuperBlurView::OnInitialize() { mBlurStrengthPropertyIndex = Self().RegisterProperty( "blurStrength", 0.f ); - - Property::Map rendererMap; - rendererMap.Insert( "rendererType", "imageRenderer"); - - Property::Map shaderMap; - std::stringstream verterShaderString; - shaderMap[ "fragmentShader" ] = FRAGMENT_SHADER; - rendererMap.Insert( "shader", shaderMap ); - - Toolkit::RendererFactory rendererFactory = Toolkit::RendererFactory::Get(); - for(unsigned int i=0; i<=mBlurLevels; i++) - { - mRenderers[i] = rendererFactory.GetControlRenderer( rendererMap ); - mRenderers[i].SetDepthIndex(i); - } } void SuperBlurView::SetImage(Image inputImage) @@ -181,8 +169,14 @@ void SuperBlurView::SetImage(Image inputImage) ClearBlurResource(); mInputImage = inputImage; - Actor self = Self(); - Toolkit::RendererFactory::Get().ResetRenderer( mRenderers[0], self, mInputImage ); + Actor self( Self() ); + InitializeControlRenderer( self, mRenderers[0], mInputImage ); + mRenderers[0].SetDepthIndex(0); + SetShaderEffect( mRenderers[0] ); + if( self.OnStage() ) + { + mRenderers[0].SetOnStage( self ); + } BlurImage( 0, inputImage); for(unsigned int i=1; i(i); mBlurredImage[i-1] = FrameBufferImage::New( mTargetSize.width/std::pow(2.f,exponent) , mTargetSize.height/std::pow(2.f,exponent), GAUSSIAN_BLUR_RENDER_TARGET_PIXEL_FORMAT, Dali::Image::NEVER ); - rendererFactory.ResetRenderer( mRenderers[i], self, mBlurredImage[i-1] ); + InitializeControlRenderer( self, mRenderers[i], mBlurredImage[i - 1] ); + mRenderers[ i ].SetDepthIndex( i ); + SetShaderEffect( mRenderers[ i ] ); } if( mInputImage ) @@ -289,7 +294,7 @@ void SuperBlurView::OnSizeSet( const Vector3& targetSize ) if( self.OnStage() ) { - for(unsigned int i=0; i<=mBlurLevels;i++) + for( unsigned int i = 1; i <= mBlurLevels; i++ ) { mRenderers[i].SetOnStage( self ); } @@ -307,10 +312,16 @@ void SuperBlurView::OnStageConnection( int depth ) } Actor self = Self(); - mRenderers[0].SetOnStage( self ); + if( mRenderers[0] ) + { + mRenderers[0].SetOnStage( self ); + } for(unsigned int i=1; i<=mBlurLevels;i++) { - mRenderers[i].SetOnStage( self ); + if( mRenderers[i] ) + { + mRenderers[i].SetOnStage( self ); + } Renderer renderer = self.GetRendererAt( i ); Property::Index index = renderer.RegisterProperty( ALPHA_UNIFORM_NAME, 0.f ); @@ -382,7 +393,7 @@ Property::Value SuperBlurView::GetProperty( BaseObject* object, Property::Index { Property::Map map; Image inputImage = superBlurViewImpl.GetImage(); - if( !inputImage ) + if( inputImage ) { Scripting::CreatePropertyMap( inputImage, map ); }