As a developer it is currently difficult to determine whether a Gui is being rendered or not.
The only time it is obvious that a Gui is not being rendered is when Gui.Visible = false, but there are many other scenarios that can cause a Gui not to be rendered.
- If any of the parents of the Gui have visible set to false, the Gui is no longer rendered.
- The ancestor ScreenGui has Enabled set to false.
- Roblox automatically stops rendering Guis when they have been fully hidden by ClipDescendants
- I assume Roblox also stops rendering Guis when they move off of the screen entirely
- The Gui is reparented outside of the PlayerGui
Since no property is updated when the engine stops rendering a Gui, the only way to determine if a Gui is visible or not is to do extensive checks of the ancestry of the Gui, as well as check the bounds within any ClipDescendants enabled parents of the Gui. This is not only tedious but inefficient.
Adding a property that shows whether a Gui is currently being rendered, for example Gui.IsRendered, would allow me to optimize any special effects I have active on that Gui, such that I could disable them when the Gui is no longer being rendered.