RootPanel
The RootPanel (strictly speaking the ClientDLLRootPanel) is the where the client starts creating panels for its in-game HUD. It in entirely separate from the GameUI panel used to draw the main menu. The first child is normally the active ClientMode.
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.
Tip:If you do need to access the RootPanel it is probably to draw an effect over the entire screen, VGUI elements included. Remember to
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
- GameUI
VPANEL