+void SuperBlurView::SetShaderEffect( Toolkit::ControlRenderer& renderer )
+{
+ Property::Map shaderMap;
+ std::stringstream verterShaderString;
+ shaderMap[ "fragmentShader" ] = FRAGMENT_SHADER;
+
+ Internal::ControlRenderer& rendererImpl = GetImplementation( renderer );
+ rendererImpl.SetCustomShader( shaderMap );
+}
+
+void SuperBlurView::OnSizeSet( const Vector3& targetSize )
+{
+ if( mTargetSize != Vector2(targetSize) )
+ {
+ mTargetSize = Vector2(targetSize);
+
+ Toolkit::RendererFactory rendererFactory = Toolkit::RendererFactory::Get();
+ Actor self = Self();
+ for( unsigned int i = 1; i <= mBlurLevels; i++ )
+ {
+ float exponent = static_cast<float>(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 );
+ InitializeControlRenderer( self, mRenderers[i], mBlurredImage[i - 1] );
+ mRenderers[ i ].SetDepthIndex( i );
+ SetShaderEffect( mRenderers[ i ] );
+ }
+
+ if( mInputImage )
+ {
+ SetImage( mInputImage );
+ }
+
+ if( self.OnStage() )
+ {
+ for( unsigned int i = 1; i <= mBlurLevels; i++ )
+ {
+ mRenderers[i].SetOnStage( self );
+ }
+ }
+ }
+}