예제 #1
0
 private void Allowed(IViewportSettings vud)
 {
     m_addUserDataSection?.Hide();
     m_integratorSection?.Show(vud);
     m_sessionSection?.Show(vud);
     m_deviceSection?.Show(vud);
 }
예제 #2
0
 public void UserdataAvailable(IViewportSettings vud)
 {
     if (RcCore.It.EngineSettings.AllowViewportSettingsOverride)
     {
         Allowed(vud);
     }
     else
     {
         Prevented();
     }
 }
예제 #3
0
 private static ccl.Device ActiveDevice(IViewportSettings vud)
 {
     ccl.Device rd;
     if (vud == null)
     {
         rd = RcCore.It.EngineSettings.RenderDevice;
     }
     else
     {
         rd = ccl.Device.DeviceFromString(ccl.Device.ValidDeviceString(vud.IntermediateSelectedDeviceStr));
     }
     return(rd);
 }
예제 #4
0
        private static void SetupDeviceData(IViewportSettings vud, ObservableCollection <DeviceItem> lb, ccl.DeviceType t)
        {
            var rd = ActiveDevice(vud);

            lb.Clear();
            foreach (var d in ccl.Device.Devices)
            {
                if (d.Type == t)
                {
                    lb.Add(new DeviceItem {
                        Text = d.NiceName, Selected = rd.HasId(d.Id), Id = (int)d.Id
                    });
                }
            }
        }
예제 #5
0
        private void ActivateDevicePage(IViewportSettings vud)
        {
            var rd = ActiveDevice(vud);

            if (rd.IsCuda || rd.IsMultiCuda)
            {
                m_tc.SelectedPage = m_tabpage_cuda;
            }
            else if (rd.IsOpenCl || rd.IsMultiOpenCl)
            {
                m_tc.SelectedPage = m_tabpage_opencl;
            }
            else
            {
                m_tc.SelectedPage = m_tabpage_cpu;
            }
        }
예제 #6
0
 public void CopyFrom(IViewportSettings src)
 {
     if (src != null)
     {
         SelectedDeviceStr = src.SelectedDeviceStr;
         Samples           = src.Samples;
         ThrottleMs        = src.ThrottleMs;
         Seed                  = src.Seed;
         TileX                 = src.TileX;
         TileY                 = src.TileY;
         DiffuseSamples        = src.DiffuseSamples;
         GlossySamples         = src.GlossySamples;
         TransmissionSamples   = src.TransmissionSamples;
         MaxBounce             = src.MaxBounce;
         MaxDiffuseBounce      = src.MaxDiffuseBounce;
         MaxGlossyBounce       = src.MaxGlossyBounce;
         MaxVolumeBounce       = src.MaxVolumeBounce;
         MaxTransmissionBounce = src.MaxTransmissionBounce;
     }
 }
예제 #7
0
 private void It_InitialisationCompleted(object sender, EventArgs e)
 {
     Application.Instance.AsyncInvoke(() =>
     {
         IViewportSettings vud = Settings;
         if (vud == null)
         {
             return;
         }
         m_currentDevice = Settings.RenderDevice;
         m_newDevice     = vud != null ? ccl.Device.DeviceFromString(ccl.Device.ValidDeviceString(vud.IntermediateSelectedDeviceStr)): m_currentDevice;
         SuspendLayout();
         UnRegisterControlEvents();
         ShowDeviceData();
         SetupDeviceData(vud, m_tabpage_cpu.Collection, ccl.DeviceType.CPU);
         SetupDeviceData(vud, m_tabpage_cuda.Collection, ccl.DeviceType.CUDA);
         SetupDeviceData(vud, m_tabpage_opencl.Collection, ccl.DeviceType.OpenCL);
         ActivateDevicePage(vud);
         RegisterControlEvents();
         ResumeLayout();
     }
                                      );
 }
예제 #8
0
 public ViewportSettingsChangedArgs(IViewportSettings vps)
 {
     Settings = vps;
 }
예제 #9
0
 public void UserDataAvailable(IViewportSettings vud)
 {
     CollapsibleSectionHolder.UserdataAvailable(vud);
 }
예제 #10
0
 public void TriggerViewportSettingsChanged(IViewportSettings settings)
 {
     ViewportSettingsChanged?.Invoke(this, new ViewportSettingsChangedArgs(settings));
 }
예제 #11
0
 public ViewportSettingsReceivedEventArgs(IViewportSettings vud)
 {
     ViewportSettings = vud;
 }
예제 #12
0
 public void Show(IViewportSettings vud)
 {
     _hidden = false;
     Visible = true;
     ViewportSettingsReceived?.Invoke(this, new ViewportSettingsReceivedEventArgs(vud));
 }