Exemple #1
0
        public FrameworkDebugOverlay(IFrameworkMessenger frameworkMessenger,
                                     IDebugAnalytics debugAnalytics,
                                     IFramesPerSecondMonitor fpsMonitor,
                                     ISystemComponents systemComponents,
                                     IDrawStageRenderer drawStageRenderer,
                                     IIdGenerator idGenerator,
                                     IDrawQueueFactory drawQueueFactory,
                                     IDrawQueueGroupFactory drawQueueGroupFactory,
                                     IQueueToBufferBlitter queueToBufferBlitter,
                                     IDrawStageBuffersFactory drawStageBuffersFactory,
                                     IDrawStageBatcherFactory drawStageBatcherFactory,
                                     IFontManager fontManager
                                     )
        {
            _frameworkMessenger      = frameworkMessenger;
            _debugAnalytics          = debugAnalytics;
            _fpsMonitor              = fpsMonitor;
            _systemComponents        = systemComponents;
            _drawStageRenderer       = drawStageRenderer;
            _idGenerator             = idGenerator;
            _drawQueueFactory        = drawQueueFactory;
            _drawQueueGroupFactory   = drawQueueGroupFactory;
            _queueToBufferBlitter    = queueToBufferBlitter;
            _drawStageBuffersFactory = drawStageBuffersFactory;
            _drawStageBatcherFactory = drawStageBatcherFactory;
            _fontManager             = fontManager;

            Visible = false;

            ReInitialise();
        }
 public RenderStageModelFactory(IFrameworkMessenger frameworkMessenger,
                                IStartupPropertiesCache startUpPropertiesCache,
                                ISystemComponents veldridComponents,
                                IVeldridWindowUpdater windowUpdater,
                                IDrawQueueGroupFactory drawQueueGroupFactory,
                                IDrawStageBatcherFactory drawStageBatcherFactory,
                                IGpuSurfaceManager gpuSurfaceManager,
                                IPipelineFactory pipelineFactory,
                                IGaussianBlurWeightsAndOffsetsCache gaussianWeightsAndOffsetsCache,
                                IQuadMeshBuilder quadMeshBuilder,
                                IBlendStateConverter blendStateConverter,
                                IShaderLoader shaderTools)
 {
     _frameworkMessenger             = frameworkMessenger;
     _startUpPropertiesCache         = startUpPropertiesCache;
     _systemComponents               = veldridComponents;
     _windowUpdater                  = windowUpdater;
     _drawQueueGroupFactory          = drawQueueGroupFactory;
     _drawStageBatcherFactory        = drawStageBatcherFactory;
     _gpuSurfaceManager              = gpuSurfaceManager;
     _pipelineFactory                = pipelineFactory;
     _gaussianWeightsAndOffsetsCache = gaussianWeightsAndOffsetsCache;
     _quadMeshBuilder                = quadMeshBuilder;
     _blendStateConverter            = blendStateConverter;
     _shaderTools = shaderTools;
 }
Exemple #3
0
        public Graphics(IStartupPropertiesCache startUpPropertiesCache,
                        ISystemComponents systemComponents,
                        IRenderCommandQueue renderCommandQueue,
                        ICommandProcessor commandProcessor,
                        IRenderStageManager renderStageManager,
                        IRenderStageVisitor renderStageVisitor,
                        IGpuSurfaceManager surfaceManager,
                        IViewportManager viewportManager,
                        IFontManager fontManager,
                        ICameraManager cameraManager,
                        IFrameworkDebugOverlay debugOverlay)
        {
            _startUpPropertiesCache = startUpPropertiesCache;
            _systemComponents       = systemComponents;
            _renderCommandQueue     = renderCommandQueue;
            _commandProcessor       = commandProcessor;
            _renderStageManager     = renderStageManager;
            _renderStageVisitor     = renderStageVisitor;
            _surfaceManager         = surfaceManager;
            _viewportManager        = viewportManager;
            _fontManager            = fontManager;
            _cameraManager          = cameraManager;
            _debugOverlay           = debugOverlay;

            Initialise();
        }
Exemple #4
0
        public GpuSurfaceManager(IApplicationAssembly applicationAssembly,
                                 IFontsAssembly fontsAssembly,
                                 ISurfaceAssembly surfaceAssembly,
                                 IFrameworkMessenger frameworkMessenger,
                                 IIdGenerator idGenerator,
                                 IStartupPropertiesCache startUpPropertiesCache,
                                 IGpuSurfaceCollection gpuSurfaceCollection,
                                 IImageSharpLoader imageSharpLoader,
                                 IGpuSurfaceFactory gpuSurfaceFactory,
                                 ISystemComponents components,
                                 IFileSystem fileSystem)
        {
            _startUpProperties   = startUpPropertiesCache.User;
            _applicationAssembly = applicationAssembly;
            _fontsAssembly       = fontsAssembly;
            _surfaceAssembly     = surfaceAssembly;
            _frameworkMessenger  = frameworkMessenger;
            _idGenerator         = idGenerator;
            _surfaceCollection   = gpuSurfaceCollection;
            _imageSharpLoader    = imageSharpLoader;
            _gpuSurfaceFactory   = gpuSurfaceFactory;
            _components          = components;
            _fileSystem          = fileSystem;

            Initalise();
        }
Exemple #5
0
        public CameraModel2D(ISystemComponents components,
                             uint initVirtualResolutionX,
                             uint initVirtualResolutionY,
                             float initialZoom,
                             Vector2 initialWorldFocusPosition)
        {
            _components = components;

            _worldViewProjectionBuffer = components.Factory.CreateBuffer(new BufferDescription(128, BufferUsage.UniformBuffer | BufferUsage.Dynamic));

            var resourceLayout = components.Factory.CreateResourceLayout(
                new ResourceLayoutDescription(
                    new ResourceLayoutElementDescription("WorldViewProjection", ResourceKind.UniformBuffer, ShaderStages.Vertex)
                    )
                );

            ResourceSet = components.Factory.CreateResourceSet(
                new ResourceSetDescription(resourceLayout, _worldViewProjectionBuffer)
                );

            SetWorldFocusAndZoom(initialWorldFocusPosition, initialZoom);
            SetWorldRotationRadiansClockwiseFromPositiveY(0.0f);
            SetResolution(initVirtualResolutionX, initVirtualResolutionY);

            UpdateScreenMatrix();
            UpdateWorldMatrix();
        }
Exemple #6
0
        public void Render(CommandList cl, ISystemComponents systemComponents)
        {
            var framebuffer = systemComponents.Device.SwapchainFramebuffer;

            _drawStageModel.ClearDynamicDrawQueue();

            CalculateAndDraw((int)framebuffer.Width, (int)framebuffer.Height);

            _drawStageModel.Process();

            cl.SetFramebuffer(framebuffer);

            cl.ClearDepthStencil(1.0f);

            var surface = new GpuSurface
            {
                Type                  = GpuSurfaceType.SwapChainOutput,
                Framebuffer           = framebuffer,
                Texture               = null,
                TextureView           = null,
                ResourceSet_TexMirror = null,
                ResourceSet_TexWrap   = null
            };

            _drawStageRenderer.Render(cl, _drawStageModel, surface, _camera);
        }
Exemple #7
0
        public BlurStageModel(IFrameworkMessenger frameworkMessenger,
                              IStartupPropertiesCache startUpPropertiesCache,
                              ISystemComponents systemComponents,
                              IGpuSurfaceManager surfaceManager,
                              IGaussianBlurWeightsAndOffsetsCache gaussianWeightsAndOffsetsCache,
                              uint sampleSurfaceWidth,
                              uint sampleSurfaceHeight)
        {
            _frameworkMessenger             = frameworkMessenger;
            _startUpPropertiesCache         = startUpPropertiesCache;
            _systemComponents               = systemComponents;
            _surfaceManager                 = surfaceManager;
            _gaussianWeightsAndOffsetsCache = gaussianWeightsAndOffsetsCache;
            _sampleSurfaceWidth             = sampleSurfaceWidth;
            _sampleSurfaceHeight            = sampleSurfaceHeight;

            TexelShiftSize = new Vector2(1.0f / (1.0f * _sampleSurfaceWidth), 1.0f / (1.0f * _sampleSurfaceHeight));

            CreateSurfaces();

            _current = new BlurEffectConfiguration()
            {
                MixAmount           = 0.0f,
                NumberOfBlurSamples = 4,
                ReSamplerType       = ResizeSamplerType.NearestNeighbour
            };

            _isTransitioning = false;
        }
 public SurfaceCopyStageRenderer(IFrameworkMessenger frameworkMessenger,
                                 ISystemComponents systemComponents,
                                 IGpuSurfaceManager gpuSurfaceManager)
 {
     _frameworkMessenger = frameworkMessenger;
     _systemComponents   = systemComponents;
     _gpuSurfaceManager  = gpuSurfaceManager;
 }
 public CoordinateTransforms(ISystemComponents systemComponents,
                             ICameraManager cameraManager,
                             IViewportManager viewportManager)
 {
     _systemComponents = systemComponents;
     _cameraManager    = cameraManager;
     _viewportManager  = viewportManager;
 }
Exemple #10
0
        public GpuSurfaceFactory(IFrameworkMessenger frameworkMessenger, ISystemComponents components)
        {
            _frameworkMessenger = frameworkMessenger;
            _components         = components;

            GenerateTextureSamplers();
            GenerateCachedTextureLayout();
        }
Exemple #11
0
 public Surfaces(IStartupPropertiesCache startUpPropertiesCache,
                 IGpuSurfaceManager surfaceManager,
                 ISystemComponents systemComponents)
 {
     _systemComponents       = systemComponents;
     _startUpPropertiesCache = startUpPropertiesCache;
     _surfaceManager         = surfaceManager;
 }
Exemple #12
0
        public void FloatTextureBuilder_CatchesNullInput_ThrowsException()
        {
            ISystemComponents components = Substitute.For <ISystemComponents>();

            IFloatTextureBuilder builder = new FloatTextureBuilder(components);

            Assert.Throws <Yak2DException>(() => { builder.GenerateFloat32VeldridTextureFromPixelData(null, 100, 100); });

            components.ReleaseResources();
        }
 public CustomVeldridStageRenderer(IFrameworkMessenger frameworkMessenger,
                                   IGpuSurfaceManager gpuSurfaceManager,
                                   ISystemComponents systemComponents
                                   )
 {
     _frameworkMessenger = frameworkMessenger;
     _gpuSurfaceManager  = gpuSurfaceManager;
     _systemComponents   = systemComponents;
     Initialise();
 }
Exemple #14
0
        public void FloatTextureBuilder_CatchesInvalidInput_ThrowsExceptionIfDataSetAndSizesDoNotMatch()
        {
            ISystemComponents components = Substitute.For <ISystemComponents>();

            IFloatTextureBuilder builder = new FloatTextureBuilder(components);

            Assert.Throws <Yak2DException>(() => { builder.GenerateFloat32VeldridTextureFromPixelData(new float[100], 10, 9); });

            components.ReleaseResources();
        }
Exemple #15
0
        public CoreMessenger(IFrameworkMessenger frameworkMessenger,
                             ISystemComponents systemComponents,
                             IResourceReinitialiser systemResourcesReinitialiser)
        {
            _frameworkMessenger           = frameworkMessenger;
            _systemComponents             = systemComponents;
            _systemResourcesReinitialiser = systemResourcesReinitialiser;

            _messageQueue = new Queue <CoreMessage>(MESSAGE_QUEUE_INITIAL_SIZE);
        }
Exemple #16
0
 public ShaderLoaderFunctions(IFrameworkMessenger frameworkMessenger,
                              ISystemComponents systemComponents,
                              IApplicationAssembly applicationAssembly,
                              IGraphicsAssembly graphicsAssembly,
                              IFileSystem fileSystem)
 {
     _frameworkMessenger  = frameworkMessenger;
     _systemComponents    = systemComponents;
     _applicationAssembly = applicationAssembly;
     _graphicsAssembly    = graphicsAssembly;
     _fileSystem          = fileSystem;
 }
        public CustomVeldridStageModel(IFrameworkMessenger frameworkMessenger,
                                       ISystemComponents systemComponents,
                                       IVeldridWindowUpdater windowUpdater,
                                       CustomVeldridBase stage)
        {
            _frameworkMessenger = frameworkMessenger;
            _systemComponents   = systemComponents;
            _windowUpdater      = windowUpdater;
            CustomStage         = stage;

            Initialise();
        }
        public MeshRenderStageModel(IFrameworkMessenger frameworkMessenger,
                                    ISystemComponents systemComponents,
                                    IQuadMeshBuilder quadMeshBuilder)
        {
            _frameworkMessenger = frameworkMessenger;
            _systemComponents   = systemComponents;
            _quadMeshBuilder    = quadMeshBuilder;

            CreateLights();
            GenerateInitialLightingConfigurations();
            UpdatePropertiesBuffer();
            UpdateLightsBuffer();
            GenerateDefaultMesh();
        }
Exemple #19
0
        public MeshRenderStageRenderer(IFrameworkMessenger frameworkMessenger,
                                       ISystemComponents systemComponents,
                                       IShaderLoader shaderLoader,
                                       IPipelineFactory pipelineFactory,
                                       IViewportManager viewportManager)
        {
            _frameworkMessenger = frameworkMessenger;
            _systemComponents   = systemComponents;
            _shaderLoader       = shaderLoader;
            _pipelineFactory    = pipelineFactory;
            _viewportManager    = viewportManager;

            Initialise();
        }
Exemple #20
0
        private Pipeline _pipeline; //rename internal version

        public DistortionRenderer(ISystemComponents systemComponents,
                                  IShaderLoader shaderLoader,
                                  IPipelineFactory pipelineFactory,
                                  IFullNdcSpaceQuadVertexBuffer ndcQuadVertexBuffer,
                                  IViewportManager viewportManager)
        {
            _systemComponents    = systemComponents;
            _shaderLoader        = shaderLoader;
            _pipelineFactory     = pipelineFactory;
            _ndcQuadVertexBuffer = ndcQuadVertexBuffer;
            _viewportManager     = viewportManager;

            Initialise();
        }
        public SinglePassGaussianBlurRenderer(ISystemComponents systemComponents,
                                              IShaderLoader shaderLoader,
                                              IPipelineFactory pipelineFactory,
                                              IFullNdcSpaceQuadVertexBuffer ndcQuadVertexBuffer,
                                              IGaussianBlurWeightsAndOffsetsCache gaussianWeightsAndOffsetsCache)
        {
            _systemComponents               = systemComponents;
            _shaderLoader                   = shaderLoader;
            _pipelineFactory                = pipelineFactory;
            _ndcQuadVertexBuffer            = ndcQuadVertexBuffer;
            _gaussianWeightsAndOffsetsCache = gaussianWeightsAndOffsetsCache;

            Initialise();
        }
Exemple #22
0
 public ShutdownManager(IFrameworkMessenger frameworkMessenger,
                        ISystemComponents veldridComponents,
                        IGraphicsShutdownManager graphicsShutdownManager,
                        IGpuSurfaceManager gpuSurfaceManager,
                        IFontManager fontManager,
                        ISdl2EventProcessor sdl2EventProcessor
                        )
 {
     _frameworkMessenger      = frameworkMessenger;
     _veldridComponents       = veldridComponents;
     _graphicsShutdownManager = graphicsShutdownManager;
     _gpuSurfaceManager       = gpuSurfaceManager;
     _fontManager             = fontManager;
     _sdl2EventProcessor      = sdl2EventProcessor;
 }
Exemple #23
0
        public StyleEffectsStageModel(IFrameworkMessenger frameworkMessenger, ISystemComponents systemComponents)
        {
            _frameworkMessenger = frameworkMessenger;
            _systemComponents   = systemComponents;

            _random     = new Random();
            _staticTime = 0.0f;

            CreateBuffers();

            CreateDefaultConfigurationAndFillBuffers();
            SetMovieStatePropertiesToDefaultValues();

            SetAllTransitionsToFalse(); //Not needed as above sets all time for transitions to 0 and that causes falses on all transitions
        }
Exemple #24
0
        public BloomSamplingRenderer(ISystemComponents systemComponents,
                                     IShaderLoader shaderLoader,
                                     IPipelineFactory pipelineFactory,
                                     IFullNdcSpaceQuadVertexBuffer ndcQuadVertexBuffer,
                                     IDownSamplerWeightsAndOffsets downSamplerWeightsAndOffsets)
        {
            _systemComponents    = systemComponents;
            _shaderLoader        = shaderLoader;
            _pipelineFactory     = pipelineFactory;
            _ndcQuadVertexBuffer = ndcQuadVertexBuffer;
            _downSamplerValues   = downSamplerWeightsAndOffsets;

            Initialise();

            _sampleType = null;
        }
Exemple #25
0
        public DrawStageBuffers(ISystemComponents components, IStartupPropertiesCache startUpPropertiesCache)
        {
            _device  = components.Device;
            _factory = components.Factory;

            var props = startUpPropertiesCache.Internal;

            var sizeVertex = props.DrawStageInitialSizeVertexBuffer < 3 ? 3 : props.DrawStageInitialSizeVertexBuffer;

            var remainder = props.DrawStageInitialSizeVertexBuffer % 3;
            var sizeIndex = remainder == 0 ? props.DrawStageInitialSizeIndexBuffer : props.DrawStageInitialSizeIndexBuffer + (3 - remainder); //I don't think this does what i expect (there are not 3 indices used per vertex?)

            CreateDeviceBuffersAndDataStagingArrays(sizeVertex, sizeIndex);

            SetMaxNumberOfLayersForDepthScaling(props.DrawStageInitialMaxNumberOfLayersForDepthScaling);
        }
Exemple #26
0
        public CameraModel3D(ISystemComponents components,
                             Vector3 position,
                             Vector3 lookAt,
                             Vector3 up,
                             float fovDegrees,
                             float aspectRatio,
                             float nearPlane,
                             float farPlane)
        {
            _components = components;

            InitBuffers();

            SetCameraProjection(fovDegrees, aspectRatio, nearPlane, farPlane, true);
            SetCameraView(position, lookAt, up);
        }
        public ColourEffectsStageRenderer(IFrameworkMessenger frameworkMessenger,
                                          ISystemComponents systemComponents,
                                          IShaderLoader shaderLoader,
                                          IPipelineFactory pipelineFactory,
                                          IFullNdcSpaceQuadVertexBuffer ndcQuadVertexBuffer,
                                          IViewportManager viewportManager)
        {
            _frameworkMessenger  = frameworkMessenger;
            _systemComponents    = systemComponents;
            _shaderLoader        = shaderLoader;
            _pipelineFactory     = pipelineFactory;
            _ndcQuadVertexBuffer = ndcQuadVertexBuffer;
            _viewportManager     = viewportManager;

            Initialise();
        }
Exemple #28
0
        private Pipeline _pipeline; //rename internal version

        public DistortionGradientShiftRenderer(IFrameworkMessenger frameworkMessenger,
                                               ISystemComponents systemComponents,
                                               IShaderLoader shaderLoader,
                                               IPipelineFactory pipelineFactory,
                                               IGpuSurfaceManager surfaceManager,
                                               IFullNdcSpaceQuadVertexBuffer ndcQuadVertexBuffer)
        {
            _frameworkMessenger  = frameworkMessenger;
            _systemComponents    = systemComponents;
            _shaderLoader        = shaderLoader;
            _pipelineFactory     = pipelineFactory;
            _surfaceManager      = surfaceManager;
            _ndcQuadVertexBuffer = ndcQuadVertexBuffer;

            Initialise();
        }
Exemple #29
0
        public DrawStageRenderer(IFrameworkMessenger frameworkMessenger,
                                 ISystemComponents components,
                                 IShaderLoader shaderLoader,
                                 IPipelineFactory pipelineFactory,
                                 IGpuSurfaceManager surfaceManager,
                                 IViewportManager viewportManager)
        {
            _frameworkMessenger = frameworkMessenger;
            _components         = components;
            _shaderLoader       = shaderLoader;
            _pipelineFactory    = pipelineFactory;
            _surfaceManager     = surfaceManager;
            _viewportManager    = viewportManager;

            Initialise();
        }
Exemple #30
0
        public SurfaceCopyStageModel(IFrameworkMessenger frameworkMessenger,
                                     ISystemComponents systemComponents,
                                     IGpuSurfaceManager surfaceManager,
                                     uint stagingTextureWidth,
                                     uint stagingTextureHeight,
                                     PixelFormat pixelFormat,
                                     Action <TextureData> callback)
        {
            _frameworkMessenger = frameworkMessenger;
            _systemComponents   = systemComponents;
            _surfaceManager     = surfaceManager;

            SetCallback(callback);

            SetPixelFormatAndCreateStagingTextureAndDataArray(stagingTextureWidth, stagingTextureHeight, TexturePixelFormatConverter.ConvertVeldridToYak(pixelFormat));
        }