BsScriptImportOptions.h 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. #pragma once
  2. #include "BsScriptEditorPrerequisites.h"
  3. #include "BsScriptObject.h"
  4. #include "BsPixelData.h"
  5. #include "BsGpuProgram.h"
  6. namespace BansheeEngine
  7. {
  8. /**
  9. * @brief Base class for all C++/CLR interop objects wrapping various
  10. * implementations of ImportOptions.
  11. */
  12. class BS_SCR_BED_EXPORT ScriptImportOptionsBase : public ScriptObjectBase
  13. {
  14. public:
  15. /**
  16. * @brief Returns the internal native import options.
  17. */
  18. SPtr<ImportOptions> getImportOptions() const { return mImportOptions; }
  19. protected:
  20. ScriptImportOptionsBase(MonoObject* instance);
  21. virtual ~ScriptImportOptionsBase() {}
  22. SPtr<ImportOptions> mImportOptions;
  23. };
  24. /**
  25. * @brief Interop class between C++ & CLR for ImportOptions.
  26. */
  27. class BS_SCR_BED_EXPORT ScriptImportOptions : public ScriptObject <ScriptImportOptions, ScriptImportOptionsBase>
  28. {
  29. public:
  30. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "ImportOptions")
  31. /**
  32. * @brief Creates a new managed ImportOptions instance containing
  33. * the provided import options.
  34. */
  35. static MonoObject* create(const SPtr<ImportOptions>& importOptions);
  36. private:
  37. ScriptImportOptions(MonoObject* instance);
  38. };
  39. /**
  40. * @brief Interop class between C++ & CLR for TextureImportOptions.
  41. */
  42. class BS_SCR_BED_EXPORT ScriptTextureImportOptions : public ScriptObject<ScriptTextureImportOptions, ScriptImportOptionsBase>
  43. {
  44. public:
  45. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "TextureImportOptions")
  46. /**
  47. * @brief Creates a new managed TextureImportOptions instance containing the
  48. * default import options for textures.
  49. */
  50. static MonoObject* create();
  51. /**
  52. * @brief Creates a new managed TextureImportOptions instance containing
  53. * the provided import options.
  54. */
  55. static MonoObject* create(const SPtr<TextureImportOptions>& options);
  56. private:
  57. ScriptTextureImportOptions(MonoObject* instance);
  58. /**
  59. * @brief Returns the internal native import options.
  60. */
  61. SPtr<TextureImportOptions> getTexImportOptions();
  62. /************************************************************************/
  63. /* CLR HOOKS */
  64. /************************************************************************/
  65. static void internal_CreateInstance(MonoObject* instance);
  66. static PixelFormat internal_GetPixelFormat(ScriptTextureImportOptions* thisPtr);
  67. static void internal_SetPixelFormat(ScriptTextureImportOptions* thisPtr, PixelFormat value);
  68. static bool internal_GetGenerateMipmaps(ScriptTextureImportOptions* thisPtr);
  69. static void internal_SetGenerateMipmaps(ScriptTextureImportOptions* thisPtr, bool value);
  70. static UINT32 internal_GetMaxMipmapLevel(ScriptTextureImportOptions* thisPtr);
  71. static void internal_SetMaxMipmapLevel(ScriptTextureImportOptions* thisPtr, UINT32 value);
  72. static bool internal_GetCPUReadable(ScriptTextureImportOptions* thisPtr);
  73. static void internal_SetCPUReadable(ScriptTextureImportOptions* thisPtr, bool value);
  74. static bool internal_GetIsSRGB(ScriptTextureImportOptions* thisPtr);
  75. static void internal_SetIsSRGB(ScriptTextureImportOptions* thisPtr, bool value);
  76. };
  77. /**
  78. * @brief Interop class between C++ & CLR for MeshImportOptions.
  79. */
  80. class BS_SCR_BED_EXPORT ScriptMeshImportOptions : public ScriptObject<ScriptMeshImportOptions, ScriptImportOptionsBase>
  81. {
  82. public:
  83. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "MeshImportOptions")
  84. /**
  85. * @brief Creates a new managed MeshImportOptions instance containing the
  86. * default import options for textures.
  87. */
  88. static MonoObject* create();
  89. /**
  90. * @brief Creates a new managed MeshImportOptions instance containing
  91. * the provided import options.
  92. */
  93. static MonoObject* create(const SPtr<MeshImportOptions>& options);
  94. private:
  95. ScriptMeshImportOptions(MonoObject* instance);
  96. /**
  97. * @brief Returns the internal native import options.
  98. */
  99. SPtr<MeshImportOptions> getMeshImportOptions();
  100. /************************************************************************/
  101. /* CLR HOOKS */
  102. /************************************************************************/
  103. static void internal_CreateInstance(MonoObject* instance);
  104. static bool internal_GetCPUReadable(ScriptMeshImportOptions* thisPtr);
  105. static void internal_SetCPUReadable(ScriptMeshImportOptions* thisPtr, bool value);
  106. static bool internal_GetImportNormals(ScriptMeshImportOptions* thisPtr);
  107. static void internal_SetImportNormals(ScriptMeshImportOptions* thisPtr, bool value);
  108. static bool internal_GetImportTangents(ScriptMeshImportOptions* thisPtr);
  109. static void internal_SetImportTangents(ScriptMeshImportOptions* thisPtr, bool value);
  110. static bool internal_GetImportSkin(ScriptMeshImportOptions* thisPtr);
  111. static void internal_SetImportSkin(ScriptMeshImportOptions* thisPtr, bool value);
  112. static bool internal_GetImportAnimation(ScriptMeshImportOptions* thisPtr);
  113. static void internal_SetImportAnimation(ScriptMeshImportOptions* thisPtr, bool value);
  114. static bool internal_GetImportBlendShapes(ScriptMeshImportOptions* thisPtr);
  115. static void internal_SetImportBlendShapes(ScriptMeshImportOptions* thisPtr, bool value);
  116. static float internal_GetScale(ScriptMeshImportOptions* thisPtr);
  117. static void internal_SetScale(ScriptMeshImportOptions* thisPtr, float value);
  118. };
  119. /**
  120. * @brief Interop class between C++ & CLR for FontImportOptions.
  121. */
  122. class BS_SCR_BED_EXPORT ScriptFontImportOptions : public ScriptObject <ScriptFontImportOptions, ScriptImportOptionsBase>
  123. {
  124. public:
  125. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "FontImportOptions")
  126. /**
  127. * @brief Creates a new managed FontImportOptions instance containing the
  128. * default import options for fonts.
  129. */
  130. static MonoObject* create();
  131. /**
  132. * @brief Creates a new managed FontImportOptions instance containing
  133. * the provided import options.
  134. */
  135. static MonoObject* create(const SPtr<FontImportOptions>& options);
  136. private:
  137. ScriptFontImportOptions(MonoObject* instance);
  138. /**
  139. * @brief Returns the internal native import options.
  140. */
  141. SPtr<FontImportOptions> getFontImportOptions();
  142. /************************************************************************/
  143. /* CLR HOOKS */
  144. /************************************************************************/
  145. static void internal_CreateInstance(MonoObject* instance);
  146. static MonoArray* internal_GetFontSizes(ScriptFontImportOptions* thisPtr);
  147. static void internal_SetFontSizes(ScriptFontImportOptions* thisPtr, MonoArray* value);
  148. static UINT32 internal_GetDPI(ScriptFontImportOptions* thisPtr);
  149. static void internal_SetDPI(ScriptFontImportOptions* thisPtr, UINT32 value);
  150. static bool internal_GetAntialiasing(ScriptFontImportOptions* thisPtr);
  151. static void internal_SetAntialiasing(ScriptFontImportOptions* thisPtr, bool value);
  152. static MonoArray* internal_GetCharRanges(ScriptFontImportOptions* thisPtr);
  153. static void internal_SetCharRanges(ScriptFontImportOptions* thisPtr, MonoArray* value);
  154. };
  155. /**
  156. * @brief Interop class between C++ & CLR for ScriptCodeImportOptions.
  157. */
  158. class BS_SCR_BED_EXPORT ScriptScriptCodeImportOptions : public ScriptObject <ScriptScriptCodeImportOptions, ScriptImportOptionsBase>
  159. {
  160. public:
  161. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "ScriptCodeImportOptions")
  162. /**
  163. * @brief Creates a new managed ScriptCodeImportOptions instance containing the
  164. * default import options for script code files.
  165. */
  166. static MonoObject* create();
  167. /**
  168. * @brief Creates a new managed ScriptCodeImportOptions instance containing
  169. * the provided import options.
  170. */
  171. static MonoObject* create(const SPtr<ScriptCodeImportOptions>& options);
  172. private:
  173. ScriptScriptCodeImportOptions(MonoObject* instance);
  174. /**
  175. * @brief Returns the internal native import options.
  176. */
  177. SPtr<ScriptCodeImportOptions> getCodeImportOptions();
  178. /************************************************************************/
  179. /* CLR HOOKS */
  180. /************************************************************************/
  181. static void internal_CreateInstance(MonoObject* instance);
  182. static bool internal_IsEditorScript(ScriptScriptCodeImportOptions* thisPtr);
  183. static void internal_SetEditorScript(ScriptScriptCodeImportOptions* thisPtr, bool value);
  184. };
  185. }