Skip to content

Commit 1944f0c

Browse files
committed
add missing sappimgui debug uis
1 parent f79551f commit 1944f0c

10 files changed

Lines changed: 122 additions & 38 deletions

sapp/blend-playground-sapp.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
#include "sokol_imgui.h"
1616
#define SOKOL_GFX_IMGUI_IMPL
1717
#include "sokol_gfx_imgui.h"
18+
#define SOKOL_APP_IMGUI_IMPL
19+
#include "sokol_app_imgui.h"
1820
#include "util/fileutil.h"
1921
#include "qoi/qoi.h"
2022
#include "blend-playground-sapp.glsl.h"
@@ -161,6 +163,7 @@ static void init(void) {
161163
.logger.func = slog_func,
162164
});
163165
sgimgui_setup(&(sgimgui_desc_t){0});
166+
sappimgui_setup();
164167
simgui_setup(&(simgui_desc_t){
165168
.logger.func = slog_func,
166169
});
@@ -296,12 +299,14 @@ static void frame(void) {
296299

297300
static void cleanup(void) {
298301
sfetch_shutdown();
302+
sappimgui_shutdown();
299303
simgui_shutdown();
300304
sgimgui_shutdown();
301305
sg_shutdown();
302306
}
303307

304308
static void input(const sapp_event* ev) {
309+
sappimgui_track_event(ev);
305310
if (simgui_handle_event(ev)) {
306311
return;
307312
} else switch (ev->type) {
@@ -328,6 +333,7 @@ static void input(const sapp_event* ev) {
328333

329334
static bool draw_ui(void) {
330335
bool pip_dirty = false;
336+
sappimgui_track_frame();
331337
simgui_new_frame(&(simgui_frame_desc_t){
332338
.width = sapp_width(),
333339
.height = sapp_height(),
@@ -336,9 +342,11 @@ static bool draw_ui(void) {
336342
});
337343
if (igBeginMainMenuBar()) {
338344
sgimgui_draw_menu("sokol-gfx");
345+
sappimgui_draw_menu("sokol-app");
339346
igEndMainMenuBar();
340347
}
341348
sgimgui_draw();
349+
sappimgui_draw();
342350
igSetNextWindowPos((ImVec2){ 20, 30 }, ImGuiCond_Once);
343351
if (igBegin("Controls", 0, ImGuiWindowFlags_AlwaysAutoResize)) {
344352
if (state.file.error != SFETCH_ERROR_NO_ERROR) {

sapp/computeboids-sapp.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
#include "sokol_imgui.h"
1414
#define SOKOL_GFX_IMGUI_IMPL
1515
#include "sokol_gfx_imgui.h"
16+
#define SOKOL_APP_IMGUI_IMPL
17+
#include "sokol_app_imgui.h"
1618
#include "computeboids-sapp.glsl.h"
1719

1820
#define MAX_PARTICLES (10000)
@@ -68,6 +70,7 @@ static void init(void) {
6870
.environment = sglue_environment(),
6971
.logger.func = slog_func,
7072
});
73+
sappimgui_setup();
7174
sgimgui_setup(&(sgimgui_desc_t){0});
7275
simgui_setup(&(simgui_desc_t){
7376
.logger.func = slog_func,
@@ -154,16 +157,19 @@ static void frame(void) {
154157
}
155158

156159
static void cleanup(void) {
160+
sappimgui_shutdown();
157161
sgimgui_shutdown();
158162
simgui_shutdown();
159163
sg_shutdown();
160164
}
161165

162166
static void input(const sapp_event* ev) {
167+
sappimgui_track_event(ev);
163168
simgui_handle_event(ev);
164169
}
165170

166171
static void draw_ui(void) {
172+
sappimgui_track_frame();
167173
simgui_new_frame(&(simgui_frame_desc_t){
168174
.width = sapp_width(),
169175
.height = sapp_height(),
@@ -172,6 +178,7 @@ static void draw_ui(void) {
172178
});
173179
if (igBeginMainMenuBar()) {
174180
sgimgui_draw_menu("sokol-gfx");
181+
sappimgui_draw_menu("sokol-app");
175182
igEndMainMenuBar();
176183
}
177184
igSetNextWindowBgAlpha(0.8f);
@@ -193,6 +200,7 @@ static void draw_ui(void) {
193200
}
194201
igEnd();
195202
sgimgui_draw();
203+
sappimgui_draw();
196204
}
197205

198206
sapp_desc sokol_main(int argc, char* argv[]) {

sapp/customresolve-sapp.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@
1010
#include "sokol_glue.h"
1111
#define SOKOL_IMGUI_IMPL
1212
#define SOKOL_GFX_IMGUI_IMPL
13+
#define SOKOL_APP_IMGUI_IMPL
1314
#include "cimgui.h"
1415
#include "sokol_imgui.h"
1516
#include "sokol_gfx_imgui.h"
17+
#include "sokol_app_imgui.h"
1618
#include "customresolve-sapp.glsl.h"
1719

1820
#define WIDTH (160)
@@ -57,6 +59,7 @@ static void init(void) {
5759
.logger.func = slog_func,
5860
});
5961
sgimgui_setup(&(sgimgui_desc_t){0});
62+
sappimgui_setup();
6063
simgui_setup(&(simgui_desc_t){ .logger.func = slog_func });
6164

6265
// catch WebGL2/GLES3
@@ -188,12 +191,14 @@ static void frame(void) {
188191
}
189192

190193
static void cleanup(void) {
194+
sappimgui_shutdown();
191195
sgimgui_shutdown();
192196
simgui_shutdown();
193197
sg_shutdown();
194198
}
195199

196200
static void draw_ui(void) {
201+
sappimgui_track_frame();
197202
simgui_new_frame(&(simgui_frame_desc_t){
198203
.width = sapp_width(),
199204
.height = sapp_height(),
@@ -202,9 +207,11 @@ static void draw_ui(void) {
202207
});
203208
if (igBeginMainMenuBar()) {
204209
sgimgui_draw_menu("sokol-gfx");
210+
sappimgui_draw_menu("sokol-app");
205211
igEndMainMenuBar();
206212
}
207213
sgimgui_draw();
214+
sappimgui_draw();
208215

209216
igSetNextWindowPos((ImVec2){10, 20}, ImGuiCond_Once);
210217
if (igBegin("#window", 0, ImGuiWindowFlags_NoDecoration|ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoBackground)) {
@@ -238,6 +245,7 @@ static void draw_fallback(void) {
238245
}
239246

240247
static void input(const sapp_event* ev) {
248+
sappimgui_track_event(ev);
241249
simgui_handle_event(ev);
242250
}
243251

sapp/drawcallperf-sapp.c

Lines changed: 45 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
#include "sokol_imgui.h"
1212
#define SOKOL_GFX_IMGUI_IMPL
1313
#include "sokol_gfx_imgui.h"
14+
#define SOKOL_APP_IMGUI_IMPL
15+
#include "sokol_app_imgui.h"
1416
#define VECMATH_GENERICS
1517
#include "vecmath/vecmath.h"
1618
#include "drawcallperf-sapp.glsl.h"
@@ -41,6 +43,8 @@ static struct {
4143

4244
static vs_per_instance_t positions[MAX_INSTANCES];
4345

46+
static void drawui(void);
47+
4448
static inline uint32_t xorshift32(void) {
4549
static uint32_t x = 0x12345678;
4650
x ^= x<<13;
@@ -63,10 +67,11 @@ static void init(void) {
6367
.logger.func = slog_func,
6468
.uniform_buffer_size = MAX_INSTANCES * 256 + 1024,
6569
});
70+
sgimgui_setup(&(sgimgui_desc_t){0});
71+
sappimgui_setup();
6672
simgui_setup(&(simgui_desc_t){
6773
.logger.func = slog_func,
6874
});
69-
sgimgui_setup(&(sgimgui_desc_t){0});
7075
state.pass_action = (sg_pass_action) {
7176
.colors[0] = { .load_action = SG_LOADACTION_CLEAR, .clear_value = { 0.0f, 0.5f, 0.75f, 1.0f } },
7277
};
@@ -199,37 +204,7 @@ static mat44_t compute_viewproj(void) {
199204
}
200205

201206
static void frame(void) {
202-
double frame_measured_time = stm_sec(stm_laptime(&state.last_time));
203-
204-
simgui_new_frame(&(simgui_frame_desc_t){
205-
.width = sapp_width(),
206-
.height = sapp_height(),
207-
.delta_time = sapp_frame_duration(),
208-
.dpi_scale = sapp_dpi_scale(),
209-
});
210-
211-
// sokol-gfx debug ui
212-
if (igBeginMainMenuBar()) {
213-
sgimgui_draw_menu("sokol-gfx");
214-
sgimgui_draw();
215-
igEndMainMenuBar();
216-
}
217-
218-
// control ui
219-
igSetNextWindowPos((ImVec2){20,20}, ImGuiCond_Once);
220-
igSetNextWindowSize((ImVec2){600,200}, ImGuiCond_Once);
221-
if (igBegin("Controls", 0, ImGuiWindowFlags_NoResize)) {
222-
igText("Each cube/instance is 1 16-byte uniform update and 1 draw call\n");
223-
igText("DC/texture is the number of adjacent draw calls with the same texture binding\n");
224-
igSliderIntEx("Num Instances", &state.num_instances, 100, MAX_INSTANCES, "%d", ImGuiSliderFlags_Logarithmic);
225-
igSliderIntEx("DC/texture", &state.bind_frequency, 1, MAX_BIND_FREQUENCY, "%d", ImGuiSliderFlags_Logarithmic);
226-
igText("Backend: %s", state.backend);
227-
igText("Frame duration: %.4fms", frame_measured_time * 1000.0);
228-
igText("sg_apply_bindings(): %d\n", state.stats.num_binding_updates);
229-
igText("sg_apply_uniforms(): %d\n", state.stats.num_uniform_updates);
230-
igText("sg_draw(): %d\n", state.stats.num_draw_calls);
231-
}
232-
igEnd();
207+
drawui();
233208

234209
if (state.num_instances < 1) {
235210
state.num_instances = 1;
@@ -277,15 +252,53 @@ static void frame(void) {
277252
}
278253

279254
static void input(const sapp_event* ev) {
255+
sappimgui_track_event(ev);
280256
simgui_handle_event(ev);
281257
}
282258

283259
static void cleanup(void) {
260+
sappimgui_shutdown();
284261
sgimgui_shutdown();
285262
simgui_shutdown();
286263
sg_shutdown();
287264
}
288265

266+
static void drawui(void) {
267+
double frame_measured_time = stm_sec(stm_laptime(&state.last_time));
268+
sappimgui_track_frame();
269+
simgui_new_frame(&(simgui_frame_desc_t){
270+
.width = sapp_width(),
271+
.height = sapp_height(),
272+
.delta_time = sapp_frame_duration(),
273+
.dpi_scale = sapp_dpi_scale(),
274+
});
275+
276+
// sokol-gfx debug ui
277+
if (igBeginMainMenuBar()) {
278+
sgimgui_draw_menu("sokol-gfx");
279+
sappimgui_draw_menu("sokol-app");
280+
igEndMainMenuBar();
281+
}
282+
283+
// control ui
284+
igSetNextWindowPos((ImVec2){20,20}, ImGuiCond_Once);
285+
igSetNextWindowSize((ImVec2){600,200}, ImGuiCond_Once);
286+
if (igBegin("Controls", 0, ImGuiWindowFlags_NoResize)) {
287+
igText("Each cube/instance is 1 16-byte uniform update and 1 draw call\n");
288+
igText("DC/texture is the number of adjacent draw calls with the same texture binding\n");
289+
igSliderIntEx("Num Instances", &state.num_instances, 100, MAX_INSTANCES, "%d", ImGuiSliderFlags_Logarithmic);
290+
igSliderIntEx("DC/texture", &state.bind_frequency, 1, MAX_BIND_FREQUENCY, "%d", ImGuiSliderFlags_Logarithmic);
291+
igText("Backend: %s", state.backend);
292+
igText("Frame duration: %.4fms", frame_measured_time * 1000.0);
293+
igText("sg_apply_bindings(): %d\n", state.stats.num_binding_updates);
294+
igText("sg_apply_uniforms(): %d\n", state.stats.num_uniform_updates);
295+
igText("sg_draw(): %d\n", state.stats.num_draw_calls);
296+
}
297+
igEnd();
298+
sgimgui_draw();
299+
sappimgui_draw();
300+
}
301+
289302
sapp_desc sokol_main(int argc, char* argv[]) {
290303
(void)argc; (void)argv;
291304
return (sapp_desc){

sapp/dyntex3d-sapp.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
#include "sokol_imgui.h"
1515
#define SOKOL_GFX_IMGUI_IMPL
1616
#include "sokol_gfx_imgui.h"
17+
#define SOKOL_APP_IMGUI_IMPL
18+
#include "sokol_app_imgui.h"
1719
#include <assert.h> // assert()
1820
#include <string.h> // memset()
1921

@@ -51,6 +53,7 @@ static void init(void) {
5153
});
5254
simgui_setup(&(simgui_desc_t){ .logger.func = slog_func });
5355
sgimgui_setup(&(sgimgui_desc_t){0});
56+
sappimgui_setup();
5457

5558
state.pass_action = (sg_pass_action){
5659
.colors[0] = { .load_action = SG_LOADACTION_CLEAR, .clear_value = { 0.0f, 0.0f, 0.0f, 1.0f } },
@@ -103,16 +106,19 @@ static void frame(void) {
103106
}
104107

105108
static void input(const sapp_event* ev) {
109+
sappimgui_track_event(ev);
106110
simgui_handle_event(ev);
107111
}
108112

109113
static void cleanup(void) {
114+
sappimgui_shutdown();
110115
sgimgui_shutdown();
111116
simgui_shutdown();
112117
sg_shutdown();
113118
}
114119

115120
static void draw_ui(void) {
121+
sappimgui_track_frame();
116122
simgui_new_frame(&(simgui_frame_desc_t){
117123
.width = sapp_width(),
118124
.height = sapp_height(),
@@ -121,6 +127,7 @@ static void draw_ui(void) {
121127
});
122128
if (igBeginMainMenuBar()) {
123129
sgimgui_draw_menu("sokol-gfx");
130+
sappimgui_draw_menu("sokol-app");
124131
igEndMainMenuBar();
125132
}
126133
igSetNextWindowPos((ImVec2){20, 40}, ImGuiCond_Once);
@@ -136,6 +143,7 @@ static void draw_ui(void) {
136143
}
137144
igEnd();
138145
sgimgui_draw();
146+
sappimgui_draw();
139147
simgui_render();
140148
}
141149

sapp/imageblur-sapp.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
#include "sokol_imgui.h"
1717
#define SOKOL_GFX_IMGUI_IMPL
1818
#include "sokol_gfx_imgui.h"
19+
#define SOKOL_APP_IMGUI_IMPL
20+
#include "sokol_app_imgui.h"
1921
#include "util/fileutil.h"
2022
#include "imageblur-sapp.glsl.h"
2123
#include <math.h> // ceilf()
@@ -66,6 +68,7 @@ static void init(void) {
6668
.environment = sglue_environment(),
6769
.logger.func = slog_func,
6870
});
71+
sappimgui_setup();
6972
sgimgui_setup(&(sgimgui_desc_t){0});
7073
simgui_setup(&(simgui_desc_t){
7174
.logger.func = slog_func,
@@ -151,12 +154,14 @@ static void frame(void) {
151154

152155
static void cleanup(void) {
153156
sfetch_shutdown();
157+
sappimgui_shutdown();
154158
sgimgui_shutdown();
155159
simgui_shutdown();
156160
sg_shutdown();
157161
}
158162

159163
static void input(const sapp_event* ev) {
164+
sappimgui_track_event(ev);
160165
simgui_handle_event(ev);
161166
}
162167

@@ -242,6 +247,7 @@ static void fetch_callback(const sfetch_response_t* response) {
242247
}
243248

244249
static void draw_ui(void) {
250+
sappimgui_track_frame();
245251
simgui_new_frame(&(simgui_frame_desc_t){
246252
.width = sapp_width(),
247253
.height = sapp_height(),
@@ -250,6 +256,7 @@ static void draw_ui(void) {
250256
});
251257
if (igBeginMainMenuBar()) {
252258
sgimgui_draw_menu("sokol-gfx");
259+
sappimgui_draw_menu("sokol-app");
253260
igEndMainMenuBar();
254261
}
255262
igSetNextWindowBgAlpha(0.8f);
@@ -271,6 +278,7 @@ static void draw_ui(void) {
271278
}
272279
igEnd();
273280
sgimgui_draw();
281+
sappimgui_draw();
274282
}
275283

276284
sapp_desc sokol_main(int argc, char* argv[]) {

0 commit comments

Comments
 (0)