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 }