protected override void DrawPrepare() {
base.DrawPrepare();
if (Sun != null && UseShadows) {
_sunShadows.Update(Sun.Direction, Camera);
_sunShadows.DrawScene(DeviceContextHolder, this);
}
if (UseCubemapReflections) {
_reflectionCubemap.Update(ReflectionCubemapPosition);
_reflectionCubemap.DrawScene(DeviceContextHolder, this);
}
DeviceContext.OutputMerger.SetTargets(_gDepthBuffer.DepthView, _gBufferBase.TargetView,
_gBufferNormal.TargetView, _gBufferMaps.TargetView);
DeviceContext.ClearDepthStencilView(_gDepthBuffer.DepthView,
DepthStencilClearFlags.Depth | DepthStencilClearFlags.Stencil, 1f, 0);
DeviceContext.ClearRenderTargetView(_gBufferBase.TargetView, ColorTransparent);
DeviceContext.ClearRenderTargetView(_gBufferNormal.TargetView, ColorTransparent);
DeviceContext.ClearRenderTargetView(_gBufferMaps.TargetView, ColorTransparent);
DeviceContext.OutputMerger.BlendState = null;
}