BsScriptBuiltin.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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 "BsScriptResourceManager.h"
  10. namespace BansheeEngine
  11. {
  12. ScriptBuiltin::ScriptBuiltin(MonoObject* instance)
  13. :ScriptObject(instance)
  14. { }
  15. void ScriptBuiltin::initRuntimeData()
  16. {
  17. metaData.scriptClass->addInternalCall("Internal_GetWhiteTexture", &ScriptBuiltin::internal_getWhiteTexture);
  18. metaData.scriptClass->addInternalCall("Internal_GetDiffuseShader", &ScriptBuiltin::internal_getDiffuseShader);
  19. }
  20. MonoObject* ScriptBuiltin::internal_getWhiteTexture()
  21. {
  22. HSpriteTexture whiteTexture = BuiltinResources::instance().getWhiteSpriteTexture();
  23. ScriptSpriteTexture* scriptSpriteTex;
  24. ScriptResourceManager::instance().getScriptResource(whiteTexture, &scriptSpriteTex, true);
  25. return scriptSpriteTex->getManagedInstance();
  26. }
  27. MonoObject* ScriptBuiltin::internal_getDiffuseShader()
  28. {
  29. HShader diffuseShader = BuiltinResources::instance().getDiffuseShader();
  30. ScriptShader* scriptShader;
  31. ScriptResourceManager::instance().getScriptResource(diffuseShader, &scriptShader, true);
  32. return scriptShader->getManagedInstance();
  33. }
  34. }