@@ -30,25 +30,33 @@ using std::list;
30
30
#define CGUI_SA_GOTHIC_SIZE 47
31
31
#define CGUI_MTA_SANS_FONT_SIZE 9
32
32
33
- CGUI_Impl::CGUI_Impl (IDirect3DDevice9* pDevice) : m_HasSchemeLoaded(false ), m_fCurrentServerCursorAlpha(1 .0f )
33
+ CGUI_Impl::CGUI_Impl (IDirect3DDevice9* pDevice) :
34
+ m_HasSchemeLoaded(false ),
35
+ m_fCurrentServerCursorAlpha(1 .0f ),
36
+ m_pDevice(pDevice),
37
+ m_pRenderer(nullptr ),
38
+ m_pSystem(nullptr ),
39
+ m_pFontManager(nullptr ),
40
+ m_pImageSetManager(nullptr ),
41
+ m_pSchemeManager(nullptr ),
42
+ m_pWindowManager(nullptr ),
43
+ m_pTop(nullptr ),
44
+ m_pCursor(nullptr ),
45
+ m_pDefaultFont(nullptr ),
46
+ m_pSmallFont(nullptr ),
47
+ m_pBoldFont(nullptr ),
48
+ m_pClearFont(nullptr ),
49
+ m_pSAHeaderFont(nullptr ),
50
+ m_pSAGothicFont(nullptr ),
51
+ m_pSansFont(nullptr ),
52
+ m_pUniFont(nullptr ),
53
+ m_ulPreviousUnique(0 ),
54
+ m_eInputMode(INPUTMODE_NO_BINDS_ON_EDIT),
55
+ m_Channel(INPUT_CORE)
34
56
{
35
57
m_RenderOkTimer.SetMaxIncrement (100 );
36
58
37
- // Init
38
- m_pDevice = pDevice;
39
- /*
40
- m_pCharacterKeyHandler = NULL;
41
- m_pKeyDownHandler = NULL;
42
- m_pMouseClickHandler = NULL;
43
- m_pMouseDoubleClickHandler = NULL;
44
- m_pMouseWheelHandler = NULL;
45
- m_pMouseMoveHandler = NULL;
46
- m_pMouseEnterHandler = NULL;
47
- m_pMouseLeaveHandler = NULL;
48
- m_pMovedHandler = NULL;
49
- m_pSizedHandler = NULL;
50
- */
51
- m_Channel = INPUT_CORE;
59
+ // Callback arrays are default-initialized to empty state by their constructors
52
60
53
61
// Create a GUI system and get the windowmanager
54
62
m_pRenderer = new CEGUI::DirectX9Renderer (pDevice, 0 );
@@ -104,7 +112,19 @@ CGUI_Impl::CGUI_Impl(IDirect3DDevice9* pDevice) : m_HasSchemeLoaded(false), m_fC
104
112
105
113
CGUI_Impl::~CGUI_Impl ()
106
114
{
115
+ // Clean up font objects to prevent memory leaks
116
+ delete m_pUniFont;
117
+ delete m_pDefaultFont;
118
+ delete m_pSmallFont;
119
+ delete m_pBoldFont;
120
+ delete m_pClearFont;
121
+ delete m_pSAHeaderFont;
122
+ delete m_pSAGothicFont;
123
+ delete m_pSansFont;
124
+
125
+ // Clean up CEGUI system - this automatically deletes the renderer
107
126
delete CEGUI::System::getSingletonPtr ();
127
+ // DO NOT delete m_pRenderer - it's already deleted by System destructor
108
128
}
109
129
110
130
void CGUI_Impl::SetSkin (const char * szName)
0 commit comments