Esempio n. 1
0
        async void UpdateHalfmaps()
        {
            if (!IsInitialized)
            {
                return;
            }

            ProgressHalfmaps.Visibility = Visibility.Visible;

            bool  DoLowpass      = (bool)RadioHalfmap2Lowpass.IsChecked;
            float LowpassNyquist = (float)HalfmapPixelSize * 2 / HalfmapLowpass;

            await Task.Run(() =>
            {
                Halfmap1Final?.Dispose();
                Halfmap1Final = null;
                Halfmap2Final?.Dispose();
                Halfmap2Final = null;

                if (Halfmap1 != null)
                {
                    Halfmap1Final = Halfmap1.GetCopyGPU();

                    if (DoLowpass)
                    {
                        Halfmap1Final.Bandpass(0, LowpassNyquist, true);
                        Halfmap2Final = Halfmap1Final.GetCopyGPU();
                    }
                }

                if (Halfmap2 != null && !DoLowpass)
                {
                    Halfmap2Final = Halfmap2.GetCopyGPU();
                }

                Dispatcher.Invoke(() =>
                {
                    RendererHalfmap1.Volume = Halfmap1Final;
                    RendererHalfmap2.Volume = Halfmap2Final;
                });
            });

            ProgressHalfmaps.Visibility = Visibility.Hidden;
            RevalidateTab();
        }
Esempio n. 2
0
 public void Dispose()
 {
     Halfmap1?.Dispose();
     Halfmap2?.Dispose();
     Mask?.Dispose();
 }