private void Dispose(bool total) { waveMapsFrame = -1; if (heightFFT != null) { heightFFT.Dispose(); heightFFT = null; } if (slopeFFT != null) { slopeFFT.Dispose(); slopeFFT = null; } if (displacementFFT != null) { displacementFFT.Dispose(); displacementFFT = null; } if (displacedHeightMap != null) { displacedHeightMap.Destroy(); displacedHeightMap = null; } if (slopeMaps != null) { foreach (var slopeMap in slopeMaps) { slopeMap.Destroy(); } slopeMaps = null; } if (displacementMaps != null) { foreach (var displacementMap in displacementMaps) { displacementMap.Destroy(); } displacementMaps = null; } if (total) { if (fftUtilitiesMaterial != null) { fftUtilitiesMaterial.Destroy(); fftUtilitiesMaterial = null; } } }
private void ValidateFFT(ref GpuFFT fft, bool present, bool twoChannels) { if (present) { if (fft == null) { fft = ChooseBestFFTAlgorithm(twoChannels); } } else if (fft != null) { fft.Dispose(); fft = null; } }