Exemple #1
0
 public DefaultCaptureCopyPostProcessingRenderPass(
     IGraphicsBlit graphicsBlit,
     IRenderTargetBackBufferUtilities renderTargetBackBufferUtilities)
 {
     _graphicsBlit = graphicsBlit;
     _renderTargetBackBufferUtilities = renderTargetBackBufferUtilities;
 }
 public DefaultCaptureCopyPostProcessingRenderPass(
     IGraphicsBlit graphicsBlit,
     IRenderTargetBackBufferUtilities renderTargetBackBufferUtilities)
 {
     _graphicsBlit = graphicsBlit;
     _renderTargetBackBufferUtilities = renderTargetBackBufferUtilities;
 }
Exemple #3
0
        public DefaultStandardDirectionalLightRenderer(
            IAssetManager assetManager,
            IGraphicsBlit graphicsBlit)
        {
            _graphicsBlit = graphicsBlit;

            _directionalLightEffect = assetManager.Get <EffectAsset>("effect.DirectionalLight");
        }
 public ThumbnailSampler(
     IProjectManager projectManager,
     ILoadedGame loadedGame,
     IConsoleHandle consoleHandle,
     IGraphicsBlit graphicsBlit)
 {
     _projectManager = projectManager;
     _loadedGame     = loadedGame;
     _consoleHandle  = consoleHandle;
     _graphicsBlit   = graphicsBlit;
 }
        public DefaultStandardDirectionalLight(
            IAssetManager assetManager,
            IGraphicsBlit graphicsBlit,
            Vector3 lightDirection,
            Color lightColor)
        {
            _graphicsBlit  = graphicsBlit;
            LightDirection = lightDirection;
            LightColor     = lightColor;

            _directionalLightEffect = assetManager.Get <EffectAsset>("effect.DirectionalLight");
        }
        public DefaultStandardDirectionalLight(
            IAssetManagerProvider assetManagerProvider,
            IGraphicsBlit graphicsBlit,
            Vector3 lightDirection,
            Color lightColor)
        {
            _graphicsBlit = graphicsBlit;
            LightDirection = lightDirection;
            LightColor = lightColor;

            _directionalLightEffect = assetManagerProvider.GetAssetManager().Get<EffectAsset>("effect.DirectionalLight");
        }
 public DefaultRenderPipeline(
     IGraphicsBlit graphicsBlit,
     IRenderTargetBackBufferUtilities renderTargetBackBufferUtilities)
 {
     _graphicsBlit = graphicsBlit;
     _renderTargetBackBufferUtilities     = renderTargetBackBufferUtilities;
     _standardRenderPasses                = new List <IRenderPass>();
     _postProcessingRenderPasses          = new List <IRenderPass>();
     _transientStandardRenderPasses       = new List <IRenderPass>();
     _transientPostProcessingRenderPasses = new List <IRenderPass>();
     _renderPass        = null;
     _isFirstRenderPass = false;
 }
Exemple #8
0
 public BoardRendererEntity(
     BoardAnalyzerEntity analyzerEntity,
     WebcamEntity webcamEntity, 
     IGraphicsBlit graphicsBlit, 
     IAssetManager assetManager,
     TextBox alphaTextBox)
 {
     _analyzerEntity = analyzerEntity;
     _webcamEntity = webcamEntity;
     _graphicsBlit = graphicsBlit;
     _alphaTextBox = alphaTextBox;
     _warpFromPolygonEffect = assetManager.Get<EffectAsset>("effect.WarpFromPolygon");
 }
 public DefaultRenderPipeline(
     IGraphicsBlit graphicsBlit,
     IRenderTargetBackBufferUtilities renderTargetBackBufferUtilities)
 {
     _graphicsBlit = graphicsBlit;
     _renderTargetBackBufferUtilities = renderTargetBackBufferUtilities;
     _standardRenderPasses = new List<IRenderPass>();
     _postProcessingRenderPasses = new List<IRenderPass>();
     _transientStandardRenderPasses = new List<IRenderPass>();
     _transientPostProcessingRenderPasses = new List<IRenderPass>();
     _renderPass = null;
     _isFirstRenderPass = false;
 }
 public Default3DDeferredRenderPass(
     IHierarchy hierarchy,
     IRenderTargetBackBufferUtilities renderTargetBackBufferUtilities,
     IGraphicsBlit graphicsBlit,
     IAssetManagerProvider assetManagerProvider,
     IRenderBatcher renderBatcher)
 {
     _hierarchy = hierarchy;
     _renderTargetBackBufferUtilities = renderTargetBackBufferUtilities;
     _graphicsBlit = graphicsBlit;
     _renderBatcher = renderBatcher;
     _gbufferClearEffect =
         assetManagerProvider.GetAssetManager().Get<EffectAsset>("effect.GBufferClear");
     _gbufferCombineEffect =
         assetManagerProvider.GetAssetManager().Get<EffectAsset>("effect.GBufferCombine");
 }
Exemple #11
0
 public Default3DDeferredRenderPass(
     IHierarchy hierarchy,
     IRenderTargetBackBufferUtilities renderTargetBackBufferUtilities,
     IGraphicsBlit graphicsBlit,
     IAssetManagerProvider assetManagerProvider,
     IRenderBatcher renderBatcher)
 {
     _hierarchy = hierarchy;
     _renderTargetBackBufferUtilities = renderTargetBackBufferUtilities;
     _graphicsBlit       = graphicsBlit;
     _renderBatcher      = renderBatcher;
     _gbufferClearEffect =
         assetManagerProvider.GetAssetManager().Get <EffectAsset>("effect.GBufferClear");
     _gbufferCombineEffect =
         assetManagerProvider.GetAssetManager().Get <EffectAsset>("effect.GBufferCombine");
 }
 public DefaultRenderPipeline(
     IGraphicsBlit graphicsBlit,
     IRenderTargetBackBufferUtilities renderTargetBackBufferUtilities,
     IProfiler profiler,
     [FromGame] IEngineHook[] engineHooks)
 {
     _graphicsBlit = graphicsBlit;
     _renderTargetBackBufferUtilities = renderTargetBackBufferUtilities;
     _profiler = profiler;
     _engineHooks = engineHooks;
     _standardRenderPasses = new List<IRenderPass>();
     _postProcessingRenderPasses = new List<IRenderPass>();
     _transientStandardRenderPasses = new List<IRenderPass>();
     _transientPostProcessingRenderPasses = new List<IRenderPass>();
     _renderPass = null;
     _isFirstRenderPass = false;
 }
Exemple #13
0
 public DefaultRenderPipeline(
     IGraphicsBlit graphicsBlit,
     IRenderTargetBackBufferUtilities renderTargetBackBufferUtilities,
     IProfiler profiler,
     [FromGame] IEngineHook[] engineHooks)
 {
     _graphicsBlit = graphicsBlit;
     _renderTargetBackBufferUtilities = renderTargetBackBufferUtilities;
     _profiler                            = profiler;
     _engineHooks                         = engineHooks;
     _standardRenderPasses                = new List <IRenderPass>();
     _postProcessingRenderPasses          = new List <IRenderPass>();
     _transientStandardRenderPasses       = new List <IRenderPass>();
     _transientPostProcessingRenderPasses = new List <IRenderPass>();
     _renderPass                          = null;
     _isFirstRenderPass                   = false;
 }
        public Default3DDeferredRenderPass(
            IHierarchy hierarchy,
            IRenderTargetBackBufferUtilities renderTargetBackBufferUtilities,
            IGraphicsBlit graphicsBlit,
            IAssetManager assetManager,
            IRenderBatcher renderBatcher,
            IBackBufferDimensions backBufferDimensions)
        {
            _hierarchy = hierarchy;
            _renderTargetBackBufferUtilities = renderTargetBackBufferUtilities;
            _graphicsBlit         = graphicsBlit;
            _renderBatcher        = renderBatcher;
            _backBufferDimensions = backBufferDimensions;
            _gbufferClearEffect   =
                assetManager.Get <EffectAsset>("effect.GBufferClear");
            _gbufferCombineEffect =
                assetManager.Get <EffectAsset>("effect.GBufferCombine");

            GBufferBlendState = BlendState.Opaque;
            ClearTarget       = true;
        }
 public DefaultBlurPostProcessingRenderPass(IAssetManagerProvider assetManagerProvider, IGraphicsBlit graphicsBlit)
 {
     _blurEffect = assetManagerProvider.GetAssetManager().Get<EffectAsset>("effect.Blur").Effect;
     _graphicsBlit = graphicsBlit;
 }
Exemple #16
0
 public DefaultCustomPostProcessingRenderPass(IGraphicsBlit graphicsBlit, Effect effect)
 {
     _effect       = effect;
     _graphicsBlit = graphicsBlit;
 }
Exemple #17
0
 public DefaultCustomPostProcessingRenderPass(IGraphicsBlit graphicsBlit, IAssetManagerProvider assetManagerProvider, string effectAssetName)
 {
     _effect       = assetManagerProvider.GetAssetManager().Get <EffectAsset>(effectAssetName).Effect;
     _graphicsBlit = graphicsBlit;
 }
 public DefaultInvertPostProcessingRenderPass(IAssetManagerProvider assetManagerProvider, IGraphicsBlit graphicsBlit)
 {
     _invertEffect = assetManagerProvider.GetAssetManager().Get <EffectAsset>("effect.Invert").Effect;
     _graphicsBlit = graphicsBlit;
 }
 public DefaultInvertPostProcessingRenderPass(IAssetManagerProvider assetManagerProvider, IGraphicsBlit graphicsBlit)
 {
     _invertEffect = assetManagerProvider.GetAssetManager().Get<EffectAsset>("effect.Invert").Effect;
     _graphicsBlit = graphicsBlit;
 }
 public DefaultCaptureInlinePostProcessingRenderPass(IGraphicsBlit graphicsBlit)
 {
     _graphicsBlit = graphicsBlit;
 }
 public DefaultCustomPostProcessingRenderPass(IGraphicsBlit graphicsBlit, IAssetManagerProvider assetManagerProvider, string effectAssetName)
 {
     _effect = assetManagerProvider.GetAssetManager().Get<EffectAsset>(effectAssetName).Effect;
     _graphicsBlit = graphicsBlit;
 }
Exemple #22
0
            public RenderPipelineWorld(
                IAssetManager assetManager,
                I2DRenderUtilities renderUtilities,
                IGraphicsFactory graphicsFactory,
                IAssert assert,
                ITestAttachment testAttachment,
                IRenderTargetBackBufferUtilities renderTargetBackBufferUtilities,
                IGraphicsBlit graphicsBlit)
            {
                _renderUtilities                 = renderUtilities;
                _assert                          = assert;
                _testAttachment                  = testAttachment;
                _texture                         = assetManager.Get <TextureAsset>("texture.Player");
                _invertPostProcess               = graphicsFactory.CreateInvertPostProcessingRenderPass();
                _blurPostProcess                 = graphicsFactory.CreateBlurPostProcessingRenderPass();
                _customPostProcess               = graphicsFactory.CreateCustomPostProcessingRenderPass("effect.MakeRed");
                _captureInlinePostProcess        = graphicsFactory.CreateCaptureInlinePostProcessingRenderPass();
                _renderTargetBackBufferUtilities = renderTargetBackBufferUtilities;
                _graphicsBlit                    = graphicsBlit;
                _captureInlinePostProcess.RenderPipelineStateAvailable = (gameContext, renderContext, previousPass, d) =>
                {
                    if (!_isValidRun)
                    {
                        return;
                    }

                    _renderTarget = _renderTargetBackBufferUtilities.UpdateCustomRenderTarget(_renderTarget, renderContext, SurfaceFormat.Color, DepthFormat.None, 1);

                    // Blit to the capture target.
                    _graphicsBlit.Blit(renderContext, d, _renderTarget);

#if MANUAL_TEST
#elif RECORDING
                    using (var writer = new StreamWriter("output" + _frame + ".png"))
                    {
                        _renderTarget.SaveAsPng(writer.BaseStream, Width, Height);
                    }
#else
                    var baseStream =
                        typeof(RenderPipelineWorld).Assembly.GetManifestResourceStream(
                            "Protogame.Tests.Expected.RenderPipeline.output" + _frame + ".png");
                    _assert.NotNull(baseStream);
                    var memoryStream = new MemoryStream();
                    _renderTarget.SaveAsPng(memoryStream, Width, Height);
                    // ReSharper disable once AssignNullToNotNullAttribute
                    var expected = new Bitmap(baseStream);
                    var actual   = new Bitmap(memoryStream);

                    _assert.Equal(expected.Height, actual.Height);
                    _assert.Equal(expected.Width, actual.Width);
                    var totalPixelValues     = 0L;
                    var incorrectPixelValues = 0L;
                    for (var x = 0; x < expected.Width; x++)
                    {
                        for (var y = 0; y < expected.Height; y++)
                        {
                            var expectedPixel = expected.GetPixel(x, y);
                            var actualPixel   = actual.GetPixel(x, y);

                            totalPixelValues += 255 * 4;

                            if (expectedPixel != actualPixel)
                            {
                                var diffA = System.Math.Abs((int)actualPixel.A - (int)expectedPixel.A);
                                var diffR = System.Math.Abs((int)actualPixel.R - (int)expectedPixel.R);
                                var diffG = System.Math.Abs((int)actualPixel.G - (int)expectedPixel.G);
                                var diffB = System.Math.Abs((int)actualPixel.B - (int)expectedPixel.B);

                                incorrectPixelValues += (diffA + diffR + diffG + diffB);
                            }
                        }
                    }

                    var percentage = (100 - ((incorrectPixelValues / (double)totalPixelValues) * 100f));

                    var combination = _combinations[_frame % _combinations.Count];
                    _testAttachment.Attach("name-" + combination.Id, combination.Name);
                    _testAttachment.Attach("expected-" + combination.Id, baseStream);
                    _testAttachment.Attach("actual-" + combination.Id, memoryStream);
                    _testAttachment.Attach("threshold-" + combination.Id, 99.9);
                    _testAttachment.Attach("measured-" + combination.Id, percentage);

                    if (percentage <= 99.9f)
                    {
                        combination.FailureMessage = "The actual rendered image did not match the expected image close enough (99.9%).";
                    }

                    //memoryStream.Dispose();
                    //baseStream.Dispose();
#endif

#if MANUAL_TEST
                    _manualTest++;
                    if (_manualTest % 60 == 0)
                    {
                        _frame++;
                    }
#else
                    _frame++;
#endif
                };

                this.Entities = new List <IEntity>();
            }
 public DefaultBlurPostProcessingRenderPass(IAssetManagerProvider assetManagerProvider, IGraphicsBlit graphicsBlit)
 {
     _blurEffect   = assetManagerProvider.GetAssetManager().Get <EffectAsset>("effect.Blur").Effect;
     _graphicsBlit = graphicsBlit;
 }
Exemple #24
0
 public DefaultCaptureInlinePostProcessingRenderPass(IGraphicsBlit graphicsBlit)
 {
     _graphicsBlit = graphicsBlit;
 }
 public DefaultCustomPostProcessingRenderPass(IGraphicsBlit graphicsBlit, IAssetReference <EffectAsset> effectAsset)
 {
     _effect       = effectAsset;
     _graphicsBlit = graphicsBlit;
 }
 public DefaultCustomPostProcessingRenderPass(IGraphicsBlit graphicsBlit, IEffect effect)
 {
     _effect = effect;
     _graphicsBlit = graphicsBlit;
 }