Files
armorpaint/paint/sources/minic_api_list.h
T
2026-08-25 00:09:29 +02:00

596 lines
30 KiB
C

// X<argc>(name, sig, ret_class, arg_class...)
X0(iron_random_get, "i()", i)
X1(iron_random_get_max, "i(i max)", i, i)
X2(iron_random_get_in, "i(i min,i max)", i, i, i)
X6(vec4_fdist, "f(f v1x,f v1y,f v1z,f v2x,f v2y,f v2z)", f, f, f, f, f, f, f)
X9(mat4_cofactor, "f(f m0,f m1,f m2,f m3,f m4,f m5,f m6,f m7,f m8)", f, f, f, f, f, f, f, f, f, f)
X1(cosf, "f(f x)", f, f)
X1(sinf, "f(f x)", f, f)
// object
// X1(object_create, "p:object_t(i is_empty)", p, i)
X2(object_set_parent, "v(p:object_t raw,p:object_t parent_object)", v, p, p)
X1(object_remove, "v(p:object_t raw)", v, p)
X2(object_get_child, "p:object_t(p:object_t raw,p:char name)", p, p, p)
// transform
// X1(transform_create, "p:transform_t(p:object_t object)", p, p)
X1(transform_reset, "v(p:transform_t raw)", v, p)
X1(transform_update, "v(p:transform_t raw)", v, p)
X1(transform_build_matrix, "v(p:transform_t raw)", v, p)
X1(transform_decompose, "v(p:transform_t raw)", v, p)
X1(transform_world_x, "f(p:transform_t raw)", f, p)
X1(transform_world_y, "f(p:transform_t raw)", f, p)
X1(transform_world_z, "f(p:transform_t raw)", f, p)
// camera_object
// X1(camera_object_create, "p:camera_object_t(p:camera_data_t data)", p, p)
X2(camera_object_build_proj, "v(p:camera_object_t raw,f screen_aspect)", v, p, f)
X1(camera_object_remove, "v(p:camera_object_t raw)", v, p)
X1(camera_object_build_mat, "v(p:camera_object_t raw)", v, p)
// world_data
X2(world_data_parse, "p:world_data_t(p:char name,p:char id)", p, p, p)
X1(world_data_load_envmap, "v(p:world_data_t raw)", v, p)
// shader_data
// X1(shader_data_create, "p:shader_data_t(p:shader_data_t raw)", p, p)
X2(shader_data_parse, "p:shader_data_t(p:char file,p:char name)", p, p, p)
X1(shader_data_delete, "v(p:shader_data_t raw)", v, p)
X2(shader_data_get_context, "p:shader_context_t(p:shader_data_t raw,p:char name)", p, p, p)
// shader_context
X1(shader_context_load, "v(p:shader_context_t raw)", v, p)
X1(shader_context_load_textures, "v(p:shader_context_t raw)", v, p)
X1(shader_context_compile, "v(p:shader_context_t raw)", v, p)
X1(shader_context_finish_compile, "v(p:shader_context_t raw)", v, p)
X1(shader_context_delete, "v(p:shader_context_t raw)", v, p)
X2(shader_context_add_const, "v(p:shader_context_t raw,i offset)", v, p, i)
X2(shader_context_add_tex, "v(p:shader_context_t raw,i i)", v, p, i)
// mesh_data
X2(mesh_data_parse, "p:mesh_data_t(p:char name,p:char id)", p, p, p)
// X1(mesh_data_create, "p:mesh_data_t(p:mesh_data_t raw)", p, p)
X1(mesh_data_get_vertex_size, "i(p:char vertex_data)", i, p)
X2(mesh_data_build_vertices, "v(p:gpu_buffer_t vertex_buffer,p:any_array_t vertex_arrays)", v, p, p)
X2(mesh_data_build_indices, "v(p:gpu_buffer_t index_buffer,p:u32_array_t index_array)", v, p, p)
X2(mesh_data_get_vertex_array, "p:vertex_array_t(p:mesh_data_t raw,p:char name)", p, p, p)
X1(mesh_data_build, "v(p:mesh_data_t raw)", v, p)
X1(mesh_data_delete, "v(p:mesh_data_t raw)", v, p)
// mesh_object
// X2(mesh_object_create, "p:mesh_object_t(p:mesh_data_t data,p:shader_data_t material)", p, p, p)
X2(mesh_object_set_data, "v(p:mesh_object_t raw,p:mesh_data_t data)", v, p, p)
X1(mesh_object_remove, "v(p:mesh_object_t raw)", v, p)
X3(mesh_object_render, "v(p:mesh_object_t raw,p:char context,p:string_array_t bind_params)", v, p, p, p)
// data
X2(data_get_mesh, "p:mesh_data_t(p:char file,p:char name)", p, p, p)
X2(data_get_camera, "p:camera_data_t(p:char file,p:char name)", p, p, p)
X2(data_get_world, "p:world_data_t(p:char file,p:char name)", p, p, p)
X2(data_get_shader, "p:shader_data_t(p:char file,p:char name)", p, p, p)
X1(data_get_scene_raw, "p:scene_t(p:char file)", p, p)
X1(data_get_texture, "p:gpu_texture_t(p:char file)", p, p)
X1(data_get_blob, "p:buffer_t(p:char file)", p, p)
X1(data_get_video, "p:video_t(p:char file)", p, p)
X1(data_get_font, "p:draw_font_t(p:char file)", p, p)
X1(data_get_sound, "p:sound_t(p:char file)", p, p)
X1(data_delete_mesh, "v(p:char handle)", v, p)
X1(data_delete_blob, "v(p:char handle)", v, p)
X1(data_delete_texture, "v(p:char handle)", v, p)
X1(data_delete_video, "v(p:char handle)", v, p)
X1(data_delete_font, "v(p:char handle)", v, p)
X1(data_is_abs, "b(p:char file)", b, p)
X0(data_path, "p:char()", p)
// scene
// X1(scene_create, "p:object_t(p:scene_t format)", p, p)
X0(scene_remove, "v()", v)
X1(scene_set_active, "p:object_t(p:char scene_name)", p, p)
X1(scene_add_object, "p:object_t(p:object_t parent)", p, p)
X1(scene_get_child, "p:object_t(p:char name)", p, p)
X3(scene_add_mesh_object, "p:mesh_object_t(p:mesh_data_t data,p:shader_data_t material,p:object_t parent)", p, p, p, p)
X2(scene_add_camera_object, "p:camera_object_t(p:camera_data_t data,p:object_t parent)", p, p, p)
X1(scene_add_scene, "v(p:char scene_name)", v, p)
X3(scene_spawn_object, "p:object_t(p:char name,p:object_t parent,i spawn_children)", p, p, p, i)
X2(scene_get_raw_object_by_name, "p:obj_t(p:scene_t format,p:char name)", p, p, p)
// X3(scene_create_object, "p:object_t(p:obj_t o,p:scene_t format,p:object_t parent)", p, p, p, p)
// X4(scene_create_mesh_object, "p:object_t(p:obj_t o,p:scene_t format,p:object_t parent,p:shader_data_t material)", p, p, p, p, p)
X2(scene_gen_transform, "v(p:obj_t object,p:transform_t transform)", v, p, p)
// render_path
X6(render_path_set_target, "v(p:char target,p:string_array_t additional,p:char depth_buffer,i flags,i color,f depth)", v, p, p, p, i, i, f)
X0(render_path_end, "v()", v)
X1(render_path_draw_meshes, "v(p:char context)", v, p)
X1(render_path_draw_skydome, "v(p:char handle)", v, p)
X2(render_path_bind_target, "v(p:char target,p:char uniform)", v, p, p)
X1(render_path_draw_shader, "v(p:char handle)", v, p)
X1(render_path_load_shader, "v(p:char handle)", v, p)
X0(render_path_resize, "v()", v)
X1(render_path_create_render_target, "p:render_target_t(p:render_target_t t)", p, p)
X0(render_target_create, "p:render_target_t()", p)
// ui
X1(ui_begin, "v(p:ui_t ui)", v, p)
X0(ui_begin_sticky, "v()", v)
X0(ui_end_sticky, "v()", v)
X4(ui_begin_region, "v(p:ui_t ui,i x,i y,i w)", v, p, i, i, i)
X0(ui_end_region, "v()", v)
X6(ui_window, "b(p:ui_handle_t handle,i x,i y,i w,i h,i drag)", b, p, i, i, i, i, i)
X3(ui_button, "b(p:char text,i align,p:char label)", b, p, i, p)
X3(ui_text, "i(p:char text,i align,i bg)", i, p, i, i)
X5(ui_tab, "b(p:ui_handle_t handle,p:char text,i vertical,i color,i align_right)", b, p, p, i, i, i)
X5(ui_panel, "b(p:ui_handle_t handle,p:char text,i is_tree,i filled,i align_right)", b, p, p, i, i, i)
X7(ui_sub_image, "i(p:gpu_texture_t image,i tint,i h,i sx,i sy,i sw,i sh)", i, p, i, i, i, i, i, i)
X3(ui_image, "i(p:gpu_texture_t image,i tint,i h)", i, p, i, i)
X5(ui_text_input, "p:char(p:ui_handle_t handle,p:char label,i align,i editable,i live_update)", p, p, p, i, i, i)
X3(ui_check, "b(p:ui_handle_t handle,p:char text,p:char label)", b, p, p, p)
X4(ui_radio, "b(p:ui_handle_t handle,i position,p:char text,p:char label)", b, p, i, p, p)
X6(ui_combo, "i(p:ui_handle_t handle,p:string_array_t texts,p:char label,i show_label,i align,i search_bar)", i, p, p, p, i, i, i)
X9(ui_slider, "f(p:ui_handle_t handle,p:char text,f from,f to,i filled,f precision,i display_value,i align,i text_edit)", f, p, p, f, f, i, f, i, i, i)
X1(ui_row, "v(p:f32_array_t ratios)", v, p)
X0(ui_row2, "v()", v)
X0(ui_row3, "v()", v)
X0(ui_row4, "v()", v)
X0(ui_row5, "v()", v)
X0(ui_row6, "v()", v)
X0(ui_row7, "v()", v)
X2(ui_separator, "v(i h,i fill)", v, i, i)
X1(ui_tooltip, "v(p:char text)", v, p)
X2(ui_tooltip_image, "v(p:gpu_texture_t image,i max_width)", v, p, i)
X0(ui_end, "v()", v)
X0(ui_end_window, "v()", v)
X4(ui_mouse_down, "v(p:ui_t ui,i button,i x,i y)", v, p, i, i, i)
X5(ui_mouse_move, "v(p:ui_t ui,i x,i y,i movement_x,i movement_y)", v, p, i, i, i, i)
X4(ui_mouse_up, "v(p:ui_t ui,i button,i x,i y)", v, p, i, i, i)
X2(ui_mouse_wheel, "v(p:ui_t ui,f delta)", v, p, f)
X2(ui_key_down, "v(p:ui_t ui,i key_code)", v, p, i)
X2(ui_key_up, "v(p:ui_t ui,i key_code)", v, p, i)
X2(ui_key_press, "v(p:ui_t ui,i character)", v, p, i)
X0(ui_handle_create, "p:ui_handle_t()", p)
X2(ui_nest, "p:ui_handle_t(p:ui_handle_t handle,i pos)", p, p, i)
X1(ui_set_scale, "v(f factor)", v, f)
X1(ui_get_hover, "b(f elem_h)", b, f)
X1(ui_get_released, "b(f elem_h)", b, f)
X4(ui_input_in_rect, "b(f x,f y,f w,f h)", b, f, f, f, f)
X5(ui_fill, "v(f x,f y,f w,f h,i color)", v, f, f, f, f, i)
X6(ui_rect, "v(f x,f y,f w,f h,i color,f strength)", v, f, f, f, f, i, f)
X1(ui_is_visible, "b(f elem_h)", b, f)
X0(ui_end_element, "v()", v)
X1(ui_end_element_of_size, "v(f element_size)", v, f)
X1(ui_fade_color, "v(f alpha)", v, f)
X5(ui_draw_string, "v(p:char text,f x_offset,f y_offset,i align,i truncation)", v, p, f, f, i, i)
X4(ui_draw_shadow, "v(f x,f y,f w,f h)", v, f, f, f, f)
X6(ui_draw_rect, "v(i fill,i shadows,f x,f y,f w,f h)", v, i, i, f, f, f, f)
X2(ui_start_text_edit, "v(p:ui_handle_t handle,i align)", v, p, i)
X0(UI_SCALE, "f()", f)
X0(UI_ELEMENT_W, "f()", f)
X0(UI_ELEMENT_H, "f()", f)
X0(UI_ELEMENT_OFFSET, "f()", f)
X0(UI_ARROW_SIZE, "f()", f)
X0(UI_BUTTON_H, "f()", f)
X0(UI_CHECK_SIZE, "f()", f)
X0(UI_CHECK_SELECT_SIZE, "f()", f)
X0(UI_FONT_SIZE, "f()", f)
X0(UI_SCROLL_W, "f()", f)
X0(UI_TEXT_OFFSET, "f()", f)
X0(UI_TAB_W, "f()", f)
X0(UI_HEADER_DRAG_H, "f()", f)
X0(UI_TOOLTIP_DELAY, "f()", f)
X4(ui_float_input, "f(p:ui_handle_t handle,p:char label,i align,f precision)", f, p, p, i, f)
X3(ui_inline_radio, "i(p:ui_handle_t handle,p:string_array_t texts,i align)", i, p, p, i)
X7(ui_color_wheel, "i(p:ui_handle_t handle,i alpha,f w,f h,i color_preview,p picker,p data)", i, p, i, f, f, i, p, p)
X5(ui_text_area, "p:char(p:ui_handle_t handle,i align,i editable,p:char label,i word_wrap)", p, p, i, i, p, i)
X0(ui_begin_menu, "v()", v)
X0(ui_end_menu, "v()", v)
X1(ui_menubar_button, "b(p:char text)", b, p)
X1(ui_color_r, "i(i color)", i, i)
X1(ui_color_g, "i(i color)", i, i)
X1(ui_color_b, "i(i color)", i, i)
X1(ui_color_a, "i(i color)", i, i)
X4(ui_color, "i(i r,i g,i b,i a)", i, i, i, i, i)
// ui_nodes
X1(ui_nodes_init, "v(p:ui_nodes_t nodes)", v, p)
X2(ui_node_canvas, "v(p:ui_nodes_t nodes,p:ui_node_canvas_t canvas)", v, p, p)
X4(ui_nodes_rgba_popup, "v(p:ui_handle_t nhandle,p:float val,i x,i y)", v, p, p, i, i)
X2(ui_remove_node, "v(p:ui_node_t n,p:ui_node_canvas_t canvas)", v, p, p)
X0(UI_NODES_SCALE, "f()", f)
X0(UI_NODES_PAN_X, "f()", f)
X0(UI_NODES_PAN_Y, "f()", f)
X1(UI_NODE_X, "f(p:ui_node_t node)", f, p)
X1(UI_NODE_Y, "f(p:ui_node_t node)", f, p)
X1(UI_NODE_W, "f(p:ui_node_t node)", f, p)
X2(UI_NODE_H, "f(p:ui_node_canvas_t canvas,p:ui_node_t node)", f, p, p)
X2(UI_OUTPUT_Y, "f(p:ui_node_t node,i pos)", f, p, i)
X3(UI_INPUT_Y, "f(p:ui_node_canvas_t canvas,p:ui_node_t node,i pos)", f, p, p, i)
X2(UI_OUTPUTS_H, "f(p:ui_node_t node,i length)", f, p, i)
X1(UI_BUTTONS_H, "f(p:ui_node_t node)", f, p)
X0(UI_LINE_H, "f()", f)
X1(ui_get_socket_id, "i(p:ui_node_array_t nodes)", i, p)
X2(ui_get_link, "p:ui_node_link_t(p:ui_node_link_array_t links,i id)", p, p, i)
X1(ui_next_link_id, "i(p:ui_node_link_array_t links)", i, p)
X2(ui_get_node, "p:ui_node_t(p:ui_node_array_t nodes,i id)", p, p, i)
X1(ui_next_node_id, "i(p:ui_node_array_t nodes)", i, p)
// sys
X0(sys_time, "f()", f)
X0(sys_delta, "f()", f)
X0(sys_real_delta, "f()", f)
X0(sys_w, "i()", i)
X0(sys_h, "i()", i)
X0(sys_x, "i()", i)
X0(sys_y, "i()", i)
X0(sys_title, "p:char()", p)
X1(sys_title_set, "v(p:char value)", v, p)
X1(sys_get_shader, "p:gpu_shader_t(p:char name)", p, p)
X1(sys_buffer_to_string, "p:char(p:buffer_t b)", p, p)
X1(sys_string_to_buffer, "p:buffer_t(p:char str)", p, p)
// iron_shape
X0(line_draw_init, "v()", v)
X6(line_draw_lineb, "v(i a,i b,i c,i d,i e,i f)", v, i, i, i, i, i, i)
X6(line_draw_line, "v(f x1,f y1,f z1,f x2,f y2,f z2)", v, f, f, f, f, f, f)
X0(line_draw_begin, "v()", v)
X0(line_draw_end, "v()", v)
// iron_draw
X3(draw_begin, "v(p:gpu_texture_t target,i clear,i color)", v, p, i, i)
X9(draw_scaled_sub_image, "v(p:gpu_texture_t img,f sx,f sy,f sw,f sh,f dx,f dy,f dw,f dh)", v, p, f, f, f, f, f, f, f, f)
X5(draw_scaled_image, "v(p:gpu_texture_t tex,f dx,f dy,f dw,f dh)", v, p, f, f, f, f)
X7(draw_sub_image, "v(p:gpu_texture_t tex,f sx,f sy,f sw,f sh,f x,f y)", v, p, f, f, f, f, f, f)
X3(draw_image, "v(p:gpu_texture_t tex,f x,f y)", v, p, f, f)
X6(draw_filled_triangle, "v(f x0,f y0,f x1,f y1,f x2,f y2)", v, f, f, f, f, f, f)
X4(draw_filled_rect, "v(f x,f y,f width,f height)", v, f, f, f, f)
X5(draw_rect, "v(f x,f y,f width,f height,f strength)", v, f, f, f, f, f)
X5(draw_line, "v(f x0,f y0,f x1,f y1,f strength)", v, f, f, f, f, f)
X5(draw_line_aa, "v(f x0,f y0,f x1,f y1,f strength)", v, f, f, f, f, f)
X3(draw_string, "v(p:char text,f x,f y)", v, p, f, f)
X0(draw_end, "v()", v)
X0(draw_flush, "v()", v)
X1(draw_set_color, "v(i color)", v, i)
X0(draw_get_color, "i()", i)
X1(draw_set_pipeline, "v(p:gpu_pipeline_t pipeline)", v, p)
X2(draw_set_font, "b(p:draw_font_t font,i size)", b, p, i)
X5(draw_sub_string_width, "f(p:draw_font_t font,i font_size,p:char text,i start,i end)", f, p, i, p, i, i)
X3(draw_string_width, "i(p:draw_font_t font,i font_size,p:char text)", i, p, i, p)
X4(draw_filled_circle, "v(f cx,f cy,f radius,i segments)", v, f, f, f, i)
X5(draw_circle, "v(f cx,f cy,f radius,i segments,f strength)", v, f, f, f, i, f)
X4(draw_cubic_bezier, "v(p:f32_array_t x,p:f32_array_t y,i segments,f strength)", v, p, p, i, f)
// iron_audio
#ifdef IRON_AUDIO
X2(audio_play, "v(p:iron_a1_sound_t sound,i loop)", v, p, i)
#endif
// iron_string
X1(string_alloc, "p:char(i size)", p, i)
X1(string_copy, "p:char(p:char a)", p, p)
X1(string_length, "i(p:char str)", i, p)
X2(string_equals, "b(p:char a,p:char b)", b, p, p)
X1(i32_to_string, "p:char(i i)", p, i)
X1(i32_to_string_hex, "p:char(i i)", p, i)
X1(i64_to_string, "p:char(i i)", p, i)
X1(u64_to_string, "p:char(i i)", p, i)
X1(f32_to_string, "p:char(f f)", p, f)
X1(f32_to_string_with_zeros, "p:char(f f)", p, f)
X1(string_strip_trailing_zeros, "v(p:char str)", v, p)
X2(string_index_of, "i(p:char s,p:char search)", i, p, p)
X3(string_index_of_pos, "i(p:char s,p:char search,i pos)", i, p, p, i)
X2(string_last_index_of, "i(p:char s,p:char search)", i, p, p)
X2(string_split, "p:any_array_t(p:char s,p:char sep)", p, p, p)
X2(string_array_join, "p:char(p:any_array_t a,p:char separator)", p, p, p)
X3(string_replace_all, "p:char(p:char s,p:char search,p:char replace)", p, p, p, p)
X3(substring, "p:char(p:char s,i start,i end)", p, p, i, i)
X1(string_from_char_code, "p:char(i c)", p, i)
X2(char_code_at, "i(p:char s,i i)", i, p, i)
X2(char_at, "p:char(p:char s,i i)", p, p, i)
X2(starts_with, "b(p:char s,p:char start)", b, p, p)
X2(ends_with, "b(p:char s,p:char end)", b, p, p)
X1(to_lower_case, "p:char(p:char s)", p, p)
X1(to_upper_case, "p:char(p:char s)", p, p)
X1(trim_end, "p:char(p:char str)", p, p)
X2(string_utf8_decode, "i(p:char str,p:int i)", i, p, p)
// iron_file
X3(iron_file_reader_open, "b(p:iron_file_reader_t reader,p:char filepath,i type)", b, p, p, i)
X1(iron_file_reader_close, "b(p:iron_file_reader_t reader)", b, p)
X3(iron_file_reader_read, "i(p:iron_file_reader_t reader,p data,i size)", i, p, p, i)
X1(iron_file_reader_size, "i(p:iron_file_reader_t reader)", i, p)
X1(iron_file_reader_pos, "i(p:iron_file_reader_t reader)", i, p)
X2(iron_file_reader_seek, "b(p:iron_file_reader_t reader,i pos)", b, p, i)
X2(iron_file_writer_open, "b(p:iron_file_writer_t writer,p:char filepath)", b, p, p)
X3(iron_file_writer_write, "v(p:iron_file_writer_t writer,p data,i size)", v, p, p, i)
X1(iron_file_writer_close, "v(p:iron_file_writer_t writer)", v, p)
X1(iron_read_directory, "p:char(p:char path)", p, p)
X1(iron_create_directory, "v(p:char path)", v, p)
X1(iron_is_directory, "b(p:char path)", b, p)
X1(iron_file_exists, "b(p:char path)", b, p)
X1(iron_delete_file, "v(p:char path)", v, p)
X3(iron_file_save_bytes, "v(p:char path,p:buffer_t bytes,i length)", v, p, p, i)
X4(iron_file_download, "v(p:char url,p callback,i size,p:char dst_path)", v, p, p, i, p)
X1(file_read_directory, "p:any_array_t(p:char path)", p, p)
X2(file_copy, "v(p:char src_path,p:char dst_path)", v, p, p)
X1(file_start, "v(p:char path)", v, p)
X4(file_download_to, "v(p:char url,p:char dst_path,p done,i size)", v, p, p, p, i)
// stdlib
X1(malloc, "p(i size)", p, i)
X2(calloc, "p(i n,i size)", p, i, i)
X2(realloc, "p(p ptr,i size)", p, p, i)
X1(free, "v(p ptr)", v, p)
// iron_map
X3(i32_map_set, "v(p:i32_map_t m,p:char k,i v)", v, p, p, i)
X3(f32_map_set, "v(p:f32_map_t m,p:char k,f v)", v, p, p, f)
X3(any_map_set, "v(p:any_map_t m,p:char k,p v)", v, p, p, p)
X2(i32_map_get, "i(p:i32_map_t m,p:char k)", i, p, p)
X2(f32_map_get, "f(p:f32_map_t m,p:char k)", f, p, p)
X2(any_map_get, "p(p:any_map_t m,p:char k)", p, p, p)
X2(map_delete, "v(p:any_map_t m,p:char k)", v, p, p)
X1(map_keys, "p:any_array_t(p:any_map_t m)", p, p)
X0(i32_map_create, "p:i32_map_t()", p)
X0(any_map_create, "p:any_map_t()", p)
X3(i32_imap_set, "v(p:i32_imap_t m,i k,i v)", v, p, i, i)
X3(any_imap_set, "v(p:any_imap_t m,i k,p v)", v, p, i, p)
X2(i32_imap_get, "i(p:i32_imap_t m,i k)", i, p, i)
X2(any_imap_get, "p(p:any_imap_t m,i k)", p, p, i)
X2(imap_delete, "v(p:any_imap_t m,i k)", v, p, i)
X1(imap_keys, "p:i32_array_t(p:any_imap_t m)", p, p)
X0(any_imap_create, "p:any_imap_t()", p)
// iron_array
X1(array_free, "v(p a)", v, p)
X2(i8_array_push, "v(p:i8_array_t a,i e)", v, p, i)
X2(u8_array_push, "v(p:u8_array_t a,i e)", v, p, i)
X2(i16_array_push, "v(p:i16_array_t a,i e)", v, p, i)
X2(u16_array_push, "v(p:u16_array_t a,i e)", v, p, i)
X2(i32_array_push, "v(p:i32_array_t a,i e)", v, p, i)
X2(u32_array_push, "v(p:u32_array_t a,i e)", v, p, i)
X2(f32_array_push, "v(p:f32_array_t a,f e)", v, p, f)
X2(any_array_push, "v(p:any_array_t a,p e)", v, p, p)
X2(string_array_push, "v(p:string_array_t a,p e)", v, p, p)
X2(i8_array_resize, "v(p:i8_array_t a,i size)", v, p, i)
X2(u8_array_resize, "v(p:u8_array_t a,i size)", v, p, i)
X2(i16_array_resize, "v(p:i16_array_t a,i size)", v, p, i)
X2(u16_array_resize, "v(p:u16_array_t a,i size)", v, p, i)
X2(i32_array_resize, "v(p:i32_array_t a,i size)", v, p, i)
X2(u32_array_resize, "v(p:u32_array_t a,i size)", v, p, i)
X2(f32_array_resize, "v(p:f32_array_t a,i size)", v, p, i)
X2(any_array_resize, "v(p:any_array_t a,i size)", v, p, i)
X2(string_array_resize, "v(p:string_array_t a,i size)", v, p, i)
X2(buffer_resize, "v(p:buffer_t b,i size)", v, p, i)
X2(array_sort, "v(p:any_array_t ar,p compare)", v, p, p)
X2(i32_array_sort, "v(p:i32_array_t ar,p compare)", v, p, p)
X1(array_pop, "p(p:any_array_t ar)", p, p)
X1(i32_array_pop, "i(p:i32_array_t ar)", i, p)
X1(array_shift, "p(p:any_array_t ar)", p, p)
X3(array_splice, "v(p:any_array_t ar,i start,i delete_count)", v, p, i, i)
X3(i32_array_splice, "v(p:i32_array_t ar,i start,i delete_count)", v, p, i, i)
X2(array_concat, "p:any_array_t(p:any_array_t a,p:any_array_t b)", p, p, p)
X3(array_slice, "p:any_array_t(p:any_array_t a,i begin,i end)", p, p, i, i)
X3(array_insert, "v(p:any_array_t a,i at,p e)", v, p, i, p)
X2(array_remove, "v(p:any_array_t ar,p e)", v, p, p)
X2(string_array_remove, "v(p:string_array_t ar,p:char e)", v, p, p)
X2(i32_array_remove, "v(p:i32_array_t ar,i e)", v, p, i)
X2(array_index_of, "i(p:any_array_t ar,p e)", i, p, p)
X2(string_array_index_of, "i(p:string_array_t ar,p:char e)", i, p, p)
X2(i32_array_index_of, "i(p:i32_array_t ar,i e)", i, p, i)
X1(array_reverse, "v(p:any_array_t ar)", v, p)
X3(buffer_slice, "p:buffer_t(p:buffer_t a,i begin,i end)", p, p, i, i)
X2(buffer_get_u8, "i(p:buffer_t b,i p)", i, p, i)
X2(buffer_get_i8, "i(p:buffer_t b,i p)", i, p, i)
X2(buffer_get_u16, "i(p:buffer_t b,i p)", i, p, i)
X2(buffer_get_i16, "i(p:buffer_t b,i p)", i, p, i)
X2(buffer_get_f16, "f(p:buffer_t b,i p)", f, p, i)
X2(buffer_get_u32, "i(p:buffer_t b,i p)", i, p, i)
X2(buffer_get_i32, "i(p:buffer_t b,i p)", i, p, i)
X2(buffer_get_f32, "f(p:buffer_t b,i p)", f, p, i)
X2(buffer_get_f64, "f(p:buffer_t b,i p)", f, p, i)
X2(buffer_get_i64, "i(p:buffer_t b,i p)", i, p, i)
X3(buffer_set_u8, "v(p:buffer_t b,i p,i n)", v, p, i, i)
X3(buffer_set_i8, "v(p:buffer_t b,i p,i n)", v, p, i, i)
X3(buffer_set_u16, "v(p:buffer_t b,i p,i n)", v, p, i, i)
X3(buffer_set_i16, "v(p:buffer_t b,i p,i n)", v, p, i, i)
X3(buffer_set_u32, "v(p:buffer_t b,i p,i n)", v, p, i, i)
X3(buffer_set_i32, "v(p:buffer_t b,i p,i n)", v, p, i, i)
X3(buffer_set_f32, "v(p:buffer_t b,i p,f n)", v, p, i, f)
X1(buffer_create, "p:buffer_t(i length)", p, i)
X2(buffer_create_from_raw, "p:buffer_t(p:uint8_t raw,i length)", p, p, i)
X1(f32_array_create, "p:f32_array_t(i length)", p, i)
X1(f32_array_create_from_buffer, "p:f32_array_t(p:buffer_t b)", p, p)
X1(f32_array_create_from_array, "p:f32_array_t(p:f32_array_t from)", p, p)
X2(f32_array_create_from_raw, "p:f32_array_t(p:float raw,i length)", p, p, i)
X1(f32_array_create_x, "p:f32_array_t(f x)", p, f)
X2(f32_array_create_xy, "p:f32_array_t(f x,f y)", p, f, f)
X3(f32_array_create_xyz, "p:f32_array_t(f x,f y,f z)", p, f, f, f)
X4(f32_array_create_xyzw, "p:f32_array_t(f x,f y,f z,f w)", p, f, f, f, f)
X5(f32_array_create_xyzwv, "p:f32_array_t(f x,f y,f z,f w,f v)", p, f, f, f, f, f)
X1(u32_array_create, "p:u32_array_t(i length)", p, i)
X1(u32_array_create_from_array, "p:u32_array_t(p:u32_array_t from)", p, p)
X2(u32_array_create_from_raw, "p:u32_array_t(p:uint32_t raw,i length)", p, p, i)
X1(i32_array_create, "p:i32_array_t(i length)", p, i)
X1(i32_array_create_from_array, "p:i32_array_t(p:i32_array_t from)", p, p)
X2(i32_array_create_from_raw, "p:i32_array_t(p:int32_t raw,i length)", p, p, i)
X1(u16_array_create, "p:u16_array_t(i length)", p, i)
X2(u16_array_create_from_raw, "p:u16_array_t(p:uint16_t raw,i length)", p, p, i)
X1(i16_array_create, "p:i16_array_t(i length)", p, i)
X1(i16_array_create_from_array, "p:i16_array_t(p:i16_array_t from)", p, p)
X2(i16_array_create_from_raw, "p:i16_array_t(p:int16_t raw,i length)", p, p, i)
X1(u8_array_create, "p:u8_array_t(i length)", p, i)
X1(u8_array_create_from_array, "p:u8_array_t(p:u8_array_t from)", p, p)
X2(u8_array_create_from_raw, "p:u8_array_t(p:uint8_t raw,i length)", p, p, i)
X1(u8_array_create_from_string, "p:u8_array_t(p:char s)", p, p)
X1(u8_array_to_string, "p:char(p:u8_array_t a)", p, p)
X1(i8_array_create, "p:i8_array_t(i length)", p, i)
X2(i8_array_create_from_raw, "p:i8_array_t(p:int8_t raw,i length)", p, p, i)
X1(any_array_create, "p:any_array_t(i length)", p, i)
X2(any_array_create_from_raw, "p:any_array_t(p raw,i length)", p, p, i)
X1(string_array_create, "p:string_array_t(i length)", p, i)
X1(float_to_half_fast, "i(f value)", i, f)
X1(half_to_u8_fast, "i(i h)", i, i)
// iron_input (mouse_x / mouse_y globals are registered in minic_register_builtins)
X1(mouse_down, "b(p:char button)", b, p)
X0(mouse_down_any, "b()", b)
X1(mouse_started, "b(p:char button)", b, p)
X0(mouse_started_any, "b()", b)
X1(mouse_released, "b(p:char button)", b, p)
X0(mouse_view_x, "f()", f)
X0(mouse_view_y, "f()", f)
X1(keyboard_down, "b(p:char key)", b, p)
X1(keyboard_started, "b(p:char key)", b, p)
X0(keyboard_started_any, "b()", b)
X1(keyboard_released, "b(p:char key)", b, p)
X1(keyboard_repeat, "b(p:char key)", b, p)
X1(keyboard_key_code, "p:char(i key)", p, i)
// paint
X0(plugin_create, "p:plugin_t()", p)
X2(plugin_notify_on_ui, "v(p:plugin_t plugin,p f)", v, p, p)
X2(plugin_notify_on_update, "v(p:plugin_t plugin,p f)", v, p, p)
X2(plugin_notify_on_delete, "v(p:plugin_t plugin,p f)", v, p, p)
X1(script_notify_on_update, "v(p fn)", v, p)
X1(script_notify_on_next_frame, "v(p fn)", v, p)
X1(console_info, "v(p:char s)", v, p)
X1(console_error, "v(p:char s)", v, p)
X1(console_log, "v(p:char s)", v, p)
X3(ui_box_show_message, "v(p:char title,p:char text,i copyable)", v, p, p, i)
X4(ui_files_show2, "v(p:char filters,i is_save,i open_multiple,p files_done)", v, p, i, i, p)
X0(script_quit, "v()", v)
X1(project_save, "v(i save_and_quit)", v, i)
X0(script_project_new, "v()", v)
X1(script_project_open, "v(p:char path)", v, p)
X2(script_import_asset, "v(p:char path,i hdr_as_envmap)", v, p, i)
X1(script_append_mesh, "v(p:char path)", v, p)
X1(script_append_mesh_obj, "v(p:char data)", v, p)
X1(script_export_mesh, "v(p:char path)", v, p)
X1(script_export_material, "v(p:char path)", v, p)
X0(project_filepath_get, "p:char()", p)
X0(project_basepath_get, "p:char()", p)
X1(project_filepath_set, "v(p:char s)", v, p)
X0(script_get_context, "p:context_t()", p)
X0(script_get_config, "p:config_t()", p)
X0(script_get_project, "p:project_t()", p)
X1(script_get_object, "p:object_t(p:char s)", p, p)
X1(script_get_material, "p:slot_material_t(p:char s)", p, p)
X0(script_shape_list, "p:string_array_t()", p)
X1(script_shape_add, "p:object_t(p:char name)", p, p)
X1(script_object_duplicate, "p:object_t(p:object_t o)", p, p)
X2(script_add_trait, "v(p:char object,p:char trait)", v, p, p)
X3(trait_point_and_click_controller_walk_to, "v(f x,f y,p on_arrive)", v, f, f, p)
X2(script_physics_set_shape, "v(p:object_t o,i shape)", v, p, i)
X2(script_physics_set_mass, "v(p:object_t o,f mass)", v, p, f)
X4(script_physics_apply_impulse, "v(p:object_t o,f x,f y,f z)", v, p, f, f, f)
X4(script_physics_set_velocity, "v(p:object_t o,f x,f y,f z)", v, p, f, f, f)
X1(script_physics_sync_transform, "v(p:object_t o)", v, p)
X0(script_pick_object, "p:object_t()", p)
X2(script_show_message, "v(p:char text,f seconds)", v, p, f)
X1(script_set_stage, "v(p:char name)", v, p)
X1(script_show_envmap, "v(i b)", v, i)
X1(script_fade_to_stage, "v(p:char stage)", v, p)
X2(script_timer, "v(f delay,p fn)", v, f, p)
X0(script_get_stage, "p:char()", p)
X2(script_set_tilesheet_anim, "v(p:object_t o,p:char anim)", v, p, p)
X7(script_draw_particles, "v(p:gpu_texture_t texture,f x,f y,f w,f h,i atlas_x,i atlas_frames)", v, p, f, f, f, f, i, i)
X2(script_paint, "v(f x,f y)", v, f, f)
X3(script_paint_world, "v(f x,f y,f z)", v, f, f, f)
X0(script_paint_end, "v()", v)
X0(script_fill_layer, "v()", v)
X1(script_material_create, "p:slot_material_t(p:char name)", p, p)
X1(script_material_set, "v(p:slot_material_t m)", v, p)
X2(script_object_set_material, "v(p:object_t object,p:slot_material_t material)", v, p, p)
X1(script_material_delete, "v(p:slot_material_t m)", v, p)
X1(script_material_create_node, "p:ui_node_t(p:char type)", p, p)
X3(script_material_create_node_at, "p:ui_node_t(p:char type,f x,f y)", p, p, f, f)
X1(script_material_get_node, "p:ui_node_t(p:char type)", p, p)
X1(script_material_get_node_id, "p:ui_node_t(i id)", p, i)
X4(script_material_connect, "v(p:ui_node_t from,i from_socket,p:ui_node_t to,i to_socket)", v, p, i, p, i)
X2(script_material_disconnect, "v(p:ui_node_t to,i to_socket)", v, p, i)
X1(script_material_remove_node, "v(p:ui_node_t node)", v, p)
X4(script_material_set_float, "v(p:ui_node_t node,i is_input,i socket,f value)", v, p, i, i, f)
X7(script_material_set_color, "v(p:ui_node_t node,i is_input,i socket,f r,f g,f b,f a)", v, p, i, i, f, f, f, f)
X6(script_material_set_vector, "v(p:ui_node_t node,i is_input,i socket,f x,f y,f z)", v, p, i, i, f, f, f)
X3(script_material_set_button, "v(p:ui_node_t node,i button,f value)", v, p, i, f)
X0(script_material_update, "v()", v)
X1(context_set_viewport_shader, "v(p viewport_shader)", v, p)
X1(context_set_viewport_mode, "v(i mode)", v, i)
X1(context_set_camera_controls, "v(i i)", v, i)
X2(node_shader_write_frag, "v(p:node_shader_t raw,p:char s)", v, p, p)
X2(plugin_register_texture, "v(p:char format,p fn)", v, p, p)
X1(plugin_unregister_texture, "v(p:char format)", v, p)
X2(plugin_register_mesh, "v(p:char format,p fn)", v, p, p)
X1(plugin_unregister_mesh, "v(p:char format)", v, p)
X2(plugin_register_text, "v(p:char format,p fn)", v, p, p)
X1(plugin_unregister_text, "v(p:char format)", v, p)
X5(plugin_make_raw_mesh, "p:raw_mesh_t(p:char name,p:i16_array_t posa,p:i16_array_t nora,p:u32_array_t inda,f scale_pos)", p, p, p, p, p, f)
X2(plugin_material_category_add, "v(p:char category_name,p:any_array_t node_list)", v, p, p)
X2(plugin_brush_category_add, "v(p:char category_name,p:any_array_t node_list)", v, p, p)
X1(plugin_material_category_remove, "v(p:char category_name)", v, p)
X1(plugin_brush_category_remove, "v(p:char category_name)", v, p)
X2(plugin_material_custom_nodes_set, "v(p:char node_type,p fn)", v, p, p)
X2(plugin_brush_custom_nodes_set, "v(p:char node_type,p fn)", v, p, p)
X1(plugin_material_custom_nodes_remove, "v(p:char node_type)", v, p)
X1(plugin_brush_custom_nodes_remove, "v(p:char node_type)", v, p)
X0(plugin_material_kong_get, "p()", p)
X2(parser_material_parse_value_input, "p:char(p:ui_node_socket_t inp,i vector_as_grayscale)", p, p, i)
X0(context_main_object, "p:mesh_object_t()", p)
X2(export_texture_run, "v(p:char path,i bake_material)", v, p, i)
X1(context_select_tool, "v(i i)", v, i)
X3(gpu_create_render_target, "p:gpu_texture_t(i width,i height,i format)", p, i, i, i)
X5(viewport_capture_screenshot_to, "v(p:gpu_texture_t target,f x,f y,f w,f h)", v, p, f, f, f, f)
X1(viewport_save_texture, "v(p:gpu_texture_t screenshot)", v, p)
X1(project_reskin_mesh, "b(i frame)", b, i)
X0(iron_delay_idle_sleep, "v()", v)
// json
X1(json_parse, "p(p:char s)", p, p)
X1(json_parse_to_map, "p:any_map_t(p:char s)", p, p)
X0(json_encode_begin, "v()", v)
X0(json_encode_end, "p:char()", p)
X2(json_encode_string, "v(p:char k,p:char v)", v, p, p)
X2(json_encode_string_array, "v(p:char k,p:string_array_t a)", v, p, p)
X2(json_encode_f32, "v(p:char k,f f)", v, p, f)
X2(json_encode_i32, "v(p:char k,i i)", v, p, i)
X1(json_encode_null, "v(p:char k)", v, p)
X2(json_encode_f32_array, "v(p:char k,p:f32_array_t a)", v, p, p)
X2(json_encode_i32_array, "v(p:char k,p:i32_array_t a)", v, p, p)
X2(json_encode_bool, "v(p:char k,i b)", v, p, i)
X1(json_encode_begin_array, "v(p:char k)", v, p)
X0(json_encode_end_array, "v()", v)
X0(json_encode_begin_object, "v()", v)
X0(json_encode_end_object, "v()", v)
X1(json_encode_map, "v(p:any_map_t m)", v, p)
X1(json_encode_to_armpack, "p:buffer_t(p:char json)", p, p)
// armpack
X1(armpack_decode, "p(p:buffer_t b)", p, p)
X1(armpack_decode_to_map, "p:any_map_t(p:buffer_t b)", p, p)
X1(armpack_decode_to_json, "p:char(p:buffer_t b)", p, p)
X1(armpack_encode_start, "v(p encoded)", v, p)
X0(armpack_encode_end, "i()", i)
X1(armpack_encode_map, "v(i count)", v, i)
X1(armpack_encode_array, "v(i count)", v, i)
X1(armpack_encode_array_f32, "v(p:f32_array_t f32a)", v, p)
X1(armpack_encode_array_i32, "v(p:i32_array_t i32a)", v, p)
X1(armpack_encode_array_i16, "v(p:i16_array_t i16a)", v, p)
X1(armpack_encode_array_u8, "v(p:u8_array_t u8a)", v, p)
X1(armpack_encode_array_string, "v(p:string_array_t strings)", v, p)
X1(armpack_encode_string, "v(p:char str)", v, p)
X1(armpack_encode_i32, "v(i i)", v, i)
X1(armpack_encode_f32, "v(f f)", v, f)
X1(armpack_encode_bool, "v(i b)", v, i)
X0(armpack_encode_null, "v()", v)
X0(armpack_size_map, "i()", i)
X0(armpack_size_array, "i()", i)
X1(armpack_size_array_f32, "i(p:f32_array_t f32a)", i, p)
X1(armpack_size_array_u8, "i(p:u8_array_t u8a)", i, p)
X1(armpack_size_string, "i(p:char str)", i, p)
X0(armpack_size_i32, "i()", i)
X0(armpack_size_f32, "i()", i)
X0(armpack_size_bool, "i()", i)
X2(armpack_map_get_f32, "f(p:any_map_t map,p:char key)", f, p, p)
X2(armpack_map_get_i32, "i(p:any_map_t map,p:char key)", i, p, p)