protected override void Draw(GameTime gameTime)
        {
            _spriteBatch.Begin(
                sortMode: SpriteSortMode.Immediate,
                blendState: BlendState.Opaque,
                samplerState: SamplerState.PointWrap,
                depthStencilState: DepthStencilState.None,
                rasterizerState: RasterizerState.CullNone);

            if (!_cancellationTokenSource.IsCancellationRequested)
            {
                _screenBuffer.CopyToTexture(_outputTexture);
            }

            _spriteBatch.Draw(
                texture: _outputTexture,
                destinationRectangle: new Microsoft.Xna.Framework.Rectangle(
                    x: 0,
                    y: 0,
                    width: CurrentScreenSize.Width,
                    height: CurrentScreenSize.Height),
                color: Microsoft.Xna.Framework.Color.White);

            _spriteBatch.End();

            base.Draw(gameTime);
        }