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