BsScriptImportOptions.cpp 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsScriptImportOptions.h"
  4. #include "BsScriptMeta.h"
  5. #include "BsMonoField.h"
  6. #include "BsMonoClass.h"
  7. #include "BsMonoManager.h"
  8. #include "BsMonoMethod.h"
  9. #include "BsMonoUtil.h"
  10. #include "BsTextureImportOptions.h"
  11. #include "BsFontImportOptions.h"
  12. #include "BsScriptCodeImportOptions.h"
  13. #include "BsMeshImportOptions.h"
  14. #include "BsRenderer.h"
  15. #include "BsScriptFont.h"
  16. #include "BsRTTIType.h"
  17. using namespace std::placeholders;
  18. namespace BansheeEngine
  19. {
  20. struct CharRange
  21. {
  22. UINT32 start, end;
  23. };
  24. ScriptImportOptionsBase::ScriptImportOptionsBase(MonoObject* instance)
  25. :ScriptObjectBase(instance)
  26. { }
  27. void ScriptImportOptions::initRuntimeData()
  28. { }
  29. MonoObject* ScriptImportOptions::create(const SPtr<ImportOptions>& importOptions)
  30. {
  31. UINT32 typeId = importOptions->getRTTI()->getRTTIId();
  32. switch (typeId)
  33. {
  34. case TID_TextureImportOptions:
  35. return ScriptTextureImportOptions::create(std::static_pointer_cast<TextureImportOptions>(importOptions));
  36. case TID_MeshImportOptions:
  37. return ScriptMeshImportOptions::create(std::static_pointer_cast<MeshImportOptions>(importOptions));
  38. case TID_FontImportOptions:
  39. return ScriptFontImportOptions::create(std::static_pointer_cast<FontImportOptions>(importOptions));
  40. case TID_ScriptCodeImportOptions:
  41. return ScriptScriptCodeImportOptions::create(std::static_pointer_cast<ScriptCodeImportOptions>(importOptions));
  42. }
  43. MonoObject* managedInstance = metaData.scriptClass->createInstance();
  44. ScriptImportOptions* scriptObj = ScriptImportOptions::toNative(managedInstance);
  45. scriptObj->mImportOptions = importOptions;
  46. return managedInstance;
  47. }
  48. ScriptImportOptions::ScriptImportOptions(MonoObject* instance)
  49. :ScriptObject(instance)
  50. {
  51. mImportOptions = bs_shared_ptr_new<ImportOptions>();
  52. }
  53. ScriptTextureImportOptions::ScriptTextureImportOptions(MonoObject* instance)
  54. :ScriptObject(instance)
  55. {
  56. mImportOptions = bs_shared_ptr_new<TextureImportOptions>();
  57. }
  58. void ScriptTextureImportOptions::initRuntimeData()
  59. {
  60. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptTextureImportOptions::internal_CreateInstance);
  61. metaData.scriptClass->addInternalCall("Internal_GetPixelFormat", &ScriptTextureImportOptions::internal_GetPixelFormat);
  62. metaData.scriptClass->addInternalCall("Internal_SetPixelFormat", &ScriptTextureImportOptions::internal_SetPixelFormat);
  63. metaData.scriptClass->addInternalCall("Internal_GetGenerateMipmaps", &ScriptTextureImportOptions::internal_GetGenerateMipmaps);
  64. metaData.scriptClass->addInternalCall("Internal_SetGenerateMipmaps", &ScriptTextureImportOptions::internal_SetGenerateMipmaps);
  65. metaData.scriptClass->addInternalCall("Internal_GetMaxMipmapLevel", &ScriptTextureImportOptions::internal_GetMaxMipmapLevel);
  66. metaData.scriptClass->addInternalCall("Internal_SetMaxMipmapLevel", &ScriptTextureImportOptions::internal_SetMaxMipmapLevel);
  67. metaData.scriptClass->addInternalCall("Internal_GetCPUReadable", &ScriptTextureImportOptions::internal_GetCPUReadable);
  68. metaData.scriptClass->addInternalCall("Internal_SetCPUReadable", &ScriptTextureImportOptions::internal_SetCPUReadable);
  69. metaData.scriptClass->addInternalCall("Internal_GetIsSRGB", &ScriptTextureImportOptions::internal_GetIsSRGB);
  70. metaData.scriptClass->addInternalCall("Internal_SetIsSRGB", &ScriptTextureImportOptions::internal_SetIsSRGB);
  71. }
  72. SPtr<TextureImportOptions> ScriptTextureImportOptions::getTexImportOptions()
  73. {
  74. return std::static_pointer_cast<TextureImportOptions>(mImportOptions);
  75. }
  76. MonoObject* ScriptTextureImportOptions::create()
  77. {
  78. return metaData.scriptClass->createInstance();
  79. }
  80. MonoObject* ScriptTextureImportOptions::create(const SPtr<TextureImportOptions>& options)
  81. {
  82. MonoObject* managedInstance = metaData.scriptClass->createInstance();
  83. ScriptTextureImportOptions* scriptObj = ScriptTextureImportOptions::toNative(managedInstance);
  84. scriptObj->mImportOptions = options;
  85. return managedInstance;
  86. }
  87. void ScriptTextureImportOptions::internal_CreateInstance(MonoObject* instance)
  88. {
  89. new (bs_alloc<ScriptTextureImportOptions>()) ScriptTextureImportOptions(instance);
  90. }
  91. PixelFormat ScriptTextureImportOptions::internal_GetPixelFormat(ScriptTextureImportOptions* thisPtr)
  92. {
  93. return thisPtr->getTexImportOptions()->getFormat();
  94. }
  95. void ScriptTextureImportOptions::internal_SetPixelFormat(ScriptTextureImportOptions* thisPtr, PixelFormat value)
  96. {
  97. thisPtr->getTexImportOptions()->setFormat(value);
  98. }
  99. bool ScriptTextureImportOptions::internal_GetGenerateMipmaps(ScriptTextureImportOptions* thisPtr)
  100. {
  101. return thisPtr->getTexImportOptions()->getGenerateMipmaps();
  102. }
  103. void ScriptTextureImportOptions::internal_SetGenerateMipmaps(ScriptTextureImportOptions* thisPtr, bool value)
  104. {
  105. thisPtr->getTexImportOptions()->setGenerateMipmaps(value);
  106. }
  107. UINT32 ScriptTextureImportOptions::internal_GetMaxMipmapLevel(ScriptTextureImportOptions* thisPtr)
  108. {
  109. return thisPtr->getTexImportOptions()->getMaxMip();
  110. }
  111. void ScriptTextureImportOptions::internal_SetMaxMipmapLevel(ScriptTextureImportOptions* thisPtr, UINT32 value)
  112. {
  113. thisPtr->getTexImportOptions()->setMaxMip(value);
  114. }
  115. bool ScriptTextureImportOptions::internal_GetCPUReadable(ScriptTextureImportOptions* thisPtr)
  116. {
  117. return thisPtr->getTexImportOptions()->getCPUReadable();
  118. }
  119. void ScriptTextureImportOptions::internal_SetCPUReadable(ScriptTextureImportOptions* thisPtr, bool value)
  120. {
  121. thisPtr->getTexImportOptions()->setCPUReadable(value);
  122. }
  123. bool ScriptTextureImportOptions::internal_GetIsSRGB(ScriptTextureImportOptions* thisPtr)
  124. {
  125. return thisPtr->getTexImportOptions()->getSRGB();
  126. }
  127. void ScriptTextureImportOptions::internal_SetIsSRGB(ScriptTextureImportOptions* thisPtr, bool value)
  128. {
  129. thisPtr->getTexImportOptions()->setSRGB(value);
  130. }
  131. ScriptMeshImportOptions::ScriptMeshImportOptions(MonoObject* instance)
  132. :ScriptObject(instance)
  133. {
  134. mImportOptions = bs_shared_ptr_new<MeshImportOptions>();
  135. }
  136. void ScriptMeshImportOptions::initRuntimeData()
  137. {
  138. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptMeshImportOptions::internal_CreateInstance);
  139. metaData.scriptClass->addInternalCall("Internal_GetCPUReadable", &ScriptMeshImportOptions::internal_GetCPUReadable);
  140. metaData.scriptClass->addInternalCall("Internal_SetCPUReadable", &ScriptMeshImportOptions::internal_SetCPUReadable);
  141. metaData.scriptClass->addInternalCall("Internal_GetImportNormals", &ScriptMeshImportOptions::internal_GetImportNormals);
  142. metaData.scriptClass->addInternalCall("Internal_SetImportNormals", &ScriptMeshImportOptions::internal_SetImportNormals);
  143. metaData.scriptClass->addInternalCall("Internal_GetImportTangents", &ScriptMeshImportOptions::internal_GetImportTangents);
  144. metaData.scriptClass->addInternalCall("Internal_SetImportTangents", &ScriptMeshImportOptions::internal_SetImportTangents);
  145. metaData.scriptClass->addInternalCall("Internal_GetImportSkin", &ScriptMeshImportOptions::internal_GetImportSkin);
  146. metaData.scriptClass->addInternalCall("Internal_SetImportSkin", &ScriptMeshImportOptions::internal_SetImportSkin);
  147. metaData.scriptClass->addInternalCall("Internal_GetImportAnimation", &ScriptMeshImportOptions::internal_GetImportAnimation);
  148. metaData.scriptClass->addInternalCall("Internal_SetImportAnimation", &ScriptMeshImportOptions::internal_SetImportAnimation);
  149. metaData.scriptClass->addInternalCall("Internal_GetImportBlendShapes", &ScriptMeshImportOptions::internal_GetImportBlendShapes);
  150. metaData.scriptClass->addInternalCall("Internal_SetImportBlendShapes", &ScriptMeshImportOptions::internal_SetImportBlendShapes);
  151. metaData.scriptClass->addInternalCall("Internal_GetScale", &ScriptMeshImportOptions::internal_GetScale);
  152. metaData.scriptClass->addInternalCall("Internal_SetScale", &ScriptMeshImportOptions::internal_SetScale);
  153. metaData.scriptClass->addInternalCall("Internal_GetCollisionMeshType", &ScriptMeshImportOptions::internal_GetCollisionMeshType);
  154. metaData.scriptClass->addInternalCall("Internal_SetCollisionMeshType", &ScriptMeshImportOptions::internal_SetCollisionMeshType);
  155. }
  156. SPtr<MeshImportOptions> ScriptMeshImportOptions::getMeshImportOptions()
  157. {
  158. return std::static_pointer_cast<MeshImportOptions>(mImportOptions);
  159. }
  160. MonoObject* ScriptMeshImportOptions::create()
  161. {
  162. return metaData.scriptClass->createInstance();
  163. }
  164. MonoObject* ScriptMeshImportOptions::create(const SPtr<MeshImportOptions>& options)
  165. {
  166. MonoObject* managedInstance = metaData.scriptClass->createInstance();
  167. ScriptMeshImportOptions* scriptObj = ScriptMeshImportOptions::toNative(managedInstance);
  168. scriptObj->mImportOptions = options;
  169. return managedInstance;
  170. }
  171. void ScriptMeshImportOptions::internal_CreateInstance(MonoObject* instance)
  172. {
  173. new (bs_alloc<ScriptMeshImportOptions>()) ScriptMeshImportOptions(instance);
  174. }
  175. bool ScriptMeshImportOptions::internal_GetCPUReadable(ScriptMeshImportOptions* thisPtr)
  176. {
  177. return thisPtr->getMeshImportOptions()->getCPUReadable();
  178. }
  179. void ScriptMeshImportOptions::internal_SetCPUReadable(ScriptMeshImportOptions* thisPtr, bool value)
  180. {
  181. thisPtr->getMeshImportOptions()->setCPUReadable(value);
  182. }
  183. bool ScriptMeshImportOptions::internal_GetImportNormals(ScriptMeshImportOptions* thisPtr)
  184. {
  185. return thisPtr->getMeshImportOptions()->getImportNormals();
  186. }
  187. void ScriptMeshImportOptions::internal_SetImportNormals(ScriptMeshImportOptions* thisPtr, bool value)
  188. {
  189. thisPtr->getMeshImportOptions()->setImportNormals(value);
  190. }
  191. bool ScriptMeshImportOptions::internal_GetImportTangents(ScriptMeshImportOptions* thisPtr)
  192. {
  193. return thisPtr->getMeshImportOptions()->getImportTangents();
  194. }
  195. void ScriptMeshImportOptions::internal_SetImportTangents(ScriptMeshImportOptions* thisPtr, bool value)
  196. {
  197. thisPtr->getMeshImportOptions()->setImportTangents(value);
  198. }
  199. bool ScriptMeshImportOptions::internal_GetImportSkin(ScriptMeshImportOptions* thisPtr)
  200. {
  201. return thisPtr->getMeshImportOptions()->getImportSkin();
  202. }
  203. void ScriptMeshImportOptions::internal_SetImportSkin(ScriptMeshImportOptions* thisPtr, bool value)
  204. {
  205. thisPtr->getMeshImportOptions()->setImportSkin(value);
  206. }
  207. bool ScriptMeshImportOptions::internal_GetImportAnimation(ScriptMeshImportOptions* thisPtr)
  208. {
  209. return thisPtr->getMeshImportOptions()->getImportAnimation();
  210. }
  211. void ScriptMeshImportOptions::internal_SetImportAnimation(ScriptMeshImportOptions* thisPtr, bool value)
  212. {
  213. thisPtr->getMeshImportOptions()->setImportAnimation(value);
  214. }
  215. bool ScriptMeshImportOptions::internal_GetImportBlendShapes(ScriptMeshImportOptions* thisPtr)
  216. {
  217. return thisPtr->getMeshImportOptions()->getImportBlendShapes();
  218. }
  219. void ScriptMeshImportOptions::internal_SetImportBlendShapes(ScriptMeshImportOptions* thisPtr, bool value)
  220. {
  221. thisPtr->getMeshImportOptions()->setImportBlendShapes(value);
  222. }
  223. float ScriptMeshImportOptions::internal_GetScale(ScriptMeshImportOptions* thisPtr)
  224. {
  225. return thisPtr->getMeshImportOptions()->getImportScale();
  226. }
  227. void ScriptMeshImportOptions::internal_SetScale(ScriptMeshImportOptions* thisPtr, float value)
  228. {
  229. thisPtr->getMeshImportOptions()->setImportScale(value);
  230. }
  231. int ScriptMeshImportOptions::internal_GetCollisionMeshType(ScriptMeshImportOptions* thisPtr)
  232. {
  233. return (int)thisPtr->getMeshImportOptions()->getCollisionMeshType();
  234. }
  235. void ScriptMeshImportOptions::internal_SetCollisionMeshType(ScriptMeshImportOptions* thisPtr, int value)
  236. {
  237. thisPtr->getMeshImportOptions()->setCollisionMeshType((CollisionMeshType)value);
  238. }
  239. ScriptFontImportOptions::ScriptFontImportOptions(MonoObject* instance)
  240. :ScriptObject(instance)
  241. {
  242. mImportOptions = bs_shared_ptr_new<FontImportOptions>();
  243. }
  244. void ScriptFontImportOptions::initRuntimeData()
  245. {
  246. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptFontImportOptions::internal_CreateInstance);
  247. metaData.scriptClass->addInternalCall("Internal_GetFontSizes", &ScriptFontImportOptions::internal_GetFontSizes);
  248. metaData.scriptClass->addInternalCall("Internal_SetFontSizes", &ScriptFontImportOptions::internal_SetFontSizes);
  249. metaData.scriptClass->addInternalCall("Internal_GetDPI", &ScriptFontImportOptions::internal_GetDPI);
  250. metaData.scriptClass->addInternalCall("Internal_SetDPI", &ScriptFontImportOptions::internal_SetDPI);
  251. metaData.scriptClass->addInternalCall("Internal_GetRenderMode", &ScriptFontImportOptions::internal_GetRenderMode);
  252. metaData.scriptClass->addInternalCall("Internal_SetRenderMode", &ScriptFontImportOptions::internal_SetRenderMode);
  253. metaData.scriptClass->addInternalCall("Internal_GetBold", &ScriptFontImportOptions::internal_GetBold);
  254. metaData.scriptClass->addInternalCall("Internal_SetBold", &ScriptFontImportOptions::internal_SetBold);
  255. metaData.scriptClass->addInternalCall("Internal_GetItalic", &ScriptFontImportOptions::internal_GetItalic);
  256. metaData.scriptClass->addInternalCall("Internal_SetItalic", &ScriptFontImportOptions::internal_SetItalic);
  257. metaData.scriptClass->addInternalCall("Internal_GetCharRanges", &ScriptFontImportOptions::internal_GetCharRanges);
  258. metaData.scriptClass->addInternalCall("Internal_SetCharRanges", &ScriptFontImportOptions::internal_SetCharRanges);
  259. }
  260. SPtr<FontImportOptions> ScriptFontImportOptions::getFontImportOptions()
  261. {
  262. return std::static_pointer_cast<FontImportOptions>(mImportOptions);
  263. }
  264. MonoObject* ScriptFontImportOptions::create()
  265. {
  266. return metaData.scriptClass->createInstance();
  267. }
  268. MonoObject* ScriptFontImportOptions::create(const SPtr<FontImportOptions>& options)
  269. {
  270. MonoObject* managedInstance = metaData.scriptClass->createInstance();
  271. ScriptFontImportOptions* scriptObj = ScriptFontImportOptions::toNative(managedInstance);
  272. scriptObj->mImportOptions = options;
  273. return managedInstance;
  274. }
  275. void ScriptFontImportOptions::internal_CreateInstance(MonoObject* instance)
  276. {
  277. new (bs_alloc<ScriptFontImportOptions>()) ScriptFontImportOptions(instance);
  278. }
  279. MonoArray* ScriptFontImportOptions::internal_GetFontSizes(ScriptFontImportOptions* thisPtr)
  280. {
  281. Vector<UINT32> fontSizes = thisPtr->getFontImportOptions()->getFontSizes();
  282. ScriptArray outArray = ScriptArray::create<UINT32>((UINT32)fontSizes.size());
  283. for (UINT32 i = 0; i < fontSizes.size(); i++)
  284. outArray.set(i, fontSizes[i]);
  285. return outArray.getInternal();
  286. }
  287. void ScriptFontImportOptions::internal_SetFontSizes(ScriptFontImportOptions* thisPtr, MonoArray* value)
  288. {
  289. ScriptArray inArray(value);
  290. Vector<UINT32> fontSizes(inArray.size());
  291. for (UINT32 i = 0; i < inArray.size(); i++)
  292. fontSizes[i] = inArray.get<UINT32>(i);
  293. thisPtr->getFontImportOptions()->setFontSizes(fontSizes);
  294. }
  295. UINT32 ScriptFontImportOptions::internal_GetDPI(ScriptFontImportOptions* thisPtr)
  296. {
  297. return thisPtr->getFontImportOptions()->getDPI();
  298. }
  299. void ScriptFontImportOptions::internal_SetDPI(ScriptFontImportOptions* thisPtr, UINT32 value)
  300. {
  301. thisPtr->getFontImportOptions()->setDPI(value);
  302. }
  303. FontRenderMode ScriptFontImportOptions::internal_GetRenderMode(ScriptFontImportOptions* thisPtr)
  304. {
  305. return thisPtr->getFontImportOptions()->getRenderMode();
  306. }
  307. void ScriptFontImportOptions::internal_SetRenderMode(ScriptFontImportOptions* thisPtr, FontRenderMode value)
  308. {
  309. thisPtr->getFontImportOptions()->setRenderMode(value);
  310. }
  311. bool ScriptFontImportOptions::internal_GetBold(ScriptFontImportOptions* thisPtr)
  312. {
  313. return thisPtr->getFontImportOptions()->getBold();
  314. }
  315. void ScriptFontImportOptions::internal_SetBold(ScriptFontImportOptions* thisPtr, bool value)
  316. {
  317. thisPtr->getFontImportOptions()->setBold(value);
  318. }
  319. bool ScriptFontImportOptions::internal_GetItalic(ScriptFontImportOptions* thisPtr)
  320. {
  321. return thisPtr->getFontImportOptions()->getItalic();
  322. }
  323. void ScriptFontImportOptions::internal_SetItalic(ScriptFontImportOptions* thisPtr, bool value)
  324. {
  325. thisPtr->getFontImportOptions()->setItalic(value);
  326. }
  327. MonoArray* ScriptFontImportOptions::internal_GetCharRanges(ScriptFontImportOptions* thisPtr)
  328. {
  329. Vector<std::pair<UINT32, UINT32>> charRanges = thisPtr->getFontImportOptions()->getCharIndexRanges();
  330. ScriptArray outArray = ScriptArray::create<ScriptCharRange>((UINT32)charRanges.size());
  331. for (UINT32 i = 0; i < (UINT32)charRanges.size(); i++)
  332. {
  333. CharRange range;
  334. range.start = charRanges[i].first;
  335. range.end = charRanges[i].second;
  336. outArray.set(i, range);
  337. }
  338. return outArray.getInternal();
  339. }
  340. void ScriptFontImportOptions::internal_SetCharRanges(ScriptFontImportOptions* thisPtr, MonoArray* value)
  341. {
  342. ScriptArray inArray(value);
  343. thisPtr->getFontImportOptions()->clearCharIndexRanges();
  344. for (UINT32 i = 0; i < inArray.size(); i++)
  345. {
  346. CharRange range = inArray.get<CharRange>(i);
  347. thisPtr->getFontImportOptions()->addCharIndexRange(range.start, range.end);
  348. }
  349. }
  350. ScriptScriptCodeImportOptions::ScriptScriptCodeImportOptions(MonoObject* instance)
  351. :ScriptObject(instance)
  352. {
  353. mImportOptions = bs_shared_ptr_new<ScriptCodeImportOptions>();
  354. }
  355. void ScriptScriptCodeImportOptions::initRuntimeData()
  356. {
  357. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptScriptCodeImportOptions::internal_CreateInstance);
  358. metaData.scriptClass->addInternalCall("Internal_IsEditorScript", &ScriptScriptCodeImportOptions::internal_IsEditorScript);
  359. metaData.scriptClass->addInternalCall("Internal_SetEditorScript", &ScriptScriptCodeImportOptions::internal_SetEditorScript);
  360. }
  361. SPtr<ScriptCodeImportOptions> ScriptScriptCodeImportOptions::getCodeImportOptions()
  362. {
  363. return std::static_pointer_cast<ScriptCodeImportOptions>(mImportOptions);
  364. }
  365. MonoObject* ScriptScriptCodeImportOptions::create()
  366. {
  367. return metaData.scriptClass->createInstance();
  368. }
  369. MonoObject* ScriptScriptCodeImportOptions::create(const SPtr<ScriptCodeImportOptions>& options)
  370. {
  371. MonoObject* managedInstance = metaData.scriptClass->createInstance();
  372. ScriptScriptCodeImportOptions* scriptObj = ScriptScriptCodeImportOptions::toNative(managedInstance);
  373. scriptObj->mImportOptions = options;
  374. return managedInstance;
  375. }
  376. void ScriptScriptCodeImportOptions::internal_CreateInstance(MonoObject* instance)
  377. {
  378. new (bs_alloc<ScriptScriptCodeImportOptions>()) ScriptScriptCodeImportOptions(instance);
  379. }
  380. bool ScriptScriptCodeImportOptions::internal_IsEditorScript(ScriptScriptCodeImportOptions* thisPtr)
  381. {
  382. return thisPtr->getCodeImportOptions()->isEditorScript();
  383. }
  384. void ScriptScriptCodeImportOptions::internal_SetEditorScript(ScriptScriptCodeImportOptions* thisPtr, bool value)
  385. {
  386. thisPtr->getCodeImportOptions()->setEditorScript(value);
  387. }
  388. ScriptAudioClipImportOptions::ScriptAudioClipImportOptions(MonoObject* instance)
  389. :ScriptObject(instance)
  390. {
  391. mImportOptions = bs_shared_ptr_new<AudioClipImportOptions>();
  392. }
  393. void ScriptAudioClipImportOptions::initRuntimeData()
  394. {
  395. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptAudioClipImportOptions::internal_CreateInstance);
  396. metaData.scriptClass->addInternalCall("Internal_GetFormat", &ScriptAudioClipImportOptions::internal_GetFormat);
  397. metaData.scriptClass->addInternalCall("Internal_SetFormat", &ScriptAudioClipImportOptions::internal_SetFormat);
  398. metaData.scriptClass->addInternalCall("Internal_GetReadMode", &ScriptAudioClipImportOptions::internal_GetReadMode);
  399. metaData.scriptClass->addInternalCall("Internal_SetReadMode", &ScriptAudioClipImportOptions::internal_SetReadMode);
  400. metaData.scriptClass->addInternalCall("Internal_GetIs3D", &ScriptAudioClipImportOptions::internal_GetIs3D);
  401. metaData.scriptClass->addInternalCall("Internal_SetIs3D", &ScriptAudioClipImportOptions::internal_SetIs3D);
  402. metaData.scriptClass->addInternalCall("Internal_GetBitDepth", &ScriptAudioClipImportOptions::internal_GetBitDepth);
  403. metaData.scriptClass->addInternalCall("Internal_SetBitDepth", &ScriptAudioClipImportOptions::internal_SetBitDepth);
  404. }
  405. SPtr<AudioClipImportOptions> ScriptAudioClipImportOptions::getClipImportOptions()
  406. {
  407. return std::static_pointer_cast<AudioClipImportOptions>(mImportOptions);
  408. }
  409. MonoObject* ScriptAudioClipImportOptions::create()
  410. {
  411. return metaData.scriptClass->createInstance();
  412. }
  413. MonoObject* ScriptAudioClipImportOptions::create(const SPtr<AudioClipImportOptions>& options)
  414. {
  415. MonoObject* managedInstance = metaData.scriptClass->createInstance();
  416. ScriptAudioClipImportOptions* scriptObj = ScriptAudioClipImportOptions::toNative(managedInstance);
  417. scriptObj->mImportOptions = options;
  418. return managedInstance;
  419. }
  420. void ScriptAudioClipImportOptions::internal_CreateInstance(MonoObject* instance)
  421. {
  422. new (bs_alloc<ScriptAudioClipImportOptions>()) ScriptAudioClipImportOptions(instance);
  423. }
  424. AudioFormat ScriptAudioClipImportOptions::internal_GetFormat(ScriptAudioClipImportOptions* thisPtr)
  425. {
  426. auto io = thisPtr->getClipImportOptions();
  427. return io->getFormat();
  428. }
  429. void ScriptAudioClipImportOptions::internal_SetFormat(ScriptAudioClipImportOptions* thisPtr, AudioFormat format)
  430. {
  431. auto io = thisPtr->getClipImportOptions();
  432. io->setFormat(format);
  433. }
  434. AudioReadMode ScriptAudioClipImportOptions::internal_GetReadMode(ScriptAudioClipImportOptions* thisPtr)
  435. {
  436. auto io = thisPtr->getClipImportOptions();
  437. return io->getReadMode();
  438. }
  439. void ScriptAudioClipImportOptions::internal_SetReadMode(ScriptAudioClipImportOptions* thisPtr, AudioReadMode readMode)
  440. {
  441. auto io = thisPtr->getClipImportOptions();
  442. io->setReadMode(readMode);
  443. }
  444. bool ScriptAudioClipImportOptions::internal_GetIs3D(ScriptAudioClipImportOptions* thisPtr)
  445. {
  446. auto io = thisPtr->getClipImportOptions();
  447. return io->getIs3D();
  448. }
  449. void ScriptAudioClipImportOptions::internal_SetIs3D(ScriptAudioClipImportOptions* thisPtr, bool is3d)
  450. {
  451. auto io = thisPtr->getClipImportOptions();
  452. io->setIs3D(is3d);
  453. }
  454. UINT32 ScriptAudioClipImportOptions::internal_GetBitDepth(ScriptAudioClipImportOptions* thisPtr)
  455. {
  456. auto io = thisPtr->getClipImportOptions();
  457. return io->getBitDepth();
  458. }
  459. void ScriptAudioClipImportOptions::internal_SetBitDepth(ScriptAudioClipImportOptions* thisPtr, UINT32 bitDepth)
  460. {
  461. auto io = thisPtr->getClipImportOptions();
  462. io->setBitDepth(bitDepth);
  463. }
  464. }