- Home /
Question by
bangau1 · Jul 24, 2013 at 01:29 AM ·
androidrendertexture
GL_OUT_OF_MEMORY error when using RenderTexture in Unity Android
So I got this error when using RenderTexture, to capture some parts of my game, and copy it to Texture2d. W/Adreno200-ES20(22364): : GL_OUT_OF_MEMORY
Here is my code:
public static Texture2D Capture (Camera camera, GameObject target, int originOffsetX, int originOffsetY,int width,int height, int outWidth, int outHeight) {
if (outHeight <= 1) throw new System.ArgumentOutOfRangeException ("outHeight <= 1");
if (outWidth <= 1) throw new System.ArgumentOutOfRangeException ("outWidth <= 1");
Vector3 screenPos = camera.WorldToScreenPoint (target.transform.position);
screenPos.x += originOffsetX;
screenPos.y += originOffsetY;
Debug.Log(screenPos.ToString());
RenderTexture renderTarget = RenderTexture.GetTemporary(width, height, 16);// (outWidth, outHeight, 24);
Texture2D outTexture = new Texture2D (outWidth, outHeight, TextureFormat.RGB24, false);
camera.enabled = true;
camera.targetTexture = renderTarget;
camera.Render();
camera.enabled = false;
RenderTexture.active = renderTarget;
outTexture.ReadPixels(new Rect(originOffsetX,originOffsetX, outHeight, outHeight), 0, 0);
camera.targetTexture = null;
RenderTexture.ReleaseTemporary(renderTarget);
return outTexture;
}
Comment
@clunk47: I am using NTT Docomo P-02E, it is high end device.
Your answer
