public static bool ClipRect(RectInt pBoundingRect, ref RectInt pDestRect)
{
// clip off the top so we don't write into random memory
if (pDestRect.Top < pBoundingRect.Top)
{
pDestRect.Top = pBoundingRect.Top;
if (pDestRect.Top >= pDestRect.Bottom)
{
return false;
}
}
// clip off the bottom
if (pDestRect.Bottom > pBoundingRect.Bottom)
{
pDestRect.Bottom = pBoundingRect.Bottom;
if (pDestRect.Bottom <= pDestRect.Top)
{
return false;
}
}
// clip off the left
if (pDestRect.Left < pBoundingRect.Left)
{
pDestRect.Left = pBoundingRect.Left;
if (pDestRect.Left >= pDestRect.Right)
{
return false;
}
}
// clip off the right
if (pDestRect.Right > pBoundingRect.Right)
{
pDestRect.Right = pBoundingRect.Right;
if (pDestRect.Right <= pDestRect.Left)
{
return false;
}
}
return true;
}