BsScriptShader.generated.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "BsScriptShader.generated.h"
  2. #include "BsMonoMethod.h"
  3. #include "BsMonoClass.h"
  4. #include "BsMonoUtil.h"
  5. #include "../../../bsf/Source/Foundation/bsfCore/Material/BsShader.h"
  6. #include "BsScriptShaderParameter.generated.h"
  7. #include "../../SBansheeEngine/Extensions/BsShaderEx.h"
  8. namespace bs
  9. {
  10. ScriptShader::ScriptShader(MonoObject* managedInstance, const ResourceHandle<Shader>& value)
  11. :TScriptResource(managedInstance, value)
  12. {
  13. }
  14. void ScriptShader::initRuntimeData()
  15. {
  16. metaData.scriptClass->addInternalCall("Internal_GetRef", (void*)&ScriptShader::Internal_getRef);
  17. metaData.scriptClass->addInternalCall("Internal_getParameters", (void*)&ScriptShader::Internal_getParameters);
  18. }
  19. MonoObject*ScriptShader::createInstance()
  20. {
  21. bool dummy = false;
  22. void* ctorParams[1] = { &dummy };
  23. return metaData.scriptClass->createInstance("bool", ctorParams);
  24. }
  25. MonoObject* ScriptShader::Internal_getRef(ScriptShader* thisPtr)
  26. {
  27. return thisPtr->getRRef();
  28. }
  29. MonoArray* ScriptShader::Internal_getParameters(ScriptShader* thisPtr)
  30. {
  31. Vector<ShaderParameter> vec__output;
  32. vec__output = ShaderEx::getParameters(thisPtr->getHandle());
  33. MonoArray* __output;
  34. int arraySize__output = (int)vec__output.size();
  35. ScriptArray array__output = ScriptArray::create<ScriptShaderParameter>(arraySize__output);
  36. for(int i = 0; i < arraySize__output; i++)
  37. {
  38. array__output.set(i, ScriptShaderParameter::toInterop(vec__output[i]));
  39. }
  40. __output = array__output.getInternal();
  41. return __output;
  42. }
  43. }