public static void PushScreenClip(Rectangle clip)
{
if (_clipStack.Count > 0)
{
Rectangle currentClip = (Rectangle)_clipStack.Peek();
if (currentClip.Contains(clip))
{
SetScreenClip(clip);
_clipStack.Push(clip);
}
else if (currentClip.IntersectsWith(clip))
{
currentClip.Intersect(clip);
SetScreenClip(currentClip);
_clipStack.Push(currentClip);
}
else
{
SetScreenClip(Rectangle.Empty);
_clipStack.Push(Rectangle.Empty);
}
}
else
{
SetScreenClip(clip);
_clipStack.Push(clip);
}
}