RootPanel: Difference between revisions
Jump to navigation
Jump to search
Tip:If you do need to access the RootPanel, then it is probably to draw an effect over the entire screen, VGUI elements included. Remember to
TomEdwards (talk | contribs) No edit summary |
TomEdwards (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
{{confirm-box}} | {{confirm-box}} | ||
The '''RootPanel''' (strictly speaking the '''ClientDLLRootPanel''') is the ultimate parent of all VGUI elements created by a game. Unlike <code> | The '''RootPanel''' (strictly speaking the '''ClientDLLRootPanel''') is the ultimate parent of all VGUI elements created by a game. Unlike <code>m_pViewport</code>, which will point to different objects as the active [[ClientMode]] changes, it is static. | ||
Most games will never need to access the RootPanel. If this is true for your project then you should return the engine-controlled <code>PANEL_CLIENTDLL</code> (the behaviour of the example below) instead of creating a new object. | Most games will never need to access the RootPanel. If this is true for your project then you should return the engine-controlled <code>PANEL_CLIENTDLL</code> (the behaviour of the example below) instead of creating a new object. |
Revision as of 08:05, 6 August 2009
The RootPanel (strictly speaking the ClientDLLRootPanel) is the ultimate parent of all VGUI elements created by a game. Unlike m_pViewport
, which will point to different objects as the active ClientMode changes, it is static.
Most games will never need to access the RootPanel. If this is true for your project then you should return the engine-controlled PANEL_CLIENTDLL
(the behaviour of the example below) instead of creating a new object.

SetPostChildPaintEnabled(true)
if this is your intention.Minimum implementation
Conventionally in vgui_rootpanel_<game>.cpp
:
#include "cbase.h"
#include "ienginevgui.h"
void VGUI_CreateClientDLLRootPanel()
{
}
void VGUI_DestroyClientDLLRootPanel()
{
}
vgui::VPANEL VGui_GetClientDLLRootPanel()
{
return enginevgui->GetPanel(PANEL_CLIENTDLL);
}
See also
game\client\sdk\vgui\vgui_rootpanel_sdk.cpp
(for a game creating its own RootPanel)- ClientMode
VPANEL