Source: aftereffect/shapes/helpers/arrays.js

  1. /**
  2. * a
  3. * @param {*} type a
  4. * @param {*} len a
  5. * @return {*}
  6. */
  7. function createRegularArray(type, len) {
  8. let i = 0;
  9. const arr = [];
  10. let value;
  11. switch (type) {
  12. case 'int16':
  13. case 'uint8c':
  14. value = 1;
  15. break;
  16. default:
  17. value = 1.1;
  18. break;
  19. }
  20. for (i = 0; i < len; i += 1) {
  21. arr.push(value);
  22. }
  23. return arr;
  24. }
  25. /**
  26. * a
  27. * @param {*} type a
  28. * @param {*} len a
  29. * @return {*}
  30. */
  31. function _createTypedArray(type, len) {
  32. if (type === 'float32') {
  33. return new Float32Array(len);
  34. } else if (type === 'int16') {
  35. return new Int16Array(len);
  36. } else if (type === 'uint8c') {
  37. return new Uint8ClampedArray(len);
  38. }
  39. }
  40. let createTypedArray;
  41. // = createTypedArray
  42. if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {
  43. createTypedArray = _createTypedArray;
  44. } else {
  45. createTypedArray = createRegularArray;
  46. }
  47. /**
  48. * a
  49. * @param {*} len a
  50. * @return {*}
  51. */
  52. function createSizedArray(len) {
  53. return new Array(len);
  54. }
  55. export { createTypedArray, createSizedArray };