FSO.Client.UI.Framework.UIExternalContainer.Draw C# (CSharp) Method

Draw() public method

public Draw ( FSO.Client.UI.Framework.UISpriteBatch batch ) : void
batch FSO.Client.UI.Framework.UISpriteBatch
return void
        public override void Draw(UISpriteBatch batch)
        {
            if (Width == 0 || Height == 0 || !DoRedraw) return;
            DoRedraw = false;
            batch = Batch;
            batch.UIBegin(BlendState.AlphaBlend, SpriteSortMode.Deferred);
            Promise<Texture2D> bufferTexture = null;
            using (batch.WithBuffer(ref bufferTexture))
            {
                lock (Children)
                {
                    foreach (var child in Children)
                    {
                        child.PreDraw(batch);
                    }
                    foreach (var child in Children)
                    {
                        child.Draw(batch);
                    }
                }
                batch.Pause();
                batch.Resume();
            }

            var tex = bufferTexture.Get();
            batch.End();

            tex.GetData(RawImage, 0, (GameFacade.DirectX) ? RawImage.Length : RawImage.Length/4);

            for (int i=0; i<RawImage.Length; i+=4)
            {
                var swap = RawImage[i];
                RawImage[i] = RawImage[i + 2];
                RawImage[i + 2] = swap;
            }
            if (OnFrame != null) OnFrame();
            //batch.Draw(tex, Vector2.Zero, _BlendColor);
        }