/// <summary> /// Releases unmanaged and - optionally - managed resources /// </summary> /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> protected override void Dispose(bool disposing) { if (!IsDisposed) { //Dispose of managed resources if (disposing) { if (_shaderResourceView != null) { if (_renderer != null) { _renderer.Resources.RemoveTrackedObject(_shaderResourceView.ComPointer); } _shaderResourceView.Dispose(); _shaderResourceView = null; } if (_renderTargetView != null) { if (_renderer != null) { _renderer.Resources.RemoveTrackedObject(_renderTargetView.ComPointer); } _renderTargetView.Dispose(); _renderTargetView = null; } if (_depthStencilView != null) { if (_renderer != null) { _renderer.Resources.RemoveTrackedObject(_depthStencilView.ComPointer); } _depthStencilView.Dispose(); _depthStencilView = null; } if (_texture2D != null) { if (_renderer != null) { _renderer.Resources.RemoveTrackedObject(_texture2D.ComPointer); } _texture2D.Dispose(); _texture2D = null; } if (_staging != null) { if (_renderer != null) { _renderer.Resources.RemoveTrackedObject(_staging.ComPointer); } _staging.Dispose(); _staging = null; } } base.Dispose(disposing); } }
/// <summary> /// Releases unmanaged and - optionally - managed resources /// </summary> /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> protected override void Dispose(bool disposing) { if (!IsDisposed) { //Dispose of managed resources if (disposing) { if (_shaderResourceView != null) { if (_renderer != null) { _renderer.Resources.RemoveTrackedObject(_shaderResourceView.ComPointer); } _shaderResourceView.Dispose(); _shaderResourceView = null; } if (_renderTargetView != null) { for (int i = 0; i < 6; i++) { D3D.RenderTargetView rt = _renderTargetView[i]; if (_renderer != null) { _renderer.Resources.RemoveTrackedObject(rt.ComPointer); } rt.Dispose(); _renderTargetView[i] = null; } } if (_depthStencilView != null) { if (_renderer != null) { _renderer.Resources.RemoveTrackedObject(_depthStencilView.ComPointer); } _depthStencilView.Dispose(); _depthStencilView = null; } if (_texture2D != null) { if (_renderer != null) { _renderer.Resources.RemoveTrackedObject(_texture2D.ComPointer); } _texture2D.Dispose(); _texture2D = null; } } base.Dispose(disposing); } }
public override void Init(D3DDevice device) { base.Init(device); texture = D3D.Texture2D.FromFile(device.Device, @"C:\Users\adrianj\Documents\Visual Studio 2010\Projects\Direct3D-Testing\ImageTiler_Test\bin\Debug\Images\test_google.bmp"); D3D.ShaderResourceView textureResourceView = new D3D.ShaderResourceView(device.Device, texture); D3D.EffectResourceVariable textureResource = effect.GetVariableByName("Texture_0").AsResource(); device.Device.PixelShader.SetShaderResource(textureResourceView, 0); textureResource.SetResource(textureResourceView); texture.Dispose(); textureResourceView.Dispose(); zoomEffect = effect.GetVariableByName("TextureZoomLevel").AsScalar(); }