+ // Set up blur-two-pass custom shader
+ std::ostringstream fragmentSource;
+ fragmentSource << "#define NUM_SAMPLES " << kernelSize << "\n";
+ fragmentSource << BLUR_TWO_PASS_FRAGMENT_SOURCE;
+
+ Property::Map customShader;
+ customShader[ "fragmentShader" ] = fragmentSource.str();
+ Property::Map rendererMap;
+ rendererMap.Insert( "shader", customShader );
+ mActorForInput.SetProperty( Toolkit::ImageView::Property::IMAGE, rendererMap );
+ mActorForHorz.SetProperty( Toolkit::ImageView::Property::IMAGE, rendererMap );
+
+ // Set up blend-two-image custom shader
+ customShader[ "fragmentShader" ] = BLEND_TWO_IMAGES_FRAGMENT_SOURCE;
+ rendererMap[ "shader"] = customShader;
+ mActorForBlending.SetProperty( Toolkit::ImageView::Property::IMAGE, rendererMap );
+
+ mRootActor.Add( mActorForInput );
+ mRootActor.Add( mActorForHorz );
+ mRootActor.Add( mActorForBlending );
+
+ // Add effect texture to blend-two-image custom shader
+ Material material = mActorForBlending.GetRendererAt(0).GetMaterial();
+ int textureIndex = material.GetTextureIndex( EFFECT_IMAGE_NAME );
+ if( textureIndex == -1 )
+ {
+ material.AddTexture( mInputImage, EFFECT_IMAGE_NAME );
+ }
+ else
+ {
+ material.SetTextureImage( textureIndex, mInputImage );
+ }