MapLibre Native C API
Public C ABI for the MapLibre Native wrapper.
Toggle main menu visibility
Loading...
Searching...
No Matches
include
maplibre_native_c
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
48
extern
"C"
{
49
#endif
50
61
typedef
enum
mln_status
: int32_t {
62
MLN_STATUS_OK = 0,
64
MLN_STATUS_INVALID_ARGUMENT
= -1,
66
MLN_STATUS_INVALID_STATE
= -2,
68
MLN_STATUS_WRONG_THREAD
= -3,
70
MLN_STATUS_UNSUPPORTED
= -4,
72
MLN_STATUS_NATIVE_ERROR
= -5,
74
MLN_STATUS_CANCELLED
= -6,
76
MLN_STATUS_BUSY
= -7,
78
MLN_STATUS_TARGET_LOST
= -8,
80
MLN_STATUS_NOT_READY
= -9,
82
MLN_STATUS_NOT_FOUND
= -10,
83
}
mln_status
;
84
86
#define MLN_DIAGNOSTIC_MESSAGE_CAPACITY 4096
87
100
typedef
struct
mln_diagnostic
{
101
uint32_t size;
102
char
message[
MLN_DIAGNOSTIC_MESSAGE_CAPACITY
];
103
}
mln_diagnostic
;
104
106
typedef
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,
111
}
mln_render_backend_flag
;
112
120
#define MLN_HANDLE_NULL ((uint64_t)0)
121
123
typedef
uint64_t
mln_runtime
MLN_BINDING
(
124
"kind=handle;release=mln_runtime_release;"
125
"dispose=mln_runtime_dispose"
126
);
128
typedef
uint64_t
mln_map
MLN_BINDING
(
129
"kind=handle;release=mln_map_release;parent=mln_runtime;"
130
"dispose=mln_map_dispose"
131
);
133
typedef
uint64_t
mln_geojson_source_data
MLN_BINDING
(
134
"kind=handle;release=mln_geojson_source_data_release;"
135
"dispose=mln_geojson_source_data_release"
136
);
138
typedef
uint64_t
mln_style_expression
MLN_BINDING
(
139
"kind=handle;release=mln_style_expression_release;"
140
"dispose=mln_style_expression_release"
141
);
143
typedef
uint64_t
mln_map_projection
MLN_BINDING
(
144
"kind=handle;release=mln_map_projection_release;"
145
"dispose=mln_map_projection_release"
146
);
148
typedef
uint64_t
mln_resource_request
MLN_BINDING
(
149
"kind=handle;release=mln_resource_request_release;"
150
"dispose=mln_resource_request_release"
151
);
153
typedef
uint64_t
mln_resource_transform_request
MLN_BINDING
(
154
"kind=handle;release=mln_resource_transform_request_release;"
155
"dispose=mln_resource_transform_request_release"
156
);
158
typedef
uint64_t
mln_render_session
MLN_BINDING
(
159
"kind=handle;release=mln_render_session_release;parent=mln_map;"
160
"abandon=mln_render_session_abandon;dispose=mln_render_session_dispose"
161
);
163
typedef
uint64_t
mln_acquired_frame
MLN_BINDING
(
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
);
170
typedef
uint64_t
mln_render_frame_batch
MLN_BINDING
(
171
"kind=handle;release=mln_render_frame_batch_release;"
172
"dispose=mln_render_frame_batch_release"
173
);
175
typedef
uint64_t
mln_delivery_queue
MLN_BINDING
(
176
"kind=handle;release=mln_delivery_queue_release;"
177
"dispose=mln_delivery_queue_release"
178
);
180
typedef
uint64_t
mln_delivery_batch
MLN_BINDING
(
181
"kind=handle;release=mln_delivery_batch_release;"
182
"dispose=mln_delivery_batch_release"
183
);
184
192
typedef
struct
mln_buffer_view
{
193
const
void
* data;
194
size_t
size
MLN_BINDING
(
"kind=count"
);
195
}
mln_buffer_view
;
196
205
typedef
void (*
mln_user_data_release
)(
void
* user_data);
206
211
MLN_API uint32_t
mln_c_version
(
void
) MLN_NOEXCEPT;
212
218
MLN_BINDING
(
"enum=mln_render_backend_flag"
)
219
MLN_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
MLN_DIAGNOSTIC_MESSAGE_CAPACITY
#define MLN_DIAGNOSTIC_MESSAGE_CAPACITY
Definition
base.h:86
mln_geojson_source_data
uint64_t mln_geojson_source_data
Definition
base.h:136
mln_render_session
uint64_t mln_render_session
Definition
base.h:161
mln_resource_transform_request
uint64_t mln_resource_transform_request
Definition
base.h:156
mln_delivery_batch
uint64_t mln_delivery_batch
Definition
base.h:183
mln_delivery_queue
uint64_t mln_delivery_queue
Definition
base.h:178
mln_render_frame_batch
uint64_t mln_render_frame_batch
Definition
base.h:173
mln_style_expression
uint64_t mln_style_expression
Definition
base.h:141
mln_map
uint64_t mln_map
Definition
base.h:131
mln_user_data_release
void(*) mln_user_data_release(void *user_data)
Definition
base.h:205
mln_acquired_frame
uint64_t mln_acquired_frame
Definition
base.h:168
mln_runtime
uint64_t mln_runtime
Definition
base.h:126
mln_resource_request
uint64_t mln_resource_request
Definition
base.h:151
mln_map_projection
uint64_t mln_map_projection
Definition
base.h:146
mln_status
mln_status
Definition
base.h:61
MLN_STATUS_NATIVE_ERROR
@ MLN_STATUS_NATIVE_ERROR
Definition
base.h:72
MLN_STATUS_TARGET_LOST
@ MLN_STATUS_TARGET_LOST
Definition
base.h:78
MLN_STATUS_NOT_READY
@ MLN_STATUS_NOT_READY
Definition
base.h:80
MLN_STATUS_UNSUPPORTED
@ MLN_STATUS_UNSUPPORTED
Definition
base.h:70
MLN_STATUS_INVALID_STATE
@ MLN_STATUS_INVALID_STATE
Definition
base.h:66
MLN_STATUS_WRONG_THREAD
@ MLN_STATUS_WRONG_THREAD
Definition
base.h:68
MLN_STATUS_INVALID_ARGUMENT
@ MLN_STATUS_INVALID_ARGUMENT
Definition
base.h:64
MLN_STATUS_BUSY
@ MLN_STATUS_BUSY
Definition
base.h:76
MLN_STATUS_NOT_FOUND
@ MLN_STATUS_NOT_FOUND
Definition
base.h:82
MLN_STATUS_CANCELLED
@ MLN_STATUS_CANCELLED
Definition
base.h:74
mln_render_backend_flag
mln_render_backend_flag
Definition
base.h:106
mln_supported_render_backend_mask
uint32_t mln_supported_render_backend_mask(void)
mln_c_version
uint32_t mln_c_version(void)
binding.h
MLN_BINDING
#define MLN_BINDING(contract)
Definition
binding.h:17
mln_buffer_view
Definition
base.h:192
mln_diagnostic
Definition
base.h:100
Generated by
1.18.0