BsScriptBuiltin.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include "BsScriptBuiltin.h"
  2. #include "BsMonoManager.h"
  3. #include "BsMonoClass.h"
  4. #include "BsMonoMethod.h"
  5. #include "BsMonoUtil.h"
  6. #include "BsBuiltinResources.h"
  7. #include "BsScriptSpriteTexture.h"
  8. #include "BsScriptShader.h"
  9. #include "BsScriptMesh.h"
  10. #include "BsScriptResourceManager.h"
  11. namespace BansheeEngine
  12. {
  13. ScriptBuiltin::ScriptBuiltin(MonoObject* instance)
  14. :ScriptObject(instance)
  15. { }
  16. void ScriptBuiltin::initRuntimeData()
  17. {
  18. metaData.scriptClass->addInternalCall("Internal_GetWhiteTexture", &ScriptBuiltin::internal_GetWhiteTexture);
  19. metaData.scriptClass->addInternalCall("Internal_GetDiffuseShader", &ScriptBuiltin::internal_GetDiffuseShader);
  20. metaData.scriptClass->addInternalCall("Internal_GetMesh", &ScriptBuiltin::internal_GetMesh);
  21. }
  22. MonoObject* ScriptBuiltin::internal_GetWhiteTexture()
  23. {
  24. HSpriteTexture whiteTexture = BuiltinResources::instance().getWhiteSpriteTexture();
  25. ScriptSpriteTexture* scriptSpriteTex;
  26. ScriptResourceManager::instance().getScriptResource(whiteTexture, &scriptSpriteTex, true);
  27. return scriptSpriteTex->getManagedInstance();
  28. }
  29. MonoObject* ScriptBuiltin::internal_GetDiffuseShader()
  30. {
  31. HShader diffuseShader = BuiltinResources::instance().getDiffuseShader();
  32. ScriptShader* scriptShader;
  33. ScriptResourceManager::instance().getScriptResource(diffuseShader, &scriptShader, true);
  34. return scriptShader->getManagedInstance();
  35. }
  36. MonoObject* ScriptBuiltin::internal_GetMesh(BuiltinMesh meshType)
  37. {
  38. HMesh mesh = BuiltinResources::instance().getMesh(meshType);
  39. ScriptMesh* scriptMesh;
  40. ScriptResourceManager::instance().getScriptResource(mesh, &scriptMesh, true);
  41. return scriptMesh->getManagedInstance();
  42. }
  43. }