123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- namespace UnityEngine.Rendering
- {
- /// <summary>
- /// Utility class for debug overlay coordinates.
- /// </summary>
- public class DebugOverlay
- {
- /// <summary>Current x coordinate.</summary>
- public int x { get; private set; }
- /// <summary>Current y coordinate.</summary>
- public int y { get; private set; }
- /// <summary>Current overlay size.</summary>
- public int overlaySize { get; private set; }
-
- int m_InitialPositionX;
- int m_ScreenWidth;
-
- /// <summary>
- /// Start rendering overlay.
- /// </summary>
- /// <param name="initialX">Initial x position.</param>
- /// <param name="initialY">Initial y position.</param>
- /// <param name="overlaySize">Size of overlays between 0 and 1.</param>
- /// <param name="screenWidth">Width of the screen.</param>
- public void StartOverlay(int initialX, int initialY, int overlaySize, int screenWidth)
- {
- x = initialX;
- y = initialY;
- this.overlaySize = overlaySize;
-
- m_InitialPositionX = initialX;
- m_ScreenWidth = screenWidth;
- }
-
- /// <summary>
- /// Increment coordinates to the next overlay and return the current overlay rect.
- /// </summary>
- /// <param name="aspect">Aspect of the current overlay.</param>
- /// <returns>Returns a rect of the current overlay.</returns>
- public Rect Next(float aspect = 1.0f)
- {
- int overlayWidth = (int)(overlaySize * aspect);
-
- if ((x + overlayWidth) > m_ScreenWidth && x > m_InitialPositionX)
- {
- x = m_InitialPositionX;
- y -= overlaySize;
- }
-
- Rect rect = new Rect(x, y, overlayWidth, overlaySize);
-
- x += overlayWidth;
-
- return rect;
- }
-
- /// <summary>
- /// Setup the viewport for the current overlay.
- /// </summary>
- /// <param name="cmd">Command buffer used to setup viewport.</param>
- public void SetViewport(CommandBuffer cmd)
- {
- cmd.SetViewport(new Rect(x, y, overlaySize, overlaySize));
- }
- }
- }
|