plugins.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "../../../base/plugins/plugin_api.h"
  2. void proc_xatlas_unwrap(void *mesh);
  3. FN(proc_xatlas_unwrap) {
  4. uint64_t mesh;
  5. JS_ToBigUint64(ctx, &mesh, argv[0]);
  6. proc_xatlas_unwrap((void *)mesh);
  7. return JS_UNDEFINED;
  8. }
  9. void plugin_uv_unwrap_button();
  10. FN(plugin_uv_unwrap_button) {
  11. plugin_uv_unwrap_button();
  12. return JS_UNDEFINED;
  13. }
  14. void *io_svg_parse(char *buf);
  15. FN(io_svg_parse) {
  16. size_t len;
  17. void *ab = JS_GetArrayBuffer(ctx, &len, argv[0]);
  18. return JS_NewBigUint64(ctx, (uint64_t)io_svg_parse(ab));
  19. }
  20. void *io_usd_parse(char *buf, size_t size);
  21. FN(io_usd_parse) {
  22. size_t len;
  23. void *ab = JS_GetArrayBuffer(ctx, &len, argv[0]);
  24. return JS_NewBigUint64(ctx, (uint64_t)io_usd_parse(ab, len));
  25. }
  26. void *io_gltf_parse(char *buf, size_t size, const char *path);
  27. FN(io_gltf_parse) {
  28. size_t len;
  29. void *ab = JS_GetArrayBuffer(ctx, &len, argv[0]);
  30. const char *path = JS_ToCString(ctx, argv[1]);
  31. return JS_NewBigUint64(ctx, (uint64_t)io_gltf_parse(ab, len, path));
  32. }
  33. void *io_fbx_parse(char *buf, size_t size);
  34. FN(io_fbx_parse) {
  35. size_t len;
  36. void *ab = JS_GetArrayBuffer(ctx, &len, argv[0]);
  37. return JS_NewBigUint64(ctx, (uint64_t)io_fbx_parse(ab, len));
  38. }
  39. void plugin_embed() {
  40. JSValue global_obj = JS_GetGlobalObject(js_ctx);
  41. BIND(proc_xatlas_unwrap, 1);
  42. BIND(plugin_uv_unwrap_button, 0);
  43. BIND(io_svg_parse, 1);
  44. BIND(io_usd_parse, 1);
  45. BIND(io_gltf_parse, 2);
  46. BIND(io_fbx_parse, 1);
  47. JS_FreeValue(js_ctx, global_obj);
  48. }