@antv/l7-renderer 2.9.21 → 2.9.22-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.js +5 -3
- package/es/regl/ReglAttribute.js +5 -8
- package/es/regl/ReglBuffer.js +9 -8
- package/es/regl/ReglElements.js +8 -8
- package/es/regl/ReglFramebuffer.js +8 -7
- package/es/regl/ReglModel.js +63 -42
- package/es/regl/ReglRenderbuffer.js +7 -7
- package/es/regl/ReglTexture2D.js +12 -10
- package/es/regl/constants.js +5 -2
- package/es/regl/index.js +43 -31
- package/lib/index.js +29 -13
- package/lib/regl/ReglAttribute.js +38 -48
- package/lib/regl/ReglBuffer.js +46 -52
- package/lib/regl/ReglElements.js +45 -51
- package/lib/regl/ReglFramebuffer.js +43 -58
- package/lib/regl/ReglModel.js +217 -283
- package/lib/regl/ReglRenderbuffer.js +42 -50
- package/lib/regl/ReglTexture2D.js +90 -122
- package/lib/regl/constants.js +168 -42
- package/lib/regl/index.js +204 -272
- package/package.json +12 -8
- package/es/index.js.map +0 -1
- package/es/regl/ReglAttribute.js.map +0 -1
- package/es/regl/ReglBuffer.js.map +0 -1
- package/es/regl/ReglElements.js.map +0 -1
- package/es/regl/ReglFramebuffer.js.map +0 -1
- package/es/regl/ReglModel.js.map +0 -1
- package/es/regl/ReglRenderbuffer.js.map +0 -1
- package/es/regl/ReglTexture2D.js.map +0 -1
- package/es/regl/constants.js.map +0 -1
- package/es/regl/index.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/regl/ReglAttribute.js.map +0 -1
- package/lib/regl/ReglBuffer.js.map +0 -1
- package/lib/regl/ReglElements.js.map +0 -1
- package/lib/regl/ReglFramebuffer.js.map +0 -1
- package/lib/regl/ReglModel.js.map +0 -1
- package/lib/regl/ReglRenderbuffer.js.map +0 -1
- package/lib/regl/ReglTexture2D.js.map +0 -1
- package/lib/regl/constants.js.map +0 -1
- package/lib/regl/index.js.map +0 -1
package/lib/regl/index.js
CHANGED
|
@@ -1,289 +1,221 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
Object.
|
|
6
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
22
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
23
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
24
|
+
if (decorator = decorators[i])
|
|
25
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
26
|
+
if (kind && result)
|
|
27
|
+
__defProp(target, key, result);
|
|
28
|
+
return result;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
// src/regl/index.ts
|
|
32
|
+
var regl_exports = {};
|
|
33
|
+
__export(regl_exports, {
|
|
34
|
+
default: () => ReglRendererService
|
|
7
35
|
});
|
|
8
|
-
exports
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var _ReglBuffer = _interopRequireDefault(require("./ReglBuffer"));
|
|
31
|
-
|
|
32
|
-
var _ReglElements = _interopRequireDefault(require("./ReglElements"));
|
|
33
|
-
|
|
34
|
-
var _ReglFramebuffer = _interopRequireDefault(require("./ReglFramebuffer"));
|
|
35
|
-
|
|
36
|
-
var _ReglModel = _interopRequireDefault(require("./ReglModel"));
|
|
37
|
-
|
|
38
|
-
var _ReglTexture2D = _interopRequireDefault(require("./ReglTexture2D"));
|
|
39
|
-
|
|
40
|
-
var _dec, _class;
|
|
41
|
-
|
|
42
|
-
var ReglRendererService = (_dec = (0, _inversify.injectable)(), _dec(_class = function () {
|
|
43
|
-
function ReglRendererService() {
|
|
44
|
-
var _this = this;
|
|
45
|
-
|
|
46
|
-
(0, _classCallCheck2.default)(this, ReglRendererService);
|
|
47
|
-
(0, _defineProperty2.default)(this, "extensionObject", void 0);
|
|
48
|
-
(0, _defineProperty2.default)(this, "gl", void 0);
|
|
49
|
-
(0, _defineProperty2.default)(this, "$container", void 0);
|
|
50
|
-
(0, _defineProperty2.default)(this, "canvas", void 0);
|
|
51
|
-
(0, _defineProperty2.default)(this, "width", void 0);
|
|
52
|
-
(0, _defineProperty2.default)(this, "height", void 0);
|
|
53
|
-
(0, _defineProperty2.default)(this, "isDirty", void 0);
|
|
54
|
-
(0, _defineProperty2.default)(this, "createModel", function (options) {
|
|
55
|
-
return new _ReglModel.default(_this.gl, options);
|
|
56
|
-
});
|
|
57
|
-
(0, _defineProperty2.default)(this, "createAttribute", function (options) {
|
|
58
|
-
return new _ReglAttribute.default(_this.gl, options);
|
|
59
|
-
});
|
|
60
|
-
(0, _defineProperty2.default)(this, "createBuffer", function (options) {
|
|
61
|
-
return new _ReglBuffer.default(_this.gl, options);
|
|
62
|
-
});
|
|
63
|
-
(0, _defineProperty2.default)(this, "createElements", function (options) {
|
|
64
|
-
return new _ReglElements.default(_this.gl, options);
|
|
65
|
-
});
|
|
66
|
-
(0, _defineProperty2.default)(this, "createTexture2D", function (options) {
|
|
67
|
-
return new _ReglTexture2D.default(_this.gl, options);
|
|
68
|
-
});
|
|
69
|
-
(0, _defineProperty2.default)(this, "createFramebuffer", function (options) {
|
|
70
|
-
return new _ReglFramebuffer.default(_this.gl, options);
|
|
71
|
-
});
|
|
72
|
-
(0, _defineProperty2.default)(this, "useFramebuffer", function (framebuffer, drawCommands) {
|
|
73
|
-
_this.gl({
|
|
36
|
+
module.exports = __toCommonJS(regl_exports);
|
|
37
|
+
var import_l7_utils = require("@antv/l7-utils");
|
|
38
|
+
var import_inversify = require("inversify");
|
|
39
|
+
var import_l7regl = __toESM(require("l7regl"));
|
|
40
|
+
var import_reflect_metadata = require("reflect-metadata");
|
|
41
|
+
var import_ReglAttribute = __toESM(require("./ReglAttribute"));
|
|
42
|
+
var import_ReglBuffer = __toESM(require("./ReglBuffer"));
|
|
43
|
+
var import_ReglElements = __toESM(require("./ReglElements"));
|
|
44
|
+
var import_ReglFramebuffer = __toESM(require("./ReglFramebuffer"));
|
|
45
|
+
var import_ReglModel = __toESM(require("./ReglModel"));
|
|
46
|
+
var import_ReglTexture2D = __toESM(require("./ReglTexture2D"));
|
|
47
|
+
var ReglRendererService = class {
|
|
48
|
+
constructor() {
|
|
49
|
+
this.createModel = (options) => new import_ReglModel.default(this.gl, options);
|
|
50
|
+
this.createAttribute = (options) => new import_ReglAttribute.default(this.gl, options);
|
|
51
|
+
this.createBuffer = (options) => new import_ReglBuffer.default(this.gl, options);
|
|
52
|
+
this.createElements = (options) => new import_ReglElements.default(this.gl, options);
|
|
53
|
+
this.createTexture2D = (options) => new import_ReglTexture2D.default(this.gl, options);
|
|
54
|
+
this.createFramebuffer = (options) => new import_ReglFramebuffer.default(this.gl, options);
|
|
55
|
+
this.useFramebuffer = (framebuffer, drawCommands) => {
|
|
56
|
+
this.gl({
|
|
74
57
|
framebuffer: framebuffer ? framebuffer.get() : null
|
|
75
58
|
})(drawCommands);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
var
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
framebuffer = _options$framebuffer === void 0 ? null : _options$framebuffer;
|
|
85
|
-
var reglClearOptions = {
|
|
86
|
-
color: color,
|
|
87
|
-
depth: depth,
|
|
88
|
-
stencil: stencil
|
|
59
|
+
};
|
|
60
|
+
this.clear = (options) => {
|
|
61
|
+
var _a;
|
|
62
|
+
const { color, depth, stencil, framebuffer = null } = options;
|
|
63
|
+
const reglClearOptions = {
|
|
64
|
+
color,
|
|
65
|
+
depth,
|
|
66
|
+
stencil
|
|
89
67
|
};
|
|
90
68
|
reglClearOptions.framebuffer = framebuffer === null ? framebuffer : framebuffer.get();
|
|
91
|
-
(
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
height = options.height;
|
|
112
|
-
var readPixelsOptions = {
|
|
113
|
-
x: x,
|
|
114
|
-
y: y,
|
|
115
|
-
width: width,
|
|
116
|
-
height: height
|
|
69
|
+
(_a = this.gl) == null ? void 0 : _a.clear(reglClearOptions);
|
|
70
|
+
};
|
|
71
|
+
this.viewport = ({
|
|
72
|
+
x,
|
|
73
|
+
y,
|
|
74
|
+
width,
|
|
75
|
+
height
|
|
76
|
+
}) => {
|
|
77
|
+
this.gl._gl.viewport(x, y, width, height);
|
|
78
|
+
this.width = width;
|
|
79
|
+
this.height = height;
|
|
80
|
+
this.gl._refresh();
|
|
81
|
+
};
|
|
82
|
+
this.readPixels = (options) => {
|
|
83
|
+
const { framebuffer, x, y, width, height } = options;
|
|
84
|
+
const readPixelsOptions = {
|
|
85
|
+
x,
|
|
86
|
+
y,
|
|
87
|
+
width,
|
|
88
|
+
height
|
|
117
89
|
};
|
|
118
|
-
|
|
119
90
|
if (framebuffer) {
|
|
120
91
|
readPixelsOptions.framebuffer = framebuffer.get();
|
|
121
92
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
(0, _defineProperty2.default)(this, "getViewportSize", function () {
|
|
93
|
+
return this.gl.read(readPixelsOptions);
|
|
94
|
+
};
|
|
95
|
+
this.getViewportSize = () => {
|
|
126
96
|
return {
|
|
127
|
-
width:
|
|
128
|
-
height:
|
|
97
|
+
width: this.gl._gl.drawingBufferWidth,
|
|
98
|
+
height: this.gl._gl.drawingBufferHeight
|
|
129
99
|
};
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
100
|
+
};
|
|
101
|
+
this.getContainer = () => {
|
|
102
|
+
var _a;
|
|
103
|
+
if (import_l7_utils.isMini) {
|
|
104
|
+
return this.canvas;
|
|
134
105
|
} else {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
return (_this$canvas = _this.canvas) === null || _this$canvas === void 0 ? void 0 : _this$canvas.parentElement;
|
|
106
|
+
return (_a = this.canvas) == null ? void 0 : _a.parentElement;
|
|
138
107
|
}
|
|
108
|
+
};
|
|
109
|
+
this.getCanvas = () => {
|
|
110
|
+
return this.canvas;
|
|
111
|
+
};
|
|
112
|
+
this.getGLContext = () => {
|
|
113
|
+
return this.gl._gl;
|
|
114
|
+
};
|
|
115
|
+
this.destroy = () => {
|
|
116
|
+
var _a, _b, _c;
|
|
117
|
+
this.canvas = null;
|
|
118
|
+
(_c = (_b = (_a = this.gl) == null ? void 0 : _a._gl) == null ? void 0 : _b.getExtension("WEBGL_lose_context")) == null ? void 0 : _c.loseContext();
|
|
119
|
+
this.gl.destroy();
|
|
120
|
+
this.gl = null;
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
async init(canvas, cfg) {
|
|
124
|
+
this.canvas = canvas;
|
|
125
|
+
this.gl = await new Promise((resolve, reject) => {
|
|
126
|
+
(0, import_l7regl.default)({
|
|
127
|
+
canvas: this.canvas,
|
|
128
|
+
attributes: {
|
|
129
|
+
alpha: true,
|
|
130
|
+
antialias: cfg.antialias,
|
|
131
|
+
premultipliedAlpha: true,
|
|
132
|
+
preserveDrawingBuffer: cfg.preserveDrawingBuffer,
|
|
133
|
+
stencil: cfg.stencil
|
|
134
|
+
},
|
|
135
|
+
extensions: [
|
|
136
|
+
"OES_element_index_uint",
|
|
137
|
+
"OES_standard_derivatives",
|
|
138
|
+
"ANGLE_instanced_arrays"
|
|
139
|
+
],
|
|
140
|
+
optionalExtensions: [
|
|
141
|
+
"oes_texture_float_linear",
|
|
142
|
+
"OES_texture_float",
|
|
143
|
+
"EXT_texture_filter_anisotropic",
|
|
144
|
+
"EXT_blend_minmax",
|
|
145
|
+
"WEBGL_depth_texture"
|
|
146
|
+
],
|
|
147
|
+
profile: true,
|
|
148
|
+
onDone: (err, r) => {
|
|
149
|
+
if (err || !r) {
|
|
150
|
+
reject(err);
|
|
151
|
+
}
|
|
152
|
+
resolve(r);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
139
155
|
});
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
|
|
156
|
+
this.extensionObject = {
|
|
157
|
+
OES_texture_float: this.testExtension("OES_texture_float")
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
getPointSizeRange() {
|
|
161
|
+
return this.gl._gl.getParameter(this.gl._gl.ALIASED_POINT_SIZE_RANGE);
|
|
162
|
+
}
|
|
163
|
+
testExtension(name) {
|
|
164
|
+
return !!this.getGLContext().getExtension(name);
|
|
165
|
+
}
|
|
166
|
+
setState() {
|
|
167
|
+
this.gl({
|
|
168
|
+
cull: {
|
|
169
|
+
enable: false,
|
|
170
|
+
face: "back"
|
|
171
|
+
},
|
|
172
|
+
viewport: {
|
|
173
|
+
x: 0,
|
|
174
|
+
y: 0,
|
|
175
|
+
height: this.width,
|
|
176
|
+
width: this.height
|
|
177
|
+
},
|
|
178
|
+
blend: {
|
|
179
|
+
enable: true,
|
|
180
|
+
equation: "add"
|
|
181
|
+
},
|
|
182
|
+
framebuffer: null
|
|
145
183
|
});
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
184
|
+
this.gl._refresh();
|
|
185
|
+
}
|
|
186
|
+
setBaseState() {
|
|
187
|
+
this.gl({
|
|
188
|
+
cull: {
|
|
189
|
+
enable: false,
|
|
190
|
+
face: "back"
|
|
191
|
+
},
|
|
192
|
+
viewport: {
|
|
193
|
+
x: 0,
|
|
194
|
+
y: 0,
|
|
195
|
+
height: this.width,
|
|
196
|
+
width: this.height
|
|
197
|
+
},
|
|
198
|
+
blend: {
|
|
199
|
+
enable: false,
|
|
200
|
+
equation: "add"
|
|
201
|
+
},
|
|
202
|
+
framebuffer: null
|
|
155
203
|
});
|
|
204
|
+
this.gl._refresh();
|
|
156
205
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
attributes: {
|
|
174
|
-
alpha: true,
|
|
175
|
-
antialias: cfg.antialias,
|
|
176
|
-
premultipliedAlpha: true,
|
|
177
|
-
preserveDrawingBuffer: cfg.preserveDrawingBuffer,
|
|
178
|
-
stencil: cfg.stencil
|
|
179
|
-
},
|
|
180
|
-
extensions: ['OES_element_index_uint', 'OES_standard_derivatives', 'ANGLE_instanced_arrays'],
|
|
181
|
-
optionalExtensions: ['oes_texture_float_linear', 'OES_texture_float', 'EXT_texture_filter_anisotropic', 'EXT_blend_minmax', 'WEBGL_depth_texture'],
|
|
182
|
-
profile: true,
|
|
183
|
-
onDone: function onDone(err, r) {
|
|
184
|
-
if (err || !r) {
|
|
185
|
-
reject(err);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
resolve(r);
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
case 3:
|
|
194
|
-
this.gl = _context.sent;
|
|
195
|
-
this.extensionObject = {
|
|
196
|
-
OES_texture_float: this.testExtension('OES_texture_float')
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
case 5:
|
|
200
|
-
case "end":
|
|
201
|
-
return _context.stop();
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}, _callee, this);
|
|
205
|
-
}));
|
|
206
|
-
|
|
207
|
-
function init(_x, _x2) {
|
|
208
|
-
return _init.apply(this, arguments);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
return init;
|
|
212
|
-
}()
|
|
213
|
-
}, {
|
|
214
|
-
key: "getPointSizeRange",
|
|
215
|
-
value: function getPointSizeRange() {
|
|
216
|
-
return this.gl._gl.getParameter(this.gl._gl.ALIASED_POINT_SIZE_RANGE);
|
|
217
|
-
}
|
|
218
|
-
}, {
|
|
219
|
-
key: "testExtension",
|
|
220
|
-
value: function testExtension(name) {
|
|
221
|
-
return !!this.getGLContext().getExtension(name);
|
|
222
|
-
}
|
|
223
|
-
}, {
|
|
224
|
-
key: "setState",
|
|
225
|
-
value: function setState() {
|
|
226
|
-
this.gl({
|
|
227
|
-
cull: {
|
|
228
|
-
enable: false,
|
|
229
|
-
face: 'back'
|
|
230
|
-
},
|
|
231
|
-
viewport: {
|
|
232
|
-
x: 0,
|
|
233
|
-
y: 0,
|
|
234
|
-
height: this.width,
|
|
235
|
-
width: this.height
|
|
236
|
-
},
|
|
237
|
-
blend: {
|
|
238
|
-
enable: true,
|
|
239
|
-
equation: 'add'
|
|
240
|
-
},
|
|
241
|
-
framebuffer: null
|
|
242
|
-
});
|
|
243
|
-
|
|
244
|
-
this.gl._refresh();
|
|
245
|
-
}
|
|
246
|
-
}, {
|
|
247
|
-
key: "setBaseState",
|
|
248
|
-
value: function setBaseState() {
|
|
249
|
-
this.gl({
|
|
250
|
-
cull: {
|
|
251
|
-
enable: false,
|
|
252
|
-
face: 'back'
|
|
253
|
-
},
|
|
254
|
-
viewport: {
|
|
255
|
-
x: 0,
|
|
256
|
-
y: 0,
|
|
257
|
-
height: this.width,
|
|
258
|
-
width: this.height
|
|
259
|
-
},
|
|
260
|
-
blend: {
|
|
261
|
-
enable: false,
|
|
262
|
-
equation: 'add'
|
|
263
|
-
},
|
|
264
|
-
framebuffer: null
|
|
265
|
-
});
|
|
266
|
-
|
|
267
|
-
this.gl._refresh();
|
|
268
|
-
}
|
|
269
|
-
}, {
|
|
270
|
-
key: "setCustomLayerDefaults",
|
|
271
|
-
value: function setCustomLayerDefaults() {
|
|
272
|
-
var gl = this.getGLContext();
|
|
273
|
-
gl.disable(gl.CULL_FACE);
|
|
274
|
-
}
|
|
275
|
-
}, {
|
|
276
|
-
key: "setDirty",
|
|
277
|
-
value: function setDirty(flag) {
|
|
278
|
-
this.isDirty = flag;
|
|
279
|
-
}
|
|
280
|
-
}, {
|
|
281
|
-
key: "getDirty",
|
|
282
|
-
value: function getDirty() {
|
|
283
|
-
return this.isDirty;
|
|
284
|
-
}
|
|
285
|
-
}]);
|
|
286
|
-
return ReglRendererService;
|
|
287
|
-
}()) || _class);
|
|
288
|
-
exports.default = ReglRendererService;
|
|
289
|
-
//# sourceMappingURL=index.js.map
|
|
206
|
+
setCustomLayerDefaults() {
|
|
207
|
+
const gl = this.getGLContext();
|
|
208
|
+
gl.disable(gl.CULL_FACE);
|
|
209
|
+
}
|
|
210
|
+
setDirty(flag) {
|
|
211
|
+
this.isDirty = flag;
|
|
212
|
+
}
|
|
213
|
+
getDirty() {
|
|
214
|
+
return this.isDirty;
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
ReglRendererService = __decorateClass([
|
|
218
|
+
(0, import_inversify.injectable)()
|
|
219
|
+
], ReglRendererService);
|
|
220
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
221
|
+
0 && (module.exports = {});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antv/l7-renderer",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.22-alpha.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -14,11 +14,13 @@
|
|
|
14
14
|
"scripts": {
|
|
15
15
|
"tsc": "tsc --project tsconfig.build.json",
|
|
16
16
|
"clean": "rimraf dist; rimraf es; rimraf lib;",
|
|
17
|
-
"build": "
|
|
18
|
-
"build:cjs": "
|
|
19
|
-
"build:esm": "
|
|
20
|
-
"watch": "
|
|
21
|
-
"sync": "tnpm sync"
|
|
17
|
+
"build": "father build",
|
|
18
|
+
"build:cjs": "BABEL_ENV=cjs babel src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments",
|
|
19
|
+
"build:esm": "BABEL_ENV=esm babel src --root-mode upward --out-dir es --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments",
|
|
20
|
+
"watch": "BABEL_ENV=cjs babel src --watch --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments",
|
|
21
|
+
"sync": "tnpm sync",
|
|
22
|
+
"test": "umi-test --passWithNoTests",
|
|
23
|
+
"test-live": "umi-test --watch"
|
|
22
24
|
},
|
|
23
25
|
"author": "xiaoiver",
|
|
24
26
|
"license": "ISC",
|
|
@@ -26,14 +28,16 @@
|
|
|
26
28
|
"gl": "^4.4.0"
|
|
27
29
|
},
|
|
28
30
|
"dependencies": {
|
|
29
|
-
"@antv/l7-core": "2.9.
|
|
31
|
+
"@antv/l7-core": "2.9.22-alpha.0",
|
|
32
|
+
"@antv/l7-utils": "2.9.22-alpha.0",
|
|
30
33
|
"@babel/runtime": "^7.7.7",
|
|
34
|
+
"gl": "^4.4.0",
|
|
31
35
|
"inversify": "^5.0.1",
|
|
32
36
|
"l7regl": "^0.0.20",
|
|
33
37
|
"lodash": "^4.17.15",
|
|
34
38
|
"reflect-metadata": "^0.1.13"
|
|
35
39
|
},
|
|
36
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "df0d36c7370eaa2712be99e81b558cfb4f1d8322",
|
|
37
41
|
"publishConfig": {
|
|
38
42
|
"access": "public"
|
|
39
43
|
}
|
package/es/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["ReglRendererService"],"mappings":"AAGA,OAAOA,mBAAP,MAAgC,QAAhC;AAEA,SAASA,mBAAT","sourcesContent":["/**\n *\n */\nimport ReglRendererService from './regl';\n\nexport { ReglRendererService };\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglAttribute.ts"],"names":["ReglAttribute","gl","options","buffer","offset","stride","normalized","size","divisor","attribute","get","subData","destroy"],"mappings":";;;;IAWqBA,a;AAInB,yBAAYC,EAAZ,EAA2BC,OAA3B,EAAqE;AAAA;;AAAA;;AAAA;;AACnE,QAAQC,MAAR,GAA8DD,OAA9D,CAAQC,MAAR;AAAA,QAAgBC,MAAhB,GAA8DF,OAA9D,CAAgBE,MAAhB;AAAA,QAAwBC,MAAxB,GAA8DH,OAA9D,CAAwBG,MAAxB;AAAA,QAAgCC,UAAhC,GAA8DJ,OAA9D,CAAgCI,UAAhC;AAAA,QAA4CC,IAA5C,GAA8DL,OAA9D,CAA4CK,IAA5C;AAAA,QAAkDC,OAAlD,GAA8DN,OAA9D,CAAkDM,OAAlD;AACA,SAAKL,MAAL,GAAcA,MAAd;AACA,SAAKM,SAAL,GAAiB;AACfN,MAAAA,MAAM,EAAGA,MAAD,CAAuBO,GAAvB,EADO;AAEfN,MAAAA,MAAM,EAAEA,MAAM,IAAI,CAFH;AAGfC,MAAAA,MAAM,EAAEA,MAAM,IAAI,CAHH;AAIfC,MAAAA,UAAU,EAAEA,UAAU,IAAI,KAJX;AAKfE,MAAAA,OAAO,EAAEA,OAAO,IAAI;AALL,KAAjB;;AAQA,QAAID,IAAJ,EAAU;AACR,WAAKE,SAAL,CAAeF,IAAf,GAAsBA,IAAtB;AACD;AACF;;;;WAED,eAAa;AACX,aAAO,KAAKE,SAAZ;AACD;;;WAED,sBAAoBP,OAApB,EAKG;AACD,WAAKC,MAAL,CAAYQ,OAAZ,CAAoBT,OAApB;AACD;;;WAED,mBAAiB;AACf,WAAKC,MAAL,CAAYS,OAAZ;AACD;;;;;;SAnCkBZ,a","sourcesContent":["import {\n IAttribute,\n IAttributeInitializationOptions,\n IBuffer,\n} from '@antv/l7-core';\nimport regl from 'l7regl';\nimport ReglBuffer from './ReglBuffer';\n\n/**\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#attributes\n */\nexport default class ReglAttribute implements IAttribute {\n private attribute: regl.Attribute;\n private buffer: IBuffer;\n\n constructor(gl: regl.Regl, options: IAttributeInitializationOptions) {\n const { buffer, offset, stride, normalized, size, divisor } = options;\n this.buffer = buffer;\n this.attribute = {\n buffer: (buffer as ReglBuffer).get(),\n offset: offset || 0,\n stride: stride || 0,\n normalized: normalized || false,\n divisor: divisor || 0,\n };\n\n if (size) {\n this.attribute.size = size;\n }\n }\n\n public get() {\n return this.attribute;\n }\n\n public updateBuffer(options: {\n // 用于替换的数据\n data: number[] | number[][] | Uint8Array | Uint16Array | Uint32Array;\n // 原 Buffer 替换位置,单位为 byte\n offset: number;\n }) {\n this.buffer.subData(options);\n }\n\n public destroy() {\n this.buffer.destroy();\n }\n}\n"],"file":"ReglAttribute.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglBuffer.ts"],"names":["gl","dataTypeMap","usageMap","ReglBuffer","reGl","options","data","usage","type","buffer","STATIC_DRAW","UNSIGNED_BYTE","destroy","offset","subdata"],"mappings":";;;AAAA,SAASA,EAAT,QAA0D,eAA1D;AAEA,SAASC,WAAT,EAAsBC,QAAtB,QAAsC,aAAtC;;IAMqBC,U;AAGnB,sBAAYC,IAAZ,EAA6BC,OAA7B,EAAoE;AAAA;;AAAA;;AAClE,QAAQC,IAAR,GAA8BD,OAA9B,CAAQC,IAAR;AAAA,QAAcC,KAAd,GAA8BF,OAA9B,CAAcE,KAAd;AAAA,QAAqBC,IAArB,GAA8BH,OAA9B,CAAqBG,IAArB;AACA,SAAKC,MAAL,GAAcL,IAAI,CAACK,MAAL,CAAY;AACxBH,MAAAA,IAAI,EAAJA,IADwB;AAExBC,MAAAA,KAAK,EAAEL,QAAQ,CAACK,KAAK,IAAIP,EAAE,CAACU,WAAb,CAFS;AAGxBF,MAAAA,IAAI,EAAEP,WAAW,CAACO,IAAI,IAAIR,EAAE,CAACW,aAAZ;AAHO,KAAZ,CAAd;AAMD;;;;WAED,eAAa;AACX,aAAO,KAAKF,MAAZ;AACD;;;WAED,mBAAiB;AACf,WAAKA,MAAL,CAAYG,OAAZ;AACD;;;WAED,uBAMG;AAAA,UALDN,IAKC,QALDA,IAKC;AAAA,UAJDO,MAIC,QAJDA,MAIC;AACD,WAAKJ,MAAL,CAAYK,OAAZ,CAAoBR,IAApB,EAA0BO,MAA1B;AACD;;;;;;SA7BkBV,U","sourcesContent":["import { gl, IBuffer, IBufferInitializationOptions } from '@antv/l7-core';\nimport regl from 'l7regl';\nimport { dataTypeMap, usageMap } from './constants';\n\n/**\n * adaptor for regl.Buffer\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#buffers\n */\nexport default class ReglBuffer implements IBuffer {\n private buffer: regl.Buffer;\n\n constructor(reGl: regl.Regl, options: IBufferInitializationOptions) {\n const { data, usage, type } = options;\n this.buffer = reGl.buffer({\n data,\n usage: usageMap[usage || gl.STATIC_DRAW],\n type: dataTypeMap[type || gl.UNSIGNED_BYTE],\n // length: 0,\n });\n }\n\n public get() {\n return this.buffer;\n }\n\n public destroy() {\n this.buffer.destroy();\n }\n\n public subData({\n data,\n offset,\n }: {\n data: number[] | number[][] | Uint8Array | Uint16Array | Uint32Array;\n offset: number;\n }) {\n this.buffer.subdata(data, offset);\n }\n}\n"],"file":"ReglBuffer.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglElements.ts"],"names":["gl","dataTypeMap","usageMap","ReglElements","reGl","options","data","usage","type","count","elements","STATIC_DRAW","UNSIGNED_BYTE","subdata"],"mappings":";;;AAAA,SAASA,EAAT,QAA8D,eAA9D;AAEA,SAASC,WAAT,EAAsBC,QAAtB,QAAsC,aAAtC;;IAKqBC,Y;AAGnB,wBAAYC,IAAZ,EAA6BC,OAA7B,EAAsE;AAAA;;AAAA;;AACpE,QAAQC,IAAR,GAAqCD,OAArC,CAAQC,IAAR;AAAA,QAAcC,KAAd,GAAqCF,OAArC,CAAcE,KAAd;AAAA,QAAqBC,IAArB,GAAqCH,OAArC,CAAqBG,IAArB;AAAA,QAA2BC,KAA3B,GAAqCJ,OAArC,CAA2BI,KAA3B;AAEA,SAAKC,QAAL,GAAgBN,IAAI,CAACM,QAAL,CAAc;AAC5BJ,MAAAA,IAAI,EAAJA,IAD4B;AAE5BC,MAAAA,KAAK,EAAEL,QAAQ,CAACK,KAAK,IAAIP,EAAE,CAACW,WAAb,CAFa;AAG5BH,MAAAA,IAAI,EAAEP,WAAW,CAACO,IAAI,IAAIR,EAAE,CAACY,aAAZ,CAHW;AAO5BH,MAAAA,KAAK,EAALA;AAP4B,KAAd,CAAhB;AASD;;;;WAED,eAAa;AACX,aAAO,KAAKC,QAAZ;AACD;;;WAED,uBAIG;AAAA,UAHDJ,IAGC,QAHDA,IAGC;AACD,WAAKI,QAAL,CAAcG,OAAd,CAAsBP,IAAtB;AACD;;;WAED,mBAAiB,CAEhB;;;;;;SA/BkBH,Y","sourcesContent":["import { gl, IElements, IElementsInitializationOptions } from '@antv/l7-core';\nimport regl from 'l7regl';\nimport { dataTypeMap, usageMap } from './constants';\n\n/**\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#elements\n */\nexport default class ReglElements implements IElements {\n private elements: regl.Elements;\n\n constructor(reGl: regl.Regl, options: IElementsInitializationOptions) {\n const { data, usage, type, count } = options;\n\n this.elements = reGl.elements({\n data,\n usage: usageMap[usage || gl.STATIC_DRAW],\n type: dataTypeMap[type || gl.UNSIGNED_BYTE] as\n | 'uint8'\n | 'uint16'\n | 'uint32',\n count,\n });\n }\n\n public get() {\n return this.elements;\n }\n\n public subData({\n data,\n }: {\n data: number[] | number[][] | Uint8Array | Uint16Array | Uint32Array;\n }) {\n this.elements.subdata(data);\n }\n\n public destroy() {\n // this.elements.destroy();\n }\n}\n"],"file":"ReglElements.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglFramebuffer.ts"],"names":["ReglFramebuffer","reGl","options","width","height","color","colors","depth","stencil","framebufferOptions","Array","isArray","map","c","get","framebuffer","destroy","resize"],"mappings":";;;;IAcqBA,e;AAGnB,2BAAYC,IAAZ,EAA6BC,OAA7B,EAAyE;AAAA;;AAAA;;AACvE,QAAQC,KAAR,GAAyDD,OAAzD,CAAQC,KAAR;AAAA,QAAeC,MAAf,GAAyDF,OAAzD,CAAeE,MAAf;AAAA,QAAuBC,KAAvB,GAAyDH,OAAzD,CAAuBG,KAAvB;AAAA,QAA8BC,MAA9B,GAAyDJ,OAAzD,CAA8BI,MAA9B;AAAA,QAAsCC,KAAtC,GAAyDL,OAAzD,CAAsCK,KAAtC;AAAA,QAA6CC,OAA7C,GAAyDN,OAAzD,CAA6CM,OAA7C;AAEA,QAAMC,kBAA2C,GAAG;AAClDN,MAAAA,KAAK,EAALA,KADkD;AAElDC,MAAAA,MAAM,EAANA;AAFkD,KAApD;;AAKA,QAAIM,KAAK,CAACC,OAAN,CAAcL,MAAd,CAAJ,EAA2B;AACzBG,MAAAA,kBAAkB,CAACH,MAAnB,GAA4BA,MAAM,CAACM,GAAP,CAAW,UAACC,CAAD;AAAA,eACpCA,CAAD,CAAqBC,GAArB,EADqC;AAAA,OAAX,CAA5B;AAGD;;AAED,QAAIT,KAAK,IAAI,OAAOA,KAAP,KAAiB,SAA9B,EAAyC;AACvCI,MAAAA,kBAAkB,CAACJ,KAAnB,GAA4BA,KAAD,CAAyBS,GAAzB,EAA3B;AACD;;AAID,SAAKC,WAAL,GAAmBd,IAAI,CAACc,WAAL,CAAiBN,kBAAjB,CAAnB;AACD;;;;WAED,eAAa;AACX,aAAO,KAAKM,WAAZ;AACD;;;WAED,mBAAiB;AACf,WAAKA,WAAL,CAAiBC,OAAjB;AACD;;;WAED,sBAAoE;AAAA,UAApDb,KAAoD,QAApDA,KAAoD;AAAA,UAA7CC,MAA6C,QAA7CA,MAA6C;AAClE,WAAKW,WAAL,CAAiBE,MAAjB,CAAwBd,KAAxB,EAA+BC,MAA/B;AACD;;;;;;SApCkBJ,e","sourcesContent":["import {\n gl,\n IFramebuffer,\n IFramebufferInitializationOptions,\n IRenderbuffer,\n ITexture2D,\n} from '@antv/l7-core';\nimport regl from 'l7regl';\nimport ReglTexture2D from './ReglTexture2D';\n\n/**\n * adaptor for regl.Framebuffer\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#framebuffers\n */\nexport default class ReglFramebuffer implements IFramebuffer {\n private framebuffer: regl.Framebuffer;\n\n constructor(reGl: regl.Regl, options: IFramebufferInitializationOptions) {\n const { width, height, color, colors, depth, stencil } = options;\n\n const framebufferOptions: regl.FramebufferOptions = {\n width,\n height,\n };\n\n if (Array.isArray(colors)) {\n framebufferOptions.colors = colors.map((c: ITexture2D | IRenderbuffer) =>\n (c as ReglTexture2D).get(),\n );\n }\n\n if (color && typeof color !== 'boolean') {\n framebufferOptions.color = (color as ReglTexture2D).get();\n }\n\n // TODO: depth & stencil\n\n this.framebuffer = reGl.framebuffer(framebufferOptions);\n }\n\n public get() {\n return this.framebuffer;\n }\n\n public destroy() {\n this.framebuffer.destroy();\n }\n\n public resize({ width, height }: { width: number; height: number }) {\n this.framebuffer.resize(width, height);\n }\n}\n"],"file":"ReglFramebuffer.js"}
|
package/es/regl/ReglModel.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglModel.ts"],"names":["gl","blendEquationMap","blendFuncMap","cullFaceMap","depthFuncMap","primitiveMap","stencilFuncMap","stencilOpMap","ReglModel","reGl","options","vs","fs","attributes","uniforms","primitive","count","elements","depth","blend","stencil","cull","instances","reglUniforms","extractUniforms","Object","keys","forEach","uniformName","prop","reglAttributes","name","get","drawParams","frag","vert","undefined","TRIANGLES","initDepthDrawParams","initBlendDrawParams","initStencilDrawParams","initCullDrawParams","drawCommand","pickDrawParams","enable","drawPickCommand","pick","length","reglDrawProps","type","Array","isArray","BYTES_PER_ELEMENT","destroy","values","attr","destroyed","mask","func","LESS","range","equation","color","srcRGB","SRC_ALPHA","srcAlpha","dstRGB","ONE_MINUS_SRC_ALPHA","dstAlpha","rgb","FUNC_ADD","alpha","cmp","ALWAYS","ref","opFront","fail","KEEP","zfail","zpass","opBack","face","BACK","extractedUniforms","extractUniformsRecursively","uniformValue","prefix","childName","child","idx"],"mappings":";;;;;;;;;;;;AAAA,SACEA,EADF,QAQO,eARP;AAWA,SACEC,gBADF,EAEEC,YAFF,EAGEC,WAHF,EAIEC,YAJF,EAKEC,YALF,EAMEC,cANF,EAOEC,YAPF,QAQO,aARP;;IAiBqBC,S;AAWnB,qBAAYC,IAAZ,EAA6BC,OAA7B,EAAmE;AAAA;;AAAA;;AAAA,uCATtC,KASsC;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,sCAF/D,EAE+D;;AACjE,SAAKD,IAAL,GAAYA,IAAZ;AACA,QACEE,EADF,GAaID,OAbJ,CACEC,EADF;AAAA,QAEEC,EAFF,GAaIF,OAbJ,CAEEE,EAFF;AAAA,QAGEC,UAHF,GAaIH,OAbJ,CAGEG,UAHF;AAAA,QAIEC,QAJF,GAaIJ,OAbJ,CAIEI,QAJF;AAAA,QAKEC,SALF,GAaIL,OAbJ,CAKEK,SALF;AAAA,QAMEC,KANF,GAaIN,OAbJ,CAMEM,KANF;AAAA,QAOEC,QAPF,GAaIP,OAbJ,CAOEO,QAPF;AAAA,QAQEC,KARF,GAaIR,OAbJ,CAQEQ,KARF;AAAA,QASEC,KATF,GAaIT,OAbJ,CASES,KATF;AAAA,QAUEC,OAVF,GAaIV,OAbJ,CAUEU,OAVF;AAAA,QAWEC,IAXF,GAaIX,OAbJ,CAWEW,IAXF;AAAA,QAYEC,SAZF,GAaIZ,OAbJ,CAYEY,SAZF;AAcA,QAAMC,YAAyC,GAAG,EAAlD;AACA,SAAKb,OAAL,GAAeA,OAAf;;AACA,QAAII,QAAJ,EAAc;AACZ,WAAKA,QAAL,GAAgB,KAAKU,eAAL,CAAqBV,QAArB,CAAhB;AACAW,MAAAA,MAAM,CAACC,IAAP,CAAYZ,QAAZ,EAAsBa,OAAtB,CAA8B,UAACC,WAAD,EAAiB;AAG7CL,QAAAA,YAAY,CAACK,WAAD,CAAZ,GAA4BnB,IAAI,CAACoB,IAAL,CAAUD,WAAV,CAA5B;AACD,OAJD;AAKD;;AAED,QAAME,cAAiD,GAAG,EAA1D;AACAL,IAAAA,MAAM,CAACC,IAAP,CAAYb,UAAZ,EAAwBc,OAAxB,CAAgC,UAACI,IAAD,EAAkB;AAChDD,MAAAA,cAAc,CAACC,IAAD,CAAd,GAAwBlB,UAAU,CAACkB,IAAD,CAAX,CAAoCC,GAApC,EAAvB;AACD,KAFD;AAGA,QAAMC,UAA2B,GAAG;AAClCpB,MAAAA,UAAU,EAAEiB,cADsB;AAElCI,MAAAA,IAAI,EAAEtB,EAF4B;AAGlCE,MAAAA,QAAQ,EAAES,YAHwB;AAIlCY,MAAAA,IAAI,EAAExB,EAJ4B;AAKlCQ,MAAAA,KAAK,EAAE,EAL2B;AAMlCJ,MAAAA,SAAS,EACPV,YAAY,CAACU,SAAS,KAAKqB,SAAd,GAA0BpC,EAAE,CAACqC,SAA7B,GAAyCtB,SAA1C;AAPoB,KAApC;;AASA,QAAIO,SAAJ,EAAe;AACbW,MAAAA,UAAU,CAACX,SAAX,GAAuBA,SAAvB;AACD;;AAGD,QAAIN,KAAJ,EAAW;AACTiB,MAAAA,UAAU,CAACjB,KAAX,GAAmBA,KAAnB;AACD;;AAED,QAAIC,QAAJ,EAAc;AACZgB,MAAAA,UAAU,CAAChB,QAAX,GAAuBA,QAAD,CAA2Be,GAA3B,EAAtB;AACD;;AAED,SAAKM,mBAAL,CAAyB;AAAEpB,MAAAA,KAAK,EAALA;AAAF,KAAzB,EAAoCe,UAApC;AACA,SAAKM,mBAAL,CAAyB;AAAEpB,MAAAA,KAAK,EAALA;AAAF,KAAzB,EAAoCc,UAApC;AACA,SAAKO,qBAAL,CAA2B;AAAEpB,MAAAA,OAAO,EAAPA;AAAF,KAA3B,EAAwCa,UAAxC;AACA,SAAKQ,kBAAL,CAAwB;AAAEpB,MAAAA,IAAI,EAAJA;AAAF,KAAxB,EAAkCY,UAAlC;AAEA,SAAKS,WAAL,GAAmBjC,IAAI,CAACwB,UAAD,CAAvB;;AAEA,QAAMU,cAAc,GAAG,WAAUV,UAAV,CAAvB;;AAEAU,IAAAA,cAAc,CAACxB,KAAf,mCACKwB,cAAc,CAACxB,KADpB;AAEEyB,MAAAA,MAAM,EAAE;AAFV;AAKA,SAAKC,eAAL,GAAuBpC,IAAI,CAACkC,cAAD,CAA3B;AACA,SAAKV,UAAL,GAAkBA,UAAlB;AACD;;;;WAED,qCACEpB,UADF,EAEEI,QAFF,EAGE;AACA,UAAMa,cAAiD,GAAG,EAA1D;AACAL,MAAAA,MAAM,CAACC,IAAP,CAAYb,UAAZ,EAAwBc,OAAxB,CAAgC,UAACI,IAAD,EAAkB;AAChDD,QAAAA,cAAc,CAACC,IAAD,CAAd,GAAwBlB,UAAU,CAACkB,IAAD,CAAX,CAAoCC,GAApC,EAAvB;AACD,OAFD;AAGA,WAAKC,UAAL,CAAgBpB,UAAhB,GAA6BiB,cAA7B;AACA,WAAKG,UAAL,CAAgBhB,QAAhB,GAA4BA,QAAD,CAA2Be,GAA3B,EAA3B;AAEA,WAAKU,WAAL,GAAmB,KAAKjC,IAAL,CAAU,KAAKwB,UAAf,CAAnB;;AACA,UAAMU,cAAc,GAAG,WAAU,KAAKV,UAAf,CAAvB;;AACAU,MAAAA,cAAc,CAACxB,KAAf,mCACKwB,cAAc,CAACxB,KADpB;AAEEyB,QAAAA,MAAM,EAAE;AAFV;AAKA,WAAKC,eAAL,GAAuB,KAAKpC,IAAL,CAAUkC,cAAV,CAAvB;AACD;;;WAED,0BAAwB9B,UAAxB,EAAmE;AACjE,UAAMiB,cAAiD,GAAG,EAA1D;AACAL,MAAAA,MAAM,CAACC,IAAP,CAAYb,UAAZ,EAAwBc,OAAxB,CAAgC,UAACI,IAAD,EAAkB;AAChDD,QAAAA,cAAc,CAACC,IAAD,CAAd,GAAwBlB,UAAU,CAACkB,IAAD,CAAX,CAAoCC,GAApC,EAAvB;AACD,OAFD;AAGA,WAAKC,UAAL,CAAgBpB,UAAhB,GAA6BiB,cAA7B;AACA,WAAKY,WAAL,GAAmB,KAAKjC,IAAL,CAAU,KAAKwB,UAAf,CAAnB;;AAEA,UAAMU,cAAc,GAAG,WAAU,KAAKV,UAAf,CAAvB;;AAEAU,MAAAA,cAAc,CAACxB,KAAf,mCACKwB,cAAc,CAACxB,KADpB;AAEEyB,QAAAA,MAAM,EAAE;AAFV;AAKA,WAAKC,eAAL,GAAuB,KAAKpC,IAAL,CAAUkC,cAAV,CAAvB;AACD;;;WAED,qBAAmB7B,QAAnB,EAA0D;AACxD,WAAKA,QAAL,mCACK,KAAKA,QADV,GAEK,KAAKU,eAAL,CAAqBV,QAArB,CAFL;AAID;;;WAED,cAAYJ,OAAZ,EAAwCoC,IAAxC,EAAwD;AAEtD,UACE,KAAKb,UAAL,CAAgBpB,UAAhB,IACAY,MAAM,CAACC,IAAP,CAAY,KAAKO,UAAL,CAAgBpB,UAA5B,EAAwCkC,MAAxC,KAAmD,CAFrD,EAGE;AACA;AACD;;AACD,UAAMjC,QAEL,mCACI,KAAKA,QADT,GAEI,KAAKU,eAAL,CAAqBd,OAAO,CAACI,QAAR,IAAoB,EAAzC,CAFJ,CAFD;;AAMA,UAAMkC,aAOL,GAAG,EAPJ;AAQAvB,MAAAA,MAAM,CAACC,IAAP,CAAYZ,QAAZ,EAAsBa,OAAtB,CAA8B,UAACC,WAAD,EAAyB;AACrD,YAAMqB,IAAI,WAAUnC,QAAQ,CAACc,WAAD,CAAlB,CAAV;;AACA,YACEqB,IAAI,KAAK,SAAT,IACAA,IAAI,KAAK,QADT,IAEAC,KAAK,CAACC,OAAN,CAAcrC,QAAQ,CAACc,WAAD,CAAtB,CAFA,IAIAd,QAAQ,CAACc,WAAD,CAAR,CAAsBwB,iBALxB,EAME;AACAJ,UAAAA,aAAa,CAACpB,WAAD,CAAb,GAA6Bd,QAAQ,CAACc,WAAD,CAArC;AAID,SAXD,MAWO;AACLoB,UAAAA,aAAa,CAACpB,WAAD,CAAb,GAA8Bd,QAAQ,CAACc,WAAD,CAAT,CAEVI,GAFU,EAA7B;AAGD;AACF,OAlBD;;AAoBA,UAAI,CAACc,IAAL,EAAW;AACT,aAAKJ,WAAL,CAAiBM,aAAjB;AACD,OAFD,MAEO;AACL,aAAKH,eAAL,CAAqBG,aAArB;AACD;AAGF;;;WAED,mBAAiB;AAEf,WAAKf,UAAL,CAAgBhB,QAAhB,CAAyBoC,OAAzB;;AACA,UAAI,KAAK3C,OAAL,CAAaG,UAAjB,EAA6B;AAC3BY,QAAAA,MAAM,CAAC6B,MAAP,CAAc,KAAK5C,OAAL,CAAaG,UAA3B,EAAuCc,OAAvC,CAA+C,UAAC4B,IAAD,EAAe;AAE3DA,UAAAA,IAAD,CAAwBF,OAAxB;AACD,SAHD;AAID;;AACD,WAAKG,SAAL,GAAiB,IAAjB;AACD;;;WAKD,mCAEEvB,UAFF,EAGE;AAAA,UAFEf,KAEF,QAFEA,KAEF;;AACA,UAAIA,KAAJ,EAAW;AACTe,QAAAA,UAAU,CAACf,KAAX,GAAmB;AACjB0B,UAAAA,MAAM,EAAE1B,KAAK,CAAC0B,MAAN,KAAiBR,SAAjB,GAA6B,IAA7B,GAAoC,CAAC,CAAClB,KAAK,CAAC0B,MADnC;AAEjBa,UAAAA,IAAI,EAAEvC,KAAK,CAACuC,IAAN,KAAerB,SAAf,GAA2B,IAA3B,GAAkC,CAAC,CAAClB,KAAK,CAACuC,IAF/B;AAGjBC,UAAAA,IAAI,EAAEtD,YAAY,CAACc,KAAK,CAACwC,IAAN,IAAc1D,EAAE,CAAC2D,IAAlB,CAHD;AAIjBC,UAAAA,KAAK,EAAE1C,KAAK,CAAC0C,KAAN,IAAe,CAAC,CAAD,EAAI,CAAJ;AAJL,SAAnB;AAMD;AACF;;;WAKD,oCAEE3B,UAFF,EAGE;AAAA,UAFEd,KAEF,SAFEA,KAEF;;AACA,UAAIA,KAAJ,EAAW;AACT,YAAQyB,MAAR,GAAyDzB,KAAzD,CAAQyB,MAAR;AAAA,YAAgBc,IAAhB,GAAyDvC,KAAzD,CAAgBuC,IAAhB;AAAA,YAAsBG,QAAtB,GAAyD1C,KAAzD,CAAsB0C,QAAtB;AAAA,2BAAyD1C,KAAzD,CAAgC2C,KAAhC;AAAA,YAAgCA,KAAhC,6BAAwC,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAxC;AAEA7B,QAAAA,UAAU,CAACd,KAAX,GAAmB;AACjByB,UAAAA,MAAM,EAAE,CAAC,CAACA,MADO;AAEjBc,UAAAA,IAAI,EAAE;AACJK,YAAAA,MAAM,EAAE7D,YAAY,CAAEwD,IAAI,IAAIA,IAAI,CAACK,MAAd,IAAyB/D,EAAE,CAACgE,SAA7B,CADhB;AAEJC,YAAAA,QAAQ,EAAE/D,YAAY,CAAEwD,IAAI,IAAIA,IAAI,CAACO,QAAd,IAA2BjE,EAAE,CAACgE,SAA/B,CAFlB;AAGJE,YAAAA,MAAM,EAAEhE,YAAY,CAAEwD,IAAI,IAAIA,IAAI,CAACQ,MAAd,IAAyBlE,EAAE,CAACmE,mBAA7B,CAHhB;AAIJC,YAAAA,QAAQ,EACNlE,YAAY,CAAEwD,IAAI,IAAIA,IAAI,CAACU,QAAd,IAA2BpE,EAAE,CAACmE,mBAA/B;AALV,WAFW;AASjBN,UAAAA,QAAQ,EAAE;AACRQ,YAAAA,GAAG,EAAEpE,gBAAgB,CAAE4D,QAAQ,IAAIA,QAAQ,CAACQ,GAAtB,IAA8BrE,EAAE,CAACsE,QAAlC,CADb;AAERC,YAAAA,KAAK,EAAEtE,gBAAgB,CAAE4D,QAAQ,IAAIA,QAAQ,CAACU,KAAtB,IAAgCvE,EAAE,CAACsE,QAApC;AAFf,WATO;AAajBR,UAAAA,KAAK,EAALA;AAbiB,SAAnB;AAeD;AACF;;;WAKD,sCAEE7B,UAFF,EAGE;AAAA,UAFEb,OAEF,SAFEA,OAEF;;AACA,UAAIA,OAAJ,EAAa;AACX,YACEwB,MADF,GAkBIxB,OAlBJ,CACEwB,MADF;AAAA,4BAkBIxB,OAlBJ,CAEEqC,IAFF;AAAA,YAEEA,IAFF,8BAES,CAAC,CAFV;AAAA,4BAkBIrC,OAlBJ,CAGEsC,IAHF;AAAA,YAGEA,IAHF,8BAGS;AACLc,UAAAA,GAAG,EAAExE,EAAE,CAACyE,MADH;AAELC,UAAAA,GAAG,EAAE,CAFA;AAGLjB,UAAAA,IAAI,EAAE,CAAC;AAHF,SAHT;AAAA,+BAkBIrC,OAlBJ,CAQEuD,OARF;AAAA,YAQEA,OARF,iCAQY;AACRC,UAAAA,IAAI,EAAE5E,EAAE,CAAC6E,IADD;AAERC,UAAAA,KAAK,EAAE9E,EAAE,CAAC6E,IAFF;AAGRE,UAAAA,KAAK,EAAE/E,EAAE,CAAC6E;AAHF,SARZ;AAAA,8BAkBIzD,OAlBJ,CAaE4D,MAbF;AAAA,YAaEA,MAbF,gCAaW;AACPJ,UAAAA,IAAI,EAAE5E,EAAE,CAAC6E,IADF;AAEPC,UAAAA,KAAK,EAAE9E,EAAE,CAAC6E,IAFH;AAGPE,UAAAA,KAAK,EAAE/E,EAAE,CAAC6E;AAHH,SAbX;AAmBA5C,QAAAA,UAAU,CAACb,OAAX,GAAqB;AACnBwB,UAAAA,MAAM,EAAE,CAAC,CAACA,MADS;AAEnBa,UAAAA,IAAI,EAAJA,IAFmB;AAGnBC,UAAAA,IAAI,kCACCA,IADD;AAEFc,YAAAA,GAAG,EAAElE,cAAc,CAACoD,IAAI,CAACc,GAAN;AAFjB,YAHe;AAOnBG,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAErE,YAAY,CAACoE,OAAO,CAACC,IAAT,CADX;AAEPE,YAAAA,KAAK,EAAEvE,YAAY,CAACoE,OAAO,CAACG,KAAT,CAFZ;AAGPC,YAAAA,KAAK,EAAExE,YAAY,CAACoE,OAAO,CAACI,KAAT;AAHZ,WAPU;AAYnBC,UAAAA,MAAM,EAAE;AACNJ,YAAAA,IAAI,EAAErE,YAAY,CAACyE,MAAM,CAACJ,IAAR,CADZ;AAENE,YAAAA,KAAK,EAAEvE,YAAY,CAACyE,MAAM,CAACF,KAAR,CAFb;AAGNC,YAAAA,KAAK,EAAExE,YAAY,CAACyE,MAAM,CAACD,KAAR;AAHb;AAZW,SAArB;AAkBD;AACF;;;WAKD,mCAEE9C,UAFF,EAGE;AAAA,UAFEZ,IAEF,SAFEA,IAEF;;AACA,UAAIA,IAAJ,EAAU;AACR,YAAQuB,MAAR,GAAmCvB,IAAnC,CAAQuB,MAAR;AAAA,yBAAmCvB,IAAnC,CAAgB4D,IAAhB;AAAA,YAAgBA,IAAhB,2BAAuBjF,EAAE,CAACkF,IAA1B;AACAjD,QAAAA,UAAU,CAACZ,IAAX,GAAkB;AAChBuB,UAAAA,MAAM,EAAE,CAAC,CAACA,MADM;AAEhBqC,UAAAA,IAAI,EAAE9E,WAAW,CAAC8E,IAAD;AAFD,SAAlB;AAID;AACF;;;WAOD,yBAAwBnE,QAAxB,EAIE;AAAA;;AACA,UAAMqE,iBAAiB,GAAG,EAA1B;AACA1D,MAAAA,MAAM,CAACC,IAAP,CAAYZ,QAAZ,EAAsBa,OAAtB,CAA8B,UAACC,WAAD,EAAiB;AAC7C,QAAA,KAAI,CAACwD,0BAAL,CACExD,WADF,EAEEd,QAAQ,CAACc,WAAD,CAFV,EAGEuD,iBAHF,EAIE,EAJF;AAMD,OAPD;AASA,aAAOA,iBAAP;AACD;;;WAED,oCACEvD,WADF,EAEEyD,YAFF,EAGEvE,QAHF,EAMEwE,MANF,EAOE;AAAA;;AACA,UACED,YAAY,KAAK,IAAjB,IACA,OAAOA,YAAP,KAAwB,QADxB,IAEA,OAAOA,YAAP,KAAwB,SAFxB,IAGCnC,KAAK,CAACC,OAAN,CAAckC,YAAd,KAA+B,OAAOA,YAAY,CAAC,CAAD,CAAnB,KAA2B,QAH3D,IAIA,cAAaA,YAAb,CAJA,IAMAA,YAAY,KAAK,EANjB,IAOA,YAAYA,YARd,EASE;AACAvE,QAAAA,QAAQ,WAAIwE,MAAM,IAAIA,MAAM,GAAG,GAAvB,SAA6B1D,WAA7B,EAAR,GAAsDyD,YAAtD;AACA;AACD;;AAGD,UAAI,eAAcA,YAAd,CAAJ,EAAiC;AAC/B5D,QAAAA,MAAM,CAACC,IAAP,CAAY2D,YAAZ,EAA0B1D,OAA1B,CAAkC,UAAC4D,SAAD,EAAe;AAC/C,UAAA,MAAI,CAACH,0BAAL,CACEG,SADF,EAGEF,YAAY,CAACE,SAAD,CAHd,EAIEzE,QAJF,YAKKwE,MAAM,IAAIA,MAAM,GAAG,GALxB,SAK8B1D,WAL9B;AAOD,SARD;AASD;;AAGD,UAAIsB,KAAK,CAACC,OAAN,CAAckC,YAAd,CAAJ,EAAiC;AAC/BA,QAAAA,YAAY,CAAC1D,OAAb,CAAqB,UAAC6D,KAAD,EAAQC,GAAR,EAAgB;AACnChE,UAAAA,MAAM,CAACC,IAAP,CAAY8D,KAAZ,EAAmB7D,OAAnB,CAA2B,UAAC4D,SAAD,EAAe;AACxC,YAAA,MAAI,CAACH,0BAAL,CACEG,SADF,EAGEC,KAAK,CAACD,SAAD,CAHP,EAIEzE,QAJF,YAKKwE,MAAM,IAAIA,MAAM,GAAG,GALxB,SAK8B1D,WAL9B,cAK6C6D,GAL7C;AAOD,WARD;AASD,SAVD;AAWD;AACF;;;;;;SApXkBjF,S","sourcesContent":["import {\n gl,\n IAttribute,\n IElements,\n IModel,\n IModelDrawOptions,\n IModelInitializationOptions,\n IUniform,\n} from '@antv/l7-core';\nimport regl from 'l7regl';\nimport { cloneDeep, extend, isPlainObject, isTypedArray } from 'lodash';\nimport {\n blendEquationMap,\n blendFuncMap,\n cullFaceMap,\n depthFuncMap,\n primitiveMap,\n stencilFuncMap,\n stencilOpMap,\n} from './constants';\nimport ReglAttribute from './ReglAttribute';\nimport ReglElements from './ReglElements';\nimport ReglFramebuffer from './ReglFramebuffer';\nimport ReglTexture2D from './ReglTexture2D';\n\n/**\n * adaptor for regl.DrawCommand\n */\nexport default class ReglModel implements IModel {\n private reGl: regl.Regl;\n private destroyed: boolean = false;\n private drawCommand: regl.DrawCommand;\n private drawPickCommand: regl.DrawCommand;\n private drawParams: regl.DrawConfig;\n private options: IModelInitializationOptions;\n private uniforms: {\n [key: string]: IUniform;\n } = {};\n\n constructor(reGl: regl.Regl, options: IModelInitializationOptions) {\n this.reGl = reGl;\n const {\n vs,\n fs,\n attributes,\n uniforms,\n primitive,\n count,\n elements,\n depth,\n blend,\n stencil,\n cull,\n instances,\n } = options;\n const reglUniforms: { [key: string]: IUniform } = {};\n this.options = options;\n if (uniforms) {\n this.uniforms = this.extractUniforms(uniforms);\n Object.keys(uniforms).forEach((uniformName) => {\n // use regl prop API\n // @ts-ignore\n reglUniforms[uniformName] = reGl.prop(uniformName);\n });\n }\n\n const reglAttributes: { [key: string]: regl.Attribute } = {};\n Object.keys(attributes).forEach((name: string) => {\n reglAttributes[name] = (attributes[name] as ReglAttribute).get();\n });\n const drawParams: regl.DrawConfig = {\n attributes: reglAttributes,\n frag: fs,\n uniforms: reglUniforms,\n vert: vs,\n blend: {},\n primitive:\n primitiveMap[primitive === undefined ? gl.TRIANGLES : primitive],\n };\n if (instances) {\n drawParams.instances = instances;\n }\n\n // elements 中可能包含 count,此时不应传入\n if (count) {\n drawParams.count = count;\n }\n\n if (elements) {\n drawParams.elements = (elements as ReglElements).get();\n }\n\n this.initDepthDrawParams({ depth }, drawParams);\n this.initBlendDrawParams({ blend }, drawParams);\n this.initStencilDrawParams({ stencil }, drawParams);\n this.initCullDrawParams({ cull }, drawParams);\n\n this.drawCommand = reGl(drawParams);\n\n const pickDrawParams = cloneDeep(drawParams);\n\n pickDrawParams.blend = {\n ...pickDrawParams.blend,\n enable: false,\n };\n\n this.drawPickCommand = reGl(pickDrawParams);\n this.drawParams = drawParams;\n }\n\n public updateAttributesAndElements(\n attributes: { [key: string]: IAttribute },\n elements: IElements,\n ) {\n const reglAttributes: { [key: string]: regl.Attribute } = {};\n Object.keys(attributes).forEach((name: string) => {\n reglAttributes[name] = (attributes[name] as ReglAttribute).get();\n });\n this.drawParams.attributes = reglAttributes;\n this.drawParams.elements = (elements as ReglElements).get();\n\n this.drawCommand = this.reGl(this.drawParams);\n const pickDrawParams = cloneDeep(this.drawParams);\n pickDrawParams.blend = {\n ...pickDrawParams.blend,\n enable: false,\n };\n\n this.drawPickCommand = this.reGl(pickDrawParams);\n }\n\n public updateAttributes(attributes: { [key: string]: IAttribute }) {\n const reglAttributes: { [key: string]: regl.Attribute } = {};\n Object.keys(attributes).forEach((name: string) => {\n reglAttributes[name] = (attributes[name] as ReglAttribute).get();\n });\n this.drawParams.attributes = reglAttributes;\n this.drawCommand = this.reGl(this.drawParams);\n\n const pickDrawParams = cloneDeep(this.drawParams);\n\n pickDrawParams.blend = {\n ...pickDrawParams.blend,\n enable: false,\n };\n\n this.drawPickCommand = this.reGl(pickDrawParams);\n }\n\n public addUniforms(uniforms: { [key: string]: IUniform }) {\n this.uniforms = {\n ...this.uniforms,\n ...this.extractUniforms(uniforms),\n };\n }\n\n public draw(options: IModelDrawOptions, pick?: boolean) {\n // console.log('options', this.drawParams)\n if (\n this.drawParams.attributes &&\n Object.keys(this.drawParams.attributes).length === 0\n ) {\n return;\n }\n const uniforms: {\n [key: string]: IUniform;\n } = {\n ...this.uniforms,\n ...this.extractUniforms(options.uniforms || {}),\n };\n const reglDrawProps: {\n [key: string]:\n | regl.Framebuffer\n | regl.Texture2D\n | number\n | number[]\n | boolean;\n } = {};\n Object.keys(uniforms).forEach((uniformName: string) => {\n const type = typeof uniforms[uniformName];\n if (\n type === 'boolean' ||\n type === 'number' ||\n Array.isArray(uniforms[uniformName]) ||\n // @ts-ignore\n uniforms[uniformName].BYTES_PER_ELEMENT\n ) {\n reglDrawProps[uniformName] = uniforms[uniformName] as\n | number\n | number[]\n | boolean;\n } else {\n reglDrawProps[uniformName] = (uniforms[uniformName] as\n | ReglFramebuffer\n | ReglTexture2D).get();\n }\n });\n // TODO: 在进行拾取操作的绘制中,不应该使用叠加模式 - picking 根据拾取的颜色作为判断的输入,而叠加模式会产生新的,在 id 序列中不存在的颜色\n if (!pick) {\n this.drawCommand(reglDrawProps);\n } else {\n this.drawPickCommand(reglDrawProps);\n }\n // this.drawCommand(reglDrawProps);\n // this.drawPickCommand(reglDrawProps);\n }\n\n public destroy() {\n // @ts-ignore\n this.drawParams.elements.destroy();\n if (this.options.attributes) {\n Object.values(this.options.attributes).forEach((attr: any) => {\n // @ts-ignore\n (attr as ReglAttribute).destroy();\n });\n }\n this.destroyed = true;\n }\n\n /**\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#depth-buffer\n */\n private initDepthDrawParams(\n { depth }: Pick<IModelInitializationOptions, 'depth'>,\n drawParams: regl.DrawConfig,\n ) {\n if (depth) {\n drawParams.depth = {\n enable: depth.enable === undefined ? true : !!depth.enable,\n mask: depth.mask === undefined ? true : !!depth.mask,\n func: depthFuncMap[depth.func || gl.LESS],\n range: depth.range || [0, 1],\n };\n }\n }\n\n /**\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#blending\n */\n private initBlendDrawParams(\n { blend }: Pick<IModelInitializationOptions, 'blend'>,\n drawParams: regl.DrawConfig,\n ) {\n if (blend) {\n const { enable, func, equation, color = [0, 0, 0, 0] } = blend;\n // @ts-ignore\n drawParams.blend = {\n enable: !!enable,\n func: {\n srcRGB: blendFuncMap[(func && func.srcRGB) || gl.SRC_ALPHA],\n srcAlpha: blendFuncMap[(func && func.srcAlpha) || gl.SRC_ALPHA],\n dstRGB: blendFuncMap[(func && func.dstRGB) || gl.ONE_MINUS_SRC_ALPHA],\n dstAlpha:\n blendFuncMap[(func && func.dstAlpha) || gl.ONE_MINUS_SRC_ALPHA],\n },\n equation: {\n rgb: blendEquationMap[(equation && equation.rgb) || gl.FUNC_ADD],\n alpha: blendEquationMap[(equation && equation.alpha) || gl.FUNC_ADD],\n },\n color,\n };\n }\n }\n\n /**\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#stencil\n */\n private initStencilDrawParams(\n { stencil }: Pick<IModelInitializationOptions, 'stencil'>,\n drawParams: regl.DrawConfig,\n ) {\n if (stencil) {\n const {\n enable,\n mask = -1,\n func = {\n cmp: gl.ALWAYS,\n ref: 0,\n mask: -1,\n },\n opFront = {\n fail: gl.KEEP,\n zfail: gl.KEEP,\n zpass: gl.KEEP,\n },\n opBack = {\n fail: gl.KEEP,\n zfail: gl.KEEP,\n zpass: gl.KEEP,\n },\n } = stencil;\n drawParams.stencil = {\n enable: !!enable,\n mask,\n func: {\n ...func,\n cmp: stencilFuncMap[func.cmp],\n },\n opFront: {\n fail: stencilOpMap[opFront.fail],\n zfail: stencilOpMap[opFront.zfail],\n zpass: stencilOpMap[opFront.zpass],\n },\n opBack: {\n fail: stencilOpMap[opBack.fail],\n zfail: stencilOpMap[opBack.zfail],\n zpass: stencilOpMap[opBack.zpass],\n },\n };\n }\n }\n\n /**\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#culling\n */\n private initCullDrawParams(\n { cull }: Pick<IModelInitializationOptions, 'cull'>,\n drawParams: regl.DrawConfig,\n ) {\n if (cull) {\n const { enable, face = gl.BACK } = cull;\n drawParams.cull = {\n enable: !!enable,\n face: cullFaceMap[face],\n };\n }\n }\n\n /**\n * 考虑结构体命名, eg:\n * a: { b: 1 } -> 'a.b'\n * a: [ { b: 1 } ] -> 'a[0].b'\n */\n private extractUniforms(uniforms: {\n [key: string]: IUniform;\n }): {\n [key: string]: IUniform;\n } {\n const extractedUniforms = {};\n Object.keys(uniforms).forEach((uniformName) => {\n this.extractUniformsRecursively(\n uniformName,\n uniforms[uniformName],\n extractedUniforms,\n '',\n );\n });\n\n return extractedUniforms;\n }\n\n private extractUniformsRecursively(\n uniformName: string,\n uniformValue: IUniform,\n uniforms: {\n [key: string]: IUniform;\n },\n prefix: string,\n ) {\n if (\n uniformValue === null ||\n typeof uniformValue === 'number' || // u_A: 1\n typeof uniformValue === 'boolean' || // u_A: false\n (Array.isArray(uniformValue) && typeof uniformValue[0] === 'number') || // u_A: [1, 2, 3]\n isTypedArray(uniformValue) || // u_A: Float32Array\n // @ts-ignore\n uniformValue === '' ||\n 'resize' in uniformValue\n ) {\n uniforms[`${prefix && prefix + '.'}${uniformName}`] = uniformValue;\n return;\n }\n\n // u_Struct.a.b.c\n if (isPlainObject(uniformValue)) {\n Object.keys(uniformValue).forEach((childName) => {\n this.extractUniformsRecursively(\n childName,\n // @ts-ignore\n uniformValue[childName],\n uniforms,\n `${prefix && prefix + '.'}${uniformName}`,\n );\n });\n }\n\n // u_Struct[0].a\n if (Array.isArray(uniformValue)) {\n uniformValue.forEach((child, idx) => {\n Object.keys(child).forEach((childName) => {\n this.extractUniformsRecursively(\n childName,\n // @ts-ignore\n child[childName],\n uniforms,\n `${prefix && prefix + '.'}${uniformName}[${idx}]`,\n );\n });\n });\n }\n }\n}\n"],"file":"ReglModel.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglRenderbuffer.ts"],"names":["formatMap","ReglRenderbuffer","reGl","options","width","height","format","renderbuffer","destroy","resize"],"mappings":";;;AAKA,SAASA,SAAT,QAA0B,aAA1B;;IAMqBC,gB;AAGnB,4BAAYC,IAAZ,EAA6BC,OAA7B,EAA0E;AAAA;;AAAA;;AACxE,QAAQC,KAAR,GAAkCD,OAAlC,CAAQC,KAAR;AAAA,QAAeC,MAAf,GAAkCF,OAAlC,CAAeE,MAAf;AAAA,QAAuBC,MAAvB,GAAkCH,OAAlC,CAAuBG,MAAvB;AACA,SAAKC,YAAL,GAAoBL,IAAI,CAACK,YAAL,CAAkB;AACpCH,MAAAA,KAAK,EAALA,KADoC;AAEpCC,MAAAA,MAAM,EAANA,MAFoC;AAGpCC,MAAAA,MAAM,EAAEN,SAAS,CAACM,MAAD;AAHmB,KAAlB,CAApB;AAKD;;;;WAED,eAAa;AACX,aAAO,KAAKC,YAAZ;AACD;;;WAED,mBAAiB;AACf,WAAKA,YAAL,CAAkBC,OAAlB;AACD;;;WAED,sBAAoE;AAAA,UAApDJ,KAAoD,QAApDA,KAAoD;AAAA,UAA7CC,MAA6C,QAA7CA,MAA6C;AAClE,WAAKE,YAAL,CAAkBE,MAAlB,CAAyBL,KAAzB,EAAgCC,MAAhC;AACD;;;;;;SAtBkBJ,gB","sourcesContent":["import {\n IRenderbuffer,\n IRenderbufferInitializationOptions,\n} from '@antv/l7-core';\nimport regl from 'l7regl';\nimport { formatMap } from './constants';\n\n/**\n * adaptor for regl.Renderbuffer\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#renderbuffers\n */\nexport default class ReglRenderbuffer implements IRenderbuffer {\n private renderbuffer: regl.Renderbuffer;\n\n constructor(reGl: regl.Regl, options: IRenderbufferInitializationOptions) {\n const { width, height, format } = options;\n this.renderbuffer = reGl.renderbuffer({\n width,\n height,\n format: formatMap[format] as regl.RenderbufferFormat,\n });\n }\n\n public get() {\n return this.renderbuffer;\n }\n\n public destroy() {\n this.renderbuffer.destroy();\n }\n\n public resize({ width, height }: { width: number; height: number }) {\n this.renderbuffer.resize(width, height);\n }\n}\n"],"file":"ReglRenderbuffer.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglTexture2D.ts"],"names":["gl","colorSpaceMap","dataTypeMap","filterMap","formatMap","mipmapMap","wrapModeMap","ReglTexture2D","reGl","options","data","type","UNSIGNED_BYTE","width","height","flipY","format","RGBA","mipmap","wrapS","CLAMP_TO_EDGE","wrapT","aniso","alignment","premultiplyAlpha","mag","NEAREST","min","colorSpace","BROWSER_DEFAULT_WEBGL","x","y","copy","textureOptions","texture","props","_texture","bind","resize","isDistroy","destroy"],"mappings":"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","sourcesContent":["import { gl, ITexture2D, ITexture2DInitializationOptions } from '@antv/l7-core';\nimport regl from 'l7regl';\nimport {\n colorSpaceMap,\n dataTypeMap,\n filterMap,\n formatMap,\n mipmapMap,\n wrapModeMap,\n} from './constants';\n\n/**\n * adaptor for regl.Buffer\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#buffers\n */\nexport default class ReglTexture2D implements ITexture2D {\n private texture: regl.Texture2D;\n private width: number;\n private height: number;\n private isDistroy: boolean = false;\n\n constructor(reGl: regl.Regl, options: ITexture2DInitializationOptions) {\n const {\n data,\n type = gl.UNSIGNED_BYTE,\n width,\n height,\n flipY = false,\n format = gl.RGBA,\n mipmap = false,\n wrapS = gl.CLAMP_TO_EDGE,\n wrapT = gl.CLAMP_TO_EDGE,\n aniso = 0,\n alignment = 1,\n premultiplyAlpha = false,\n mag = gl.NEAREST,\n min = gl.NEAREST,\n colorSpace = gl.BROWSER_DEFAULT_WEBGL,\n x = 0,\n y = 0,\n copy = false,\n } = options;\n this.width = width;\n this.height = height;\n\n const textureOptions: regl.Texture2DOptions = {\n width,\n height,\n // @ts-ignore\n type: dataTypeMap[type],\n format: formatMap[format],\n wrapS: wrapModeMap[wrapS],\n wrapT: wrapModeMap[wrapT],\n // @ts-ignore\n mag: filterMap[mag],\n min: filterMap[min],\n alignment,\n flipY,\n colorSpace: colorSpaceMap[colorSpace],\n premultiplyAlpha,\n aniso,\n\n // copy pixels from current bind framebuffer\n x,\n y,\n copy,\n };\n\n if (data) {\n // @ts-ignore\n textureOptions.data = data;\n }\n\n if (typeof mipmap === 'number') {\n textureOptions.mipmap = mipmapMap[mipmap];\n } else if (typeof mipmap === 'boolean') {\n textureOptions.mipmap = mipmap;\n }\n\n this.texture = reGl.texture(textureOptions);\n }\n\n public get() {\n return this.texture;\n }\n public update(props: regl.Texture2DOptions = {}) {\n this.texture(props);\n }\n\n public bind() {\n // @ts-ignore\n this.texture._texture.bind();\n }\n\n public resize({ width, height }: { width: number; height: number }): void {\n this.texture.resize(width, height);\n this.width = width;\n this.height = height;\n }\n\n public destroy() {\n if (!this.isDistroy) {\n this.texture?.destroy();\n }\n this.isDistroy = true;\n }\n}\n"],"file":"ReglTexture2D.js"}
|