#include "BsScriptImportOptions.h" #include "BsScriptMeta.h" #include "BsMonoField.h" #include "BsMonoClass.h" #include "BsMonoManager.h" #include "BsMonoMethod.h" #include "BsMonoUtil.h" #include "BsTextureImportOptions.h" #include "BsFontImportOptions.h" #include "BsGpuProgramImportOptions.h" #include "BsRenderer.h" using namespace std::placeholders; namespace BansheeEngine { struct CharRange { UINT32 start, end; }; ScriptCharRange::ScriptCharRange(MonoObject* instance) :ScriptObject(instance) { } void ScriptCharRange::initRuntimeData() { } ScriptTextureImportOptions::ScriptTextureImportOptions(MonoObject* instance) :ScriptObject(instance), mImportOptions(bs_shared_ptr()) { } void ScriptTextureImportOptions::initRuntimeData() { metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptTextureImportOptions::internal_CreateInstance); metaData.scriptClass->addInternalCall("Internal_GetPixelFormat", &ScriptTextureImportOptions::internal_GetPixelFormat); metaData.scriptClass->addInternalCall("Internal_SetPixelFormat", &ScriptTextureImportOptions::internal_SetPixelFormat); metaData.scriptClass->addInternalCall("Internal_GetGenerateMipmaps", &ScriptTextureImportOptions::internal_GetGenerateMipmaps); metaData.scriptClass->addInternalCall("Internal_SetGenerateMipmaps", &ScriptTextureImportOptions::internal_SetGenerateMipmaps); metaData.scriptClass->addInternalCall("Internal_GetMaxMipmapLevel", &ScriptTextureImportOptions::internal_GetMaxMipmapLevel); metaData.scriptClass->addInternalCall("Internal_SetMaxMipmapLevel", &ScriptTextureImportOptions::internal_SetMaxMipmapLevel); } MonoObject* ScriptTextureImportOptions::create() { return metaData.scriptClass->createInstance(); } void ScriptTextureImportOptions::internal_CreateInstance(MonoObject* instance) { ScriptTextureImportOptions* nativeInstance = new (bs_alloc()) ScriptTextureImportOptions(instance); } PixelFormat ScriptTextureImportOptions::internal_GetPixelFormat(ScriptTextureImportOptions* thisPtr) { return thisPtr->mImportOptions->getFormat(); } void ScriptTextureImportOptions::internal_SetPixelFormat(ScriptTextureImportOptions* thisPtr, PixelFormat value) { thisPtr->mImportOptions->setFormat(value); } bool ScriptTextureImportOptions::internal_GetGenerateMipmaps(ScriptTextureImportOptions* thisPtr) { return thisPtr->mImportOptions->getGenerateMipmaps(); } void ScriptTextureImportOptions::internal_SetGenerateMipmaps(ScriptTextureImportOptions* thisPtr, bool value) { thisPtr->mImportOptions->setGenerateMipmaps(value); } UINT32 ScriptTextureImportOptions::internal_GetMaxMipmapLevel(ScriptTextureImportOptions* thisPtr) { return thisPtr->mImportOptions->getMaxMip(); } void ScriptTextureImportOptions::internal_SetMaxMipmapLevel(ScriptTextureImportOptions* thisPtr, UINT32 value) { thisPtr->mImportOptions->setMaxMip(value); } ScriptFontImportOptions::ScriptFontImportOptions(MonoObject* instance) :ScriptObject(instance), mImportOptions(bs_shared_ptr()) { } void ScriptFontImportOptions::initRuntimeData() { metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptFontImportOptions::internal_CreateInstance); metaData.scriptClass->addInternalCall("Internal_GetFontSizes", &ScriptFontImportOptions::internal_GetFontSizes); metaData.scriptClass->addInternalCall("Internal_SetFontSizes", &ScriptFontImportOptions::internal_SetFontSizes); metaData.scriptClass->addInternalCall("Internal_GetDPI", &ScriptFontImportOptions::internal_GetDPI); metaData.scriptClass->addInternalCall("Internal_SetDPI", &ScriptFontImportOptions::internal_SetDPI); metaData.scriptClass->addInternalCall("Internal_GetAntialiasing", &ScriptFontImportOptions::internal_GetAntialiasing); metaData.scriptClass->addInternalCall("Internal_SetAntialiasing", &ScriptFontImportOptions::internal_SetAntialiasing); metaData.scriptClass->addInternalCall("Internal_GetCharRanges", &ScriptFontImportOptions::internal_GetCharRanges); metaData.scriptClass->addInternalCall("Internal_SetCharRanges", &ScriptFontImportOptions::internal_SetCharRanges); } MonoObject* ScriptFontImportOptions::create() { return metaData.scriptClass->createInstance(); } void ScriptFontImportOptions::internal_CreateInstance(MonoObject* instance) { ScriptFontImportOptions* nativeInstance = new (bs_alloc()) ScriptFontImportOptions(instance); } MonoArray* ScriptFontImportOptions::internal_GetFontSizes(ScriptFontImportOptions* thisPtr) { Vector fontSizes = thisPtr->mImportOptions->getFontSizes(); ScriptArray outArray = ScriptArray::create((UINT32)fontSizes.size()); for (UINT32 i = 0; i < fontSizes.size(); i++) outArray.set(i, fontSizes[i]); return outArray.getInternal(); } void ScriptFontImportOptions::internal_SetFontSizes(ScriptFontImportOptions* thisPtr, MonoArray* value) { ScriptArray inArray(value); Vector fontSizes(inArray.size()); for (UINT32 i = 0; i < inArray.size(); i++) fontSizes[i] = inArray.get(i); thisPtr->mImportOptions->setFontSizes(fontSizes); } UINT32 ScriptFontImportOptions::internal_GetDPI(ScriptFontImportOptions* thisPtr) { return thisPtr->mImportOptions->getDPI(); } void ScriptFontImportOptions::internal_SetDPI(ScriptFontImportOptions* thisPtr, UINT32 value) { thisPtr->mImportOptions->setDPI(value); } bool ScriptFontImportOptions::internal_GetAntialiasing(ScriptFontImportOptions* thisPtr) { return thisPtr->mImportOptions->getAntialiasing(); } void ScriptFontImportOptions::internal_SetAntialiasing(ScriptFontImportOptions* thisPtr, bool value) { thisPtr->mImportOptions->setAntialiasing(value); } MonoArray* ScriptFontImportOptions::internal_GetCharRanges(ScriptFontImportOptions* thisPtr) { Vector> charRanges = thisPtr->mImportOptions->getCharIndexRanges(); ScriptArray outArray = ScriptArray::create((UINT32)charRanges.size()); for (UINT32 i = 0; i < (UINT32)charRanges.size(); i++) { CharRange range; range.start = charRanges[i].first; range.end = charRanges[i].second; outArray.set(i, range); } return outArray.getInternal(); } void ScriptFontImportOptions::internal_SetCharRanges(ScriptFontImportOptions* thisPtr, MonoArray* value) { ScriptArray inArray(value); thisPtr->mImportOptions->clearCharIndexRanges(); for (UINT32 i = 0; i < inArray.size(); i++) { CharRange range = inArray.get(i); thisPtr->mImportOptions->addCharIndexRange(range.start, range.end); } } ScriptGpuProgramImportOptions::ScriptGpuProgramImportOptions(MonoObject* instance) :ScriptObject(instance), mImportOptions(bs_shared_ptr()) { } void ScriptGpuProgramImportOptions::initRuntimeData() { metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptGpuProgramImportOptions::internal_CreateInstance); metaData.scriptClass->addInternalCall("Internal_GetEntryPoint", &ScriptGpuProgramImportOptions::internal_GetEntryPoint); metaData.scriptClass->addInternalCall("Internal_SetEntryPoint", &ScriptGpuProgramImportOptions::internal_SetEntryPoint); metaData.scriptClass->addInternalCall("Internal_GetLanguage", &ScriptGpuProgramImportOptions::internal_GetLanguage); metaData.scriptClass->addInternalCall("Internal_SetLanguage", &ScriptGpuProgramImportOptions::internal_SetLanguage); metaData.scriptClass->addInternalCall("Internal_GetProfile", &ScriptGpuProgramImportOptions::internal_GetProfile); metaData.scriptClass->addInternalCall("Internal_SetProfile", &ScriptGpuProgramImportOptions::internal_SetProfile); metaData.scriptClass->addInternalCall("Internal_GetType", &ScriptGpuProgramImportOptions::internal_GetType); metaData.scriptClass->addInternalCall("Internal_SetType", &ScriptGpuProgramImportOptions::internal_SetType); } MonoObject* ScriptGpuProgramImportOptions::create() { return metaData.scriptClass->createInstance(); } void ScriptGpuProgramImportOptions::internal_CreateInstance(MonoObject* instance) { ScriptGpuProgramImportOptions* nativeInstance = new (bs_alloc()) ScriptGpuProgramImportOptions(instance); } MonoString* ScriptGpuProgramImportOptions::internal_GetEntryPoint(ScriptGpuProgramImportOptions* thisPtr) { return MonoUtil::stringToMono(MonoManager::instance().getDomain(), thisPtr->mImportOptions->getEntryPoint()); } void ScriptGpuProgramImportOptions::internal_SetEntryPoint(ScriptGpuProgramImportOptions* thisPtr, MonoString* value) { thisPtr->mImportOptions->setEntryPoint(MonoUtil::monoToString(value)); } GpuLanguage ScriptGpuProgramImportOptions::internal_GetLanguage(ScriptGpuProgramImportOptions* thisPtr) { return Renderer::getGpuLanguageType(thisPtr->mImportOptions->getLanguage()); } void ScriptGpuProgramImportOptions::internal_SetLanguage(ScriptGpuProgramImportOptions* thisPtr, GpuLanguage value) { thisPtr->mImportOptions->setLanguage(Renderer::getGpuLanguageName(value)); } GpuProgramProfile ScriptGpuProgramImportOptions::internal_GetProfile(ScriptGpuProgramImportOptions* thisPtr) { return thisPtr->mImportOptions->getProfile(); } void ScriptGpuProgramImportOptions::internal_SetProfile(ScriptGpuProgramImportOptions* thisPtr, GpuProgramProfile value) { thisPtr->mImportOptions->setProfile(value); } GpuProgramType ScriptGpuProgramImportOptions::internal_GetType(ScriptGpuProgramImportOptions* thisPtr) { return thisPtr->mImportOptions->getType(); } void ScriptGpuProgramImportOptions::internal_SetType(ScriptGpuProgramImportOptions* thisPtr, GpuProgramType value) { thisPtr->mImportOptions->setType(value); } }