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); }
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(); }
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; } }
public void Dispose() { _renderTarget2D?.Dispose(); _surface?.Dispose(); _factory2D?.Dispose(); _textureD3D11.Dispose(); _renderView?.Dispose(); _backBuffer?.Dispose(); }
private void DisposeDirectXResources() { _textFormat.Dispose(); _dwFactory.Dispose(); _renderTarget.Dispose(); _renderTargetView.Dispose(); _d2DFactory.Dispose(); _swapChain.Dispose(); _d3DDeviceContext.Dispose(); _d3DDevice.Dispose(); }