Exemplo n.º 1
0
        internal void StoreFrame(RenderTexture renderTexture)
        {
            // convert to Texture2D
            var tempTexture =
                new Texture2D(renderTexture.width, renderTexture.height, TextureFormat.RGBA32, false)
            {
                hideFlags  = HideFlags.HideAndDontSave,
                wrapMode   = TextureWrapMode.Clamp,
                filterMode = FilterMode.Bilinear,
                anisoLevel = 0
            };

            RenderTexture.active = renderTexture;
            tempTexture.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);
            RenderTexture.active = null;

            var frame = new GifFrame
            {
                Width  = tempTexture.width,
                Height = tempTexture.height,
                Data   = tempTexture.GetPixels32()
            };

            StoredFrames.Enqueue(frame);
        }
Exemplo n.º 2
0
 internal void Clear()
 {
     if (StoredFrames != null)
     {
         StoredFrames.Clear();
         StoredFrames = null;
     }
     if (_thread != null)
     {
         _thread.Abort();
         _thread = null;
     }
 }
Exemplo n.º 3
0
        internal void StoreFrame(RenderTexture renderTexture, double resizeRatio)
        {
            var newWidth  = Convert.ToInt32(renderTexture.width * resizeRatio);
            var newHeight = Convert.ToInt32(renderTexture.height * resizeRatio);

            renderTexture.filterMode = FilterMode.Bilinear;

            var resizedRenderTexture = RenderTexture.GetTemporary(newWidth, newHeight);

            resizedRenderTexture.filterMode = FilterMode.Bilinear;

            RenderTexture.active = resizedRenderTexture;
            Graphics.Blit(renderTexture, resizedRenderTexture);

            // convert to Texture2D
            var resizedTexture2D =
                new Texture2D(newWidth, newHeight, TextureFormat.RGBA32, false)
            {
                hideFlags  = HideFlags.HideAndDontSave,
                wrapMode   = TextureWrapMode.Clamp,
                filterMode = FilterMode.Bilinear,
                anisoLevel = 0
            };

            resizedTexture2D.ReadPixels(new Rect(0, 0, newWidth, newHeight), 0, 0);
            resizedTexture2D.Apply();
            RenderTexture.active = null;

            var frame = new GifFrame
            {
                Width  = resizedTexture2D.width,
                Height = resizedTexture2D.height,
                Data   = resizedTexture2D.GetPixels32()
            };

            resizedRenderTexture.Release();
            Object.Destroy(resizedTexture2D);

            StoredFrames.Enqueue(frame);
        }