Пример #1
0
        internal RenderContext(IGraphicsFacade graphicsFacade)
        {
            _graphicsFacade = graphicsFacade;
            _graphicsDevice = graphicsFacade.Device;
            _techniques     = graphicsFacade.Techniques;
            _presets        = graphicsFacade.Presets;

            _sceneBuffer             = _graphicsDevice.CreateConstantBuffer <SceneConstantBufferData>(1);
            _batchBuffer             = _graphicsDevice.CreateConstantBuffer <BatchConstantBufferData>(1);
            _textureDescriptorBuffer = _graphicsDevice.CreateConstantBuffer <TextureDescriptorConstantBufferData>(kBaseTextureSlotId + kTextureBindLimit);
            _instancingBuffers       = new List <IBuffer <RenderJobDescription> >();

            const int kMaxPreallocatedInstanceBufferPower = 20;

            for (var i = 0; i <= kMaxPreallocatedInstanceBufferPower; i++)
            {
                _instancingBuffers.Add(_graphicsDevice.CreateVertexBuffer <RenderJobDescription>(1 << i));
            }

            (_gBufferRtvs, _gBufferSrv, _gBufferSrvs) = _graphicsDevice.CreateScreenSizeRenderTarget(2);
            (_gBufferDsv, _gBufferDepthSrv)           = _graphicsDevice.CreateScreenSizeDepthTarget();
            (_spotlightDescriptionsBuffer, _spotlightDescriptionsBufferSrv) = _graphicsDevice.CreateStructuredBufferAndView <SpotlightDescription>(256);
            (_materialResourcesBuffer, _materialResourcesBufferSrv)         = _graphicsDevice.CreateStructuredBufferAndView <InternalMaterialResourcesDescription>(kMaterialBufferCount);
            (_lightDepthTexture, _lightDepthStencilViews, _lightShaderResourceView, _lightShaderResourceViews) = _graphicsDevice.CreateDepthTextureAndViews(10, new Size(kShadowMapWidthHeight, kShadowMapWidthHeight));

            Trace.Assert(Utilities.SizeOf <SpotlightInfo>() == SpotlightInfo.Size);
            Trace.Assert(Utilities.SizeOf <AtlasLocation>() == AtlasLocation.SIZE);
            Trace.Assert(Utilities.SizeOf <SpotlightDescription>() == SpotlightDescription.Size);
            Trace.Assert(Utilities.SizeOf <RenderJobDescription>() == RenderJobDescription.Size);
            Trace.Assert(Utilities.SizeOf <InternalMaterialResourcesDescription>() == InternalMaterialResourcesDescription.Size);

            water = new WaterWip(graphicsFacade);
            water.Initialize();
        }
Пример #2
0
        private GraphicsLoop(InitFlags initFlags, RenderForm form, IGraphicsFacade graphicsFacade, RenderContext renderer)
        {
            _initFlags = initFlags;

            Form           = form;
            GraphicsFacade = graphicsFacade;
            Renderer       = renderer;
            RenderLoop     = new RenderLoop(Form);
            Statistics     = new GraphicsLoopStatistics();
            Input          = new InputSomethingOSDJFH(Form);
        }
            public Canvas3DDebugCanvas(IGraphicsFacade graphicsFacade, IPresetsStore presets, Scene scene)
            {
                this.graphicsFacade = graphicsFacade;
                this.presets        = presets;
                this.scene          = scene;

                unitTriangleMesh = graphicsFacade.CreateMesh(new[] {
                    new VertexPositionNormalColorTexture(new Vector3(0, 0, 0), -Vector3.UnitZ, Color.White, new Vector2(0, 0)),
                    new VertexPositionNormalColorTexture(new Vector3(1, 0, 0), -Vector3.UnitZ, Color.White, new Vector2(1, 0)),
                    new VertexPositionNormalColorTexture(new Vector3(0, 1, 0), -Vector3.UnitZ, Color.White, new Vector2(0, 1)),

                    new VertexPositionNormalColorTexture(new Vector3(1, 0, 0), Vector3.UnitZ, Color.White, new Vector2(1, 0)),
                    new VertexPositionNormalColorTexture(new Vector3(0, 0, 0), Vector3.UnitZ, Color.White, new Vector2(0, 0)),
                    new VertexPositionNormalColorTexture(new Vector3(0, 1, 0), Vector3.UnitZ, Color.White, new Vector2(0, 1)),
                });
            }
 public Canvas3DDebugMultiCanvasHost(ConcurrentQueue <IScene> sceneQueue, IGraphicsFacade graphicsFacade, IPresetsStore presets)
 {
     this.graphicsFacade = graphicsFacade;
     this.sceneQueue     = sceneQueue;
     this.presets        = presets;
 }
Пример #5
0
 public WaterWip(IGraphicsFacade graphicsFacade)
 {
     this.graphicsFacade = graphicsFacade;
     this.device         = graphicsFacade.Device;
 }