FSO.Common.Utils.TextureUtils.CopyAlpha C# (CSharp) Method

CopyAlpha() public static method

public static CopyAlpha ( Microsoft.Xna.Framework.Graphics.Texture2D &TextureTo, Microsoft.Xna.Framework.Graphics.Texture2D TextureFrom ) : void
TextureTo Microsoft.Xna.Framework.Graphics.Texture2D
TextureFrom Microsoft.Xna.Framework.Graphics.Texture2D
return void
        public static void CopyAlpha(ref Texture2D TextureTo, Texture2D TextureFrom)
        {
            if (TextureTo.Width != TextureFrom.Width || TextureTo.Height != TextureFrom.Height)
            {
                return;
            }

            var size = TextureTo.Width * TextureTo.Height;
            uint[] buffer = GetBuffer(size);
            TextureTo.GetData(buffer, 0, size);

            var sizeFrom = TextureFrom.Width * TextureFrom.Height;
            var bufferFrom = GetBuffer(sizeFrom);
            TextureFrom.GetData(bufferFrom, 0, sizeFrom);

            for (int i = 0; i < size; i++)
            {
                //ARGB
                buffer[i] = (buffer[i] & 0x00FFFFFF) | (bufferFrom[i] & 0xFF000000);
            }

            TextureTo.SetData(buffer, 0, size);
        }