tab_plugins.ts 1.6 KB

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