Hey I am trying to perform my own version of a Graphis.Blit() inside my own post effect class.
To do so I am drawing a simple quad using GL.Begin(GL.QUADS) with GL.LoadOrtho() as view matrix as well as setting a material/pass using the inbuild hidden shader “Hidden/Internal-GUITextureBlit”.
This is all working well.
HOWEVER! I notcied that even when I am doing a simple blit from source to destination the source image is missing anthing in the scene rendered after the Transparent Alpha Cutout queue.
i.e. when I do a Blit(source, desitnation) inside OnRenderImage(), using Graphics.Blit correctly means the full scene image is showing whilst my own manual blit means an incomplete scene is shown (without particles/lens flares/anything transparent).
I am sure this is a GPU timing issue, my own code is getting a handle to an old version of the source texture. Is there anything I should call inside my Blit code to make sure textures / graphics instructions are in sync? I have tried a GL.Flush().
What actually happens inside Graphics.Blit()? Is there something it does to ensure the source and destination textures are up to date?
Thanks.