MapLibre Native C API
Public C ABI for the MapLibre Native wrapper.
Loading...
Searching...
No Matches
base.h
Go to the documentation of this file.
1
16
17#ifndef MAPLIBRE_NATIVE_C_BASE_H
18#define MAPLIBRE_NATIVE_C_BASE_H
19
20#ifndef __cplusplus
21#include <stdbool.h>
22#endif
23
24#include <stddef.h>
25#include <stdint.h>
26
27#include "binding.h"
28
29#ifdef _WIN32
30#if defined(MLN_STATIC)
31#define MLN_API
32#elif defined(MLN_BUILDING_C)
33#define MLN_API __declspec(dllexport)
34#else
35#define MLN_API __declspec(dllimport)
36#endif
37#else
38#define MLN_API __attribute__((visibility("default")))
39#endif
40
41#ifdef __cplusplus
42#define MLN_NOEXCEPT noexcept
43#else
44#define MLN_NOEXCEPT
45#endif
46
47#ifdef __cplusplus
48extern "C" {
49#endif
50
84
86#define MLN_DIAGNOSTIC_MESSAGE_CAPACITY 4096
87
100typedef struct mln_diagnostic {
101 uint32_t size;
104
106typedef enum MLN_BINDING("kind=bitmask") mln_render_backend_flag : uint32_t {
107 MLN_RENDER_BACKEND_FLAG_METAL = 1u << 0u,
108 MLN_RENDER_BACKEND_FLAG_VULKAN = 1u << 1u,
109 MLN_RENDER_BACKEND_FLAG_OPENGL = 1u << 2u,
110 MLN_RENDER_BACKEND_FLAG_WEBGPU = 1u << 3u,
112
120#define MLN_HANDLE_NULL ((uint64_t)0)
121
123typedef uint64_t mln_runtime MLN_BINDING(
124 "kind=handle;release=mln_runtime_release;"
125 "dispose=mln_runtime_dispose"
126);
128typedef uint64_t mln_map MLN_BINDING(
129 "kind=handle;release=mln_map_release;parent=mln_runtime;"
130 "dispose=mln_map_dispose"
131);
134 "kind=handle;release=mln_geojson_source_data_release;"
135 "dispose=mln_geojson_source_data_release"
136);
139 "kind=handle;release=mln_style_expression_release;"
140 "dispose=mln_style_expression_release"
141);
144 "kind=handle;release=mln_map_projection_release;"
145 "dispose=mln_map_projection_release"
146);
149 "kind=handle;release=mln_resource_request_release;"
150 "dispose=mln_resource_request_release"
151);
154 "kind=handle;release=mln_resource_transform_request_release;"
155 "dispose=mln_resource_transform_request_release"
156);
159 "kind=handle;release=mln_render_session_release;parent=mln_map;"
160 "abandon=mln_render_session_abandon;dispose=mln_render_session_dispose"
161);
164 "kind=handle;release=mln_acquired_frame_release;parent=mln_render_session;"
165 "dispose=mln_acquired_frame_dispose;"
166 "view_begin=mln_acquired_frame_view_begin;"
167 "view_end=mln_acquired_frame_view_end"
168);
171 "kind=handle;release=mln_render_frame_batch_release;"
172 "dispose=mln_render_frame_batch_release"
173);
176 "kind=handle;release=mln_delivery_queue_release;"
177 "dispose=mln_delivery_queue_release"
178);
181 "kind=handle;release=mln_delivery_batch_release;"
182 "dispose=mln_delivery_batch_release"
183);
184
192typedef struct mln_buffer_view {
193 const void* data;
194 size_t size MLN_BINDING("kind=count");
196
205typedef void (*mln_user_data_release)(void* user_data);
206
211MLN_API uint32_t mln_c_version(void) MLN_NOEXCEPT;
212
218MLN_BINDING("enum=mln_render_backend_flag")
219MLN_API uint32_t mln_supported_render_backend_mask(void) MLN_NOEXCEPT;
220
221#ifdef __cplusplus
222}
223#endif
224
225#endif // MAPLIBRE_NATIVE_C_BASE_H
#define MLN_DIAGNOSTIC_MESSAGE_CAPACITY
Definition base.h:86
uint64_t mln_geojson_source_data
Definition base.h:136
uint64_t mln_render_session
Definition base.h:161
uint64_t mln_resource_transform_request
Definition base.h:156
uint64_t mln_delivery_batch
Definition base.h:183
uint64_t mln_delivery_queue
Definition base.h:178
uint64_t mln_render_frame_batch
Definition base.h:173
uint64_t mln_style_expression
Definition base.h:141
uint64_t mln_map
Definition base.h:131
void(*) mln_user_data_release(void *user_data)
Definition base.h:205
uint64_t mln_acquired_frame
Definition base.h:168
uint64_t mln_runtime
Definition base.h:126
uint64_t mln_resource_request
Definition base.h:151
uint64_t mln_map_projection
Definition base.h:146
mln_status
Definition base.h:61
@ MLN_STATUS_NATIVE_ERROR
Definition base.h:72
@ MLN_STATUS_TARGET_LOST
Definition base.h:78
@ MLN_STATUS_NOT_READY
Definition base.h:80
@ MLN_STATUS_UNSUPPORTED
Definition base.h:70
@ MLN_STATUS_INVALID_STATE
Definition base.h:66
@ MLN_STATUS_WRONG_THREAD
Definition base.h:68
@ MLN_STATUS_INVALID_ARGUMENT
Definition base.h:64
@ MLN_STATUS_BUSY
Definition base.h:76
@ MLN_STATUS_NOT_FOUND
Definition base.h:82
@ MLN_STATUS_CANCELLED
Definition base.h:74
mln_render_backend_flag
Definition base.h:106
uint32_t mln_supported_render_backend_mask(void)
uint32_t mln_c_version(void)
#define MLN_BINDING(contract)
Definition binding.h:17
Definition base.h:192
Definition base.h:100