Пример #1
0
        private static bool PostProcess(DataRoute route, IPostProcessAssets processor)
        {
            var declarationType = processor.GetDeclarationType();

            switch (declarationType)
            {
            case DeclarationType.Single:
            {
                return(PostProcessUtility.InvokeSingle(route.StoredValue, processor, route.RootType));;
            }

            case DeclarationType.List:
            {
                return(PostProcessUtility.InvokeList(route.StoredValue, processor, route.RootType));
            }

            case DeclarationType.Dictionary:
                var keyType   = route.DictionaryKeyType;
                var valueType = route.RootType;
                {
                    return(PostProcessUtility.InvokeDictionary(route.StoredValue, processor, keyType, valueType));
                }
            }

            return(false);
        }
        protected override void RenderProcess(ref DrawContext context)
        {
            GL.Enable(EnableCap.DepthTest);
            MainFramebuffer.Activate(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
            context.Scene.DrawBackground(context);
            context.Scene.DrawMainObjects(context);
            context.Scene.DrawHUD(context);

            GL.Disable(EnableCap.DepthTest);
            _postBuffer.Activate(ClearBufferMask.ColorBufferBit);
            PostProcessUtility.ResolveMultisampledBuffers(MainFramebuffer, _postBuffer);

            _bloom.Draw(_postBuffer["color"], context);
            _vittage.Draw(_postBuffer["color"], context);
            Framebuffer.Screen.Activate(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);

            PostProcessUtility.FinalizeHDR(_postBuffer["color"], HDRColorCurve.OnlyExposure, .1f);
        }