예제 #1
0
 private void Dirty(DirtyLevel dirty)
 {
     if (this.dirty < dirty)
     {
         this.dirty = dirty;
     }
 }
예제 #2
0
        void LateUpdate()
        {
            switch (_dirty)
            {
            case DirtyLevel.None:
                return;

            case DirtyLevel.Visualizer:
                ExecuteVisualizer();
                break;

            case DirtyLevel.Transform:
                ExecuteTransform();
                ExecuteVisualizer();
                break;

            case DirtyLevel.Modifier:
                ExecuteModifier();
                ExecuteTransform();
                ExecuteVisualizer();
                break;

            case DirtyLevel.Model:
                ExecuteModel();
                ExecuteModifier();
                ExecuteTransform();
                ExecuteVisualizer();
                break;
            }
            _dirty = DirtyLevel.None;
        }
예제 #3
0
 void OnEnable()
 {
     _modelers.Clear();
     _modifiers.Clear();
     _buffer.Clean();
     _origin.Clean();
     _dirty             = DirtyLevel.Model;
     Viewer4.update    += SetDirty;
     transform4.update += OnTransformChanged;
     _hyperState        = 0;
     _hyperSafe         = Application.isPlaying;
 }
예제 #4
0
        /// <summary>
        /// Force a global invalidation
        /// </summary>
        public void SetDirty(DirtyLevel level)
        {
            projector.Setup(viewerToWorldMatrix);
            if (_job)
            {
                _job.SyncProjector(_projector);
            }

            if (update != null)
            {
                update(level);
            }
        }
예제 #5
0
 private void UpdateList()
 {
     if (dirty >= DirtyLevel.ListItem)
     {
         object selected = lstMusic.SelectedItem;
         lstMusic.BeginUpdate();
         if (dirty >= DirtyLevel.ListCount)
         {
             if (lstMusic.Items.Count < musicList.Count)
             {
                 while (lstMusic.Items.Count < musicList.Count)
                 {
                     lstMusic.Items.Add("");
                 }
             }
             else if (lstMusic.Items.Count > musicList.Count)
             {
                 while (lstMusic.Items.Count > musicList.Count)
                 {
                     lstMusic.Items.RemoveAt(Math.Min(lastRemoved, lstMusic.Items.Count - 1));
                 }
             }
             musicList.Save(setting.ListFile);
         }
         MusicData[] list = new MusicData[musicList.Count];
         int         i    = 0;
         foreach (MusicData data in musicList.Values)
         {
             list[i++] = data;
         }
         Array.Sort(list, comparison);
         if (setting.Reversed)
         {
             Array.Reverse(list);
         }
         i = 0;
         foreach (MusicData data in list)
         {
             lstMusic.Items[i++] = data;
         }
         lstMusic.SelectedItem = selected;
         lstMusic.EndUpdate();
     }
     else if (dirty == DirtyLevel.SelectedIndex)
     {
     }
     dirty = DirtyLevel.None;
 }
예제 #6
0
 private void UpdateList(DirtyLevel dirty)
 {
     Dirty(dirty);
     UpdateList();
 }
예제 #7
0
 /// <summary>
 /// Set this renderer to be validated later. Set rebake if mesh reconstruction is needed
 /// </summary>
 public void SetDirty(DirtyLevel level)
 {
     _dirty = (DirtyLevel)(Math.Max((int)level, (int)_dirty));
 }