public override void OnEnter() { base.OnEnter(); SetupTransition(); // create a transparent color layer // in which we are going to add our rendertextures CCSize size = CCDirector.SharedDirector.WinSize; // create the second render texture for outScene CCRenderTexture texture = new CCRenderTexture((int)size.Width, (int)size.Height); texture.Sprite.AnchorPoint = new CCPoint(0.5f, 0.5f); texture.Position = new CCPoint(size.Width / 2, size.Height / 2); texture.AnchorPoint = new CCPoint(0.5f, 0.5f); // render outScene to its texturebuffer texture.Clear(0, 0, 0, 1); texture.Begin(); m_pSceneToBeModified.Visit(); texture.End(); // Since we've passed the outScene to the texture we don't need it. if (m_pSceneToBeModified == m_pOutScene) { HideOutShowIn(); } // We need the texture in RenderTexture. CCProgressTimer node = ProgressTimerNodeWithRenderTexture(texture); // create the blend action CCSequence layerAction = CCSequence.FromActions( new CCProgressFromTo(m_fDuration, m_fFrom, m_fTo), new CCCallFunc(Finish) ); // run the blend action node.RunAction(layerAction); // add the layer (which contains our two rendertextures) to the scene AddChild(node, 2, kCCSceneRadial); }