summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/GUIViewportScope.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/GUIViewportScope.cs')
-rw-r--r--Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/GUIViewportScope.cs34
1 files changed, 34 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/GUIViewportScope.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/GUIViewportScope.cs
new file mode 100644
index 0000000..7999ffd
--- /dev/null
+++ b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/GUIViewportScope.cs
@@ -0,0 +1,34 @@
+using System;
+using UnityEngine;
+
+namespace UnityEditor
+{
+ // Special Clip Scope that only effects painting, and keeps the coordinate system identical
+ struct GUIViewportScope : IDisposable
+ {
+ bool m_open;
+ public GUIViewportScope(Rect position)
+ {
+ m_open = false;
+ if (Event.current.type == EventType.Repaint || Event.current.type == EventType.Layout)
+ {
+ GUI.BeginClip(position, -position.min, Vector2.zero, false);
+ m_open = true;
+ }
+ }
+
+ public void Dispose()
+ {
+ CloseScope();
+ }
+
+ void CloseScope()
+ {
+ if (m_open)
+ {
+ GUI.EndClip();
+ m_open = false;
+ }
+ }
+ }
+}