35 lines
800 B
C#
35 lines
800 B
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|