private void DrawTabbedPanelSelector() { SidePanelMode prevMode = m_SidePanelViewMode; bool hasInputFrames = m_ProcessingNodeStack.inputSequence.frames.Count > 0; SidePanelMode newMode = (SidePanelMode)VFXToolboxGUIUtility.TabbedButtonsGUILayout( (int)prevMode, new string[] { "Input Frames", "Processors", "Export"}, new bool [] { true, hasInputFrames, hasInputFrames} ); if(prevMode != newMode) { m_SidePanelViewMode = newMode; switch(m_SidePanelViewMode) { case SidePanelMode.InputFrames: m_PreviewCanvas.sequence = m_ProcessingNodeStack.inputSequence; break; case SidePanelMode.Processors: if (m_LockedPreviewProcessor != null) m_PreviewCanvas.sequence = m_LockedPreviewProcessor.OutputSequence; else { if(m_CurrentProcessingNode != null) m_PreviewCanvas.sequence = m_CurrentProcessingNode.OutputSequence; else { if (m_ProcessingNodeStack.nodes.Count > 0) m_PreviewCanvas.sequence = m_ProcessingNodeStack.nodes[m_ProcessingNodeStack.nodes.Count - 1].OutputSequence; else m_PreviewCanvas.sequence = m_ProcessingNodeStack.inputSequence; } } break; case SidePanelMode.Export: m_PreviewCanvas.sequence = m_ProcessingNodeStack.outputSequence; break; } m_PreviewCanvas.InvalidateRenderTarget(); m_PreviewCanvas.UpdateCanvasSequence(); m_PreviewCanvas.Invalidate(true); } }
public void OnUndoRedo() { if (m_CurrentAsset == null) { return; } SidePanelMode bkpSidePanelMode = m_SidePanelViewMode; int hash = GetInputTexturesHashCode(); if (m_InputFramesHashCode != hash || m_CurrentAsset.inheritSettingsReference != null) { LoadAsset(m_CurrentAsset); } else { m_processorStack.LoadProcessorsFromAsset(m_CurrentAsset); RestoreProcessorView(); } if (m_CurrentAsset.inputFrameGUIDs.Count > 0) { m_SidePanelViewMode = bkpSidePanelMode; } else { m_SidePanelViewMode = SidePanelMode.InputFrames; } foreach (FrameProcessor p in m_processorStack.processors) { p.Refresh(); p.Invalidate(); } Repaint(); }