#include "BsScriptBuiltin.h" #include "BsMonoManager.h" #include "BsMonoClass.h" #include "BsMonoMethod.h" #include "BsMonoUtil.h" #include "BsBuiltinResources.h" #include "BsScriptSpriteTexture.h" #include "BsScriptShader.h" #include "BsScriptMesh.h" #include "BsScriptResourceManager.h" namespace BansheeEngine { ScriptBuiltin::ScriptBuiltin(MonoObject* instance) :ScriptObject(instance) { } void ScriptBuiltin::initRuntimeData() { metaData.scriptClass->addInternalCall("Internal_GetWhiteTexture", &ScriptBuiltin::internal_GetWhiteTexture); metaData.scriptClass->addInternalCall("Internal_GetDiffuseShader", &ScriptBuiltin::internal_GetDiffuseShader); metaData.scriptClass->addInternalCall("Internal_GetMesh", &ScriptBuiltin::internal_GetMesh); } MonoObject* ScriptBuiltin::internal_GetWhiteTexture() { HSpriteTexture whiteTexture = BuiltinResources::instance().getWhiteSpriteTexture(); ScriptSpriteTexture* scriptSpriteTex; ScriptResourceManager::instance().getScriptResource(whiteTexture, &scriptSpriteTex, true); return scriptSpriteTex->getManagedInstance(); } MonoObject* ScriptBuiltin::internal_GetDiffuseShader() { HShader diffuseShader = BuiltinResources::instance().getDiffuseShader(); ScriptShader* scriptShader; ScriptResourceManager::instance().getScriptResource(diffuseShader, &scriptShader, true); return scriptShader->getManagedInstance(); } MonoObject* ScriptBuiltin::internal_GetMesh(BuiltinMesh meshType) { HMesh mesh = BuiltinResources::instance().getMesh(meshType); ScriptMesh* scriptMesh; ScriptResourceManager::instance().getScriptResource(mesh, &scriptMesh, true); return scriptMesh->getManagedInstance(); } }