I don't really see the point of the changes to the overlay renderer. You are still going to render stuff in the correct order right? Just split the flip on the decoder side from the flip on the render side. Forcing caller to keep track of order of stuff seem wrong imho.