BsScriptBuiltin.cpp 2.3 KB

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