Ejemplo n.º 1
0
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
#if DIRECTX
                if (disposing)
                {
                    if (_renderTargetView != null)
                    {
                        _renderTargetView.Dispose();
                        _renderTargetView = null;
                    }
                    if (_depthStencilView != null)
                    {
                        _depthStencilView.Dispose();
                        _depthStencilView = null;
                    }
                }
#elif OPENGL
                GraphicsDevice.AddDisposeAction(() =>
                {
                    GL.DeleteRenderbuffers(1, ref this.glDepthStencilBuffer);
                    GraphicsExtensions.CheckGLError();

                    if (this.glFramebuffer > 0)
                    {
                        GL.DeleteFramebuffers(1, ref this.glFramebuffer);
                        GraphicsExtensions.CheckGLError();
                    }
                });
#endif
            }
            base.Dispose(disposing);
        }
Ejemplo n.º 2
0
        public override void Dispose()
        {
#if DIRECTX
            if (_renderTargetView != null)
            {
                _renderTargetView.Dispose();
                _renderTargetView = null;
            }
            if (_depthStencilView != null)
            {
                _depthStencilView.Dispose();
                _depthStencilView = null;
            }
#elif OPENGL
            GL.DeleteRenderbuffers(1, ref this.glDepthStencilBuffer);
            GraphicsExtensions.CheckGLError();

            if (this.glFramebuffer > 0)
            {
                GL.DeleteFramebuffers(1, ref this.glFramebuffer);
                GraphicsExtensions.CheckGLError();
            }
#endif
            base.Dispose();
        }
Ejemplo n.º 3
0
        private bool disposedValue = false; // Для определения избыточных вызовов

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    // TODO: освободить управляемое состояние (управляемые объекты).
                    inputLayout.Dispose();
                    inputSignature.Dispose();
                    triangleVertexBuffer.Dispose();
                    vertexShader.Dispose();
                    pixelShader.Dispose();
                    renderTargetView.Dispose();
                    swapChain.Dispose();
                    d3dDevice.Dispose();
                    d3dDeviceContext.Dispose();
                    renderForm.Dispose();
                    triangleVertexBuffer.Dispose();
                }

                // TODO: освободить неуправляемые ресурсы (неуправляемые объекты) и переопределить ниже метод завершения.
                // TODO: задать большим полям значение NULL.
                disposedValue = true;
            }
        }
Ejemplo n.º 4
0
 public void Dispose()
 {
     _renderTarget2D?.Dispose();
     _surface?.Dispose();
     _factory2D?.Dispose();
     _textureD3D11.Dispose();
     _renderView?.Dispose();
     _backBuffer?.Dispose();
 }
Ejemplo n.º 5
0
 private void DisposeDirectXResources()
 {
     _textFormat.Dispose();
     _dwFactory.Dispose();
     _renderTarget.Dispose();
     _renderTargetView.Dispose();
     _d2DFactory.Dispose();
     _swapChain.Dispose();
     _d3DDeviceContext.Dispose();
     _d3DDevice.Dispose();
 }