public override void Draw(SharpDX.Direct3D11.DeviceContext context, int index) { if (_activatedEffect == null) { if (_backBufferClouds.OffSreenRenderTarget != null) { _backBufferClouds.OffSreenRenderTarget = null; } return; } if (index == _postEffectStartingDrawId) { //Change RenderTarget to this offline texture //Clear renderTarger _engine.ImmediateContext.ClearRenderTargetView(_renderTargetView, __renderTargetViewDefaultColor); _engine.ImmediateContext.OutputMerger.SetTargets(_engine.DepthStencilTarget, _renderTargetView); _backBufferClouds.OffSreenRenderTarget = _renderTexture; _postEffectStartDrawDone = true; } else if (index == _postEffectEndingDrawId && _postEffectStartDrawDone) { //We have finished to draw into the offline texture, link back the screen backbuffer _engine.SetRenderTargets(context); //Start the Post effect code here RenderStatesRepo.ApplyStates(context, DXStates.Rasters.Default, DXStates.Blenders.Disabled, DXStates.DepthStencils.DepthDisabled); _vBuffer.SetToDevice(context, 0); _iBuffer.SetToDevice(context, 0); _activatedEffect.Render(context); context.DrawIndexed(6, 0, 0); _postEffectStartDrawDone = false; } }