- Home /
 
Capture screenshot async for GEAR VR
Hello,
I'm trying to take 3 screenshots of an object in a GEAR VR application.
In the phone it freezes the whole application for more than 6 seconds. 
The code to take screenshot is this:
 private IEnumerator SaveScreenshot_RenderToTexAsynch(string filePath) {
         //Wait for graphics to render
         yield return new WaitForEndOfFrame();
 
         RenderTexture rt = new RenderTexture(Screen.width, Screen.height, 24);
         Texture2D screenShot = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);
         Camera.main.targetTexture = rt;
         Camera.main.Render();
         RenderTexture.active = rt;
         screenShot.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
         Camera.main.targetTexture = null;
         RenderTexture.active = null; //Added to avoid errors
         Destroy(rt);
 
         //Split the process up
         yield return 0;
 
         byte[] bytes = screenShot.EncodeToPNG();
         File.WriteAllBytes(filePath, bytes);
     }
 
 
               The code works fine.
On Editor the freeze is unnoticeable (Freeze Time ~= 0.5 seconds).
On my S6 phone the freeze is 2 seconds/per image ( Freeze Time > 6 seconds). 
I'm only using a camera to render so that might be a problem, the solution I was trying was to use 2 cameras, one for render and one to display a loading screen, but the freeze affects the whole application not a specific camera.
I need an async method for the render camera to take the screenshot in background and fire an event when it's done so I can use the .png file for later.
Do you have an idea how can I solve this problem ? I'm in desperate need for a solution because it's for my bachelor's degree project, I can reference your help in my project.
P.S: This is a similar problem I found but offers no code example or references.
Your answer
 
             Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Android obfuscator 1 Answer
How do I change an UI image dynamically? 3 Answers