WoW:How the user interface is rendered (source)
Revision as of 04:48, 15 August 2023
, 15 August 2023Move page script moved page How the user interface is rendered to WoW:How the user interface is rendered without leaving a redirect
m (→Event/Update Ordering: (typo fix)) |
m (Move page script moved page How the user interface is rendered to WoW:How the user interface is rendered without leaving a redirect) |
||
| (4 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
{{uitech}} | |||
:From: Post in the WoW UI Forum by Slouken on 2005-05-26 | |||
== Page Composition == | |||
Well, an understanding of how the UI is rendered would help: | Well, an understanding of how the UI is rendered would help: | ||
There are several strata that a frame goes into, e.g. background, normal, dialog, tooltip. A strata simply means that all frames in one strata will be rendered above frames in a lower strata, and below frames in a higher strata. | There are several strata that a frame goes into, e.g. background, normal, dialog, tooltip. A strata simply means that all frames in one strata will be rendered above frames in a lower strata, and below frames in a higher strata. | ||
The actual strata, according to UI.xsd are: PARENT,BACKGROUND,LOW,MEDIUM,HIGH,DIALOG,FULLSCREEEN,FULLSCREEN_DIALOG,TOOLTIP | The actual strata, according to UI.xsd are: PARENT, BACKGROUND, LOW, MEDIUM, | ||
HIGH, DIALOG, FULLSCREEEN, FULLSCREEN_DIALOG, TOOLTIP. Note that PARENT is a | |||
'compile time' only strata, and doesn't exist at runtime, use GetFrameStrata | |||
at runtime. | |||
Within a strata, each frame has a frame level, which determines the order in which it is rendered. The optimal layout is to have all frames in the same strata at the same frame level, since they can be batched and rendered at the same time. When a "toplevel" frame is clicked on, it is raised above other frames in the strata. | Within a strata, each frame has a frame level, which determines the order in which it is rendered. The optimal layout is to have all frames in the same strata at the same frame level, since they can be batched and rendered at the same time. When a "toplevel" frame is clicked on, it is raised above other frames in the strata. | ||
| Line 25: | Line 28: | ||
Each time the screen is re-rendered (i.e. each Frame, in the FPS sense), the process runs as follows: | Each time the screen is re-rendered (i.e. each Frame, in the FPS sense), the process runs as follows: | ||
# Handle pending UI Events, Key presses, Mouse Clicks. | |||
# Execute OnUpdate on each visible Frame with a handler. | |||
# Repaint UI over the top of the game world. | |||
The most important part of this is that OnUpdates happen right before painting the UI, so you can defer making rendering decisions until then without any visible impact. | The most important part of this is that OnUpdates happen right before painting the UI, so you can defer making rendering decisions until then without any visible impact. | ||