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 "BsScriptResourceManager.h"
  10. #include "BsScriptFont.generated.h"
  11. #include "BsScriptSpriteTexture.generated.h"
  12. namespace bs
  13. {
  14. ScriptBuiltin::ScriptBuiltin(MonoObject* instance)
  15. :ScriptObject(instance)
  16. { }
  17. void ScriptBuiltin::initRuntimeData()
  18. {
  19. metaData.scriptClass->addInternalCall("Internal_GetWhiteTexture", (void*)&ScriptBuiltin::internal_GetWhiteTexture);
  20. metaData.scriptClass->addInternalCall("Internal_GetBuiltinShader", (void*)&ScriptBuiltin::internal_GetBuiltinShader);
  21. metaData.scriptClass->addInternalCall("Internal_GetMesh", (void*)&ScriptBuiltin::internal_GetMesh);
  22. metaData.scriptClass->addInternalCall("Internal_GetDefaultFont", (void*)&ScriptBuiltin::internal_GetDefaultFont);
  23. }
  24. MonoObject* ScriptBuiltin::internal_GetWhiteTexture()
  25. {
  26. HSpriteTexture whiteTexture = BuiltinResources::instance().getWhiteSpriteTexture();
  27. ScriptResourceBase* scriptSpriteTex = ScriptResourceManager::instance().getScriptResource(whiteTexture, true);
  28. return scriptSpriteTex->getManagedInstance();
  29. }
  30. MonoObject* ScriptBuiltin::internal_GetBuiltinShader(BuiltinShader type)
  31. {
  32. HShader diffuseShader = BuiltinResources::instance().getBuiltinShader(type);
  33. ScriptResourceBase* scriptShader = ScriptResourceManager::instance().getScriptResource(diffuseShader, true);
  34. return scriptShader->getManagedInstance();
  35. }
  36. MonoObject* ScriptBuiltin::internal_GetMesh(BuiltinMesh meshType)
  37. {
  38. HMesh mesh = BuiltinResources::instance().getMesh(meshType);
  39. ScriptResourceBase* scriptMesh = ScriptResourceManager::instance().getScriptResource(mesh, true);
  40. return scriptMesh->getManagedInstance();
  41. }
  42. MonoObject* ScriptBuiltin::internal_GetDefaultFont()
  43. {
  44. HFont font = BuiltinResources::instance().getDefaultFont();
  45. ScriptResourceBase* scriptFont = ScriptResourceManager::instance().getScriptResource(font, true);
  46. return scriptFont->getManagedInstance();
  47. }
  48. }