BsScriptMaterial.generated.cpp 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. #include "BsScriptMaterial.generated.h"
  2. #include "BsMonoMethod.h"
  3. #include "BsMonoClass.h"
  4. #include "BsMonoUtil.h"
  5. #include "../../../bsf/Source/Foundation/bsfCore/Material/BsMaterial.h"
  6. #include "BsScriptResourceManager.h"
  7. #include "BsScriptShader.generated.h"
  8. #include "Wrappers/BsScriptVector.h"
  9. #include "Wrappers/BsScriptColor.h"
  10. #include "BsScriptMaterial.generated.h"
  11. #include "Wrappers/BsScriptVector.h"
  12. #include "Wrappers/BsScriptVector.h"
  13. #include "BsScriptTexture.generated.h"
  14. #include "../../SBansheeEngine/Extensions/BsMaterialEx.h"
  15. namespace bs
  16. {
  17. ScriptMaterial::ScriptMaterial(MonoObject* managedInstance, const ResourceHandle<Material>& value)
  18. :TScriptResource(managedInstance, value)
  19. {
  20. }
  21. void ScriptMaterial::initRuntimeData()
  22. {
  23. metaData.scriptClass->addInternalCall("Internal_setShader", (void*)&ScriptMaterial::Internal_setShader);
  24. metaData.scriptClass->addInternalCall("Internal_clone", (void*)&ScriptMaterial::Internal_clone);
  25. metaData.scriptClass->addInternalCall("Internal_getShader", (void*)&ScriptMaterial::Internal_getShader);
  26. metaData.scriptClass->addInternalCall("Internal_setFloat", (void*)&ScriptMaterial::Internal_setFloat);
  27. metaData.scriptClass->addInternalCall("Internal_setColor", (void*)&ScriptMaterial::Internal_setColor);
  28. metaData.scriptClass->addInternalCall("Internal_setVec2", (void*)&ScriptMaterial::Internal_setVec2);
  29. metaData.scriptClass->addInternalCall("Internal_setVec3", (void*)&ScriptMaterial::Internal_setVec3);
  30. metaData.scriptClass->addInternalCall("Internal_setVec4", (void*)&ScriptMaterial::Internal_setVec4);
  31. metaData.scriptClass->addInternalCall("Internal_setMat3", (void*)&ScriptMaterial::Internal_setMat3);
  32. metaData.scriptClass->addInternalCall("Internal_setMat4", (void*)&ScriptMaterial::Internal_setMat4);
  33. metaData.scriptClass->addInternalCall("Internal_getFloat", (void*)&ScriptMaterial::Internal_getFloat);
  34. metaData.scriptClass->addInternalCall("Internal_getColor", (void*)&ScriptMaterial::Internal_getColor);
  35. metaData.scriptClass->addInternalCall("Internal_getVec2", (void*)&ScriptMaterial::Internal_getVec2);
  36. metaData.scriptClass->addInternalCall("Internal_getVec3", (void*)&ScriptMaterial::Internal_getVec3);
  37. metaData.scriptClass->addInternalCall("Internal_getVec4", (void*)&ScriptMaterial::Internal_getVec4);
  38. metaData.scriptClass->addInternalCall("Internal_getMat3", (void*)&ScriptMaterial::Internal_getMat3);
  39. metaData.scriptClass->addInternalCall("Internal_getMat4", (void*)&ScriptMaterial::Internal_getMat4);
  40. metaData.scriptClass->addInternalCall("Internal_create", (void*)&ScriptMaterial::Internal_create);
  41. metaData.scriptClass->addInternalCall("Internal_create0", (void*)&ScriptMaterial::Internal_create0);
  42. metaData.scriptClass->addInternalCall("Internal_setTexture", (void*)&ScriptMaterial::Internal_setTexture);
  43. metaData.scriptClass->addInternalCall("Internal_getTexture", (void*)&ScriptMaterial::Internal_getTexture);
  44. }
  45. MonoObject*ScriptMaterial::createInstance()
  46. {
  47. bool dummy = false;
  48. void* ctorParams[1] = { &dummy };
  49. return metaData.scriptClass->createInstance("bool", ctorParams);
  50. }
  51. void ScriptMaterial::Internal_setShader(ScriptMaterial* thisPtr, MonoObject* shader)
  52. {
  53. ResourceHandle<Shader> tmpshader;
  54. ScriptShader* scriptshader;
  55. scriptshader = ScriptShader::toNative(shader);
  56. if(scriptshader != nullptr)
  57. tmpshader = scriptshader->getHandle();
  58. thisPtr->getHandle()->setShader(tmpshader);
  59. }
  60. MonoObject* ScriptMaterial::Internal_clone(ScriptMaterial* thisPtr)
  61. {
  62. ResourceHandle<Material> tmp__output;
  63. tmp__output = thisPtr->getHandle()->clone();
  64. MonoObject* __output;
  65. ScriptResourceBase* script__output;
  66. script__output = ScriptResourceManager::instance().getScriptResource(tmp__output, true);
  67. if(script__output != nullptr)
  68. __output = script__output->getManagedInstance();
  69. else
  70. __output = nullptr;
  71. return __output;
  72. }
  73. MonoObject* ScriptMaterial::Internal_getShader(ScriptMaterial* thisPtr)
  74. {
  75. ResourceHandle<Shader> tmp__output;
  76. tmp__output = thisPtr->getHandle()->getShader();
  77. MonoObject* __output;
  78. ScriptResourceBase* script__output;
  79. script__output = ScriptResourceManager::instance().getScriptResource(tmp__output, true);
  80. if(script__output != nullptr)
  81. __output = script__output->getManagedInstance();
  82. else
  83. __output = nullptr;
  84. return __output;
  85. }
  86. void ScriptMaterial::Internal_setFloat(ScriptMaterial* thisPtr, MonoString* name, float value, uint32_t arrayIdx)
  87. {
  88. String tmpname;
  89. tmpname = MonoUtil::monoToString(name);
  90. thisPtr->getHandle()->setFloat(tmpname, value, arrayIdx);
  91. }
  92. void ScriptMaterial::Internal_setColor(ScriptMaterial* thisPtr, MonoString* name, Color* value, uint32_t arrayIdx)
  93. {
  94. String tmpname;
  95. tmpname = MonoUtil::monoToString(name);
  96. thisPtr->getHandle()->setColor(tmpname, *value, arrayIdx);
  97. }
  98. void ScriptMaterial::Internal_setVec2(ScriptMaterial* thisPtr, MonoString* name, Vector2* value, uint32_t arrayIdx)
  99. {
  100. String tmpname;
  101. tmpname = MonoUtil::monoToString(name);
  102. thisPtr->getHandle()->setVec2(tmpname, *value, arrayIdx);
  103. }
  104. void ScriptMaterial::Internal_setVec3(ScriptMaterial* thisPtr, MonoString* name, Vector3* value, uint32_t arrayIdx)
  105. {
  106. String tmpname;
  107. tmpname = MonoUtil::monoToString(name);
  108. thisPtr->getHandle()->setVec3(tmpname, *value, arrayIdx);
  109. }
  110. void ScriptMaterial::Internal_setVec4(ScriptMaterial* thisPtr, MonoString* name, Vector4* value, uint32_t arrayIdx)
  111. {
  112. String tmpname;
  113. tmpname = MonoUtil::monoToString(name);
  114. thisPtr->getHandle()->setVec4(tmpname, *value, arrayIdx);
  115. }
  116. void ScriptMaterial::Internal_setMat3(ScriptMaterial* thisPtr, MonoString* name, Matrix3* value, uint32_t arrayIdx)
  117. {
  118. String tmpname;
  119. tmpname = MonoUtil::monoToString(name);
  120. thisPtr->getHandle()->setMat3(tmpname, *value, arrayIdx);
  121. }
  122. void ScriptMaterial::Internal_setMat4(ScriptMaterial* thisPtr, MonoString* name, Matrix4* value, uint32_t arrayIdx)
  123. {
  124. String tmpname;
  125. tmpname = MonoUtil::monoToString(name);
  126. thisPtr->getHandle()->setMat4(tmpname, *value, arrayIdx);
  127. }
  128. float ScriptMaterial::Internal_getFloat(ScriptMaterial* thisPtr, MonoString* name, uint32_t arrayIdx)
  129. {
  130. float tmp__output;
  131. String tmpname;
  132. tmpname = MonoUtil::monoToString(name);
  133. tmp__output = thisPtr->getHandle()->getFloat(tmpname, arrayIdx);
  134. float __output;
  135. __output = tmp__output;
  136. return __output;
  137. }
  138. void ScriptMaterial::Internal_getColor(ScriptMaterial* thisPtr, MonoString* name, uint32_t arrayIdx, Color* __output)
  139. {
  140. String tmpname;
  141. tmpname = MonoUtil::monoToString(name);
  142. Color tmp__output;
  143. tmp__output = thisPtr->getHandle()->getColor(tmpname, arrayIdx);
  144. *__output = tmp__output;
  145. }
  146. void ScriptMaterial::Internal_getVec2(ScriptMaterial* thisPtr, MonoString* name, uint32_t arrayIdx, Vector2* __output)
  147. {
  148. String tmpname;
  149. tmpname = MonoUtil::monoToString(name);
  150. Vector2 tmp__output;
  151. tmp__output = thisPtr->getHandle()->getVec2(tmpname, arrayIdx);
  152. *__output = tmp__output;
  153. }
  154. void ScriptMaterial::Internal_getVec3(ScriptMaterial* thisPtr, MonoString* name, uint32_t arrayIdx, Vector3* __output)
  155. {
  156. String tmpname;
  157. tmpname = MonoUtil::monoToString(name);
  158. Vector3 tmp__output;
  159. tmp__output = thisPtr->getHandle()->getVec3(tmpname, arrayIdx);
  160. *__output = tmp__output;
  161. }
  162. void ScriptMaterial::Internal_getVec4(ScriptMaterial* thisPtr, MonoString* name, uint32_t arrayIdx, Vector4* __output)
  163. {
  164. String tmpname;
  165. tmpname = MonoUtil::monoToString(name);
  166. Vector4 tmp__output;
  167. tmp__output = thisPtr->getHandle()->getVec4(tmpname, arrayIdx);
  168. *__output = tmp__output;
  169. }
  170. void ScriptMaterial::Internal_getMat3(ScriptMaterial* thisPtr, MonoString* name, uint32_t arrayIdx, Matrix3* __output)
  171. {
  172. String tmpname;
  173. tmpname = MonoUtil::monoToString(name);
  174. Matrix3 tmp__output;
  175. tmp__output = thisPtr->getHandle()->getMat3(tmpname, arrayIdx);
  176. *__output = tmp__output;
  177. }
  178. void ScriptMaterial::Internal_getMat4(ScriptMaterial* thisPtr, MonoString* name, uint32_t arrayIdx, Matrix4* __output)
  179. {
  180. String tmpname;
  181. tmpname = MonoUtil::monoToString(name);
  182. Matrix4 tmp__output;
  183. tmp__output = thisPtr->getHandle()->getMat4(tmpname, arrayIdx);
  184. *__output = tmp__output;
  185. }
  186. void ScriptMaterial::Internal_create(MonoObject* managedInstance)
  187. {
  188. ResourceHandle<Material> instance = Material::create();
  189. ScriptResourceManager::instance().createBuiltinScriptResource(instance, managedInstance);
  190. }
  191. void ScriptMaterial::Internal_create0(MonoObject* managedInstance, MonoObject* shader)
  192. {
  193. ResourceHandle<Shader> tmpshader;
  194. ScriptShader* scriptshader;
  195. scriptshader = ScriptShader::toNative(shader);
  196. if(scriptshader != nullptr)
  197. tmpshader = scriptshader->getHandle();
  198. ResourceHandle<Material> instance = Material::create(tmpshader);
  199. ScriptResourceManager::instance().createBuiltinScriptResource(instance, managedInstance);
  200. }
  201. void ScriptMaterial::Internal_setTexture(ScriptMaterial* thisPtr, MonoString* name, MonoObject* value, uint32_t mipLevel, uint32_t numMipLevels, uint32_t arraySlice, uint32_t numArraySlices)
  202. {
  203. String tmpname;
  204. tmpname = MonoUtil::monoToString(name);
  205. ResourceHandle<Texture> tmpvalue;
  206. ScriptTexture* scriptvalue;
  207. scriptvalue = ScriptTexture::toNative(value);
  208. if(scriptvalue != nullptr)
  209. tmpvalue = scriptvalue->getHandle();
  210. MaterialEx::setTexture(thisPtr->getHandle(), tmpname, tmpvalue, mipLevel, numMipLevels, arraySlice, numArraySlices);
  211. }
  212. MonoObject* ScriptMaterial::Internal_getTexture(ScriptMaterial* thisPtr, MonoString* name)
  213. {
  214. ResourceHandle<Texture> tmp__output;
  215. String tmpname;
  216. tmpname = MonoUtil::monoToString(name);
  217. tmp__output = MaterialEx::getTexture(thisPtr->getHandle(), tmpname);
  218. MonoObject* __output;
  219. ScriptResourceBase* script__output;
  220. script__output = ScriptResourceManager::instance().getScriptResource(tmp__output, true);
  221. if(script__output != nullptr)
  222. __output = script__output->getManagedInstance();
  223. else
  224. __output = nullptr;
  225. return __output;
  226. }
  227. }