I pass a native texture pointer to a native plugin, where I do some writing to the texture.
I can draw the texture in my 3D environment on a mesh and inspect the proper data within the Unity Editor, it looks as expected.
However, when I call Texture2D.EncodeToPng(), it returns all gray (uninitialized) data.
The same call does not do this for my other textures.
I’m assuming it has something to do with the fact that I’m writing to the texture from native code, and the Texture2D.EncodeToPng() is maybe being run at a different part of the pipeline (before the texture is written to, or after it is cleared).
I’ve tried running the command after waiting for end of frame, OnPreRender(), OnRender(), OnPostRender() but nothing works!