BsScriptColorGradient.generated.cpp 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #include "BsScriptColorGradient.generated.h"
  2. #include "BsMonoMethod.h"
  3. #include "BsMonoClass.h"
  4. #include "BsMonoUtil.h"
  5. #include "../../../bsf/Source/Foundation/bsfUtility/Image/BsColorGradient.h"
  6. #include "Wrappers/BsScriptColor.h"
  7. #include "BsScriptColorGradientKey.generated.h"
  8. #include "../../SBansheeEngine/Extensions/BsColorGradientEx.h"
  9. namespace bs
  10. {
  11. ScriptColorGradient::ScriptColorGradient(MonoObject* managedInstance, const SPtr<ColorGradient>& value)
  12. :ScriptObject(managedInstance), mInternal(value)
  13. {
  14. }
  15. void ScriptColorGradient::initRuntimeData()
  16. {
  17. metaData.scriptClass->addInternalCall("Internal_ColorGradient", (void*)&ScriptColorGradient::Internal_ColorGradient);
  18. metaData.scriptClass->addInternalCall("Internal_ColorGradient0", (void*)&ScriptColorGradient::Internal_ColorGradient0);
  19. metaData.scriptClass->addInternalCall("Internal_ColorGradient1", (void*)&ScriptColorGradient::Internal_ColorGradient1);
  20. metaData.scriptClass->addInternalCall("Internal_setKeys", (void*)&ScriptColorGradient::Internal_setKeys);
  21. metaData.scriptClass->addInternalCall("Internal_setConstant", (void*)&ScriptColorGradient::Internal_setConstant);
  22. metaData.scriptClass->addInternalCall("Internal_evaluate", (void*)&ScriptColorGradient::Internal_evaluate);
  23. }
  24. MonoObject* ScriptColorGradient::create(const SPtr<ColorGradient>& value)
  25. {
  26. if(value == nullptr) return nullptr;
  27. bool dummy = false;
  28. void* ctorParams[1] = { &dummy };
  29. MonoObject* managedInstance = metaData.scriptClass->createInstance("bool", ctorParams);
  30. new (bs_alloc<ScriptColorGradient>()) ScriptColorGradient(managedInstance, value);
  31. return managedInstance;
  32. }
  33. void ScriptColorGradient::Internal_ColorGradient(MonoObject* managedInstance)
  34. {
  35. SPtr<ColorGradient> instance = bs_shared_ptr_new<ColorGradient>();
  36. new (bs_alloc<ScriptColorGradient>())ScriptColorGradient(managedInstance, instance);
  37. }
  38. void ScriptColorGradient::Internal_ColorGradient0(MonoObject* managedInstance, Color* color)
  39. {
  40. SPtr<ColorGradient> instance = bs_shared_ptr_new<ColorGradient>(*color);
  41. new (bs_alloc<ScriptColorGradient>())ScriptColorGradient(managedInstance, instance);
  42. }
  43. void ScriptColorGradient::Internal_ColorGradient1(MonoObject* managedInstance, MonoArray* keys)
  44. {
  45. Vector<ColorGradientKey> veckeys;
  46. if(keys != nullptr)
  47. {
  48. ScriptArray arraykeys(keys);
  49. veckeys.resize(arraykeys.size());
  50. for(int i = 0; i < (int)arraykeys.size(); i++)
  51. {
  52. veckeys[i] = ScriptColorGradientKey::fromInterop(arraykeys.get<__ColorGradientKeyInterop>(i));
  53. }
  54. }
  55. SPtr<ColorGradient> instance = bs_shared_ptr_new<ColorGradient>(veckeys);
  56. new (bs_alloc<ScriptColorGradient>())ScriptColorGradient(managedInstance, instance);
  57. }
  58. void ScriptColorGradient::Internal_setKeys(ScriptColorGradient* thisPtr, MonoArray* keys)
  59. {
  60. Vector<ColorGradientKey> veckeys;
  61. if(keys != nullptr)
  62. {
  63. ScriptArray arraykeys(keys);
  64. veckeys.resize(arraykeys.size());
  65. for(int i = 0; i < (int)arraykeys.size(); i++)
  66. {
  67. veckeys[i] = ScriptColorGradientKey::fromInterop(arraykeys.get<__ColorGradientKeyInterop>(i));
  68. }
  69. }
  70. thisPtr->getInternal()->setKeys(veckeys);
  71. }
  72. void ScriptColorGradient::Internal_setConstant(ScriptColorGradient* thisPtr, Color* color)
  73. {
  74. thisPtr->getInternal()->setConstant(*color);
  75. }
  76. void ScriptColorGradient::Internal_evaluate(ScriptColorGradient* thisPtr, float t, Color* __output)
  77. {
  78. Color tmp__output;
  79. tmp__output = ColorGradientEx::evaluate(thisPtr->getInternal(), t);
  80. *__output = tmp__output;
  81. }
  82. }