SKEffectNode ignores children zPosition order
SKEffectNode ignores the zPosition order of its child nodes. It seems to instead render as if zPosition were the same for each node; in other words, the SKEffectNode may be rendering its children in the order they were added.
Steps to Reproduce:
1. Add an SKEffectNode to the scene.
2. Add node X with zPosition 1.
3. Add overlapping node Y with zPosition 0.
Create a new iOS Xcode project (or use the attached tarball) using the Sprite Kit template. Replace the scene class's implementation with the following code. Note the if-statement inviting you to test the workaround.
Node X should render on top of Node Y, since its zPosition is higher.
Node Y renders on top of Node X. Possibly because Node Y was added after Node X.
iOS 7.1 (11D167)
One workaround is to interject an ordinary SKNode. Add all the SKEffectNode's children to this SKNode, then add this SKNode to the SKEffectNode. This restores the zPosition-based drawing order.
Perhaps SKEffectNode should expose a property like SKView's ignoresSiblingOrder?
Reports posted here will not necessarily be seen by Apple.
All problems should be submitted at bugreport.apple.com before they are posted here.
Please only post information for Radars that you have filed yourself, and please do
not include Apple confidential information in your posts. Thank you!