ToolCoreJS.cpp 1019 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include <AtomicJS/Javascript/JSVM.h>
  2. #include <ToolCore/ToolEnvironment.h>
  3. #include <ToolCore/ToolSystem.h>
  4. using namespace Atomic;
  5. namespace Atomic
  6. {
  7. extern void jsb_package_toolcore_init(JSVM* vm);
  8. }
  9. namespace ToolCore
  10. {
  11. static int js_atomic_GetToolEnvironment(duk_context* ctx)
  12. {
  13. JSVM* vm = JSVM::GetJSVM(ctx);
  14. js_push_class_object_instance(ctx, vm->GetSubsystem<ToolEnvironment>());
  15. return 1;
  16. }
  17. static int js_atomic_GetToolSystem(duk_context* ctx)
  18. {
  19. JSVM* vm = JSVM::GetJSVM(ctx);
  20. js_push_class_object_instance(ctx, vm->GetSubsystem<ToolSystem>());
  21. return 1;
  22. }
  23. void jsapi_init_toolcore(JSVM* vm)
  24. {
  25. jsb_package_toolcore_init(vm);
  26. duk_context* ctx = vm->GetJSContext();
  27. duk_get_global_string(ctx, "Atomic");
  28. duk_push_c_function(ctx, js_atomic_GetToolEnvironment, 0);
  29. duk_put_prop_string(ctx, -2, "getToolEnvironment");
  30. duk_push_c_function(ctx, js_atomic_GetToolSystem, 0);
  31. duk_put_prop_string(ctx, -2, "getToolSystem");
  32. duk_pop(ctx);
  33. }
  34. }