public override bool OnCanvasGUI(ImageSequencerCanvas canvas) { if (Event.current.type != EventType.Repaint) { return(false); } Vector2 topRight; Vector2 bottomLeft; topRight = canvas.CanvasToScreen(new Vector2(-canvas.currentFrame.texture.width / 2, canvas.currentFrame.texture.height / 2)); bottomLeft = canvas.CanvasToScreen(new Vector2(canvas.currentFrame.texture.width / 2, -canvas.currentFrame.texture.height / 2)); // Texts GUI.color = canvas.styles.green; for (int i = 0; i < settings.FlipbookNumU; i++) { float cw = (topRight.x - bottomLeft.x) / settings.FlipbookNumU; GUI.Label(new Rect(bottomLeft.x + i * cw, topRight.y - 16, cw, 16), (i + 1).ToString(), canvas.styles.miniLabelCenter); } for (int i = 0; i < settings.FlipbookNumV; i++) { float ch = (bottomLeft.y - topRight.y) / settings.FlipbookNumV; VFXToolboxGUIUtility.GUIRotatedLabel(new Rect(bottomLeft.x - 8, topRight.y + i * ch, 16, ch), (i + 1).ToString(), -90.0f, canvas.styles.miniLabelCenter); } GUI.color = Color.white; return(false); }
public override bool OnCanvasGUI(ImageSequencerCanvas canvas) { if (Event.current.type != EventType.Repaint) { return(false); } Vector2 center = canvas.CanvasToScreen(Vector2.zero); Vector2 topRight; Vector2 bottomLeft; topRight = canvas.CanvasToScreen(new Vector2(-canvas.currentFrame.texture.width / 2, canvas.currentFrame.texture.height / 2)); bottomLeft = canvas.CanvasToScreen(new Vector2(canvas.currentFrame.texture.width / 2, -canvas.currentFrame.texture.height / 2)); // Arrows Handles.color = canvas.styles.green; Handles.DrawLine(new Vector3(topRight.x, topRight.y - 16), new Vector3(bottomLeft.x, topRight.y - 16)); Handles.DrawLine(new Vector3(bottomLeft.x - 16, topRight.y), new Vector3(bottomLeft.x - 16, bottomLeft.y)); Handles.color = Color.white; // Texts GUI.color = Color.green; GUI.Label(new Rect(center.x - 32, topRight.y - 32, 64, 16), settings.Width.ToString(), canvas.styles.miniLabelCenter); VFXToolboxGUIUtility.GUIRotatedLabel(new Rect(bottomLeft.x - 48, center.y - 8, 64, 16), settings.Height.ToString(), -90.0f, canvas.styles.miniLabelCenter); GUI.color = Color.white; return(false); }
public override bool OnCanvasGUI(ImageSequencerCanvas canvas) { Vector2 pos = canvas.CanvasToScreen(Vector2.zero + (new Vector2(canvas.currentFrame.texture.width, canvas.currentFrame.texture.height) / 2)); Rect r = new Rect(pos.x, pos.y - 16, 150, 16); GUI.Label(r, VFXToolboxGUIUtility.Get("CropRotateProcesssor")); return(false); }
public override bool OnCanvasGUI(ImageSequencerCanvas canvas) { if (Event.current.type != EventType.Repaint) { return(false); } Vector2 center = canvas.CanvasToScreen(Vector2.zero); int width = canvas.currentFrame.texture.width; int height = canvas.currentFrame.texture.height; // (left, right, top, bottom) float left = settings.FixFactors.x * width; float right = settings.FixFactors.y * width; float top = settings.FixFactors.z * height; float bottom = settings.FixFactors.w * height; Vector2 topRight = canvas.CanvasToScreen(new Vector2(-width / 2, height / 2)); Vector2 bottomLeft = canvas.CanvasToScreen(new Vector2(width / 2, -height / 2)); Vector2 topRightCrop = canvas.CanvasToScreen(new Vector2(-width / 2 + right, height / 2 - top)); Vector2 bottomLeftCrop = canvas.CanvasToScreen(new Vector2(width / 2 - left, -height / 2 + bottom)); // Arrows Handles.color = canvas.styles.green; Handles.DrawLine(new Vector3(center.x, topRight.y), new Vector3(center.x, topRightCrop.y)); Handles.DrawLine(new Vector3(center.x, bottomLeft.y), new Vector3(center.x, bottomLeftCrop.y)); Handles.DrawLine(new Vector3(topRight.x, center.y), new Vector3(topRightCrop.x, center.y)); Handles.DrawLine(new Vector3(bottomLeft.x, center.y), new Vector3(bottomLeftCrop.x, center.y)); // Limits Handles.color = canvas.styles.fadewhite; Handles.DrawLine(new Vector3(topRight.x, topRightCrop.y), new Vector3(bottomLeft.x, topRightCrop.y)); Handles.DrawLine(new Vector3(topRight.x, bottomLeftCrop.y), new Vector3(bottomLeft.x, bottomLeftCrop.y)); Handles.DrawLine(new Vector3(topRightCrop.x, topRight.y), new Vector3(topRightCrop.x, bottomLeft.y)); Handles.DrawLine(new Vector3(bottomLeftCrop.x, topRight.y), new Vector3(bottomLeftCrop.x, bottomLeft.y)); // Texts int labelwidth = 36; GUI.color = canvas.styles.green; GUI.Label(new Rect(center.x - labelwidth / 2, topRight.y - 20, labelwidth, 16), settings.FixFactors.z.ToString(), canvas.styles.miniLabel); GUI.Label(new Rect(center.x - labelwidth / 2, bottomLeft.y + 4, labelwidth, 16), settings.FixFactors.w.ToString(), canvas.styles.miniLabel); GUI.Label(new Rect(topRight.x + 4, center.y - 8, labelwidth, 16), settings.FixFactors.y.ToString(), canvas.styles.miniLabel); GUI.Label(new Rect(bottomLeft.x - labelwidth - 4, center.y - 8, labelwidth, 16), settings.FixFactors.x.ToString(), canvas.styles.miniLabelRight); Handles.color = Color.white; GUI.color = Color.white; return(false); }
public void InitializeGUI() { minSize = m_MinimumSize; if (m_Splitter == null) { m_Splitter = new Splitter(360, DrawEditPanelGUI, DrawCanvasGUI, Splitter.SplitLockMode.LeftMinMax, new Vector2(320.0f, 480.0f)); } if (m_PreviewCanvas == null) { m_PreviewCanvas = new ImageSequencerCanvas(new Rect(0, Styles.ToolbarHeight, position.width - m_Splitter.value, position.height - Styles.ToolbarHeight), this); } CheckGraphicsSettings(); }
public override bool OnCanvasGUI(ImageSequencerCanvas canvas) { if (Event.current.type != EventType.repaint) { return(false); } Vector2 center = canvas.CanvasToScreen(Vector2.zero); Vector2 topRight; Vector2 bottomLeft; topRight = canvas.CanvasToScreen(new Vector2(-canvas.currentFrame.texture.width / 2 - settings.Crop_Right, canvas.currentFrame.texture.height / 2 + settings.Crop_Top)); bottomLeft = canvas.CanvasToScreen(new Vector2(canvas.currentFrame.texture.width / 2 + settings.Crop_Left, -canvas.currentFrame.texture.height / 2 - settings.Crop_Bottom)); Handles.DrawSolidRectangleWithOutline(new Rect(topRight, bottomLeft - topRight), Color.clear, canvas.styles.green); Vector2 topRightCrop; Vector2 bottomLeftCrop; topRightCrop = canvas.CanvasToScreen(new Vector2(-canvas.currentFrame.texture.width / 2, canvas.currentFrame.texture.height / 2)); bottomLeftCrop = canvas.CanvasToScreen(new Vector2(canvas.currentFrame.texture.width / 2, -canvas.currentFrame.texture.height / 2)); Handles.DrawSolidRectangleWithOutline(new Rect(topRightCrop, bottomLeftCrop - topRightCrop), Color.clear, canvas.styles.red); // Arrows Handles.color = canvas.styles.white; Handles.DrawLine(new Vector3(center.x, topRight.y), new Vector3(center.x, topRightCrop.y)); Handles.DrawLine(new Vector3(center.x, bottomLeft.y), new Vector3(center.x, bottomLeftCrop.y)); Handles.DrawLine(new Vector3(topRight.x, center.y), new Vector3(topRightCrop.x, center.y)); Handles.DrawLine(new Vector3(bottomLeft.x, center.y), new Vector3(bottomLeftCrop.x, center.y)); Handles.color = Color.white; // Texts GUI.Label(new Rect(center.x, topRightCrop.y - 16, 64, 16), settings.Crop_Top.ToString(), canvas.styles.miniLabel); GUI.Label(new Rect(center.x, bottomLeftCrop.y, 64, 16), settings.Crop_Bottom.ToString(), canvas.styles.miniLabel); GUI.Label(new Rect(topRightCrop.x, center.y, 64, 16), settings.Crop_Right.ToString(), canvas.styles.miniLabel); GUI.Label(new Rect(bottomLeftCrop.x - 64, center.y, 64, 16), settings.Crop_Left.ToString(), canvas.styles.miniLabelRight); return(false); }
public Styles(ImageSequencerCanvas canvas) { m_Canvas = canvas; Color lightGray = new Color(0.8f, 0.8f, 0.8f, 1.0f); Color darkGray = new Color(0.2f, 0.2f, 0.2f, 1.0f); m_ViewportMiniLabel = new GUIStyle(EditorStyles.miniLabel); m_ViewportMiniLabel.normal.textColor = lightGray; m_ViewportMiniLabelDark = new GUIStyle(EditorStyles.miniLabel); m_ViewportMiniLabelDark.normal.textColor = darkGray; m_ViewportMiniLabelRight = new GUIStyle(m_ViewportMiniLabel); m_ViewportMiniLabelRight.alignment = TextAnchor.MiddleRight; m_ViewportMiniLabelRightDark = new GUIStyle(m_ViewportMiniLabelDark); m_ViewportMiniLabelRightDark.alignment = TextAnchor.MiddleRight; m_ViewportMiniLabelCenter = new GUIStyle(m_ViewportMiniLabel); m_ViewportMiniLabelCenter.alignment = TextAnchor.MiddleCenter; m_ViewportMiniLabelCenterDark = new GUIStyle(m_ViewportMiniLabelDark); m_ViewportMiniLabelCenterDark.alignment = TextAnchor.MiddleCenter; m_ViewportLabel = new GUIStyle(EditorStyles.largeLabel); m_ViewportLabel.normal.textColor = lightGray; m_ViewportLabelDark = new GUIStyle(EditorStyles.largeLabel); m_ViewportLabelDark.normal.textColor = darkGray; m_ViewportLargeLabel = new GUIStyle(EditorStyles.largeLabel); m_ViewportLargeLabel.fontSize = 24; m_ViewportLargeLabel.normal.textColor = lightGray; m_ViewportLargeLabelDark = new GUIStyle(EditorStyles.largeLabel); m_ViewportLargeLabelDark.fontSize = 24; m_ViewportLargeLabelDark.normal.textColor = darkGray; m_BackgroundPanelColor = new Color(0.02f, 0.02f, 0.02f, 0.85f); m_BackgroundPanelColorDark = new Color(0.5f, 0.5f, 0.5f, 0.5f); }
public override bool OnCanvasGUI(ImageSequencerCanvas canvas) { return(false); }
public abstract bool OnCanvasGUI(ImageSequencerCanvas canvas);
public override bool OnCanvasGUI(ImageSequencerCanvas canvas) { // Empty, for now; return(false); }
public override bool OnCanvasGUI(ImageSequencerCanvas canvas) { int inLength = InputSequence.length; int outLength = GetProcessorSequenceLength(); int syncFrame = settings.syncFrame; int outCurIDX = canvas.currentFrameIndex; float outCurT = (float)outCurIDX / outLength; int inSeqAIDX = (syncFrame - outLength) + outCurIDX; int inSeqBIDX = syncFrame + outCurIDX; AnimationCurve mixCurve = settings.curve; float mix = mixCurve.Evaluate(outCurT); Color topTrackColor = canvas.styles.yellow; Color bottomTrackColor = canvas.styles.cyan; Vector2 top = canvas.CanvasToScreen(new Vector2(-canvas.currentFrame.texture.width, canvas.currentFrame.texture.height) / 2); Rect rect = new Rect((int)top.x + 24, (int)top.y + 8, 260, 280); EditorGUI.DrawRect(new RectOffset(8, 8, 8, 8).Add(rect), canvas.styles.backgroundPanelColor); GUILayout.BeginArea(rect); GUI.color = topTrackColor; GUILayout.Label("Mix Chunk A (Input Range : " + (syncFrame - outLength + 1).ToString() + "-" + syncFrame.ToString() + ")", canvas.styles.label); using (new GUILayout.HorizontalScope()) { Rect imgARect = GUILayoutUtility.GetRect(100, 100); imgARect.width = 100; imgARect.height = 100; GUI.color = Color.white; #if !UNITY_2018_2_OR_NEWER GL.sRGBWrite = (QualitySettings.activeColorSpace == ColorSpace.Linear); #endif GUI.DrawTexture(imgARect, InputSequence.RequestFrame(inSeqAIDX).texture); #if !UNITY_2018_2_OR_NEWER GL.sRGBWrite = false; #endif GUI.color = canvas.styles.white; Handles.DrawSolidRectangleWithOutline(imgARect, Color.clear, topTrackColor); using (new GUILayout.VerticalScope()) { GUI.color = topTrackColor; GUILayout.Label("Frame #" + (inSeqAIDX + 1).ToString(), canvas.styles.miniLabel); GUILayout.Label("Mixed at : " + (int)(mix * 100) + "%", canvas.styles.miniLabel); } } GUILayout.Space(16); GUI.color = bottomTrackColor; GUILayout.Label("Mix Chunk B (Input Range : " + (syncFrame + 1).ToString() + "-" + (syncFrame + outLength).ToString() + ")", canvas.styles.label); using (new GUILayout.HorizontalScope()) { Rect imgBRect = GUILayoutUtility.GetRect(100, 100); imgBRect.width = 100; imgBRect.height = 100; GUI.color = Color.white; #if !UNITY_2018_2_OR_NEWER GL.sRGBWrite = (QualitySettings.activeColorSpace == ColorSpace.Linear); #endif GUI.DrawTexture(imgBRect, InputSequence.RequestFrame(inSeqBIDX).texture); #if !UNITY_2018_2_OR_NEWER GL.sRGBWrite = false; #endif GUI.color = canvas.styles.white; Handles.DrawSolidRectangleWithOutline(imgBRect, Color.clear, bottomTrackColor); using (new GUILayout.VerticalScope()) { GUI.color = bottomTrackColor; GUILayout.Label("Frame #" + (inSeqBIDX + 1).ToString(), canvas.styles.miniLabel); GUILayout.Label("Mixed at : " + (int)((1.0f - mix) * 100) + "%", canvas.styles.miniLabel); } } GUI.color = Color.white; GUILayout.EndArea(); return(false); }