1 /++ 2 + Machine generated D bindings for Sokol library. 3 + 4 + Generated on: 2025-07-06 12:35:39 5 + 6 + Source header: sokol_nuklear.h 7 + Module: sokol.nuklear 8 + 9 + Do not edit manually; regenerate using gen_d.py. 10 +/ 11 module sokol.nuklear; 12 import sg = sokol.gfx; 13 import sapp = sokol.app; 14 15 /++ Nuklear external type declarations +/ 16 extern(C) struct NkContext; 17 extern(C) union NkHandle { 18 void* ptr; 19 int id; 20 } 21 alias NkFlags = uint; 22 alias nk_plugin_filter = extern(C) int function(const(NkContext)*, NkHandle, int*, int) @system @nogc nothrow; 23 enum invalid_id = 0; 24 /++ 25 + snk_image_t 26 + 27 + A combined image-sampler pair used to inject custom images and samplers into Nuklear 28 + 29 + Create with snk_make_image(), and convert to an nk_handle via snk_nkhandle(). 30 +/ 31 extern(C) struct Image { 32 uint id = 0; 33 } 34 /++ 35 + snk_image_desc_t 36 + 37 + Descriptor struct for snk_make_image(). You must provide 38 + at least an sg_image handle. Keeping the sg_sampler handle 39 + zero-initialized will select the builtin default sampler 40 + which uses linear filtering. 41 +/ 42 extern(C) struct ImageDesc { 43 sg.Image image = {}; 44 sg.Sampler sampler = {}; 45 } 46 enum LogItem { 47 Ok, 48 Malloc_failed, 49 Image_pool_exhausted, 50 } 51 /++ 52 + snk_allocator_t 53 + 54 + Used in snk_desc_t to provide custom memory-alloc and -free functions 55 + to sokol_nuklear.h. If memory management should be overridden, both the 56 + alloc_fn and free_fn function must be provided (e.g. it's not valid to 57 + override one function but not the other). 58 +/ 59 extern(C) struct Allocator { 60 extern(C) void* function(size_t, void*) alloc_fn = null; 61 extern(C) void function(void*, void*) free_fn = null; 62 void* user_data = null; 63 } 64 /++ 65 + snk_logger 66 + 67 + Used in snk_desc_t to provide a logging function. Please be aware 68 + that without logging function, sokol-nuklear will be completely 69 + silent, e.g. it will not report errors, warnings and 70 + validation layer messages. For maximum error verbosity, 71 + compile in debug mode (e.g. NDEBUG *not* defined) and install 72 + a logger (for instance the standard logging function from sokol_log.h). 73 +/ 74 extern(C) struct Logger { 75 extern(C) void function(const(char)*, uint, uint, const(char)*, uint, const(char)*, void*) func = null; 76 void* user_data = null; 77 } 78 extern(C) struct Desc { 79 int max_vertices = 0; 80 int image_pool_size = 0; 81 sg.PixelFormat color_format = sg.PixelFormat.Default; 82 sg.PixelFormat depth_format = sg.PixelFormat.Default; 83 int sample_count = 0; 84 float dpi_scale = 0.0f; 85 bool no_default_font = false; 86 bool enable_set_mouse_cursor = false; 87 Allocator allocator = {}; 88 Logger logger = {}; 89 } 90 extern(C) void snk_setup(const Desc* desc) @system @nogc nothrow pure; 91 void setup(scope ref Desc desc) @trusted @nogc nothrow pure { 92 snk_setup(&desc); 93 } 94 extern(C) void* snk_new_frame() @system @nogc nothrow pure; 95 void* newFrame() @trusted @nogc nothrow pure { 96 return snk_new_frame(); 97 } 98 extern(C) void snk_render(int width, int height) @system @nogc nothrow pure; 99 void render(int width, int height) @trusted @nogc nothrow pure { 100 snk_render(width, height); 101 } 102 extern(C) Image snk_make_image(const ImageDesc* desc) @system @nogc nothrow pure; 103 Image makeImage(scope ref ImageDesc desc) @trusted @nogc nothrow pure { 104 return snk_make_image(&desc); 105 } 106 extern(C) void snk_destroy_image(Image img) @system @nogc nothrow pure; 107 void destroyImage(Image img) @trusted @nogc nothrow pure { 108 snk_destroy_image(img); 109 } 110 extern(C) ImageDesc snk_query_image_desc(Image img) @system @nogc nothrow pure; 111 ImageDesc queryImageDesc(Image img) @trusted @nogc nothrow pure { 112 return snk_query_image_desc(img); 113 } 114 extern(C) NkHandle snk_nkhandle(Image img) @system @nogc nothrow pure; 115 NkHandle nkhandle(Image img) @trusted @nogc nothrow pure { 116 return snk_nkhandle(img); 117 } 118 extern(C) Image snk_image_from_nkhandle(NkHandle handle) @system @nogc nothrow pure; 119 Image imageFromNkhandle(NkHandle handle) @trusted @nogc nothrow pure { 120 return snk_image_from_nkhandle(handle); 121 } 122 extern(C) bool snk_handle_event(const sapp.Event* ev) @system @nogc nothrow pure; 123 bool handleEvent(scope ref sapp.Event ev) @trusted @nogc nothrow pure { 124 return snk_handle_event(&ev); 125 } 126 extern(C) NkFlags snk_edit_string(void* ctx, NkFlags flags, char* memory, int* len, int max, nk_plugin_filter filter) @system @nogc nothrow pure; 127 NkFlags editString(void* ctx, NkFlags flags, char* memory, int* len, int max, nk_plugin_filter filter) @trusted @nogc nothrow pure { 128 return snk_edit_string(ctx, flags, memory, len, max, filter); 129 } 130 extern(C) void snk_shutdown() @system @nogc nothrow pure; 131 void shutdown() @trusted @nogc nothrow pure { 132 snk_shutdown(); 133 }