1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 | Object.defineProperty(exports, "__esModule", {
|
5 | value: true
|
6 | });
|
7 | exports.extractUniforms = extractUniforms;
|
8 | var _isTypedArray2 = _interopRequireDefault(require("lodash/isTypedArray"));
|
9 | var _isPlainObject2 = _interopRequireDefault(require("lodash/isPlainObject"));
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | function extractUniforms(uniforms) {
|
16 | var extractedUniforms = {};
|
17 | Object.keys(uniforms).forEach(function (uniformName) {
|
18 | extractUniformsRecursively(uniformName, uniforms[uniformName], extractedUniforms, '');
|
19 | });
|
20 | return extractedUniforms;
|
21 | }
|
22 | function extractUniformsRecursively(uniformName, uniformValue, uniforms, prefix) {
|
23 | if (uniformValue === null || typeof uniformValue === 'number' ||
|
24 |
|
25 | typeof uniformValue === 'boolean' ||
|
26 |
|
27 | Array.isArray(uniformValue) && typeof uniformValue[0] === 'number' ||
|
28 |
|
29 | (0, _isTypedArray2.default)(uniformValue) ||
|
30 |
|
31 |
|
32 | uniformValue === '' ||
|
33 |
|
34 | uniformValue.resize !== undefined) {
|
35 | uniforms["".concat(prefix && prefix + '.').concat(uniformName)] = uniformValue;
|
36 | return;
|
37 | }
|
38 |
|
39 |
|
40 | if ((0, _isPlainObject2.default)(uniformValue)) {
|
41 | Object.keys(uniformValue).forEach(function (childName) {
|
42 | extractUniformsRecursively(childName,
|
43 |
|
44 | uniformValue[childName], uniforms, "".concat(prefix && prefix + '.').concat(uniformName));
|
45 | });
|
46 | }
|
47 |
|
48 |
|
49 | if (Array.isArray(uniformValue)) {
|
50 |
|
51 | uniformValue.forEach(function (child, idx) {
|
52 | Object.keys(child).forEach(function (childName) {
|
53 | extractUniformsRecursively(childName,
|
54 |
|
55 | child[childName], uniforms, "".concat(prefix && prefix + '.').concat(uniformName, "[").concat(idx, "]"));
|
56 | });
|
57 | });
|
58 | }
|
59 | }
|
60 |
|
\ | No newline at end of file |