BsScriptImportOptions.cpp 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. #include "BsScriptImportOptions.h"
  2. #include "BsScriptMeta.h"
  3. #include "BsMonoField.h"
  4. #include "BsMonoClass.h"
  5. #include "BsMonoManager.h"
  6. #include "BsMonoMethod.h"
  7. #include "BsMonoUtil.h"
  8. #include "BsTextureImportOptions.h"
  9. #include "BsFontImportOptions.h"
  10. #include "BsGpuProgramImportOptions.h"
  11. #include "BsRenderer.h"
  12. using namespace std::placeholders;
  13. namespace BansheeEngine
  14. {
  15. struct CharRange
  16. {
  17. UINT32 start, end;
  18. };
  19. ScriptCharRange::ScriptCharRange(MonoObject* instance)
  20. :ScriptObject(instance)
  21. { }
  22. void ScriptCharRange::initRuntimeData()
  23. { }
  24. ScriptTextureImportOptions::ScriptTextureImportOptions(MonoObject* instance)
  25. :ScriptObject(instance), mImportOptions(bs_shared_ptr<TextureImportOptions>())
  26. {
  27. }
  28. void ScriptTextureImportOptions::initRuntimeData()
  29. {
  30. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptTextureImportOptions::internal_CreateInstance);
  31. metaData.scriptClass->addInternalCall("Internal_GetPixelFormat", &ScriptTextureImportOptions::internal_GetPixelFormat);
  32. metaData.scriptClass->addInternalCall("Internal_SetPixelFormat", &ScriptTextureImportOptions::internal_SetPixelFormat);
  33. metaData.scriptClass->addInternalCall("Internal_GetGenerateMipmaps", &ScriptTextureImportOptions::internal_GetGenerateMipmaps);
  34. metaData.scriptClass->addInternalCall("Internal_SetGenerateMipmaps", &ScriptTextureImportOptions::internal_SetGenerateMipmaps);
  35. metaData.scriptClass->addInternalCall("Internal_GetMaxMipmapLevel", &ScriptTextureImportOptions::internal_GetMaxMipmapLevel);
  36. metaData.scriptClass->addInternalCall("Internal_SetMaxMipmapLevel", &ScriptTextureImportOptions::internal_SetMaxMipmapLevel);
  37. }
  38. MonoObject* ScriptTextureImportOptions::create()
  39. {
  40. return metaData.scriptClass->createInstance();
  41. }
  42. void ScriptTextureImportOptions::internal_CreateInstance(MonoObject* instance)
  43. {
  44. ScriptTextureImportOptions* nativeInstance = new (bs_alloc<ScriptTextureImportOptions>()) ScriptTextureImportOptions(instance);
  45. }
  46. PixelFormat ScriptTextureImportOptions::internal_GetPixelFormat(ScriptTextureImportOptions* thisPtr)
  47. {
  48. return thisPtr->mImportOptions->getFormat();
  49. }
  50. void ScriptTextureImportOptions::internal_SetPixelFormat(ScriptTextureImportOptions* thisPtr, PixelFormat value)
  51. {
  52. thisPtr->mImportOptions->setFormat(value);
  53. }
  54. bool ScriptTextureImportOptions::internal_GetGenerateMipmaps(ScriptTextureImportOptions* thisPtr)
  55. {
  56. return thisPtr->mImportOptions->getGenerateMipmaps();
  57. }
  58. void ScriptTextureImportOptions::internal_SetGenerateMipmaps(ScriptTextureImportOptions* thisPtr, bool value)
  59. {
  60. thisPtr->mImportOptions->setGenerateMipmaps(value);
  61. }
  62. UINT32 ScriptTextureImportOptions::internal_GetMaxMipmapLevel(ScriptTextureImportOptions* thisPtr)
  63. {
  64. return thisPtr->mImportOptions->getMaxMip();
  65. }
  66. void ScriptTextureImportOptions::internal_SetMaxMipmapLevel(ScriptTextureImportOptions* thisPtr, UINT32 value)
  67. {
  68. thisPtr->mImportOptions->setMaxMip(value);
  69. }
  70. ScriptFontImportOptions::ScriptFontImportOptions(MonoObject* instance)
  71. :ScriptObject(instance), mImportOptions(bs_shared_ptr<FontImportOptions>())
  72. {
  73. }
  74. void ScriptFontImportOptions::initRuntimeData()
  75. {
  76. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptFontImportOptions::internal_CreateInstance);
  77. metaData.scriptClass->addInternalCall("Internal_GetFontSizes", &ScriptFontImportOptions::internal_GetFontSizes);
  78. metaData.scriptClass->addInternalCall("Internal_SetFontSizes", &ScriptFontImportOptions::internal_SetFontSizes);
  79. metaData.scriptClass->addInternalCall("Internal_GetDPI", &ScriptFontImportOptions::internal_GetDPI);
  80. metaData.scriptClass->addInternalCall("Internal_SetDPI", &ScriptFontImportOptions::internal_SetDPI);
  81. metaData.scriptClass->addInternalCall("Internal_GetAntialiasing", &ScriptFontImportOptions::internal_GetAntialiasing);
  82. metaData.scriptClass->addInternalCall("Internal_SetAntialiasing", &ScriptFontImportOptions::internal_SetAntialiasing);
  83. metaData.scriptClass->addInternalCall("Internal_GetCharRanges", &ScriptFontImportOptions::internal_GetCharRanges);
  84. metaData.scriptClass->addInternalCall("Internal_SetCharRanges", &ScriptFontImportOptions::internal_SetCharRanges);
  85. }
  86. MonoObject* ScriptFontImportOptions::create()
  87. {
  88. return metaData.scriptClass->createInstance();
  89. }
  90. void ScriptFontImportOptions::internal_CreateInstance(MonoObject* instance)
  91. {
  92. ScriptFontImportOptions* nativeInstance = new (bs_alloc<ScriptFontImportOptions>()) ScriptFontImportOptions(instance);
  93. }
  94. MonoArray* ScriptFontImportOptions::internal_GetFontSizes(ScriptFontImportOptions* thisPtr)
  95. {
  96. Vector<UINT32> fontSizes = thisPtr->mImportOptions->getFontSizes();
  97. ScriptArray outArray = ScriptArray::create<UINT32>((UINT32)fontSizes.size());
  98. for (UINT32 i = 0; i < fontSizes.size(); i++)
  99. outArray.set(i, fontSizes[i]);
  100. return outArray.getInternal();
  101. }
  102. void ScriptFontImportOptions::internal_SetFontSizes(ScriptFontImportOptions* thisPtr, MonoArray* value)
  103. {
  104. ScriptArray inArray(value);
  105. Vector<UINT32> fontSizes(inArray.size());
  106. for (UINT32 i = 0; i < inArray.size(); i++)
  107. fontSizes[i] = inArray.get<UINT32>(i);
  108. thisPtr->mImportOptions->setFontSizes(fontSizes);
  109. }
  110. UINT32 ScriptFontImportOptions::internal_GetDPI(ScriptFontImportOptions* thisPtr)
  111. {
  112. return thisPtr->mImportOptions->getDPI();
  113. }
  114. void ScriptFontImportOptions::internal_SetDPI(ScriptFontImportOptions* thisPtr, UINT32 value)
  115. {
  116. thisPtr->mImportOptions->setDPI(value);
  117. }
  118. bool ScriptFontImportOptions::internal_GetAntialiasing(ScriptFontImportOptions* thisPtr)
  119. {
  120. return thisPtr->mImportOptions->getAntialiasing();
  121. }
  122. void ScriptFontImportOptions::internal_SetAntialiasing(ScriptFontImportOptions* thisPtr, bool value)
  123. {
  124. thisPtr->mImportOptions->setAntialiasing(value);
  125. }
  126. MonoArray* ScriptFontImportOptions::internal_GetCharRanges(ScriptFontImportOptions* thisPtr)
  127. {
  128. Vector<std::pair<UINT32, UINT32>> charRanges = thisPtr->mImportOptions->getCharIndexRanges();
  129. ScriptArray outArray = ScriptArray::create<ScriptCharRange>((UINT32)charRanges.size());
  130. for (UINT32 i = 0; i < (UINT32)charRanges.size(); i++)
  131. {
  132. CharRange range;
  133. range.start = charRanges[i].first;
  134. range.end = charRanges[i].second;
  135. outArray.set(i, range);
  136. }
  137. return outArray.getInternal();
  138. }
  139. void ScriptFontImportOptions::internal_SetCharRanges(ScriptFontImportOptions* thisPtr, MonoArray* value)
  140. {
  141. ScriptArray inArray(value);
  142. thisPtr->mImportOptions->clearCharIndexRanges();
  143. for (UINT32 i = 0; i < inArray.size(); i++)
  144. {
  145. CharRange range = inArray.get<CharRange>(i);
  146. thisPtr->mImportOptions->addCharIndexRange(range.start, range.end);
  147. }
  148. }
  149. ScriptGpuProgramImportOptions::ScriptGpuProgramImportOptions(MonoObject* instance)
  150. :ScriptObject(instance), mImportOptions(bs_shared_ptr<GpuProgramImportOptions>())
  151. {
  152. }
  153. void ScriptGpuProgramImportOptions::initRuntimeData()
  154. {
  155. metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptGpuProgramImportOptions::internal_CreateInstance);
  156. metaData.scriptClass->addInternalCall("Internal_GetEntryPoint", &ScriptGpuProgramImportOptions::internal_GetEntryPoint);
  157. metaData.scriptClass->addInternalCall("Internal_SetEntryPoint", &ScriptGpuProgramImportOptions::internal_SetEntryPoint);
  158. metaData.scriptClass->addInternalCall("Internal_GetLanguage", &ScriptGpuProgramImportOptions::internal_GetLanguage);
  159. metaData.scriptClass->addInternalCall("Internal_SetLanguage", &ScriptGpuProgramImportOptions::internal_SetLanguage);
  160. metaData.scriptClass->addInternalCall("Internal_GetProfile", &ScriptGpuProgramImportOptions::internal_GetProfile);
  161. metaData.scriptClass->addInternalCall("Internal_SetProfile", &ScriptGpuProgramImportOptions::internal_SetProfile);
  162. metaData.scriptClass->addInternalCall("Internal_GetType", &ScriptGpuProgramImportOptions::internal_GetType);
  163. metaData.scriptClass->addInternalCall("Internal_SetType", &ScriptGpuProgramImportOptions::internal_SetType);
  164. }
  165. MonoObject* ScriptGpuProgramImportOptions::create()
  166. {
  167. return metaData.scriptClass->createInstance();
  168. }
  169. void ScriptGpuProgramImportOptions::internal_CreateInstance(MonoObject* instance)
  170. {
  171. ScriptGpuProgramImportOptions* nativeInstance = new (bs_alloc<ScriptGpuProgramImportOptions>()) ScriptGpuProgramImportOptions(instance);
  172. }
  173. MonoString* ScriptGpuProgramImportOptions::internal_GetEntryPoint(ScriptGpuProgramImportOptions* thisPtr)
  174. {
  175. return MonoUtil::stringToMono(MonoManager::instance().getDomain(), thisPtr->mImportOptions->getEntryPoint());
  176. }
  177. void ScriptGpuProgramImportOptions::internal_SetEntryPoint(ScriptGpuProgramImportOptions* thisPtr, MonoString* value)
  178. {
  179. thisPtr->mImportOptions->setEntryPoint(MonoUtil::monoToString(value));
  180. }
  181. GpuLanguage ScriptGpuProgramImportOptions::internal_GetLanguage(ScriptGpuProgramImportOptions* thisPtr)
  182. {
  183. return Renderer::getGpuLanguageType(thisPtr->mImportOptions->getLanguage());
  184. }
  185. void ScriptGpuProgramImportOptions::internal_SetLanguage(ScriptGpuProgramImportOptions* thisPtr, GpuLanguage value)
  186. {
  187. thisPtr->mImportOptions->setLanguage(Renderer::getGpuLanguageName(value));
  188. }
  189. GpuProgramProfile ScriptGpuProgramImportOptions::internal_GetProfile(ScriptGpuProgramImportOptions* thisPtr)
  190. {
  191. return thisPtr->mImportOptions->getProfile();
  192. }
  193. void ScriptGpuProgramImportOptions::internal_SetProfile(ScriptGpuProgramImportOptions* thisPtr, GpuProgramProfile value)
  194. {
  195. thisPtr->mImportOptions->setProfile(value);
  196. }
  197. GpuProgramType ScriptGpuProgramImportOptions::internal_GetType(ScriptGpuProgramImportOptions* thisPtr)
  198. {
  199. return thisPtr->mImportOptions->getType();
  200. }
  201. void ScriptGpuProgramImportOptions::internal_SetType(ScriptGpuProgramImportOptions* thisPtr, GpuProgramType value)
  202. {
  203. thisPtr->mImportOptions->setType(value);
  204. }
  205. }