@deck.gl/extensions 8.6.4 → 8.6.8
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/dist/dist.dev.js +11 -12
- package/dist/es5/brushing/brushing.js +80 -49
- package/dist/es5/brushing/brushing.js.map +1 -1
- package/dist/es5/brushing/shader-module.js +16 -15
- package/dist/es5/brushing/shader-module.js.map +1 -1
- package/dist/es5/clip/clip.js +62 -35
- package/dist/es5/clip/clip.js.map +1 -1
- package/dist/es5/data-filter/aggregator.js +20 -15
- package/dist/es5/data-filter/aggregator.js.map +1 -1
- package/dist/es5/data-filter/data-filter.js +177 -147
- package/dist/es5/data-filter/data-filter.js.map +1 -1
- package/dist/es5/data-filter/shader-module.js +58 -37
- package/dist/es5/data-filter/shader-module.js.map +1 -1
- package/dist/es5/fill-style/fill-style.js +244 -158
- package/dist/es5/fill-style/fill-style.js.map +1 -1
- package/dist/es5/fill-style/shaders.glsl.js +18 -19
- package/dist/es5/fill-style/shaders.glsl.js.map +1 -1
- package/dist/es5/fp64/fp64.js +36 -12
- package/dist/es5/fp64/fp64.js.map +1 -1
- package/dist/es5/fp64/project64.js +18 -20
- package/dist/es5/fp64/project64.js.map +1 -1
- package/dist/es5/index.js +17 -17
- package/dist/es5/path-style/path-style.js +121 -89
- package/dist/es5/path-style/path-style.js.map +1 -1
- package/dist/es5/path-style/shaders.glsl.js +2 -2
- package/dist/es5/path-style/shaders.glsl.js.map +1 -1
- package/dist/esm/clip/clip.js +4 -3
- package/dist/esm/clip/clip.js.map +1 -1
- package/dist/esm/data-filter/data-filter.js +17 -12
- package/dist/esm/data-filter/data-filter.js.map +1 -1
- package/dist/esm/fill-style/fill-style.js +20 -15
- package/dist/esm/fill-style/fill-style.js.map +1 -1
- package/dist/esm/fill-style/shaders.glsl.js +4 -1
- package/dist/esm/fill-style/shaders.glsl.js.map +1 -1
- package/dist/esm/fp64/project64.js +8 -5
- package/dist/esm/fp64/project64.js.map +1 -1
- package/dist/esm/path-style/path-style.js +6 -5
- package/dist/esm/path-style/path-style.js.map +1 -1
- package/dist.min.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/data-filter/shader-module.js"],"names":["vs","fs","getUniforms","opts","extensions","filterRange","filterEnabled","filterTransformSize","filterTransformColor","filterSoftRange","uniforms","Number","isFinite","filter_min","filter_softMin","filter_softMax","filter_max","map","r","filter_enabled","filter_useSoftMargin","Boolean","filter_transformSize","filter_transformColor","getUniforms64","min64High","Math","fround","filter_min64High","max64High","filter_max64High","x","i","inject","shaderModule","name","shaderModule64"],"mappings":";;;;;;AAGA,
|
|
1
|
+
{"version":3,"sources":["../../../src/data-filter/shader-module.js"],"names":["vs","fs","getUniforms","opts","extensions","filterRange","filterEnabled","filterTransformSize","filterTransformColor","filterSoftRange","uniforms","Number","isFinite","filter_min","filter_softMin","filter_softMax","filter_max","map","r","filter_enabled","filter_useSoftMargin","Boolean","filter_transformSize","filter_transformColor","getUniforms64","min64High","Math","fround","filter_min64High","max64High","filter_max64High","x","i","inject","shaderModule","name","shaderModule64"],"mappings":"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","sourcesContent":["/*\n * data filter shader module\n */\nconst vs = `\nuniform DATAFILTER_TYPE filter_min;\nuniform DATAFILTER_TYPE filter_softMin;\nuniform DATAFILTER_TYPE filter_softMax;\nuniform DATAFILTER_TYPE filter_max;\nuniform bool filter_useSoftMargin;\nuniform bool filter_enabled;\nuniform bool filter_transformSize;\n\n#ifdef NON_INSTANCED_MODEL\n #define DATAFILTER_ATTRIB filterValues\n #define DATAFILTER_ATTRIB_64LOW filterValues64Low\n#else\n #define DATAFILTER_ATTRIB instanceFilterValues\n #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low\n#endif\n\nattribute DATAFILTER_TYPE DATAFILTER_ATTRIB;\n#ifdef DATAFILTER_DOUBLE\n attribute DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;\n\n uniform DATAFILTER_TYPE filter_min64High;\n uniform DATAFILTER_TYPE filter_max64High;\n#endif\n\nvarying float dataFilter_value;\n\nfloat dataFilter_reduceValue(float value) {\n return value;\n}\nfloat dataFilter_reduceValue(vec2 value) {\n return min(value.x, value.y);\n}\nfloat dataFilter_reduceValue(vec3 value) {\n return min(min(value.x, value.y), value.z);\n}\nfloat dataFilter_reduceValue(vec4 value) {\n return min(min(value.x, value.y), min(value.z, value.w));\n}\nvoid dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax) {\n if (filter_enabled) {\n if (filter_useSoftMargin) {\n dataFilter_value = dataFilter_reduceValue(\n smoothstep(filter_min, filter_softMin, valueFromMin) *\n (1.0 - smoothstep(filter_softMax, filter_max, valueFromMax))\n );\n } else {\n dataFilter_value = dataFilter_reduceValue(\n step(filter_min, valueFromMin) * step(valueFromMax, filter_max)\n );\n }\n } else {\n dataFilter_value = 1.0;\n }\n}\n`;\n\nconst fs = `\nuniform bool filter_transformColor;\nvarying float dataFilter_value;\n`;\n\nconst getUniforms = opts => {\n if (!opts || !opts.extensions) {\n return {};\n }\n const {\n filterRange = [-1, 1],\n filterEnabled = true,\n filterTransformSize = true,\n filterTransformColor = true\n } = opts;\n const filterSoftRange = opts.filterSoftRange || filterRange;\n\n const uniforms = Number.isFinite(filterRange[0])\n ? {\n filter_min: filterRange[0],\n filter_softMin: filterSoftRange[0],\n filter_softMax: filterSoftRange[1],\n filter_max: filterRange[1]\n }\n : {\n filter_min: filterRange.map(r => r[0]),\n filter_softMin: filterSoftRange.map(r => r[0]),\n filter_softMax: filterSoftRange.map(r => r[1]),\n filter_max: filterRange.map(r => r[1])\n };\n uniforms.filter_enabled = filterEnabled;\n uniforms.filter_useSoftMargin = Boolean(opts.filterSoftRange);\n uniforms.filter_transformSize = filterEnabled && filterTransformSize;\n uniforms.filter_transformColor = filterEnabled && filterTransformColor;\n\n return uniforms;\n};\n\nconst getUniforms64 = opts => {\n if (!opts || !opts.extensions) {\n return {};\n }\n const uniforms = getUniforms(opts);\n if (Number.isFinite(uniforms.filter_min)) {\n const min64High = Math.fround(uniforms.filter_min);\n uniforms.filter_min -= min64High;\n uniforms.filter_softMin -= min64High;\n uniforms.filter_min64High = min64High;\n\n const max64High = Math.fround(uniforms.filter_max);\n uniforms.filter_max -= max64High;\n uniforms.filter_softMax -= max64High;\n uniforms.filter_max64High = max64High;\n } else {\n const min64High = uniforms.filter_min.map(Math.fround);\n uniforms.filter_min = uniforms.filter_min.map((x, i) => x - min64High[i]);\n uniforms.filter_softMin = uniforms.filter_softMin.map((x, i) => x - min64High[i]);\n uniforms.filter_min64High = min64High;\n\n const max64High = uniforms.filter_max.map(Math.fround);\n uniforms.filter_max = uniforms.filter_max.map((x, i) => x - max64High[i]);\n uniforms.filter_softMax = uniforms.filter_softMax.map((x, i) => x - max64High[i]);\n uniforms.filter_max64High = max64High;\n }\n return uniforms;\n};\n\nconst inject = {\n 'vs:#main-start': `\n #ifdef DATAFILTER_DOUBLE\n dataFilter_setValue(\n DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,\n DATAFILTER_ATTRIB - filter_max64High + DATAFILTER_ATTRIB_64LOW\n );\n #else\n dataFilter_setValue(DATAFILTER_ATTRIB, DATAFILTER_ATTRIB);\n #endif\n `,\n\n 'vs:DECKGL_FILTER_SIZE': `\n if (filter_transformSize) {\n size = size * dataFilter_value;\n }\n `,\n\n 'fs:DECKGL_FILTER_COLOR': `\n if (dataFilter_value == 0.0) discard;\n if (filter_transformColor) {\n color.a *= dataFilter_value;\n }\n `\n};\n\nexport const shaderModule = {\n name: 'data-filter',\n vs,\n fs,\n inject,\n getUniforms\n};\n\nexport const shaderModule64 = {\n name: 'data-filter-fp64',\n vs,\n fs,\n inject,\n getUniforms: getUniforms64\n};\n"],"file":"shader-module.js"}
|
|
@@ -1,24 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports.default = void 0;
|
|
7
9
|
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
+
|
|
18
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
+
|
|
20
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
+
|
|
22
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
+
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
|
|
8
26
|
var _core = require("@deck.gl/core");
|
|
9
27
|
|
|
10
28
|
var _core2 = require("@luma.gl/core");
|
|
11
29
|
|
|
12
30
|
var _shaders = require("./shaders.glsl");
|
|
13
31
|
|
|
14
|
-
|
|
32
|
+
var _DEFAULT_TEXTURE_PARA;
|
|
33
|
+
|
|
34
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
35
|
+
|
|
36
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
37
|
+
|
|
38
|
+
var defaultProps = {
|
|
15
39
|
fillPatternEnabled: true,
|
|
16
40
|
fillPatternAtlas: null,
|
|
17
41
|
fillPatternMapping: null,
|
|
18
42
|
fillPatternMask: true,
|
|
19
43
|
getFillPattern: {
|
|
20
44
|
type: 'accessor',
|
|
21
|
-
value: d
|
|
45
|
+
value: function value(d) {
|
|
46
|
+
return d.pattern;
|
|
47
|
+
}
|
|
22
48
|
},
|
|
23
49
|
getFillPatternScale: {
|
|
24
50
|
type: 'accessor',
|
|
@@ -29,194 +55,254 @@ const defaultProps = {
|
|
|
29
55
|
value: [0, 0]
|
|
30
56
|
}
|
|
31
57
|
};
|
|
32
|
-
|
|
33
|
-
[10241]: 9729,
|
|
34
|
-
[10240]: 9729,
|
|
35
|
-
[10242]: 33071,
|
|
36
|
-
[10243]: 33071
|
|
37
|
-
};
|
|
58
|
+
var DEFAULT_TEXTURE_PARAMETERS = (_DEFAULT_TEXTURE_PARA = {}, (0, _defineProperty2.default)(_DEFAULT_TEXTURE_PARA, 10241, 9729), (0, _defineProperty2.default)(_DEFAULT_TEXTURE_PARA, 10240, 9729), (0, _defineProperty2.default)(_DEFAULT_TEXTURE_PARA, 10242, 33071), (0, _defineProperty2.default)(_DEFAULT_TEXTURE_PARA, 10243, 33071), _DEFAULT_TEXTURE_PARA);
|
|
38
59
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
pattern = false
|
|
42
|
-
} = {}) {
|
|
43
|
-
super({
|
|
44
|
-
pattern
|
|
45
|
-
});
|
|
46
|
-
}
|
|
60
|
+
var FillStyleExtension = function (_LayerExtension) {
|
|
61
|
+
(0, _inherits2.default)(FillStyleExtension, _LayerExtension);
|
|
47
62
|
|
|
48
|
-
|
|
49
|
-
return layer.getAttributeManager() && !layer.state.pathTesselator;
|
|
50
|
-
}
|
|
63
|
+
var _super = _createSuper(FillStyleExtension);
|
|
51
64
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
65
|
+
function FillStyleExtension() {
|
|
66
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
67
|
+
_ref$pattern = _ref.pattern,
|
|
68
|
+
pattern = _ref$pattern === void 0 ? false : _ref$pattern;
|
|
56
69
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
70
|
+
(0, _classCallCheck2.default)(this, FillStyleExtension);
|
|
71
|
+
return _super.call(this, {
|
|
72
|
+
pattern: pattern
|
|
73
|
+
});
|
|
60
74
|
}
|
|
61
75
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
76
|
+
(0, _createClass2.default)(FillStyleExtension, [{
|
|
77
|
+
key: "isEnabled",
|
|
78
|
+
value: function isEnabled(layer) {
|
|
79
|
+
return layer.getAttributeManager() && !layer.state.pathTesselator;
|
|
80
|
+
}
|
|
81
|
+
}, {
|
|
82
|
+
key: "getShaders",
|
|
83
|
+
value: function getShaders(extension) {
|
|
84
|
+
if (!extension.isEnabled(this)) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return {
|
|
89
|
+
modules: [extension.opts.pattern && _shaders.patternShaders].filter(Boolean)
|
|
90
|
+
};
|
|
65
91
|
}
|
|
92
|
+
}, {
|
|
93
|
+
key: "initializeState",
|
|
94
|
+
value: function initializeState(context, extension) {
|
|
95
|
+
if (!extension.isEnabled(this)) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
66
98
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
99
|
+
var attributeManager = this.getAttributeManager();
|
|
100
|
+
|
|
101
|
+
if (extension.opts.pattern) {
|
|
102
|
+
attributeManager.add({
|
|
103
|
+
fillPatternFrames: {
|
|
104
|
+
size: 4,
|
|
105
|
+
accessor: 'getFillPattern',
|
|
106
|
+
transform: extension.getPatternFrame.bind(this),
|
|
107
|
+
shaderAttributes: {
|
|
108
|
+
fillPatternFrames: {
|
|
109
|
+
divisor: 0
|
|
110
|
+
},
|
|
111
|
+
instanceFillPatternFrames: {
|
|
112
|
+
divisor: 1
|
|
113
|
+
}
|
|
81
114
|
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
115
|
+
},
|
|
116
|
+
fillPatternScales: {
|
|
117
|
+
size: 1,
|
|
118
|
+
accessor: 'getFillPatternScale',
|
|
119
|
+
defaultValue: 1,
|
|
120
|
+
shaderAttributes: {
|
|
121
|
+
fillPatternScales: {
|
|
122
|
+
divisor: 0
|
|
123
|
+
},
|
|
124
|
+
instanceFillPatternScales: {
|
|
125
|
+
divisor: 1
|
|
126
|
+
}
|
|
94
127
|
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
128
|
+
},
|
|
129
|
+
fillPatternOffsets: {
|
|
130
|
+
size: 2,
|
|
131
|
+
accessor: 'getFillPatternOffset',
|
|
132
|
+
shaderAttributes: {
|
|
133
|
+
fillPatternOffsets: {
|
|
134
|
+
divisor: 0
|
|
135
|
+
},
|
|
136
|
+
instanceFillPatternOffsets: {
|
|
137
|
+
divisor: 1
|
|
138
|
+
}
|
|
106
139
|
}
|
|
107
140
|
}
|
|
108
|
-
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
this.setState({
|
|
145
|
+
emptyTexture: new _core2.Texture2D(this.context.gl, {
|
|
146
|
+
data: new Uint8Array(4),
|
|
147
|
+
width: 1,
|
|
148
|
+
height: 1
|
|
149
|
+
})
|
|
109
150
|
});
|
|
110
151
|
}
|
|
152
|
+
}, {
|
|
153
|
+
key: "updateState",
|
|
154
|
+
value: function updateState(_ref2, extension) {
|
|
155
|
+
var props = _ref2.props,
|
|
156
|
+
oldProps = _ref2.oldProps;
|
|
111
157
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
width: 1,
|
|
116
|
-
height: 1
|
|
117
|
-
})
|
|
118
|
-
});
|
|
119
|
-
}
|
|
158
|
+
if (!extension.isEnabled(this)) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
120
161
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}, extension) {
|
|
125
|
-
if (!extension.isEnabled(this)) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
162
|
+
if (props.fillPatternAtlas && props.fillPatternAtlas !== oldProps.fillPatternAtlas) {
|
|
163
|
+
extension.loadPatternAtlas.call(this, props);
|
|
164
|
+
}
|
|
128
165
|
|
|
129
|
-
|
|
130
|
-
|
|
166
|
+
if (props.fillPatternMapping && props.fillPatternMapping !== oldProps.fillPatternMapping) {
|
|
167
|
+
extension.loadPatternMapping.call(this, props);
|
|
168
|
+
}
|
|
131
169
|
}
|
|
170
|
+
}, {
|
|
171
|
+
key: "draw",
|
|
172
|
+
value: function draw(params, extension) {
|
|
173
|
+
if (!extension.isEnabled(this)) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
132
176
|
|
|
133
|
-
|
|
134
|
-
|
|
177
|
+
var patternTexture = this.state.patternTexture;
|
|
178
|
+
this.setModuleParameters({
|
|
179
|
+
fillPatternTexture: patternTexture || this.state.emptyTexture
|
|
180
|
+
});
|
|
135
181
|
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
182
|
+
}, {
|
|
183
|
+
key: "finalizeState",
|
|
184
|
+
value: function finalizeState() {
|
|
185
|
+
var _this$state = this.state,
|
|
186
|
+
patternTexture = _this$state.patternTexture,
|
|
187
|
+
emptyTexture = _this$state.emptyTexture;
|
|
188
|
+
patternTexture === null || patternTexture === void 0 ? void 0 : patternTexture.delete();
|
|
189
|
+
emptyTexture === null || emptyTexture === void 0 ? void 0 : emptyTexture.delete();
|
|
141
190
|
}
|
|
191
|
+
}, {
|
|
192
|
+
key: "loadPatternAtlas",
|
|
193
|
+
value: function () {
|
|
194
|
+
var _loadPatternAtlas = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(_ref3) {
|
|
195
|
+
var _this$state$patternTe;
|
|
142
196
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
197
|
+
var fillPatternAtlas, fetch, image, patternTexture;
|
|
198
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
199
|
+
while (1) {
|
|
200
|
+
switch (_context.prev = _context.next) {
|
|
201
|
+
case 0:
|
|
202
|
+
fillPatternAtlas = _ref3.fillPatternAtlas, fetch = _ref3.fetch;
|
|
203
|
+
(_this$state$patternTe = this.state.patternTexture) === null || _this$state$patternTe === void 0 ? void 0 : _this$state$patternTe.delete();
|
|
204
|
+
this.setState({
|
|
205
|
+
patternTexture: null
|
|
206
|
+
});
|
|
207
|
+
image = fillPatternAtlas;
|
|
150
208
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
} = this.state;
|
|
156
|
-
patternTexture === null || patternTexture === void 0 ? void 0 : patternTexture.delete();
|
|
157
|
-
emptyTexture === null || emptyTexture === void 0 ? void 0 : emptyTexture.delete();
|
|
158
|
-
}
|
|
209
|
+
if (!(typeof image === 'string')) {
|
|
210
|
+
_context.next = 8;
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
159
213
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
214
|
+
_context.next = 7;
|
|
215
|
+
return fetch(image, {
|
|
216
|
+
propName: 'fillPatternAtlas',
|
|
217
|
+
layer: this
|
|
218
|
+
});
|
|
165
219
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
patternTexture: null
|
|
169
|
-
});
|
|
170
|
-
let image = fillPatternAtlas;
|
|
220
|
+
case 7:
|
|
221
|
+
image = _context.sent;
|
|
171
222
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
223
|
+
case 8:
|
|
224
|
+
patternTexture = image instanceof _core2.Texture2D ? image : new _core2.Texture2D(this.context.gl, {
|
|
225
|
+
data: image,
|
|
226
|
+
parameters: DEFAULT_TEXTURE_PARAMETERS
|
|
227
|
+
});
|
|
228
|
+
this.setState({
|
|
229
|
+
patternTexture: patternTexture
|
|
230
|
+
});
|
|
178
231
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
}
|
|
232
|
+
case 10:
|
|
233
|
+
case "end":
|
|
234
|
+
return _context.stop();
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}, _callee, this);
|
|
238
|
+
}));
|
|
187
239
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
}) {
|
|
192
|
-
this.setState({
|
|
193
|
-
patternMapping: null
|
|
194
|
-
});
|
|
195
|
-
let patternMapping = fillPatternMapping;
|
|
240
|
+
function loadPatternAtlas(_x) {
|
|
241
|
+
return _loadPatternAtlas.apply(this, arguments);
|
|
242
|
+
}
|
|
196
243
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
244
|
+
return loadPatternAtlas;
|
|
245
|
+
}()
|
|
246
|
+
}, {
|
|
247
|
+
key: "loadPatternMapping",
|
|
248
|
+
value: function () {
|
|
249
|
+
var _loadPatternMapping = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(_ref4) {
|
|
250
|
+
var fillPatternMapping, fetch, patternMapping;
|
|
251
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
252
|
+
while (1) {
|
|
253
|
+
switch (_context2.prev = _context2.next) {
|
|
254
|
+
case 0:
|
|
255
|
+
fillPatternMapping = _ref4.fillPatternMapping, fetch = _ref4.fetch;
|
|
256
|
+
this.setState({
|
|
257
|
+
patternMapping: null
|
|
258
|
+
});
|
|
259
|
+
patternMapping = fillPatternMapping;
|
|
203
260
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
this.setNeedsUpdate();
|
|
209
|
-
}
|
|
261
|
+
if (!(typeof patternMapping === 'string')) {
|
|
262
|
+
_context2.next = 7;
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
210
265
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
266
|
+
_context2.next = 6;
|
|
267
|
+
return fetch(patternMapping, {
|
|
268
|
+
propName: 'fillPatternMapping',
|
|
269
|
+
layer: this
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
case 6:
|
|
273
|
+
patternMapping = _context2.sent;
|
|
218
274
|
|
|
219
|
-
|
|
275
|
+
case 7:
|
|
276
|
+
this.setState({
|
|
277
|
+
patternMapping: patternMapping
|
|
278
|
+
});
|
|
279
|
+
this.getAttributeManager().invalidate('getFillPattern');
|
|
280
|
+
this.setNeedsUpdate();
|
|
281
|
+
|
|
282
|
+
case 10:
|
|
283
|
+
case "end":
|
|
284
|
+
return _context2.stop();
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}, _callee2, this);
|
|
288
|
+
}));
|
|
289
|
+
|
|
290
|
+
function loadPatternMapping(_x2) {
|
|
291
|
+
return _loadPatternMapping.apply(this, arguments);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
return loadPatternMapping;
|
|
295
|
+
}()
|
|
296
|
+
}, {
|
|
297
|
+
key: "getPatternFrame",
|
|
298
|
+
value: function getPatternFrame(name) {
|
|
299
|
+
var patternMapping = this.state.patternMapping;
|
|
300
|
+
var def = patternMapping && patternMapping[name];
|
|
301
|
+
return def ? [def.x, def.y, def.width, def.height] : [0, 0, 0, 0];
|
|
302
|
+
}
|
|
303
|
+
}]);
|
|
304
|
+
return FillStyleExtension;
|
|
305
|
+
}(_core.LayerExtension);
|
|
220
306
|
|
|
221
307
|
exports.default = FillStyleExtension;
|
|
222
308
|
FillStyleExtension.extensionName = 'FillStyleExtension';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fill-style/fill-style.js"],"names":["defaultProps","fillPatternEnabled","fillPatternAtlas","fillPatternMapping","fillPatternMask","getFillPattern","type","value","d","pattern","getFillPatternScale","getFillPatternOffset","DEFAULT_TEXTURE_PARAMETERS","FillStyleExtension","LayerExtension","constructor","isEnabled","layer","getAttributeManager","state","pathTesselator","getShaders","extension","modules","opts","patternShaders","filter","Boolean","initializeState","context","attributeManager","add","fillPatternFrames","size","accessor","transform","getPatternFrame","bind","shaderAttributes","divisor","instanceFillPatternFrames","fillPatternScales","defaultValue","instanceFillPatternScales","fillPatternOffsets","instanceFillPatternOffsets","setState","emptyTexture","Texture2D","gl","data","Uint8Array","width","height","updateState","props","oldProps","loadPatternAtlas","call","loadPatternMapping","draw","params","patternTexture","setModuleParameters","fillPatternTexture","finalizeState","delete","fetch","image","propName","parameters","patternMapping","invalidate","setNeedsUpdate","name","def","x","y","extensionName"],"mappings":"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","sourcesContent":["import {LayerExtension} from '@deck.gl/core';\nimport {Texture2D} from '@luma.gl/core';\nimport GL from '@luma.gl/constants';\n\nimport {patternShaders} from './shaders.glsl';\n\nconst defaultProps = {\n fillPatternEnabled: true,\n fillPatternAtlas: null,\n fillPatternMapping: null,\n fillPatternMask: true,\n getFillPattern: {type: 'accessor', value: d => d.pattern},\n getFillPatternScale: {type: 'accessor', value: 1},\n getFillPatternOffset: {type: 'accessor', value: [0, 0]}\n};\n\nconst DEFAULT_TEXTURE_PARAMETERS = {\n [GL.TEXTURE_MIN_FILTER]: GL.LINEAR,\n // GL.LINEAR is the default value but explicitly set it here\n [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,\n // for texture boundary artifact\n [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE\n};\n\nexport default class FillStyleExtension extends LayerExtension {\n constructor({pattern = false} = {}) {\n super({pattern});\n }\n\n isEnabled(layer) {\n return layer.getAttributeManager() && !layer.state.pathTesselator;\n }\n\n getShaders(extension) {\n if (!extension.isEnabled(this)) {\n return null;\n }\n\n return {\n modules: [extension.opts.pattern && patternShaders].filter(Boolean)\n };\n }\n\n initializeState(context, extension) {\n if (!extension.isEnabled(this)) {\n return;\n }\n\n const attributeManager = this.getAttributeManager();\n\n if (extension.opts.pattern) {\n attributeManager.add({\n fillPatternFrames: {\n size: 4,\n accessor: 'getFillPattern',\n transform: extension.getPatternFrame.bind(this),\n shaderAttributes: {\n fillPatternFrames: {\n divisor: 0\n },\n instanceFillPatternFrames: {\n divisor: 1\n }\n }\n },\n fillPatternScales: {\n size: 1,\n accessor: 'getFillPatternScale',\n defaultValue: 1,\n shaderAttributes: {\n fillPatternScales: {\n divisor: 0\n },\n instanceFillPatternScales: {\n divisor: 1\n }\n }\n },\n fillPatternOffsets: {\n size: 2,\n accessor: 'getFillPatternOffset',\n shaderAttributes: {\n fillPatternOffsets: {\n divisor: 0\n },\n instanceFillPatternOffsets: {\n divisor: 1\n }\n }\n }\n });\n }\n this.setState({\n emptyTexture: new Texture2D(this.context.gl, {\n data: new Uint8Array(4),\n width: 1,\n height: 1\n })\n });\n }\n\n updateState({props, oldProps}, extension) {\n if (!extension.isEnabled(this)) {\n return;\n }\n\n if (props.fillPatternAtlas && props.fillPatternAtlas !== oldProps.fillPatternAtlas) {\n extension.loadPatternAtlas.call(this, props);\n }\n if (props.fillPatternMapping && props.fillPatternMapping !== oldProps.fillPatternMapping) {\n extension.loadPatternMapping.call(this, props);\n }\n }\n\n draw(params, extension) {\n if (!extension.isEnabled(this)) {\n return;\n }\n\n const {patternTexture} = this.state;\n this.setModuleParameters({\n fillPatternTexture: patternTexture || this.state.emptyTexture\n });\n }\n\n finalizeState() {\n const {patternTexture, emptyTexture} = this.state;\n patternTexture?.delete();\n emptyTexture?.delete();\n }\n\n async loadPatternAtlas({fillPatternAtlas, fetch}) {\n this.state.patternTexture?.delete();\n this.setState({patternTexture: null});\n let image = fillPatternAtlas;\n if (typeof image === 'string') {\n image = await fetch(image, {propName: 'fillPatternAtlas', layer: this});\n }\n const patternTexture =\n image instanceof Texture2D\n ? image\n : new Texture2D(this.context.gl, {\n data: image,\n parameters: DEFAULT_TEXTURE_PARAMETERS\n });\n this.setState({patternTexture});\n }\n\n async loadPatternMapping({fillPatternMapping, fetch}) {\n this.setState({patternMapping: null});\n let patternMapping = fillPatternMapping;\n if (typeof patternMapping === 'string') {\n patternMapping = await fetch(patternMapping, {\n propName: 'fillPatternMapping',\n layer: this\n });\n }\n this.setState({patternMapping});\n this.getAttributeManager().invalidate('getFillPattern');\n this.setNeedsUpdate();\n }\n\n getPatternFrame(name) {\n const {patternMapping} = this.state;\n const def = patternMapping && patternMapping[name];\n return def ? [def.x, def.y, def.width, def.height] : [0, 0, 0, 0];\n }\n}\n\nFillStyleExtension.extensionName = 'FillStyleExtension';\nFillStyleExtension.defaultProps = defaultProps;\n"],"file":"fill-style.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/fill-style/fill-style.js"],"names":["defaultProps","fillPatternEnabled","fillPatternAtlas","fillPatternMapping","fillPatternMask","getFillPattern","type","value","d","pattern","getFillPatternScale","getFillPatternOffset","DEFAULT_TEXTURE_PARAMETERS","FillStyleExtension","layer","getAttributeManager","state","pathTesselator","extension","isEnabled","modules","opts","patternShaders","filter","Boolean","context","attributeManager","add","fillPatternFrames","size","accessor","transform","getPatternFrame","bind","shaderAttributes","divisor","instanceFillPatternFrames","fillPatternScales","defaultValue","instanceFillPatternScales","fillPatternOffsets","instanceFillPatternOffsets","setState","emptyTexture","Texture2D","gl","data","Uint8Array","width","height","props","oldProps","loadPatternAtlas","call","loadPatternMapping","params","patternTexture","setModuleParameters","fillPatternTexture","delete","fetch","image","propName","parameters","patternMapping","invalidate","setNeedsUpdate","name","def","x","y","LayerExtension","extensionName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAGA;;;;;;;;AAEA,IAAMA,YAAY,GAAG;AACnBC,EAAAA,kBAAkB,EAAE,IADD;AAEnBC,EAAAA,gBAAgB,EAAE,IAFC;AAGnBC,EAAAA,kBAAkB,EAAE,IAHD;AAInBC,EAAAA,eAAe,EAAE,IAJE;AAKnBC,EAAAA,cAAc,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE,eAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,OAAN;AAAA;AAA3B,GALG;AAMnBC,EAAAA,mBAAmB,EAAE;AAACJ,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE;AAA1B,GANF;AAOnBI,EAAAA,oBAAoB,EAAE;AAACL,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE,CAAC,CAAD,EAAI,CAAJ;AAA1B;AAPH,CAArB;AAUA,IAAMK,0BAA0B,oUAAhC;;IASqBC,kB;;;;;AACnB,gCAAoC;AAAA,mFAAJ,EAAI;AAAA,4BAAvBJ,OAAuB;AAAA,QAAvBA,OAAuB,6BAAb,KAAa;;AAAA;AAAA,6BAC5B;AAACA,MAAAA,OAAO,EAAPA;AAAD,KAD4B;AAEnC;;;;WAED,mBAAUK,KAAV,EAAiB;AACf,aAAOA,KAAK,CAACC,mBAAN,MAA+B,CAACD,KAAK,CAACE,KAAN,CAAYC,cAAnD;AACD;;;WAED,oBAAWC,SAAX,EAAsB;AACpB,UAAI,CAACA,SAAS,CAACC,SAAV,CAAoB,IAApB,CAAL,EAAgC;AAC9B,eAAO,IAAP;AACD;;AAED,aAAO;AACLC,QAAAA,OAAO,EAAE,CAACF,SAAS,CAACG,IAAV,CAAeZ,OAAf,IAA0Ba,uBAA3B,EAA2CC,MAA3C,CAAkDC,OAAlD;AADJ,OAAP;AAGD;;;WAED,yBAAgBC,OAAhB,EAAyBP,SAAzB,EAAoC;AAClC,UAAI,CAACA,SAAS,CAACC,SAAV,CAAoB,IAApB,CAAL,EAAgC;AAC9B;AACD;;AAED,UAAMO,gBAAgB,GAAG,KAAKX,mBAAL,EAAzB;;AAEA,UAAIG,SAAS,CAACG,IAAV,CAAeZ,OAAnB,EAA4B;AAC1BiB,QAAAA,gBAAgB,CAACC,GAAjB,CAAqB;AACnBC,UAAAA,iBAAiB,EAAE;AACjBC,YAAAA,IAAI,EAAE,CADW;AAEjBC,YAAAA,QAAQ,EAAE,gBAFO;AAGjBC,YAAAA,SAAS,EAAEb,SAAS,CAACc,eAAV,CAA0BC,IAA1B,CAA+B,IAA/B,CAHM;AAIjBC,YAAAA,gBAAgB,EAAE;AAChBN,cAAAA,iBAAiB,EAAE;AACjBO,gBAAAA,OAAO,EAAE;AADQ,eADH;AAIhBC,cAAAA,yBAAyB,EAAE;AACzBD,gBAAAA,OAAO,EAAE;AADgB;AAJX;AAJD,WADA;AAcnBE,UAAAA,iBAAiB,EAAE;AACjBR,YAAAA,IAAI,EAAE,CADW;AAEjBC,YAAAA,QAAQ,EAAE,qBAFO;AAGjBQ,YAAAA,YAAY,EAAE,CAHG;AAIjBJ,YAAAA,gBAAgB,EAAE;AAChBG,cAAAA,iBAAiB,EAAE;AACjBF,gBAAAA,OAAO,EAAE;AADQ,eADH;AAIhBI,cAAAA,yBAAyB,EAAE;AACzBJ,gBAAAA,OAAO,EAAE;AADgB;AAJX;AAJD,WAdA;AA2BnBK,UAAAA,kBAAkB,EAAE;AAClBX,YAAAA,IAAI,EAAE,CADY;AAElBC,YAAAA,QAAQ,EAAE,sBAFQ;AAGlBI,YAAAA,gBAAgB,EAAE;AAChBM,cAAAA,kBAAkB,EAAE;AAClBL,gBAAAA,OAAO,EAAE;AADS,eADJ;AAIhBM,cAAAA,0BAA0B,EAAE;AAC1BN,gBAAAA,OAAO,EAAE;AADiB;AAJZ;AAHA;AA3BD,SAArB;AAwCD;;AACD,WAAKO,QAAL,CAAc;AACZC,QAAAA,YAAY,EAAE,IAAIC,gBAAJ,CAAc,KAAKnB,OAAL,CAAaoB,EAA3B,EAA+B;AAC3CC,UAAAA,IAAI,EAAE,IAAIC,UAAJ,CAAe,CAAf,CADqC;AAE3CC,UAAAA,KAAK,EAAE,CAFoC;AAG3CC,UAAAA,MAAM,EAAE;AAHmC,SAA/B;AADF,OAAd;AAOD;;;WAED,4BAA+B/B,SAA/B,EAA0C;AAAA,UAA7BgC,KAA6B,SAA7BA,KAA6B;AAAA,UAAtBC,QAAsB,SAAtBA,QAAsB;;AACxC,UAAI,CAACjC,SAAS,CAACC,SAAV,CAAoB,IAApB,CAAL,EAAgC;AAC9B;AACD;;AAED,UAAI+B,KAAK,CAAChD,gBAAN,IAA0BgD,KAAK,CAAChD,gBAAN,KAA2BiD,QAAQ,CAACjD,gBAAlE,EAAoF;AAClFgB,QAAAA,SAAS,CAACkC,gBAAV,CAA2BC,IAA3B,CAAgC,IAAhC,EAAsCH,KAAtC;AACD;;AACD,UAAIA,KAAK,CAAC/C,kBAAN,IAA4B+C,KAAK,CAAC/C,kBAAN,KAA6BgD,QAAQ,CAAChD,kBAAtE,EAA0F;AACxFe,QAAAA,SAAS,CAACoC,kBAAV,CAA6BD,IAA7B,CAAkC,IAAlC,EAAwCH,KAAxC;AACD;AACF;;;WAED,cAAKK,MAAL,EAAarC,SAAb,EAAwB;AACtB,UAAI,CAACA,SAAS,CAACC,SAAV,CAAoB,IAApB,CAAL,EAAgC;AAC9B;AACD;;AAED,UAAOqC,cAAP,GAAyB,KAAKxC,KAA9B,CAAOwC,cAAP;AACA,WAAKC,mBAAL,CAAyB;AACvBC,QAAAA,kBAAkB,EAAEF,cAAc,IAAI,KAAKxC,KAAL,CAAW2B;AAD1B,OAAzB;AAGD;;;WAED,yBAAgB;AACd,wBAAuC,KAAK3B,KAA5C;AAAA,UAAOwC,cAAP,eAAOA,cAAP;AAAA,UAAuBb,YAAvB,eAAuBA,YAAvB;AACAa,MAAAA,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEG,MAAhB;AACAhB,MAAAA,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEgB,MAAd;AACD;;;;wFAED;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwBzD,gBAAAA,gBAAxB,SAAwBA,gBAAxB,EAA0C0D,KAA1C,SAA0CA,KAA1C;AACE,8CAAK5C,KAAL,CAAWwC,cAAX,gFAA2BG,MAA3B;AACA,qBAAKjB,QAAL,CAAc;AAACc,kBAAAA,cAAc,EAAE;AAAjB,iBAAd;AACIK,gBAAAA,KAHN,GAGc3D,gBAHd;;AAAA,sBAIM,OAAO2D,KAAP,KAAiB,QAJvB;AAAA;AAAA;AAAA;;AAAA;AAAA,uBAKkBD,KAAK,CAACC,KAAD,EAAQ;AAACC,kBAAAA,QAAQ,EAAE,kBAAX;AAA+BhD,kBAAAA,KAAK,EAAE;AAAtC,iBAAR,CALvB;;AAAA;AAKI+C,gBAAAA,KALJ;;AAAA;AAOQL,gBAAAA,cAPR,GAQIK,KAAK,YAAYjB,gBAAjB,GACIiB,KADJ,GAEI,IAAIjB,gBAAJ,CAAc,KAAKnB,OAAL,CAAaoB,EAA3B,EAA+B;AAC7BC,kBAAAA,IAAI,EAAEe,KADuB;AAE7BE,kBAAAA,UAAU,EAAEnD;AAFiB,iBAA/B,CAVR;AAcE,qBAAK8B,QAAL,CAAc;AAACc,kBAAAA,cAAc,EAAdA;AAAD,iBAAd;;AAdF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0FAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0BrD,gBAAAA,kBAA1B,SAA0BA,kBAA1B,EAA8CyD,KAA9C,SAA8CA,KAA9C;AACE,qBAAKlB,QAAL,CAAc;AAACsB,kBAAAA,cAAc,EAAE;AAAjB,iBAAd;AACIA,gBAAAA,cAFN,GAEuB7D,kBAFvB;;AAAA,sBAGM,OAAO6D,cAAP,KAA0B,QAHhC;AAAA;AAAA;AAAA;;AAAA;AAAA,uBAI2BJ,KAAK,CAACI,cAAD,EAAiB;AAC3CF,kBAAAA,QAAQ,EAAE,oBADiC;AAE3ChD,kBAAAA,KAAK,EAAE;AAFoC,iBAAjB,CAJhC;;AAAA;AAIIkD,gBAAAA,cAJJ;;AAAA;AASE,qBAAKtB,QAAL,CAAc;AAACsB,kBAAAA,cAAc,EAAdA;AAAD,iBAAd;AACA,qBAAKjD,mBAAL,GAA2BkD,UAA3B,CAAsC,gBAAtC;AACA,qBAAKC,cAAL;;AAXF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAcA,yBAAgBC,IAAhB,EAAsB;AACpB,UAAOH,cAAP,GAAyB,KAAKhD,KAA9B,CAAOgD,cAAP;AACA,UAAMI,GAAG,GAAGJ,cAAc,IAAIA,cAAc,CAACG,IAAD,CAA5C;AACA,aAAOC,GAAG,GAAG,CAACA,GAAG,CAACC,CAAL,EAAQD,GAAG,CAACE,CAAZ,EAAeF,GAAG,CAACpB,KAAnB,EAA0BoB,GAAG,CAACnB,MAA9B,CAAH,GAA2C,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAArD;AACD;;;EA9I6CsB,oB;;;AAiJhD1D,kBAAkB,CAAC2D,aAAnB,GAAmC,oBAAnC;AACA3D,kBAAkB,CAACb,YAAnB,GAAkCA,YAAlC","sourcesContent":["import {LayerExtension} from '@deck.gl/core';\nimport {Texture2D} from '@luma.gl/core';\nimport GL from '@luma.gl/constants';\n\nimport {patternShaders} from './shaders.glsl';\n\nconst defaultProps = {\n fillPatternEnabled: true,\n fillPatternAtlas: null,\n fillPatternMapping: null,\n fillPatternMask: true,\n getFillPattern: {type: 'accessor', value: d => d.pattern},\n getFillPatternScale: {type: 'accessor', value: 1},\n getFillPatternOffset: {type: 'accessor', value: [0, 0]}\n};\n\nconst DEFAULT_TEXTURE_PARAMETERS = {\n [GL.TEXTURE_MIN_FILTER]: GL.LINEAR,\n // GL.LINEAR is the default value but explicitly set it here\n [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,\n // for texture boundary artifact\n [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE\n};\n\nexport default class FillStyleExtension extends LayerExtension {\n constructor({pattern = false} = {}) {\n super({pattern});\n }\n\n isEnabled(layer) {\n return layer.getAttributeManager() && !layer.state.pathTesselator;\n }\n\n getShaders(extension) {\n if (!extension.isEnabled(this)) {\n return null;\n }\n\n return {\n modules: [extension.opts.pattern && patternShaders].filter(Boolean)\n };\n }\n\n initializeState(context, extension) {\n if (!extension.isEnabled(this)) {\n return;\n }\n\n const attributeManager = this.getAttributeManager();\n\n if (extension.opts.pattern) {\n attributeManager.add({\n fillPatternFrames: {\n size: 4,\n accessor: 'getFillPattern',\n transform: extension.getPatternFrame.bind(this),\n shaderAttributes: {\n fillPatternFrames: {\n divisor: 0\n },\n instanceFillPatternFrames: {\n divisor: 1\n }\n }\n },\n fillPatternScales: {\n size: 1,\n accessor: 'getFillPatternScale',\n defaultValue: 1,\n shaderAttributes: {\n fillPatternScales: {\n divisor: 0\n },\n instanceFillPatternScales: {\n divisor: 1\n }\n }\n },\n fillPatternOffsets: {\n size: 2,\n accessor: 'getFillPatternOffset',\n shaderAttributes: {\n fillPatternOffsets: {\n divisor: 0\n },\n instanceFillPatternOffsets: {\n divisor: 1\n }\n }\n }\n });\n }\n this.setState({\n emptyTexture: new Texture2D(this.context.gl, {\n data: new Uint8Array(4),\n width: 1,\n height: 1\n })\n });\n }\n\n updateState({props, oldProps}, extension) {\n if (!extension.isEnabled(this)) {\n return;\n }\n\n if (props.fillPatternAtlas && props.fillPatternAtlas !== oldProps.fillPatternAtlas) {\n extension.loadPatternAtlas.call(this, props);\n }\n if (props.fillPatternMapping && props.fillPatternMapping !== oldProps.fillPatternMapping) {\n extension.loadPatternMapping.call(this, props);\n }\n }\n\n draw(params, extension) {\n if (!extension.isEnabled(this)) {\n return;\n }\n\n const {patternTexture} = this.state;\n this.setModuleParameters({\n fillPatternTexture: patternTexture || this.state.emptyTexture\n });\n }\n\n finalizeState() {\n const {patternTexture, emptyTexture} = this.state;\n patternTexture?.delete();\n emptyTexture?.delete();\n }\n\n async loadPatternAtlas({fillPatternAtlas, fetch}) {\n this.state.patternTexture?.delete();\n this.setState({patternTexture: null});\n let image = fillPatternAtlas;\n if (typeof image === 'string') {\n image = await fetch(image, {propName: 'fillPatternAtlas', layer: this});\n }\n const patternTexture =\n image instanceof Texture2D\n ? image\n : new Texture2D(this.context.gl, {\n data: image,\n parameters: DEFAULT_TEXTURE_PARAMETERS\n });\n this.setState({patternTexture});\n }\n\n async loadPatternMapping({fillPatternMapping, fetch}) {\n this.setState({patternMapping: null});\n let patternMapping = fillPatternMapping;\n if (typeof patternMapping === 'string') {\n patternMapping = await fetch(patternMapping, {\n propName: 'fillPatternMapping',\n layer: this\n });\n }\n this.setState({patternMapping});\n this.getAttributeManager().invalidate('getFillPattern');\n this.setNeedsUpdate();\n }\n\n getPatternFrame(name) {\n const {patternMapping} = this.state;\n const def = patternMapping && patternMapping[name];\n return def ? [def.x, def.y, def.width, def.height] : [0, 0, 0, 0];\n }\n}\n\nFillStyleExtension.extensionName = 'FillStyleExtension';\nFillStyleExtension.defaultProps = defaultProps;\n"],"file":"fill-style.js"}
|
|
@@ -7,19 +7,20 @@ exports.patternShaders = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _core = require("@deck.gl/core");
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
var patternVs = "\n#ifdef NON_INSTANCED_MODEL\n #define FILL_PATTERN_FRAME_ATTRIB fillPatternFrames\n #define FILL_PATTERN_SCALE_ATTRIB fillPatternScales\n #define FILL_PATTERN_OFFSET_ATTRIB fillPatternOffsets\n#else\n #define FILL_PATTERN_FRAME_ATTRIB instanceFillPatternFrames\n #define FILL_PATTERN_SCALE_ATTRIB instanceFillPatternScales\n #define FILL_PATTERN_OFFSET_ATTRIB instanceFillPatternOffsets\n#endif\n\nattribute vec4 FILL_PATTERN_FRAME_ATTRIB;\nattribute float FILL_PATTERN_SCALE_ATTRIB;\nattribute vec2 FILL_PATTERN_OFFSET_ATTRIB;\n\nuniform bool fill_patternEnabled;\nuniform vec2 fill_patternTextureSize;\n\nvarying vec2 fill_uv;\nvarying vec4 fill_patternBounds;\nvarying vec3 fill_patternPlacement;\n";
|
|
11
|
+
var patternFs = "\nuniform bool fill_patternEnabled;\nuniform bool fill_patternMask;\nuniform sampler2D fill_patternTexture;\nuniform vec2 fill_uvCoordinateOrigin;\n\nvarying vec4 fill_patternBounds;\nvarying vec3 fill_patternPlacement;\nvarying vec2 fill_uv;\n\nconst float FILL_UV_SCALE = 512.0 / 40000000.0;\n";
|
|
12
|
+
var inject = {
|
|
13
13
|
'vs:DECKGL_FILTER_GL_POSITION': "\n fill_uv = geometry.position.xy;\n ",
|
|
14
14
|
'vs:DECKGL_FILTER_COLOR': "\n if (fill_patternEnabled) {\n fill_patternBounds = FILL_PATTERN_FRAME_ATTRIB / vec4(fill_patternTextureSize, fill_patternTextureSize);\n fill_patternPlacement.xy = FILL_PATTERN_OFFSET_ATTRIB;\n fill_patternPlacement.z = FILL_PATTERN_SCALE_ATTRIB * FILL_PATTERN_FRAME_ATTRIB.w;\n }\n ",
|
|
15
15
|
'fs:DECKGL_FILTER_COLOR': "\n if (fill_patternEnabled) {\n float scale = FILL_UV_SCALE * fill_patternPlacement.z;\n vec2 patternUV = mod(mod(fill_uvCoordinateOrigin, scale) + fill_uv, scale) / scale;\n patternUV = mod(fill_patternPlacement.xy + patternUV, 1.0);\n\n vec2 texCoords = fill_patternBounds.xy + fill_patternBounds.zw * patternUV;\n\n vec4 patternColor = texture2D(fill_patternTexture, texCoords);\n color.a *= patternColor.a;\n if (!fill_patternMask) {\n color.rgb = patternColor.rgb;\n }\n }\n "
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
function getPatternUniforms(
|
|
18
|
+
function getPatternUniforms() {
|
|
19
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
20
|
+
var uniforms = arguments.length > 1 ? arguments[1] : undefined;
|
|
21
|
+
|
|
19
22
|
if ('fillPatternTexture' in opts) {
|
|
20
|
-
|
|
21
|
-
fillPatternTexture
|
|
22
|
-
} = opts;
|
|
23
|
+
var fillPatternTexture = opts.fillPatternTexture;
|
|
23
24
|
return {
|
|
24
25
|
fill_patternTexture: fillPatternTexture,
|
|
25
26
|
fill_patternTextureSize: [fillPatternTexture.width, fillPatternTexture.height]
|
|
@@ -27,16 +28,14 @@ function getPatternUniforms(opts = {}, uniforms) {
|
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
if (opts.viewport) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
} = uniforms;
|
|
39
|
-
const coordinateOriginCommon = project_uCoordinateSystem === _core.COORDINATE_SYSTEM.CARTESIAN ? project_uCoordinateOrigin : viewport.projectPosition(project_uCoordinateOrigin);
|
|
31
|
+
var viewport = opts.viewport,
|
|
32
|
+
_opts$fillPatternMask = opts.fillPatternMask,
|
|
33
|
+
fillPatternMask = _opts$fillPatternMask === void 0 ? true : _opts$fillPatternMask,
|
|
34
|
+
_opts$fillPatternEnab = opts.fillPatternEnabled,
|
|
35
|
+
fillPatternEnabled = _opts$fillPatternEnab === void 0 ? true : _opts$fillPatternEnab;
|
|
36
|
+
var project_uCoordinateOrigin = uniforms.project_uCoordinateOrigin,
|
|
37
|
+
project_uCoordinateSystem = uniforms.project_uCoordinateSystem;
|
|
38
|
+
var coordinateOriginCommon = project_uCoordinateSystem === _core.COORDINATE_SYSTEM.CARTESIAN ? project_uCoordinateOrigin : viewport.projectPosition(project_uCoordinateOrigin);
|
|
40
39
|
return {
|
|
41
40
|
fill_uvCoordinateOrigin: coordinateOriginCommon.slice(0, 2),
|
|
42
41
|
fill_patternMask: fillPatternMask,
|
|
@@ -47,11 +46,11 @@ function getPatternUniforms(opts = {}, uniforms) {
|
|
|
47
46
|
return {};
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
|
|
49
|
+
var patternShaders = {
|
|
51
50
|
name: 'fill-pattern',
|
|
52
51
|
vs: patternVs,
|
|
53
52
|
fs: patternFs,
|
|
54
|
-
inject,
|
|
53
|
+
inject: inject,
|
|
55
54
|
dependencies: [_core.project],
|
|
56
55
|
getUniforms: getPatternUniforms
|
|
57
56
|
};
|