I ended up with HMGLTransitions which you can download from here http://github.com/Split82/HMGLTransitions The biggest difference between this and previously mentioned implementations is that I use singleton object which creates OpenGL context only once. This can drastically improve starting lag of animation. Also I don't resample textures and use exact size. Next "big" thing is that all device orientations are supported. Now everything works nice and smooth (except cloth animation on iPhone 3G and lower ;) There are still some things which should be added and there is also space for some performance enhancements, but for now it's enough and can be used without having any problems on iPhone. On iPad there might be performance issues (starting lag) if the view hierarchy which needs to be rendered to the texture is too complicated.