Ejemplo n.º 1
0
        public void DestroyDeviceObjects()
        {
            _disposeCollector.DisposeAll();

            if (_pipelines != null)
            {
                foreach (var pipeline in _pipelines)
                {
                    pipeline.Value.Dispose();
                }
                _pipelines = null;
            }

            foreach (var buffer in _instanceBuffers)
            {
                buffer.Dispose();
            }
            _instanceBuffers.Clear();

            foreach (var resourceSet in _resourceSets)
            {
                resourceSet.Dispose();
            }
            _resourceSets.Clear();

            foreach (var shader in _shaders)
            {
                shader.Dispose();
            }
            _shaders.Clear();
        }
Ejemplo n.º 2
0
 public override void DestroyDeviceObjects(ResourceScope scope)
 {
     if ((scope & ResourceScope.Map) != 0)
     {
         _disposeCollector.DisposeAll();
     }
 }
Ejemplo n.º 3
0
        public void DestroyDeviceObjects()
        {
            foreach (var buffer in _instanceBuffers)
            {
                buffer.Dispose();
            }
            _instanceBuffers.Clear();

            foreach (var resourceSet in _resourceSets)
            {
                resourceSet.Dispose();
            }
            _resourceSets.Clear();

            if (_shaders != null)
            {
                foreach (var shader in _shaders)
                {
                    shader.Dispose();
                }
            }
            _shaders = null;

            _disposeCollector.DisposeAll();
        }
Ejemplo n.º 4
0
        public override void DestroyDeviceObjects(ResourceScope scope)
        {
            if ((scope & ResourceScope.Global) == 0)
            {
                return;
            }

            _disposeCollector.DisposeAll();
        }
Ejemplo n.º 5
0
        public void DestroyDeviceObjects(ResourceScope scope)
        {
            if ((scope & ResourceScope.Map) == 0)
            {
                return;
            }

            _disposeCollector.DisposeAll();
        }
Ejemplo n.º 6
0
        public void DestroyDeviceObjects()
        {
            if (_materialPropsOwned)
            {
                _materialProps.DestroyDeviceObjects();
            }

            _disposeCollector.DisposeAll();
        }
Ejemplo n.º 7
0
        public virtual void DestroyDeviceObjects()
        {
            _disposer.DisposeAll();
            PaletteView?.Dispose();
            PaletteTexture?.Dispose();

            PaletteView    = null;
            PaletteTexture = null;
        }
Ejemplo n.º 8
0
        public override void DestroyDeviceObjects(ResourceScope scope)
        {
            if ((scope & ResourceScope.Map) == 0)
            {
                return;
            }

            _disposeCollector.DisposeAll();
            VertexBuffers = null;
        }
Ejemplo n.º 9
0
        public void DestroyDeviceObjects()
        {
            _disposeCollector.DisposeAll();

            foreach (var shader in _shaders)
            {
                shader.Dispose();
            }
            _shaders.Clear();
        }
Ejemplo n.º 10
0
        public void DestroyDeviceObjects()
        {
            _disposer.DisposeAll();
            PaletteView?.Dispose();
            PaletteTexture?.Dispose();
            CommonResourceSet?.Dispose();

            PaletteView       = null;
            PaletteTexture    = null;
            CommonResourceSet = null;
        }
        public void DestroyDeviceObjects(ResourceScope scope)
        {
            if ((scope & ResourceScope.Map) == 0)
            {
                return;
            }

            _disposeCollector.DisposeAll();

            RenderArgumentsBuffer = null;
        }
Ejemplo n.º 12
0
        public void Dispose()
        {
            _disposer.DisposeAll();
            PaletteView?.Dispose();
            PaletteTexture?.Dispose();
            CommonResourceSet?.Dispose();

            PaletteView       = null;
            PaletteTexture    = null;
            CommonResourceSet = null;
        }
Ejemplo n.º 13
0
        public void DestroyDeviceObjects()
        {
            if (_shaders != null)
            {
                foreach (var shader in _shaders)
                {
                    shader.Dispose();
                }
            }
            _shaders = null;

            _disposeCollector?.DisposeAll();
        }
Ejemplo n.º 14
0
        public void DestroyDeviceObjects()
        {
            _disposeCollector.DisposeAll();

            foreach (var pipeline in _pipelines)
            {
                pipeline.Value.Dispose();
            }
            _pipelines.Clear();

            foreach (var shader in _shaders)
            {
                shader.Dispose();
            }
            _shaders.Clear();
        }
Ejemplo n.º 15
0
 public void DestroyDeviceObjects()
 {
     _disposeCollector.DisposeAll();
 }
Ejemplo n.º 16
0
 public void DisposeDeviceResources()
 {
     disposeCollector.DisposeAll();
 }
Ejemplo n.º 17
0
        public WindowSizedSceneContext(GraphicsDevice gd, TextureSampleCount sampleCount)
        {
            _disposer.DisposeAll();
            ResourceFactory factory = new DisposingResourceFactoryFacade(gd.ResourceFactory, _disposer);

            TextureSamplerResourceLayout = factory.CreateResourceLayout(new ResourceLayoutDescription(
                                                                            new ResourceLayoutElementDescription(
                                                                                "SourceTexture",
                                                                                ResourceKind.TextureReadOnly,
                                                                                ShaderStages.Fragment),

                                                                            new ResourceLayoutElementDescription(
                                                                                "SourceSampler",
                                                                                ResourceKind.Sampler,
                                                                                ShaderStages.Fragment)));

            TextureSamplerResourceLayout.Name = "RL_TextureSampler";

            gd.GetPixelFormatSupport(
                PixelFormat.R16_G16_B16_A16_Float,
                TextureType.Texture2D,
                TextureUsage.RenderTarget,
                out PixelFormatProperties properties);

            while (!properties.IsSampleCountSupported(sampleCount))
            {
                sampleCount--;
            }

            TextureDescription mainColorDesc = TextureDescription.Texture2D(
                gd.SwapchainFramebuffer.Width,
                gd.SwapchainFramebuffer.Height,
                1,
                1,
                PixelFormat.R16_G16_B16_A16_Float,
                TextureUsage.RenderTarget | TextureUsage.Sampled,
                sampleCount);

            MainSceneColorTexture      = factory.CreateTexture(ref mainColorDesc);
            MainSceneColorTexture.Name = "T_MainSceneColor";

            if (sampleCount != TextureSampleCount.Count1)
            {
                mainColorDesc.SampleCount          = TextureSampleCount.Count1;
                MainSceneResolvedColorTexture      = factory.CreateTexture(ref mainColorDesc);
                MainSceneResolvedColorTexture.Name = "T_MainSceneResolvedColor";
            }
            else
            {
                MainSceneResolvedColorTexture = MainSceneColorTexture;
            }

            MainSceneResolvedColorView = factory.CreateTextureView(MainSceneResolvedColorTexture);
            MainSceneDepthTexture      = factory.CreateTexture(TextureDescription.Texture2D(
                                                                   gd.SwapchainFramebuffer.Width,
                                                                   gd.SwapchainFramebuffer.Height,
                                                                   1,
                                                                   1,
                                                                   PixelFormat.R32_Float,
                                                                   TextureUsage.DepthStencil,
                                                                   sampleCount));
            MainSceneFramebuffer     = factory.CreateFramebuffer(new FramebufferDescription(MainSceneDepthTexture, MainSceneColorTexture));
            MainSceneViewResourceSet = factory.CreateResourceSet(
                new ResourceSetDescription(
                    TextureSamplerResourceLayout,
                    MainSceneResolvedColorView, gd.PointSampler));

            MainSceneResolvedColorView.Name = "TV_MainSceneResolvedColor";
            MainSceneDepthTexture.Name      = "T_MainSceneDepth";
            MainSceneFramebuffer.Name       = "FB_MainFrame";
            MainSceneViewResourceSet.Name   = "RS_MainFrame";

            TextureDescription colorTargetDesc = TextureDescription.Texture2D(
                gd.SwapchainFramebuffer.Width,
                gd.SwapchainFramebuffer.Height,
                1,
                1,
                PixelFormat.R16_G16_B16_A16_Float,
                TextureUsage.RenderTarget | TextureUsage.Sampled);

            DuplicatorTarget0     = factory.CreateTexture(ref colorTargetDesc);
            DuplicatorTargetView0 = factory.CreateTextureView(DuplicatorTarget0);
            DuplicatorTargetSet0  = factory.CreateResourceSet(new ResourceSetDescription(TextureSamplerResourceLayout, DuplicatorTargetView0, gd.PointSampler));

            DuplicatorTarget0.Name     = "T_DuplicatorTarget";
            DuplicatorTargetView0.Name = "TV_DuplicatorTarget";
            DuplicatorTargetSet0.Name  = "RS_DuplicatorTarget";

            FramebufferDescription fbDesc = new FramebufferDescription(null, DuplicatorTarget0);

            DuplicatorFramebuffer      = factory.CreateFramebuffer(ref fbDesc);
            DuplicatorFramebuffer.Name = "FB_Duplicator";
        }