- mActorForHorz = ImageActor::New( mImageForHorz );
- mActorForHorz.SetParentOrigin( ParentOrigin::CENTER );
- mActorForHorz.SetSize(mTargetSize);
- mActorForHorz.ScaleBy( Vector3(1.0f, -1.0f, 1.0f) );
-
- mRootActor.Add( mActorForInput );
- mRootActor.Add( mActorForHorz );
- mRootActor.Add( mCameraActor );
-
- std::ostringstream fragmentSource;
- if( mDebugRender )
- {
- fragmentSource << "#define DEBUG_RENDER\n";
- }
- fragmentSource << SPREAD_FRAGMENT_SOURCE;
-
- mShaderForHorz = ShaderEffect::New( "", fragmentSource.str() );
- mActorForInput.SetShaderEffect( mShaderForHorz );
- mShaderForHorz.SetUniform( "uSpread", mSpread );
- mShaderForHorz.SetUniform( "uTexScale", Vector2( 1.0f / mTargetSize.width, 0.0f ) );
-
- mShaderForVert = ShaderEffect::New( "", fragmentSource.str() );
- mActorForHorz.SetShaderEffect( mShaderForVert );
- mShaderForVert.SetUniform( "uSpread", mSpread );
- mShaderForVert.SetUniform( "uTexScale", Vector2( 0.0f, 1.0f / mTargetSize.height ) );
+ mActorForHorz = Actor::New();
+ mActorForHorz.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ mActorForHorz.SetProperty(Actor::Property::SIZE, mTargetSize);
+ // register properties as shader uniforms
+ mActorForHorz.RegisterProperty(SPREAD_UNIFORM_NAME, mSpread);
+ mActorForHorz.RegisterProperty(TEX_SCALE_UNIFORM_NAME, Vector2(0.0f, 1.0f / mTargetSize.height));
+ Renderer rendererForHorz = CreateRenderer(BASIC_VERTEX_SOURCE, SHADER_SPREAD_FILTER_SHADER_FRAG);
+ SetRendererTexture(rendererForHorz, textureForHorz);
+ mActorForHorz.AddRenderer(rendererForHorz);
+
+ mRootActor.Add(mActorForInput);
+ mRootActor.Add(mActorForHorz);