BsScriptCharDesc.generated.cpp 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #include "BsScriptCharDesc.generated.h"
  2. #include "BsMonoMethod.h"
  3. #include "BsMonoClass.h"
  4. #include "BsMonoUtil.h"
  5. #include "../../../bsf/Source/Foundation/bsfCore/Text/BsFontDesc.h"
  6. #include "BsScriptKerningPair.generated.h"
  7. namespace bs
  8. {
  9. ScriptCharDesc::ScriptCharDesc(MonoObject* managedInstance)
  10. :ScriptObject(managedInstance)
  11. { }
  12. void ScriptCharDesc::initRuntimeData()
  13. { }
  14. MonoObject*ScriptCharDesc::box(const __CharDescInterop& value)
  15. {
  16. return MonoUtil::box(metaData.scriptClass->_getInternalClass(), (void*)&value);
  17. }
  18. __CharDescInterop ScriptCharDesc::unbox(MonoObject* value)
  19. {
  20. return *(__CharDescInterop*)MonoUtil::unbox(value);
  21. }
  22. CharDesc ScriptCharDesc::fromInterop(const __CharDescInterop& value)
  23. {
  24. CharDesc output;
  25. output.charId = value.charId;
  26. output.page = value.page;
  27. output.uvX = value.uvX;
  28. output.uvY = value.uvY;
  29. output.uvWidth = value.uvWidth;
  30. output.uvHeight = value.uvHeight;
  31. output.width = value.width;
  32. output.height = value.height;
  33. output.xOffset = value.xOffset;
  34. output.yOffset = value.yOffset;
  35. output.xAdvance = value.xAdvance;
  36. output.yAdvance = value.yAdvance;
  37. Vector<KerningPair> veckerningPairs;
  38. if(value.kerningPairs != nullptr)
  39. {
  40. ScriptArray arraykerningPairs(value.kerningPairs);
  41. veckerningPairs.resize(arraykerningPairs.size());
  42. for(int i = 0; i < (int)arraykerningPairs.size(); i++)
  43. {
  44. veckerningPairs[i] = arraykerningPairs.get<KerningPair>(i);
  45. }
  46. }
  47. output.kerningPairs = veckerningPairs;
  48. return output;
  49. }
  50. __CharDescInterop ScriptCharDesc::toInterop(const CharDesc& value)
  51. {
  52. __CharDescInterop output;
  53. output.charId = value.charId;
  54. output.page = value.page;
  55. output.uvX = value.uvX;
  56. output.uvY = value.uvY;
  57. output.uvWidth = value.uvWidth;
  58. output.uvHeight = value.uvHeight;
  59. output.width = value.width;
  60. output.height = value.height;
  61. output.xOffset = value.xOffset;
  62. output.yOffset = value.yOffset;
  63. output.xAdvance = value.xAdvance;
  64. output.yAdvance = value.yAdvance;
  65. int arraySizekerningPairs = (int)value.kerningPairs.size();
  66. MonoArray* veckerningPairs;
  67. ScriptArray arraykerningPairs = ScriptArray::create<ScriptKerningPair>(arraySizekerningPairs);
  68. for(int i = 0; i < arraySizekerningPairs; i++)
  69. {
  70. arraykerningPairs.set(i, value.kerningPairs[i]);
  71. }
  72. veckerningPairs = arraykerningPairs.getInternal();
  73. output.kerningPairs = veckerningPairs;
  74. return output;
  75. }
  76. }