2
0

BsScriptImportOptions.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  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. };
  73. /**
  74. * @brief Interop class between C++ & CLR for FontImportOptions.
  75. */
  76. class BS_SCR_BED_EXPORT ScriptFontImportOptions : public ScriptObject <ScriptFontImportOptions, ScriptImportOptionsBase>
  77. {
  78. public:
  79. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "FontImportOptions")
  80. /**
  81. * @brief Creates a new managed FontImportOptions instance containing the
  82. * default import options for fonts.
  83. */
  84. static MonoObject* create();
  85. /**
  86. * @brief Creates a new managed FontImportOptions instance containing
  87. * the provided import options.
  88. */
  89. static MonoObject* create(const SPtr<FontImportOptions>& options);
  90. private:
  91. ScriptFontImportOptions(MonoObject* instance);
  92. /**
  93. * @brief Returns the internal native import options.
  94. */
  95. SPtr<FontImportOptions> getFontImportOptions();
  96. /************************************************************************/
  97. /* CLR HOOKS */
  98. /************************************************************************/
  99. static void internal_CreateInstance(MonoObject* instance);
  100. static MonoArray* internal_GetFontSizes(ScriptFontImportOptions* thisPtr);
  101. static void internal_SetFontSizes(ScriptFontImportOptions* thisPtr, MonoArray* value);
  102. static UINT32 internal_GetDPI(ScriptFontImportOptions* thisPtr);
  103. static void internal_SetDPI(ScriptFontImportOptions* thisPtr, UINT32 value);
  104. static bool internal_GetAntialiasing(ScriptFontImportOptions* thisPtr);
  105. static void internal_SetAntialiasing(ScriptFontImportOptions* thisPtr, bool value);
  106. static MonoArray* internal_GetCharRanges(ScriptFontImportOptions* thisPtr);
  107. static void internal_SetCharRanges(ScriptFontImportOptions* thisPtr, MonoArray* value);
  108. };
  109. /**
  110. * @brief Interop class between C++ & CLR for ScriptCodeImportOptions.
  111. */
  112. class BS_SCR_BED_EXPORT ScriptScriptCodeImportOptions : public ScriptObject <ScriptScriptCodeImportOptions, ScriptImportOptionsBase>
  113. {
  114. public:
  115. SCRIPT_OBJ(EDITOR_ASSEMBLY, "BansheeEditor", "ScriptCodeImportOptions")
  116. /**
  117. * @brief Creates a new managed ScriptCodeImportOptions instance containing the
  118. * default import options for script code files.
  119. */
  120. static MonoObject* create();
  121. /**
  122. * @brief Creates a new managed ScriptCodeImportOptions instance containing
  123. * the provided import options.
  124. */
  125. static MonoObject* create(const SPtr<ScriptCodeImportOptions>& options);
  126. private:
  127. ScriptScriptCodeImportOptions(MonoObject* instance);
  128. /**
  129. * @brief Returns the internal native import options.
  130. */
  131. SPtr<ScriptCodeImportOptions> getCodeImportOptions();
  132. /************************************************************************/
  133. /* CLR HOOKS */
  134. /************************************************************************/
  135. static void internal_CreateInstance(MonoObject* instance);
  136. static bool internal_IsEditorScript(ScriptScriptCodeImportOptions* thisPtr);
  137. static void internal_SetEditorScript(ScriptScriptCodeImportOptions* thisPtr, bool value);
  138. };
  139. }