#pragma once #include "enums.h" #include "types.h" #include f32 ui_MENUBAR_H(ui_t *ui); f32 ui_nodes_INPUT_Y(ui_node_canvas_t *canvas, ui_node_t *node, i32 pos); ui_handle_t *ui_handle(char *s); ui_t *ui_create(ui_options_t *ops); ui_theme_t *ui_theme_create(); void nodes_on_custom_button(i32 node_id, char *button_name); ui_nodes_t *ui_nodes_create(); ui_node_socket_t *ui_get_socket(ui_node_t_array_t *nodes, i32 id); void ui_set_font(ui_t *ui, draw_font_t *font); gpu_texture_t *tab_swatches_empty_get(); void tab_swatches_draw(ui_handle_t *htab); void tab_swatches_accept_swatch_drop(swatch_color_t *swatch); slot_brush_t *slot_brush_create(ui_node_canvas_t *c); slot_layer_t *slot_layer_create(char *ext, layer_slot_type_t type, slot_layer_t *parent); void slot_layer_delete(slot_layer_t *raw); void slot_layer_unload(slot_layer_t *raw); void slot_layer_swap(slot_layer_t *raw, slot_layer_t *other); void slot_layer_clear(slot_layer_t *raw, i32 base_color, gpu_texture_t *base_image, f32 occlusion, f32 roughness, f32 metallic); void slot_layer_invert_mask(slot_layer_t *raw); void slot_layer_apply_mask(slot_layer_t *raw); void slot_layer_apply_sculpt(slot_layer_t *raw); void slot_layer_resize_and_set_bits(slot_layer_t *raw); void slot_layer_to_fill_layer(slot_layer_t *raw); void slot_layer_to_paint_layer(slot_layer_t *raw); bool slot_layer_is_visible(slot_layer_t *raw); slot_layer_t_array_t *slot_layer_get_children(slot_layer_t *raw); slot_layer_t_array_t *slot_layer_get_recursive_children(slot_layer_t *raw); slot_layer_t_array_t *slot_layer_get_masks(slot_layer_t *raw, bool include_group_masks); bool slot_layer_has_masks(slot_layer_t *raw, bool include_group_masks); slot_layer_t_array_t *slot_layer_get_filters(slot_layer_t *raw, bool include_group_filters); f32 slot_layer_get_opacity(slot_layer_t *raw); i32 slot_layer_get_object_mask(slot_layer_t *raw); i32 slot_layer_get_blending(slot_layer_t *raw); bool slot_layer_is_layer(slot_layer_t *raw); bool slot_layer_is_path(slot_layer_t *raw); bool slot_layer_is_group(slot_layer_t *raw); slot_layer_t *slot_layer_get_containing_group(slot_layer_t *raw); bool slot_layer_is_filter(slot_layer_t *raw); bool slot_layer_is_mask(slot_layer_t *raw); bool slot_layer_is_group_mask(slot_layer_t *raw); bool slot_layer_is_layer_mask(slot_layer_t *raw); bool slot_layer_is_in_group(slot_layer_t *raw); bool slot_layer_can_move(slot_layer_t *raw, i32 to); void slot_layer_move(slot_layer_t *raw, i32 to); void layers_init(); void layers_resize(); void layers_set_bits(); void layers_make_temp_img(); void layers_make_temp_mask_img(); void layers_make_export_img(); void layers_commands_merge_pack(gpu_pipeline_t *pipe, gpu_texture_t *i0, gpu_texture_t *i1, gpu_texture_t *i1pack, f32 i1mask_opacity, gpu_texture_t *i1texmask, i32 i1blending); bool layers_is_fill_material(); void layers_update_fill_layers(); bool layers_is_path_material(); void layers_update_path_layers(); void layers_update_fill_layer(bool parse_paint); void layers_update_linked_layers(); void layers_set_object_mask(); slot_layer_t *layers_new_layer(bool clear, i32 position, slot_layer_t *parent); slot_layer_t *layers_new_mask(bool clear, slot_layer_t *parent, i32 position); slot_layer_t *layers_new_group(); slot_layer_t *layers_new_path_layer(bool curved); void layers_create_fill_layer(uv_type_t uv_type, mat4_t decal_mat, i32 position); void layers_create_image_mask(asset_t *asset); void layers_create_color_layer(i32 base_color, f32 occlusion, f32 roughness, f32 metallic, i32 position); void layers_duplicate_layer(slot_layer_t *l); void layers_merge_down(); slot_layer_t *layers_merge_group(slot_layer_t *l); void layers_merge_layer(slot_layer_t *l0, slot_layer_t *l1, bool use_mask); slot_layer_t *layers_flatten(bool height_to_normal, slot_layer_t_array_t *layers); void layers_on_resized(); slot_font_t *slot_font_create(char *name, draw_font_t *font, char *file); scene_t *startup_get_scene(void); buffer_t *util_encode_scene(scene_t *raw); buffer_t *util_encode_project(project_t *raw); void operator_register(char *name, void (*call)(void)); void operator_run(char *name); void operator_update(); bool operator_shortcut(char *s, shortcut_type_t type); void render_compass(); void render_compass_update(); void render_envsphere(); void render_pathsphere(); void config_load(); void config_save(); void config_init(); void config_init_layout(); char *config_get_sha(); char *config_get_date(); iron_window_options_t *config_get_options(); void config_restore(); void config_import_from(config_t *from); void config_apply(); i32 config_get_super_sample_quality(f32 f); f32 config_get_super_sample_size(i32 i); i32 config_get_layer_res(); i32 config_get_scene_atlas_res(); i32 config_get_texture_res_x(); i32 config_get_texture_res_y(); i32 config_get_texture_res_pos(i32 i); void config_load_theme(char *theme, bool tag_redraw); void config_enable_plugin(char *f); void config_disable_plugin(char *f); bool config_is_iphone(); physics_body_t *physics_body_create(); void physics_body_init(physics_body_t *body, object_t *obj); void physics_body_remove(physics_body_t *body); void physics_body_apply_impulse(physics_body_t *body, vec4_t dir); void physics_body_sync_transform(physics_body_t *body); void physics_body_update(physics_body_t *body); void box_export_show_textures(); void box_export_show_bake_material(); void box_export_show_mesh(); void box_export_show_material(); void box_export_show_brush(); void box_export_show_player(); void import_blend_mesh_ui(); void import_blend_mesh_run(char *path, bool replace_existing); void tab_console_draw(ui_handle_t *htab); void tab_textures_draw(ui_handle_t *htab); void render_path_forward_init(); void render_path_forward_commands(); void make_bake_run(node_shader_context_t *con, node_shader_t *kong); void make_bake_position_normal(node_shader_t *kong); void make_bake_set_color_writes(node_shader_context_t *con_paint); slot_material_t *slot_material_create(material_data_t *m, ui_node_canvas_t *c); void slot_material_unload(slot_material_t *raw); void slot_material_delete(slot_material_t *raw); void make_clone_run(node_shader_t *kong); void tab_brushes_draw(ui_handle_t *htab); void pipes_init(); i32 pipes_get_constant_location(char *type); void make_brush_run(node_shader_t *kong); void import_blend_material_run(char *path); void import_texture_run(char *path, bool hdr_as_envmap); void import_lut_run(const char *path); void import_lut_free(); void ui_files_show(char *filters, bool is_save, bool open_multiple, void (*files_done)(char *)); char *ui_files_file_browser(ui_handle_t *handle, bool drag_files, char *search, bool refresh, void (*context_menu)(char *)); void ui_files_go_up(ui_handle_t *handle); void ui_files_navigate(i32 dx, i32 dy); void ui_files_enter_selected(ui_handle_t *handle); void base_init(); i32 base_w(); i32 base_view3d_w(); i32 base_h(); i32 base_x(); i32 base_y(); void base_on_resize(); void base_resize(); void base_update_workspace(); void base_update_workflow(); void base_run_in_player(); string_array_t *base_combo_enum_texts(char *node_type); any_array_t *base_combo_enum_images(char *node_type); i32 base_get_asset_index(char *file_name); void base_toggle_fullscreen(); bool base_is_decal_layer(); void base_redraw_status(); void base_redraw_console(); uint32_t base_darker(uint32_t x, uint32_t y); void base_redraw_ui(); string_array_t *base_get_viewport_modes(); string_array_t *base_get_viewport_mode_shortcuts(); ui_handle_t_array_t *ui_base_init_hwnds(); ui_handle_t_array_t *ui_base_init_htabs(); tab_draw_array_t_array_t *ui_base_init_hwnd_tabs(); void ui_base_toggle_distract_free(); void ui_base_show_material_nodes(); void ui_base_show_brush_nodes(); void ui_base_show_2d_view(view_2d_type_t type); void ui_base_show_3d_view(); void ui_base_toggle_browser(); void ui_base_set_icon_scale(); void ui_base_set_viewport_col(i32 col); void render_gizmo_update(); void util_layer_update_path(); bool util_layer_is_path_point_dragging(); void util_layer_add_path_point(slot_layer_t *l, f32 screen_x, f32 screen_y); void util_layer_repaint_path(slot_layer_t *l); void util_layer_clear_path_points(slot_layer_t *l); void make_texcoord_run(node_shader_t *kong); void context_init(); void context_select_material(i32 i); void context_set_material(slot_material_t *m); void context_select_brush(i32 i); void context_set_brush(slot_brush_t *b); void context_select_font(i32 i); void context_select_layer(i32 i); void context_set_layer(slot_layer_t *l); void context_select_tool(i32 i); void context_init_tool(); void context_select_paint_object(mesh_object_t *o); mesh_object_t *context_main_object(); bool context_layer_filter_used(); bool context_object_mask_used(); bool context_in_3d_view(); bool context_in_paint_area(); bool context_in_layers(); bool context_in_materials(); bool context_in_2d_view(view_2d_type_t type); bool context_in_nodes(); bool context_in_swatches(); bool context_in_brushes(); bool context_in_fonts(); bool context_in_textures(); bool context_in_browser(); bool context_is_decal(); bool context_is_decal_mask(); bool context_is_decal_mask_paint(); bool context_is_floating_toolbar(); void context_set_viewport_mode(viewport_mode_t mode); void context_load_envmap(); void context_update_envmap(); void context_set_viewport_shader(void *viewport_shader); void context_set_render_path(); bool context_enable_import_plugin(char *file); void context_set_swatch(swatch_color_t *s); void node_shader_add_out(node_shader_t *raw, char *s); void node_shader_add_constant(node_shader_t *raw, char *s, char *link); void node_shader_add_texture(node_shader_t *raw, char *name, char *link); void node_shader_add_function(node_shader_t *raw, char *s); void node_shader_write_vert(node_shader_t *raw, char *s); void node_shader_write_end_vert(node_shader_t *raw, char *s); void node_shader_write_attrib_vert(node_shader_t *raw, char *s); void node_shader_write_frag(node_shader_t *raw, char *s); void node_shader_write_attrib_frag(node_shader_t *raw, char *s); char *node_shader_get(node_shader_t *raw); node_shader_context_t *node_shader_context_create(material_t *material, shader_context_t *props); void node_shader_context_add_elem(node_shader_context_t *raw, char *name, char *data_type); bool node_shader_context_is_elem(node_shader_context_t *raw, char *name); node_shader_t *node_shader_context_make_kong(node_shader_context_t *raw); void ui_toolbar_init(); i32 ui_toolbar_w(bool screen_size_request); i32 ui_toolbar_x(); void ui_toolbar_render_ui(); void export_arm_run_mesh(char *path, mesh_object_t_array_t *paint_objects); void export_arm_run_project(); void export_arm_run_material(char *path); buffer_t *export_arm_bgra_swap(buffer_t *buffer); buffer_t *export_arm_bgra64_swap(buffer_t *buffer); void export_arm_run_brush(char *path); void export_arm_pack_assets(project_t *raw, asset_t_array_t *assets); void export_arm_run_swatches(char *path); void import_asset_run(char *path, f32 drop_x, f32 drop_y, bool show_box, bool hdr_as_envmap, void (*done)(void)); void make_particle_mask(node_shader_t *kong); void uniforms_ext_init(); void render_path_deferred_init(); void render_path_deferred_commands(); void box_projects_show(); void box_projects_recent_tab(); node_shader_context_t *make_node_preview_run(material_t *data, material_context_t *matcon, ui_node_t *node, ui_node_canvas_t *group, ui_node_t_array_t *parents); void history_undo(); void history_redo(); void history_reset(); void history_edit_nodes(ui_node_canvas_t *canvas, i32 canvas_type, i32 canvas_group); void history_paint(); void history_new_layer(); void history_new_black_mask(); void history_new_white_mask(); void history_new_fill_mask(); void history_new_group(); void history_duplicate_layer(); void history_delete_layer(); void history_clear_layer(); void history_order_layers(i32 prev_order); void history_merge_layers(); void history_apply_mask(); void history_invert_mask(); void history_to_fill_layer(); void history_to_fill_mask(); void history_to_paint_layer(); void history_to_paint_mask(); void history_layer_opacity(); void history_layer_blending(); void history_new_material(); void history_delete_material(); void history_duplicate_material(); void history_delete_material_group(node_group_t *group); void tab_scripts_set(char *s); void tab_scripts_draw(ui_handle_t *htab); ui_text_coloring_t *tab_scripts_get_text_coloring(); void tab_debug_draw(ui_handle_t *htab); void render_path_preview_init(); void render_path_preview_commands_preview(); void render_path_preview_commands_decal(); node_shader_context_t *make_paint_run(material_t *data, material_context_t *matcon); node_shader_context_t *make_mesh_preview_run(material_t *data, material_context_t *matcon); void import_mesh_run(char *path, bool _clear_layers, bool replace_existing); void import_mesh_finish_import(void *_); void import_mesh_make_mesh(raw_mesh_t *mesh); void import_mesh_add_mesh(raw_mesh_t *mesh); mesh_data_t *import_mesh_raw_mesh(raw_mesh_t *mesh); void ui_menubar_init(); i32 ui_menu_top_y(); void ui_menubar_render_ui(); bool ui_menubar_icon_button(i32 i); char *_tr(char *s); char *vtr(char *id, any_map_t *vars); char *tr(char *id); void translator_load_translations(char *new_locale); string_array_t *translator_get_supported_locales(); logic_node_t *logic_node_create(logic_node_ext_t *ext); void logic_node_add_input(logic_node_t *self, logic_node_ext_t *node, i32 from); void logic_node_add_outputs(logic_node_t *self, logic_node_t_array_t *nodes); logic_node_value_t *logic_node_input_get(logic_node_input_t *self); gpu_texture_t *logic_node_input_get_as_image(logic_node_input_t *self); void logic_node_input_set(logic_node_input_t *self, f32_array_t *value); void import_arm_run_project(char *path); void import_arm_run_material(char *path); void import_arm_run_brush(char *path); void import_arm_run_brush_from_project(project_t *project, char *path); void import_arm_run_swatches(char *path, bool replace_existing); bool import_arm_has_version(buffer_t *b); void viewport_scale_to_bounds(f32 bounds); void viewport_reset(); void viewport_set_view(f32 x, f32 y, f32 z, f32 rx, f32 ry, f32 rz); void viewport_orbit(f32 x, f32 y); void viewport_orbit_opposite(); void viewport_zoom(f32 f); void viewport_update_camera_type(i32 camera_type); void viewport_capture_screenshot(); void viewport_capture_video_begin(); void viewport_capture_video_end(); void tab_fonts_draw(ui_handle_t *htab); physics_world_t *physics_world_create(); void physics_world_update(physics_world_t *world); physics_pair_t_array_t *physics_world_get_contact_pairs(physics_world_t *world, physics_body_t *body); float physics_world_get_speed(physics_world_t *world, physics_body_t *body); void ui_menu_render(); void ui_menu_draw(void (*commands)(void), i32 x, i32 y); void ui_menu_separator(); bool ui_menu_button(char *text, char *label, icon_t icon); bool ui_icon_button(char *text, icon_t icon, ui_align_t align); bool ui_menu_sub_button(ui_handle_t *handle, char *text); void ui_menu_label(char *text, char *shortcut); void ui_menu_align(); void ui_menu_begin(); void ui_menu_end(); void ui_menu_sub_begin(i32 items); void ui_menu_sub_end(); void render_path_base_init(); void render_path_base_apply_config(); f32 render_path_base_get_super_sampling(); void render_path_base_commands(void (*draw_commands)(void)); void render_path_base_draw_bloom(char *source, char *target); void render_path_base_init_ssao(); void render_path_base_draw_ssao(); void render_path_base_draw_deferred_light(); void render_path_base_draw_taa(char *bufa, char *bufb); void render_path_base_swap_buf(char *bufb); void render_path_base_draw_gbuffer(); char *strings_arm_file_expected(); char *strings_unknown_asset_format(); char *strings_could_not_locate_texture(); char *strings_failed_to_read_mesh_data(); char *strings_check_internet_connection(); char *strings_asset_already_imported(); char *strings_graphics_api(); void tab_stages_draw(ui_handle_t *htab); void project_open(); void project_save(bool save_and_quit); void project_save_as(bool save_and_quit); void project_fetch_default_meshes(); void project_new_box(); void project_new(bool reset_layers); void project_set_default_envmap(); void project_import_material(); void project_import_brush(); void project_import_mesh(bool replace_existing, void (*done)(void)); void project_append_mesh(); void project_import_mesh_box(char *path, bool replace_existing, bool clear_layers, void (*done)(void)); void project_reimport_mesh(); void project_unwrap_mesh_box(); void project_import_asset(char *filters, bool hdr_as_envmap); void project_import_swatches(bool replace_existing); void project_reimport_textures(); void project_reimport_texture(asset_t *asset); gpu_texture_t *project_get_image(asset_t *asset); string_array_t *project_get_used_atlases(); bool project_is_atlas_object(mesh_object_t *p); mesh_object_t_array_t *project_get_atlas_objects(i32 object_mask); bool project_packed_asset_exists(packed_asset_t_array_t *packed_assets, char *name); void project_export_swatches(); swatch_color_t *project_make_swatch(i32 base); swatch_color_t *project_clone_swatch(swatch_color_t *swatch); void project_set_default_swatches(); node_group_t *project_get_material_group_by_name(char *group_name); bool project_is_material_group_in_use(node_group_t *group); void keymap_load(); void keymap_save(); char *keymap_to_json(any_map_t *keymap); any_map_t *keymap_get_default(); void ui_view2d_init(); void ui_view2d_render(void *_); void ui_view2d_update(void *_); void make_picking_run(node_shader_t *kong); void sim_init(); void sim_update(); void sim_play(); void sim_stop(); void sim_add_body(object_t *o, physics_shape_t shape, f32 mass); void sim_remove_body(physics_body_t *pb); void sim_duplicate(); void sim_delete(); ui_node_link_t *parser_material_get_input_link(ui_node_socket_t *inp); void parser_material_init(); shader_out_t *parser_material_parse(ui_node_canvas_t *canvas, node_shader_context_t *_con, node_shader_t *_kong, material_context_t *_matcon); void parser_material_finalize(node_shader_context_t *con); void parser_material_push_group(ui_node_canvas_t *g); char *parser_material_parse_group(ui_node_t *node, ui_node_socket_t *socket); void parser_material_write(node_shader_t *raw, char *s); char *parser_material_parse_vector_input(ui_node_socket_t *inp); char *parser_material_parse_value_input(ui_node_socket_t *inp, bool vector_as_grayscale); char *parser_material_get_coord(ui_node_t *node); char *parser_material_res_var_name(ui_node_t *node, ui_node_socket_t *socket); char *parser_material_write_result(ui_node_link_t *l); char *parser_material_store_var_name(ui_node_t *node); char *parser_material_vec1(f32 v); char *parser_material_vec3(f32_array_t *v); char *parser_material_to_vec3(char *s); ui_node_t *parser_material_node_by_type(ui_node_t_array_t *nodes, char *ntype); char *parser_material_node_name(ui_node_t *node, ui_node_t_array_t *_parents); char *parser_material_enum_data(char *s); bind_tex_t *parser_material_make_bind_tex(char *tex_name, char *file); char *u8_array_string_at(u8_array_t *a, i32 i); void args_parse(); void args_run(); void util_render_make_material_preview(); void util_render_make_decal_preview(); void util_render_make_text_preview(); void util_render_make_font_preview(); void util_render_make_brush_preview(); void util_render_make_node_preview(ui_node_canvas_t *canvas, ui_node_t *node, gpu_texture_t *image, ui_node_canvas_t *group, ui_node_t_array_t *parents); void util_render_pick_pos_nor_tex(); mat4_t util_render_get_decal_mat(); void tab_materials_draw(ui_handle_t *htab); void tab_materials_accept_swatch_drop(swatch_color_t *swatch); void tab_materials_accept_material_drop(slot_material_t *material); void tab_brushes_accept_brush_drop(slot_brush_t *brush); void tab_fonts_accept_font_drop(slot_font_t *font); void tab_textures_accept_asset_drop(asset_t *asset); void tab_browser_show_directory(char *directory); void tab_browser_draw(ui_handle_t *htab); void util_mesh_merge(mesh_object_t_array_t *paint_objects); void util_mesh_swap_axis(i32 a, i32 b); void util_mesh_flip_normals(); void util_mesh_calc_normals(bool smooth); void util_mesh_to_origin(); void util_mesh_apply_displacement(gpu_texture_t *texpaint_pack, f32 strength, f32 uv_scale); void util_mesh_equirect_unwrap(raw_mesh_t *mesh); void util_mesh_decimate(f32 strength); void util_mesh_smooth(); void util_mesh_bevel(f32 amount); void util_mesh_subdivide(); void util_mesh_pack_uvs(i16_array_t *texa); void ui_header_init(); void ui_header_render_ui(); void ui_header_draw_tool_properties(); void player_update(); plugin_t *plugin_create(); void plugin_start(char *plugin); void plugin_stop(char *plugin); void plugin_notify_on_ui(plugin_t *plugin, void *f); void plugin_notify_on_update(plugin_t *plugin, void *f); void plugin_notify_on_delete(plugin_t *plugin, void *f); void import_plugin_run(char *path); void parser_logic_parse(ui_node_canvas_t *canvas); void resource_load(string_array_t *names); gpu_texture_t *resource_get(char *name); rect_t *resource_tile50(gpu_texture_t *img, i32 i); rect_t *resource_tile18(gpu_texture_t *img, i32 i); bool render_path_raytrace_bake_commands(void (*parse_paint_material)(bool)); void make_material_parse_mesh_material(); void make_material_parse_depth_material(); void make_material_parse_mesh_preview_material(); void make_material_parse_paint_material(bool bake_previews); void make_material_save_paint_material(); void make_material_restore_paint_material(); parse_node_preview_result_t *make_material_parse_node_preview_material(ui_node_t *node, ui_node_canvas_t *group, ui_node_t_array_t *parents); void make_material_parse_brush(); char *make_material_blend_mode(node_shader_t *kong, i32 blending, char *cola, char *colb, char *opac); f32 make_material_get_displace_strength(); void ui_viewnodes_init(); void ui_viewnodes_on_node_remove(ui_node_t *n); ui_canvas_control_t *ui_nodes_get_canvas_control(bool controls_down, bool is_node_view); ui_node_canvas_t *ui_nodes_get_canvas(bool groups); ui_nodes_t *ui_nodes_get_nodes(); void ui_nodes_update(void *_); void ui_nodes_canvas_changed(); gpu_texture_t *ui_nodes_draw_grid(f32 zoom); void ui_nodes_render(void *_); gpu_texture_t *ui_nodes_get_node_preview_image(ui_node_t *n); void ui_nodes_accept_asset_drop(i32 index); void ui_nodes_accept_layer_drop(i32 index); void ui_nodes_accept_material_drop(i32 index); void ui_nodes_accept_swatch_drop(swatch_color_t *swatch); ui_node_t *ui_nodes_make_node(ui_node_t *n, ui_nodes_t *nodes, ui_node_canvas_t *canvas); bool ui_nodes_has_group(ui_node_canvas_t *c); void ui_nodes_traverse_group(ui_node_canvas_t_array_t *mgroups, ui_node_canvas_t *c); void import_theme_run(char *path); ui_node_socket_t_array_t *util_clone_canvas_sockets(ui_node_socket_t_array_t *sockets); ui_node_t *util_clone_canvas_node(ui_node_t *n); ui_node_canvas_t *util_clone_canvas(ui_node_canvas_t *c); material_data_t *util_clone_material_data(material_data_t *m); obj_t *util_clone_obj(obj_t *o); swatch_color_t *util_clone_swatch_color(swatch_color_t *s); void import_keymap_run(char *path); void tab_plugins_draw(ui_handle_t *htab); void plugin_uv_unwrap_button(); void plugin_uv_unwrap_per_object_button(mesh_object_t *mo); void make_discard_color_id(node_shader_t *kong, char *tex_coord); void make_discard_face(node_shader_t *kong); void make_discard_uv_island(node_shader_t *kong); void make_discard_material_id(node_shader_t *kong); bool import_arm_is_old(buffer_t *b); project_t *import_arm_from_old(buffer_t *b); void nodes_brush_init(); void nodes_brush_list_init(); ui_node_t *nodes_brush_create_node(char *node_type); void import_obj_run(char *path, bool replace_existing); void import_folder_run(char *path); void export_obj_run(char *path, mesh_object_t_array_t *paint_objects, bool apply_disp); void export_obj_run_fast(char *path, mesh_object_t_array_t *paint_objects); void export_obj_sculpt_run(char *path, mesh_object_t_array_t *paint_objects); void make_blur_run(node_shader_t *kong); void import_font_run(char *path); buffer_t *export_exr_run(i32 width, i32 height, buffer_t *src, i32 bits, i32 type, i32 off); void nodes_material_init(); ui_node_t *nodes_material_create_node(char *node_type, node_group_t *group); raw_mesh_t *geom_make_plane(f32 size_x, f32 size_y, i32 verts_x, i32 verts_y, f32 uv_scale); raw_mesh_t *geom_make_uv_sphere(f32 radius, i32 width_segments, i32 height_segments, bool stretch_uv, f32 uv_scale); node_shader_context_t *make_mesh_run(material_t *data, i32 layer_pass); node_shader_context_t *make_depth_run(material_t *data, material_context_t *matcon); void ui_sidebar_render_ui(); void ui_sidebar_show(bool b); void console_toast(char *s); void console_info(char *s); void console_error(char *s); void console_log(char *s); void export_mesh_run(char *path, mesh_object_t_array_t *paint_objects, bool apply_disp, bool merge_vertices); void export_player_run(char *path); void camera_init(); void camera_update(void *_); f32 camera_distance(); void camera_reset(i32 view_index); bool box_preferences_model_exists(char *file_name); char *box_preferences_file_name_from_url(char *url); char *box_preferneces_model_url_from_name(char *name); void box_preferences_lut_picked(char *path); void box_preferences_show(); void box_preferences_fetch_themes(); void box_preferences_fetch_keymaps(); void box_preferences_fetch_plugins(); i32 box_preferences_get_theme_index(); i32 box_preferences_get_preset_index(); void render_path_paint_init(); void render_path_paint_commands_paint(bool dilation); void render_path_paint_use_live_layer(bool use); void render_path_paint_commands_cursor(); bool render_path_paint_paint_enabled(); void render_path_paint_live_brush_dirty(); void render_path_paint_begin(); void render_path_paint_end(); bool render_path_paint_is_rt_bake(); void render_path_paint_draw(); void render_path_paint_set_plane_mesh(); void render_path_paint_restore_plane_mesh(); void render_path_paint_bind_layers(); void render_path_paint_unbind_layers(); void render_path_paint_dilate(bool base, bool nor_pack); void export_texture_run(char *path, bool bake_material); void ui_box_render(); void ui_box_show_message(char *title, char *text, bool copyable); void ui_box_show_custom(void (*commands)(void), i32 mw, i32 mh, void (*on_hide)(void), bool draggable, char *title); void ui_box_hide(); void tab_meshes_draw(ui_handle_t *htab); void tab_meshes_reset_preview_map(); void util_particle_init_physics(); void tab_layers_apply_filter(i32 filter); void tab_layers_draw(ui_handle_t *htab); void tab_layers_remap_layer_pointers(ui_node_t_array_t *nodes, i32_imap_t *pointer_map); i32_map_t *tab_layers_init_layer_map(); i32_imap_t *tab_layers_fill_layer_map(i32_map_t *map); void tab_layers_make_mask_preview_rgba32(slot_layer_t *l); bool tab_layers_can_drop_new_layer(i32 position); void util_uv_cache_uv_map(); void util_uv_cache_triangle_map(); void util_uv_cache_dilate_map(); void util_uv_cache_uv_island_map(); void util_texture_capture_output(gpu_texture_t *img, char *basename); void render_path_raytrace_init(); void render_path_raytrace_raytrace_init(char *shader_name, bool build); void render_path_raytrace_draw(bool use_live_layer); node_shader_context_t *sculpt_make_sculpt_run(material_t *data, material_context_t *matcon); void sculpt_make_mesh_run(node_shader_t *kong, slot_layer_t_array_t *sculpt_layers, i32_array_t *sculpt_indices); void sculpt_import_mesh_pack_to_texture(mesh_data_t *mesh, gpu_texture_t *target); void sculpt_init_sculpt_texture(slot_layer_t *l, mesh_data_t *md); void sculpt_init(); void sculpt_layers_create_sculpt_layer(); void render_path_sculpt_commands(); void render_path_sculpt_begin(); void ui_statusbar_init(); void ui_statusbar_render_ui(); void ui_statusbar_draw_version_tab(ui_handle_t *htab); void import_envmap_run(char *path, gpu_texture_t *image); void image_texture_node_init(); char *parser_material_texture_store(ui_node_t *node, bind_tex_t *tex, char *tex_name, i32 color_space); void material_node_init(); void uv_map_node_init(); void wave_texture_node_init(); void clamp_node_init(); void curvature_bake_node_init(); void blur_node_init(); void text_texture_node_init(); void gradient_texture_node_init(); void object_info_node_init(); void magic_texture_node_init(); void warp_node_init(); void normal_node_init(); void mapping_node_init(); void normal_map_node_init(); void invert_color_node_init(); void wireframe_node_init(); void gamma_node_init(); void vector_math2_node_init(); void vector_rotate_node_init(); void vector_transform_node_init(); void checker_texture_node_init(); void hue_saturation_value_node_init(); void separate_color_node_init(); void separate_xyz_node_init(); void math2_node_init(); void geometry_node_init(); void mix_color_node_init(); void quantize_node_init(); void layer_node_init(); void float_curve_node_init(); void map_range_node_init(); void voronoi_texture_node_init(); void color_ramp_node_init(); void nodes_material_color_ramp_button(i32 node_id); void picker_node_init(); void replace_color_node_init(); void bump_node_init(); void gabor_texture_node_init(); void mix_normal_map_node_init(); void script_node_init(); void script_node_button(i32 node_id); void combine_color_node_init(); void combine_xyz_node_init(); void noise_texture_node_init(); void brightness_contrast_node_init(); void color_mask_node_init(); void rgb_curves_node_init(); void vector_curves_node_init(); f32 vector_curves_eval_cpu(f32 *points, i32 num, f32 t); char *vector_curves_eval(char *name, char *fac, f32 *points, i32 num); void nodes_material_vector_curves_button(i32 node_id); void layer_mask_node_init(); void camera_texture_node_init(); void value_node_init(); void texture_coordinate_node_init(); void group_node_init(); void nodes_material_new_group_button(i32 node_id); void nodes_material_group_input_button(i32 node_id); void nodes_material_group_output_button(i32 node_id); void nodes_material_sync_sockets(ui_node_t *node); i32 nodes_material_get_socket_color(char *type); ui_node_socket_t *nodes_material_create_socket(ui_nodes_t *nodes, ui_node_t *node, char *name, char *type, ui_node_canvas_t *canvas, f32 min, f32 max, void *default_value); void brick_texture_node_init(); void rgb_node_init(); void rgb_to_bw_node_init(); void attribute_node_init(); void shader_node_init(); void save_image_node_init(); void save_image_node_run(ui_node_t *node, gpu_texture_t *result); void repeat_node_init(); void neural_node_load_result(ui_node_t *node); void text_to_image_node_run(ui_node_t *node, void (*callback)(ui_node_t *)); void upscale_image_node_init(); void image_to_pbr_node_init(); void inpaint_image_node_init(); void text_to_image_node_init(); void text_to_text_node_clear(); void text_to_text_node_run(char *prompt, void (*done)(char *)); void outpaint_image_node_init(); char *neural_node_vector(ui_node_t *node, ui_node_socket_t *socket); char *neural_node_value(ui_node_t *node, ui_node_socket_t *socket); ui_node_t *neural_from_node(ui_node_socket_t *inp, i32 socket); bool neural_node_button(ui_node_t *node, char *model); void neural_node_check_result(ui_node_t *node); char *neural_node_sd_bin(); char *neural_node_dir(); void neural_node_download_models(string_array_t *models); void neural_node_models_init(); void edit_image_node_init(); void tile_image_node_init(); void image_to_3d_mesh_node_init(); void image_to_3d_mesh_node_button(i32 node_id); void vary_image_node_init(); void image_to_normal_map_node_init(); void image_to_depth_node_init(); tex_image_node_t *tex_image_node_create(ui_node_t *raw, f32_array_t *args); random_node_t *random_node_create(ui_node_t *raw, f32_array_t *args); boolean_node_t *boolean_node_create(ui_node_t *raw, f32_array_t *args); input_node_t *input_node_create(ui_node_t *raw, f32_array_t *args); math_node_t *math_node_create(ui_node_t *raw, f32_array_t *args); vector_node_t *vector_node_create(ui_node_t *raw, f32_array_t *args); color_node_t *color_node_create(ui_node_t *raw, f32_array_t *args); string_node_t *string_node_create(ui_node_t *raw, f32_array_t *args); null_node_t *null_node_create(ui_node_t *raw, f32_array_t *args); time_node_t *time_node_create(ui_node_t *raw, f32_array_t *args); vector_math_node_t *vector_math_node_create(ui_node_t *raw, f32_array_t *args); float_node_t *float_node_create(ui_node_t *raw, f32_array_t *args); integer_node_t *integer_node_create(ui_node_t *raw, f32_array_t *args); separate_vector_node_t *separate_vector_node_create(ui_node_t *raw, f32_array_t *args); brush_output_node_t *brush_output_node_create(ui_node_t *raw, f32_array_t *args); void edit_uvmap_update();