BsScriptColorGradient.generated.cpp 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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_getKeys", (void*)&ScriptColorGradient::Internal_getKeys);
  22. metaData.scriptClass->addInternalCall("Internal_setConstant", (void*)&ScriptColorGradient::Internal_setConstant);
  23. metaData.scriptClass->addInternalCall("Internal_evaluate", (void*)&ScriptColorGradient::Internal_evaluate);
  24. }
  25. MonoObject* ScriptColorGradient::create(const SPtr<ColorGradient>& value)
  26. {
  27. if(value == nullptr) return nullptr;
  28. bool dummy = false;
  29. void* ctorParams[1] = { &dummy };
  30. MonoObject* managedInstance = metaData.scriptClass->createInstance("bool", ctorParams);
  31. new (bs_alloc<ScriptColorGradient>()) ScriptColorGradient(managedInstance, value);
  32. return managedInstance;
  33. }
  34. void ScriptColorGradient::Internal_ColorGradient(MonoObject* managedInstance)
  35. {
  36. SPtr<ColorGradient> instance = bs_shared_ptr_new<ColorGradient>();
  37. new (bs_alloc<ScriptColorGradient>())ScriptColorGradient(managedInstance, instance);
  38. }
  39. void ScriptColorGradient::Internal_ColorGradient0(MonoObject* managedInstance, Color* color)
  40. {
  41. SPtr<ColorGradient> instance = bs_shared_ptr_new<ColorGradient>(*color);
  42. new (bs_alloc<ScriptColorGradient>())ScriptColorGradient(managedInstance, instance);
  43. }
  44. void ScriptColorGradient::Internal_ColorGradient1(MonoObject* managedInstance, MonoArray* keys)
  45. {
  46. Vector<ColorGradientKey> veckeys;
  47. if(keys != nullptr)
  48. {
  49. ScriptArray arraykeys(keys);
  50. veckeys.resize(arraykeys.size());
  51. for(int i = 0; i < (int)arraykeys.size(); i++)
  52. {
  53. veckeys[i] = ScriptColorGradientKey::fromInterop(arraykeys.get<__ColorGradientKeyInterop>(i));
  54. }
  55. }
  56. SPtr<ColorGradient> instance = bs_shared_ptr_new<ColorGradient>(veckeys);
  57. new (bs_alloc<ScriptColorGradient>())ScriptColorGradient(managedInstance, instance);
  58. }
  59. void ScriptColorGradient::Internal_setKeys(ScriptColorGradient* thisPtr, MonoArray* keys, float duration)
  60. {
  61. Vector<ColorGradientKey> veckeys;
  62. if(keys != nullptr)
  63. {
  64. ScriptArray arraykeys(keys);
  65. veckeys.resize(arraykeys.size());
  66. for(int i = 0; i < (int)arraykeys.size(); i++)
  67. {
  68. veckeys[i] = ScriptColorGradientKey::fromInterop(arraykeys.get<__ColorGradientKeyInterop>(i));
  69. }
  70. }
  71. thisPtr->getInternal()->setKeys(veckeys, duration);
  72. }
  73. MonoArray* ScriptColorGradient::Internal_getKeys(ScriptColorGradient* thisPtr)
  74. {
  75. Vector<ColorGradientKey> vec__output;
  76. vec__output = thisPtr->getInternal()->getKeys();
  77. MonoArray* __output;
  78. int arraySize__output = (int)vec__output.size();
  79. ScriptArray array__output = ScriptArray::create<ScriptColorGradientKey>(arraySize__output);
  80. for(int i = 0; i < arraySize__output; i++)
  81. {
  82. array__output.set(i, ScriptColorGradientKey::toInterop(vec__output[i]));
  83. }
  84. __output = array__output.getInternal();
  85. return __output;
  86. }
  87. void ScriptColorGradient::Internal_setConstant(ScriptColorGradient* thisPtr, Color* color)
  88. {
  89. thisPtr->getInternal()->setConstant(*color);
  90. }
  91. void ScriptColorGradient::Internal_evaluate(ScriptColorGradient* thisPtr, float t, Color* __output)
  92. {
  93. Color tmp__output;
  94. tmp__output = ColorGradientEx::evaluate(thisPtr->getInternal(), t);
  95. *__output = tmp__output;
  96. }
  97. }