BsScriptBuiltin.cpp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsScriptBuiltin.h"
  4. #include "BsMonoManager.h"
  5. #include "BsMonoClass.h"
  6. #include "BsMonoMethod.h"
  7. #include "BsMonoUtil.h"
  8. #include "BsBuiltinResources.h"
  9. #include "BsScriptSpriteTexture.h"
  10. #include "BsScriptShader.h"
  11. #include "BsScriptMesh.h"
  12. #include "BsScriptFont.h"
  13. #include "BsScriptResourceManager.h"
  14. namespace bs
  15. {
  16. ScriptBuiltin::ScriptBuiltin(MonoObject* instance)
  17. :ScriptObject(instance)
  18. { }
  19. void ScriptBuiltin::initRuntimeData()
  20. {
  21. metaData.scriptClass->addInternalCall("Internal_GetWhiteTexture", &ScriptBuiltin::internal_GetWhiteTexture);
  22. metaData.scriptClass->addInternalCall("Internal_GetBuiltinShader", &ScriptBuiltin::internal_GetBuiltinShader);
  23. metaData.scriptClass->addInternalCall("Internal_GetMesh", &ScriptBuiltin::internal_GetMesh);
  24. metaData.scriptClass->addInternalCall("Internal_GetDefaultFont", &ScriptBuiltin::internal_GetDefaultFont);
  25. }
  26. MonoObject* ScriptBuiltin::internal_GetWhiteTexture()
  27. {
  28. HSpriteTexture whiteTexture = BuiltinResources::instance().getWhiteSpriteTexture();
  29. ScriptResourceBase* scriptSpriteTex = ScriptResourceManager::instance().getScriptResource(whiteTexture, true);
  30. return scriptSpriteTex->getManagedInstance();
  31. }
  32. MonoObject* ScriptBuiltin::internal_GetBuiltinShader(BuiltinShader type)
  33. {
  34. HShader diffuseShader = BuiltinResources::instance().getBuiltinShader(type);
  35. ScriptResourceBase* scriptShader = ScriptResourceManager::instance().getScriptResource(diffuseShader, true);
  36. return scriptShader->getManagedInstance();
  37. }
  38. MonoObject* ScriptBuiltin::internal_GetMesh(BuiltinMesh meshType)
  39. {
  40. HMesh mesh = BuiltinResources::instance().getMesh(meshType);
  41. ScriptResourceBase* scriptMesh = ScriptResourceManager::instance().getScriptResource(mesh, true);
  42. return scriptMesh->getManagedInstance();
  43. }
  44. MonoObject* ScriptBuiltin::internal_GetDefaultFont()
  45. {
  46. HFont font = BuiltinResources::instance().getDefaultFont();
  47. ScriptResourceBase* scriptFont = ScriptResourceManager::instance().getScriptResource(font, true);
  48. return scriptFont->getManagedInstance();
  49. }
  50. }