1 module imgui.dbgui; 2 3 debug 4 { 5 import cimgui = imgui.cimgui; 6 import simgui = sokol.imgui; 7 import sgimgui = sokol.gfximgui; 8 import log = sokol.log; 9 import sapp = sokol.app; 10 11 extern (C): 12 13 void __dbgui_setup(int sample_count) @safe @nogc nothrow 14 { 15 // setup debug inspection 16 sgimgui.Desc desc = {}; 17 sgimgui.setup(desc); 18 19 //dfmt off 20 // setup the sokol-imgui utility 21 simgui.Desc simgui_desc = { 22 sample_count: sample_count, 23 logger: {func: &log.slog_func}, 24 }; 25 //dfmt on 26 simgui.setup(simgui_desc); 27 } 28 29 void __dbgui_shutdown() @safe @nogc nothrow 30 { 31 sgimgui.shutdown(); 32 simgui.shutdown; 33 } 34 35 void __dbgui_draw() @safe @nogc nothrow 36 { 37 //dfmt off 38 simgui.FrameDesc sframe = { 39 width: sapp.width, 40 height: sapp.height, 41 delta_time: sapp.frameDuration, 42 dpi_scale: sapp.dpiScale, 43 }; 44 //dfmt on 45 46 simgui.newFrame(sframe); 47 if (cimgui.BeginMainMenuBar) 48 { 49 sgimgui.drawMenu("sokol-gfx"); 50 cimgui.EndMainMenuBar; 51 } 52 sgimgui.draw(); 53 simgui.render; 54 } 55 56 void __dbgui_event(const(sapp.Event)* ev) @trusted @nogc nothrow 57 { 58 simgui.simgui_handle_event(ev); 59 } 60 }