AcTools.Render.DeferredShading.DeferredShadingRenderer.DrawInner C# (CSharp) Метод

DrawInner() защищенный Метод

protected DrawInner ( ) : void
Результат void
        protected override void DrawInner() {
            base.DrawInner();

            switch (Mode) {
                case RenderingMode.Result:
                    DeviceContext.ClearDepthStencilView(_temporaryDepthBuffer.DepthView,
                            DepthStencilClearFlags.Depth | DepthStencilClearFlags.Stencil, 1.0f, 0);
                    DeviceContext.OutputMerger.SetTargets(_temporaryDepthBuffer.DepthView);
                    DeviceContext.OutputMerger.BlendState = null;

                    Scene.Draw(DeviceContextHolder, Camera, SpecialRenderMode.DeferredTransparentMask);
                    DrawLights(_temporaryBuffer0, _temporaryDepthBuffer.DepthView);

                    if (UseLocalReflections) {
                        DrawReflections(_temporaryBuffer2, BlurLocalReflections ? _temporaryBuffer1 : null, _temporaryBuffer0,
                                _temporaryDepthBuffer.DepthView);
                    }

                    CombineResult(_temporaryBuffer1, _temporaryBuffer0, UseLocalReflections ? _temporaryBuffer2 : null, null,
                            _temporaryDepthBuffer.DepthView);

                    DrawTransparent();
                    ProcessHdr(_temporaryBuffer0, _temporaryBuffer2, _temporaryBuffer3);
                    FinalStep(_temporaryBuffer0);
                    break;

                case RenderingMode.WithoutTransparent:
                    DrawLights(_temporaryBuffer0);
                    DrawReflections(_temporaryBuffer2, BlurLocalReflections ? _temporaryBuffer1 : null, _temporaryBuffer0);
                    CombineResult(_temporaryBuffer1, _temporaryBuffer0, _temporaryBuffer2);
                    ProcessHdr(_temporaryBuffer0, _temporaryBuffer1, _temporaryBuffer3);
                    FinalStep(_temporaryBuffer0);
                    break;

                case RenderingMode.DebugGBuffer:
                    CombineResult(_temporaryBuffer0, null, null);
                    FinalStep(_temporaryBuffer0);
                    return;

                case RenderingMode.DebugLighting:
                    DrawLights(_temporaryBuffer0);
                    FinalStep(_temporaryBuffer0, _sunShadows.Splits[0].Buffer);
                    break;

                case RenderingMode.DebugLocalReflections:
                case RenderingMode.DebugPostEffects:
                    DrawLights(_temporaryBuffer0);
                    DrawReflections(_temporaryBuffer2, BlurLocalReflections ? _temporaryBuffer1 : null, _temporaryBuffer0);
                    CombineResult(_temporaryBuffer1, _temporaryBuffer0, _temporaryBuffer2);
                    FinalStep(_temporaryBuffer1);
                    return;

                default:
                    throw new ArgumentOutOfRangeException();
            }
        }