A game about forced loneliness, made by TACStudios
1namespace UnityEngine.Rendering
2{
3 /// <summary>
4 /// Utility class for debug overlay coordinates.
5 /// </summary>
6 public class DebugOverlay
7 {
8 /// <summary>Current x coordinate.</summary>
9 public int x { get; private set; }
10 /// <summary>Current y coordinate.</summary>
11 public int y { get; private set; }
12 /// <summary>Current overlay size.</summary>
13 public int overlaySize { get; private set; }
14
15 int m_InitialPositionX;
16 int m_ScreenWidth;
17
18 /// <summary>
19 /// Start rendering overlay.
20 /// </summary>
21 /// <param name="initialX">Initial x position.</param>
22 /// <param name="initialY">Initial y position.</param>
23 /// <param name="overlaySize">Size of overlays between 0 and 1.</param>
24 /// <param name="screenWidth">Width of the screen.</param>
25 public void StartOverlay(int initialX, int initialY, int overlaySize, int screenWidth)
26 {
27 x = initialX;
28 y = initialY;
29 this.overlaySize = overlaySize;
30
31 m_InitialPositionX = initialX;
32 m_ScreenWidth = screenWidth;
33 }
34
35 /// <summary>
36 /// Increment coordinates to the next overlay and return the current overlay rect.
37 /// </summary>
38 /// <param name="aspect">Aspect of the current overlay.</param>
39 /// <returns>Returns a rect of the current overlay.</returns>
40 public Rect Next(float aspect = 1.0f)
41 {
42 int overlayWidth = (int)(overlaySize * aspect);
43
44 if ((x + overlayWidth) > m_ScreenWidth && x > m_InitialPositionX)
45 {
46 x = m_InitialPositionX;
47 y -= overlaySize;
48 }
49
50 Rect rect = new Rect(x, y, overlayWidth, overlaySize);
51
52 x += overlayWidth;
53
54 return rect;
55 }
56
57 /// <summary>
58 /// Setup the viewport for the current overlay.
59 /// </summary>
60 /// <param name="cmd">Command buffer used to setup viewport.</param>
61 public void SetViewport(CommandBuffer cmd)
62 {
63 cmd.SetViewport(new Rect(x, y, overlaySize, overlaySize));
64 }
65 }
66}