@@ -17,21 +17,11 @@ void ChatOverlay::UpdateNuklearInput(SDL_Event evt)
17
17
m_eventQueue.push (evt);
18
18
}
19
19
20
- void ChatOverlay::ShutdownNuklear ()
21
- {
22
- if (!m_nuklearRunning)
23
- return ;
24
-
25
- g_gameWindow->OnAnyEvent .RemoveAll (this );
26
- nk_sdl_shutdown ();
27
-
28
- m_nuklearRunning = false ;
29
- }
30
-
31
-
32
20
bool ChatOverlay::Init ()
33
21
{
34
- InitNuklearIfNeeded ();
22
+ m_backgroundFrame = false ;
23
+
24
+ BasicNuklearGui::Init ();
35
25
36
26
// Init the socket callbacks
37
27
m_multi->GetTCP ().SetTopicHandler (" server.chat.received" , this , &ChatOverlay::m_handleChatReceived);
@@ -40,62 +30,9 @@ bool ChatOverlay::Init()
40
30
return true ;
41
31
}
42
32
43
- void ChatOverlay::InitNuklearIfNeeded ()
44
- {
45
- if (m_nuklearRunning) {
46
- return ;
47
- }
48
- m_nctx = nk_sdl_init ((SDL_Window*)g_gameWindow->Handle ());
49
-
50
- g_gameWindow->OnAnyEvent .Add (this , &ChatOverlay::UpdateNuklearInput);
51
- {
52
- struct nk_font_atlas *atlas;
53
- nk_sdl_font_stash_begin (&atlas);
54
- struct nk_font *fallback = nk_font_atlas_add_from_file (atlas, Path::Normalize ( Path::Absolute (" fonts/settings/NotoSans-Regular.ttf" )).c_str (), 24 , 0 );
55
-
56
- NK_STORAGE const nk_rune cjk_ranges[] = {
57
- 0x0E3F , 0xFFFF ,
58
- 0
59
- };
60
-
61
- struct nk_font_config cfg_cjk = nk_font_config (24 );
62
- cfg_cjk.merge_mode = nk_true;
63
- cfg_cjk.range = cjk_ranges;
64
-
65
- int maxSize;
66
- glGetIntegerv (GL_MAX_TEXTURE_SIZE, &maxSize);
67
- Logf (" System max texture size: %d" , Logger::Severity::Info, maxSize);
68
- if (maxSize >= FULL_FONT_TEXTURE_HEIGHT && !g_gameConfig.GetBool (GameConfigKeys::LimitSettingsFont))
69
- {
70
- nk_font_atlas_add_from_file (atlas, Path::Normalize (Path::Absolute (" fonts/settings/DroidSansFallback.ttf" )).c_str (), 24 , &cfg_cjk);
71
- }
72
-
73
- usc_nk_sdl_font_stash_end ();
74
- nk_font_atlas_cleanup (atlas);
75
- nk_style_set_font (m_nctx, &fallback->handle );
76
- }
77
-
78
- m_nctx->style .text .color = nk_rgb (255 , 255 , 255 );
79
- m_nctx->style .button .border_color = nk_rgb (0 , 128 , 255 );
80
- m_nctx->style .button .padding = nk_vec2 (5 ,5 );
81
- m_nctx->style .button .rounding = 0 ;
82
- m_nctx->style .window .fixed_background = nk_style_item_color (nk_rgb (40 , 40 , 40 ));
83
- m_nctx->style .slider .bar_normal = nk_rgb (20 , 20 , 20 );
84
- m_nctx->style .slider .bar_hover = nk_rgb (20 , 20 , 20 );
85
- m_nctx->style .slider .bar_active = nk_rgb (20 , 20 , 20 );
86
-
87
- m_nuklearRunning = true ;
88
- }
89
-
90
33
void ChatOverlay::Tick (float deltatime)
91
34
{
92
- nk_input_begin (m_nctx);
93
- while (!m_eventQueue.empty ())
94
- {
95
- nk_sdl_handle_event (&m_eventQueue.front ());
96
- m_eventQueue.pop ();
97
- }
98
- nk_input_end (m_nctx);
35
+ BasicNuklearGui::Tick (deltatime);
99
36
100
37
if (m_isOpen && nk_window_find (m_nctx, " Multiplayer Chat" ) &&
101
38
nk_window_is_closed (m_nctx, " Multiplayer Chat" ))
@@ -104,11 +41,6 @@ void ChatOverlay::Tick(float deltatime)
104
41
}
105
42
}
106
43
107
- void ChatOverlay::NKRender ()
108
- {
109
- nk_sdl_render (NK_ANTI_ALIASING_ON, MAX_VERTEX_MEMORY, MAX_ELEMENT_MEMORY);
110
- }
111
-
112
44
void ChatOverlay::m_drawChatAlert ()
113
45
{
114
46
// Don't add alert if we can't open chat
@@ -271,8 +203,7 @@ void ChatOverlay::Render(float deltatime)
271
203
m_drawChatAlert ();
272
204
}
273
205
274
- g_application->ForceRender ();
275
- NKRender ();
206
+ BasicNuklearGui::Render (deltatime);
276
207
}
277
208
278
209
void ChatOverlay::CloseChat ()
0 commit comments