示例#1
0
        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;
                }
            }
        }
示例#2
0
 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;
     }
 }