BsScriptBuiltin.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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 "BsScriptResourceManager.h"
  13. namespace BansheeEngine
  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_GetDiffuseShader", &ScriptBuiltin::internal_GetDiffuseShader);
  22. metaData.scriptClass->addInternalCall("Internal_GetMesh", &ScriptBuiltin::internal_GetMesh);
  23. }
  24. MonoObject* ScriptBuiltin::internal_GetWhiteTexture()
  25. {
  26. HSpriteTexture whiteTexture = BuiltinResources::instance().getWhiteSpriteTexture();
  27. ScriptSpriteTexture* scriptSpriteTex;
  28. ScriptResourceManager::instance().getScriptResource(whiteTexture, &scriptSpriteTex, true);
  29. return scriptSpriteTex->getManagedInstance();
  30. }
  31. MonoObject* ScriptBuiltin::internal_GetDiffuseShader()
  32. {
  33. HShader diffuseShader = BuiltinResources::instance().getDiffuseShader();
  34. ScriptShader* scriptShader;
  35. ScriptResourceManager::instance().getScriptResource(diffuseShader, &scriptShader, true);
  36. return scriptShader->getManagedInstance();
  37. }
  38. MonoObject* ScriptBuiltin::internal_GetMesh(BuiltinMesh meshType)
  39. {
  40. HMesh mesh = BuiltinResources::instance().getMesh(meshType);
  41. ScriptMesh* scriptMesh;
  42. ScriptResourceManager::instance().getScriptResource(mesh, &scriptMesh, true);
  43. return scriptMesh->getManagedInstance();
  44. }
  45. }