tab_plugins.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. function tab_plugins_draw(htab: ui_handle_t) {
  2. if (ui_tab(htab, tr("Plugins"))) {
  3. ui_begin_sticky();
  4. let row: f32[] = [ -70 ];
  5. ui_row(row);
  6. if (ui_button(tr("Manager"))) {
  7. box_preferences_htab.i = preference_tab_t.PLUGINS;
  8. box_preferences_show();
  9. }
  10. ui_end_sticky();
  11. // Draw plugins
  12. let keys: string[] = map_keys(plugin_map);
  13. for (let i: i32 = 0; i < keys.length; ++i) {
  14. let p: plugin_t = map_get(plugin_map, keys[i]);
  15. if (p.on_ui != null) {
  16. js_call(p.on_ui);
  17. }
  18. }
  19. /// if is_debug
  20. let rt_keys: string[] = map_keys(render_path_render_targets);
  21. array_sort(rt_keys, null);
  22. for (let i: i32 = 0; i < rt_keys.length; ++i) {
  23. let rt: render_target_t = map_get(render_path_render_targets, rt_keys[i]);
  24. ui_text(rt_keys[i]);
  25. ui_image(rt._image);
  26. }
  27. /// end
  28. }
  29. }
  30. function plugin_uv_unwrap_button() {
  31. let cb: any = map_get(util_mesh_unwrappers, "uv_unwrap.js"); // JSValue * -> (a: raw_mesh_t)=>void
  32. for (let i: i32 = 0; i < project_paint_objects.length; ++i) {
  33. let md: mesh_data_t = project_paint_objects[i].data;
  34. let mesh: raw_mesh_t = {posa : md.vertex_arrays[0].values, nora : md.vertex_arrays[1].values, texa : null, inda : md.index_array};
  35. js_call_ptr(cb, mesh);
  36. md.vertex_arrays[0].values = mesh.posa;
  37. md.vertex_arrays[1].values = mesh.nora;
  38. md.vertex_arrays[2].values = mesh.texa;
  39. md.index_array = mesh.inda;
  40. mesh_data_build(md);
  41. }
  42. util_mesh_merge();
  43. }