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();
        }
Exemple #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;
 }
Exemple #5
0
 public WaterWip(IGraphicsFacade graphicsFacade)
 {
     this.graphicsFacade = graphicsFacade;
     this.device         = graphicsFacade.Device;
 }