//********************************** Banshee Engine (www.banshee3d.com) **************************************************// //**************** Copyright (c) 2016 Marko Pintera (marko.pintera@gmail.com). All rights reserved. **********************// #include "Wrappers/BsScriptHString.h" #include "BsScriptMeta.h" #include "BsMonoField.h" #include "BsMonoClass.h" #include "BsMonoManager.h" #include "BsMonoUtil.h" namespace bs { ScriptHString::ScriptHString(MonoObject* instance, const HString& string) :ScriptObject(instance), mString(string) { } void ScriptHString::initRuntimeData() { metaData.scriptClass->addInternalCall("Internal_CreateInstance", (void*)&ScriptHString::internal_createInstance); metaData.scriptClass->addInternalCall("Internal_SetParameter", (void*)&ScriptHString::internal_setParameter); metaData.scriptClass->addInternalCall("Internal_GetValue", (void*)&ScriptHString::internal_getValue); } void ScriptHString::internal_createInstance(MonoObject* instance, MonoString* identifier, UINT32 tableId) { HString string(MonoUtil::monoToString(identifier), tableId); new (bs_alloc()) ScriptHString(instance, string); } void ScriptHString::internal_setParameter(ScriptHString* nativeInstance, UINT32 idx, MonoString* value) { nativeInstance->mString.setParameter(idx, MonoUtil::monoToString(value)); } void ScriptHString::internal_getValue(ScriptHString* nativeInstance, MonoString** value) { MonoUtil::referenceCopy(value, (MonoObject*)MonoUtil::stringToMono(nativeInstance->mString.getValue())); } }