@antv/l7-layers 2.15.1 → 2.15.3
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/Geometry/index.js +9 -31
- package/es/Geometry/models/billboard.js +51 -89
- package/es/Geometry/models/plane.js +81 -143
- package/es/Geometry/models/sprite.js +60 -118
- package/es/canvas/index.js +10 -33
- package/es/canvas/models/canvas.js +41 -97
- package/es/citybuliding/building.js +8 -27
- package/es/citybuliding/models/build.js +57 -82
- package/es/core/BaseLayer.js +320 -484
- package/es/core/BaseModel.js +97 -126
- package/es/core/LayerPickService.js +21 -32
- package/es/core/TextureService.js +0 -13
- package/es/core/interface.js +17 -24
- package/es/core/shape/Path.js +13 -20
- package/es/core/shape/extrude.js +10 -31
- package/es/core/triangulation.js +54 -114
- package/es/earth/index.js +9 -33
- package/es/earth/models/atmosphere.js +30 -54
- package/es/earth/models/base.js +47 -85
- package/es/earth/models/bloomsphere.js +30 -54
- package/es/earth/utils.js +9 -13
- package/es/heatmap/index.js +10 -40
- package/es/heatmap/models/grid.js +28 -52
- package/es/heatmap/models/grid3d.js +28 -52
- package/es/heatmap/models/heatmap.js +91 -146
- package/es/heatmap/models/hexagon.js +28 -52
- package/es/heatmap/triangulation.js +0 -4
- package/es/image/index.js +9 -28
- package/es/image/models/image.js +66 -100
- package/es/index.js +9 -17
- package/es/line/index.js +9 -34
- package/es/line/models/arc.js +66 -118
- package/es/line/models/arc_3d.js +60 -108
- package/es/line/models/earthArc_3d.js +63 -111
- package/es/line/models/great_circle.js +56 -100
- package/es/line/models/half.js +46 -77
- package/es/line/models/line.js +94 -148
- package/es/line/models/linearline.js +45 -80
- package/es/line/models/simpleLine.js +41 -74
- package/es/line/models/wall.js +52 -92
- package/es/mask/index.js +9 -28
- package/es/mask/models/fill.js +29 -54
- package/es/plugins/DataMappingPlugin.js +80 -117
- package/es/plugins/DataSourcePlugin.js +45 -68
- package/es/plugins/FeatureScalePlugin.js +67 -122
- package/es/plugins/LayerAnimateStylePlugin.js +0 -5
- package/es/plugins/LayerMaskPlugin.js +3 -11
- package/es/plugins/LayerModelPlugin.js +67 -104
- package/es/plugins/LayerStylePlugin.js +3 -9
- package/es/plugins/LightingPlugin.js +12 -18
- package/es/plugins/MultiPassRendererPlugin.js +11 -16
- package/es/plugins/PixelPickingPlugin.js +12 -21
- package/es/plugins/RegisterStyleAttributePlugin.js +5 -12
- package/es/plugins/ShaderUniformPlugin.js +13 -27
- package/es/plugins/UpdateModelPlugin.js +0 -5
- package/es/plugins/UpdateStyleAttributePlugin.js +5 -11
- package/es/point/index.js +26 -77
- package/es/point/models/earthExtrude.js +61 -102
- package/es/point/models/earthFill.js +57 -87
- package/es/point/models/extrude.js +60 -101
- package/es/point/models/fill.js +70 -100
- package/es/point/models/fillmage.js +63 -107
- package/es/point/models/image.js +48 -88
- package/es/point/models/index.js +2 -2
- package/es/point/models/normal.js +30 -54
- package/es/point/models/radar.js +40 -64
- package/es/point/models/simplePoint.js +41 -69
- package/es/point/models/text.d.ts +2 -0
- package/es/point/models/text.js +214 -295
- package/es/point/shape/extrude.js +4 -13
- package/es/polygon/index.js +11 -40
- package/es/polygon/models/extrude.js +48 -92
- package/es/polygon/models/fill.js +54 -88
- package/es/polygon/models/index.js +3 -2
- package/es/polygon/models/ocean.js +42 -76
- package/es/polygon/models/water.js +37 -71
- package/es/raster/buffers/triangulation.js +2 -4
- package/es/raster/index.js +9 -32
- package/es/raster/models/raster.js +80 -116
- package/es/raster/models/rasterRgb.js +84 -127
- package/es/raster/models/rasterTerrainRgb.js +56 -84
- package/es/tile/interaction/getRasterData.js +14 -20
- package/es/tile/interaction/utils.js +7 -9
- package/es/tile/manager/base.js +63 -96
- package/es/tile/service/TileLayerService.js +30 -52
- package/es/tile/service/TilePickService.js +26 -40
- package/es/tile/service/TileSourceService.js +3 -7
- package/es/tile/tileFactory/DebugTile.js +28 -45
- package/es/tile/tileFactory/ImageTile.js +20 -38
- package/es/tile/tileFactory/MaskTile.js +22 -43
- package/es/tile/tileFactory/RasterRGBTile.js +22 -42
- package/es/tile/tileFactory/RasterTerrainRGBTile.js +20 -38
- package/es/tile/tileFactory/RasterTile.js +30 -53
- package/es/tile/tileFactory/Tile.js +63 -97
- package/es/tile/tileFactory/VectorTile.js +41 -68
- package/es/tile/tileFactory/index.js +0 -11
- package/es/tile/tileFactory/layers/TileDebugLayer.js +6 -27
- package/es/tile/tileFactory/util.js +0 -3
- package/es/tile/tileLayer/BaseLayer.js +105 -146
- package/es/tile/utils.js +1 -1
- package/es/utils/blend.js +0 -2
- package/es/utils/collision-index.js +9 -16
- package/es/utils/dataMappingStyle.js +8 -18
- package/es/utils/extrude_polyline.js +101 -149
- package/es/utils/grid-index.js +2 -27
- package/es/utils/identityScale.js +0 -8
- package/es/utils/layerData.js +30 -44
- package/es/utils/multiPassRender.js +11 -13
- package/es/utils/polylineNormal.js +31 -37
- package/es/utils/simpleLine.js +2 -16
- package/es/utils/stencil.js +2 -3
- package/es/utils/symbol-layout.js +27 -53
- package/es/wind/index.js +9 -29
- package/es/wind/models/utils.js +26 -51
- package/es/wind/models/wind.js +101 -147
- package/es/wind/models/windRender.js +53 -66
- package/lib/Geometry/index.js +9 -38
- package/lib/Geometry/models/billboard.js +51 -97
- package/lib/Geometry/models/index.js +0 -5
- package/lib/Geometry/models/plane.js +79 -151
- package/lib/Geometry/models/sprite.js +60 -127
- package/lib/canvas/index.js +10 -40
- package/lib/canvas/models/canvas.js +41 -101
- package/lib/canvas/models/index.js +0 -3
- package/lib/citybuliding/building.js +8 -35
- package/lib/citybuliding/models/build.js +57 -92
- package/lib/core/BaseLayer.js +320 -478
- package/lib/core/BaseModel.js +97 -139
- package/lib/core/LayerPickService.js +21 -37
- package/lib/core/TextureService.js +0 -16
- package/lib/core/interface.js +21 -31
- package/lib/core/schema.js +0 -1
- package/lib/core/shape/Path.js +14 -31
- package/lib/core/shape/extrude.js +10 -54
- package/lib/core/triangulation.js +53 -153
- package/lib/earth/index.js +9 -43
- package/lib/earth/models/atmosphere.js +30 -63
- package/lib/earth/models/base.js +47 -90
- package/lib/earth/models/bloomsphere.js +30 -63
- package/lib/earth/utils.js +7 -31
- package/lib/heatmap/index.js +10 -48
- package/lib/heatmap/models/grid.js +28 -60
- package/lib/heatmap/models/grid3d.js +28 -60
- package/lib/heatmap/models/heatmap.js +91 -162
- package/lib/heatmap/models/hexagon.js +28 -60
- package/lib/heatmap/models/index.js +0 -6
- package/lib/heatmap/triangulation.js +0 -5
- package/lib/image/index.js +9 -36
- package/lib/image/models/image.js +66 -109
- package/lib/image/models/index.js +0 -3
- package/lib/index.js +7 -61
- package/lib/line/index.js +9 -40
- package/lib/line/models/arc.js +64 -128
- package/lib/line/models/arc_3d.js +58 -119
- package/lib/line/models/earthArc_3d.js +61 -122
- package/lib/line/models/great_circle.js +56 -111
- package/lib/line/models/half.js +46 -87
- package/lib/line/models/index.js +0 -11
- package/lib/line/models/line.js +92 -156
- package/lib/line/models/linearline.js +45 -92
- package/lib/line/models/simpleLine.js +41 -84
- package/lib/line/models/wall.js +52 -103
- package/lib/mask/index.js +9 -36
- package/lib/mask/models/fill.js +29 -63
- package/lib/mask/models/index.js +0 -3
- package/lib/plugins/DataMappingPlugin.js +80 -128
- package/lib/plugins/DataSourcePlugin.js +45 -76
- package/lib/plugins/FeatureScalePlugin.js +67 -138
- package/lib/plugins/LayerAnimateStylePlugin.js +0 -10
- package/lib/plugins/LayerMaskPlugin.js +4 -17
- package/lib/plugins/LayerModelPlugin.js +68 -113
- package/lib/plugins/LayerStylePlugin.js +4 -14
- package/lib/plugins/LightingPlugin.js +12 -25
- package/lib/plugins/MultiPassRendererPlugin.js +11 -22
- package/lib/plugins/PixelPickingPlugin.js +12 -27
- package/lib/plugins/RegisterStyleAttributePlugin.js +5 -19
- package/lib/plugins/ShaderUniformPlugin.js +13 -34
- package/lib/plugins/UpdateModelPlugin.js +1 -10
- package/lib/plugins/UpdateStyleAttributePlugin.js +5 -16
- package/lib/point/index.js +26 -83
- package/lib/point/models/earthExtrude.js +61 -113
- package/lib/point/models/earthFill.js +57 -117
- package/lib/point/models/extrude.js +60 -111
- package/lib/point/models/fill.js +68 -109
- package/lib/point/models/fillmage.js +61 -115
- package/lib/point/models/image.js +48 -98
- package/lib/point/models/index.js +1 -12
- package/lib/point/models/normal.js +30 -64
- package/lib/point/models/radar.js +40 -74
- package/lib/point/models/simplePoint.js +41 -79
- package/lib/point/models/text.js +214 -303
- package/lib/point/shape/extrude.js +4 -20
- package/lib/polygon/index.js +11 -48
- package/lib/polygon/models/extrude.js +48 -103
- package/lib/polygon/models/fill.js +54 -98
- package/lib/polygon/models/index.js +2 -14
- package/lib/polygon/models/ocean.js +42 -88
- package/lib/polygon/models/water.js +37 -82
- package/lib/raster/buffers/triangulation.js +3 -7
- package/lib/raster/index.js +9 -40
- package/lib/raster/models/index.js +0 -5
- package/lib/raster/models/raster.js +80 -125
- package/lib/raster/models/rasterRgb.js +84 -139
- package/lib/raster/models/rasterTerrainRgb.js +56 -93
- package/lib/tile/interaction/getRasterData.js +14 -25
- package/lib/tile/interaction/utils.js +7 -19
- package/lib/tile/manager/base.js +63 -104
- package/lib/tile/service/TileLayerService.js +30 -57
- package/lib/tile/service/TilePickService.js +26 -48
- package/lib/tile/service/TileSourceService.js +2 -16
- package/lib/tile/style/utils.js +0 -3
- package/lib/tile/tileFactory/DebugTile.js +28 -53
- package/lib/tile/tileFactory/ImageTile.js +20 -46
- package/lib/tile/tileFactory/MaskTile.js +22 -51
- package/lib/tile/tileFactory/RasterRGBTile.js +22 -50
- package/lib/tile/tileFactory/RasterTerrainRGBTile.js +20 -46
- package/lib/tile/tileFactory/RasterTile.js +30 -63
- package/lib/tile/tileFactory/Tile.js +63 -102
- package/lib/tile/tileFactory/VectorTile.js +41 -76
- package/lib/tile/tileFactory/index.js +0 -25
- package/lib/tile/tileFactory/layers/TileDebugLayer.js +6 -32
- package/lib/tile/tileFactory/util.js +0 -9
- package/lib/tile/tileLayer/BaseLayer.js +105 -153
- package/lib/tile/utils.js +1 -5
- package/lib/utils/blend.js +0 -5
- package/lib/utils/collision-index.js +9 -25
- package/lib/utils/dataMappingStyle.js +8 -19
- package/lib/utils/extrude_polyline.js +101 -181
- package/lib/utils/grid-index.js +2 -28
- package/lib/utils/identityScale.js +0 -9
- package/lib/utils/layerData.js +30 -49
- package/lib/utils/multiPassRender.js +11 -16
- package/lib/utils/polylineNormal.js +31 -66
- package/lib/utils/simpleLine.js +2 -21
- package/lib/utils/stencil.js +0 -4
- package/lib/utils/symbol-layout.js +27 -55
- package/lib/wind/index.js +9 -37
- package/lib/wind/models/index.js +0 -3
- package/lib/wind/models/utils.js +26 -62
- package/lib/wind/models/wind.js +101 -157
- package/lib/wind/models/windRender.js +53 -71
- package/lib/wind/models/windShader.js +0 -1
- package/package.json +7 -7
package/lib/wind/index.js
CHANGED
|
@@ -1,90 +1,63 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
|
|
12
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
|
|
14
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
-
|
|
16
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
-
|
|
18
12
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
19
|
-
|
|
20
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
21
|
-
|
|
22
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
23
|
-
|
|
24
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
25
|
-
|
|
26
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
|
-
|
|
28
17
|
var _BaseLayer2 = _interopRequireDefault(require("../core/BaseLayer"));
|
|
29
|
-
|
|
30
18
|
var _models = _interopRequireDefault(require("./models"));
|
|
31
|
-
|
|
32
19
|
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); }; }
|
|
33
|
-
|
|
34
20
|
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; } }
|
|
35
|
-
|
|
36
21
|
var WindLayer = /*#__PURE__*/function (_BaseLayer) {
|
|
37
22
|
(0, _inherits2.default)(WindLayer, _BaseLayer);
|
|
38
|
-
|
|
39
23
|
var _super = _createSuper(WindLayer);
|
|
40
|
-
|
|
41
24
|
function WindLayer() {
|
|
42
25
|
var _this;
|
|
43
|
-
|
|
44
26
|
(0, _classCallCheck2.default)(this, WindLayer);
|
|
45
|
-
|
|
46
27
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
47
28
|
args[_key] = arguments[_key];
|
|
48
29
|
}
|
|
49
|
-
|
|
50
30
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
51
31
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", 'WindLayer');
|
|
52
32
|
return _this;
|
|
53
33
|
}
|
|
54
|
-
|
|
55
34
|
(0, _createClass2.default)(WindLayer, [{
|
|
56
35
|
key: "buildModels",
|
|
57
36
|
value: function () {
|
|
58
37
|
var _buildModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
59
38
|
var modelType;
|
|
60
39
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
61
|
-
while (1) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
case "end":
|
|
71
|
-
return _context.stop();
|
|
72
|
-
}
|
|
40
|
+
while (1) switch (_context.prev = _context.next) {
|
|
41
|
+
case 0:
|
|
42
|
+
modelType = this.getModelType();
|
|
43
|
+
this.layerModel = new _models.default[modelType](this);
|
|
44
|
+
_context.next = 4;
|
|
45
|
+
return this.initLayerModels();
|
|
46
|
+
case 4:
|
|
47
|
+
case "end":
|
|
48
|
+
return _context.stop();
|
|
73
49
|
}
|
|
74
50
|
}, _callee, this);
|
|
75
51
|
}));
|
|
76
|
-
|
|
77
52
|
function buildModels() {
|
|
78
53
|
return _buildModels.apply(this, arguments);
|
|
79
54
|
}
|
|
80
|
-
|
|
81
55
|
return buildModels;
|
|
82
56
|
}()
|
|
83
57
|
}, {
|
|
84
58
|
key: "renderModels",
|
|
85
59
|
value: function renderModels() {
|
|
86
60
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
87
|
-
|
|
88
61
|
if (this.layerModel) {
|
|
89
62
|
this.layerModel.render(options); // 独立的渲染流程
|
|
90
63
|
}
|
|
@@ -108,5 +81,4 @@ var WindLayer = /*#__PURE__*/function (_BaseLayer) {
|
|
|
108
81
|
}]);
|
|
109
82
|
return WindLayer;
|
|
110
83
|
}(_BaseLayer2.default);
|
|
111
|
-
|
|
112
84
|
exports.default = WindLayer;
|
package/lib/wind/models/index.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _wind = _interopRequireDefault(require("./wind"));
|
|
11
|
-
|
|
12
9
|
var WindModels = {
|
|
13
10
|
wind: _wind.default
|
|
14
11
|
};
|
package/lib/wind/models/utils.js
CHANGED
|
@@ -14,34 +14,29 @@ exports.createTexture = createTexture;
|
|
|
14
14
|
exports.initFramebuffer = initFramebuffer;
|
|
15
15
|
exports.loadShader = loadShader;
|
|
16
16
|
exports.setUnifrom = setUnifrom;
|
|
17
|
-
|
|
18
17
|
function createProgram(gl, vshader, fshader) {
|
|
19
18
|
// Create shader object
|
|
20
19
|
var vertexShader = loadShader(gl, gl.VERTEX_SHADER, vshader); // 创建顶点着色器对象
|
|
21
|
-
|
|
22
20
|
var fragmentShader = loadShader(gl, gl.FRAGMENT_SHADER, fshader); // 创建片元着色器对象
|
|
23
|
-
|
|
24
21
|
if (!vertexShader || !fragmentShader) {
|
|
25
22
|
return null;
|
|
26
|
-
}
|
|
27
|
-
|
|
23
|
+
}
|
|
28
24
|
|
|
25
|
+
// Create a program object
|
|
29
26
|
var program = gl.createProgram(); // 创建程序对象
|
|
30
|
-
|
|
31
27
|
if (!program) {
|
|
32
28
|
return null;
|
|
33
|
-
}
|
|
34
|
-
|
|
29
|
+
}
|
|
35
30
|
|
|
31
|
+
// Attach the shader objects
|
|
36
32
|
gl.attachShader(program, vertexShader); // 绑定着色器对象
|
|
33
|
+
gl.attachShader(program, fragmentShader);
|
|
37
34
|
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
// Link the program object
|
|
40
36
|
gl.linkProgram(program); // 链接着色器对象
|
|
41
|
-
// Check the result of linking
|
|
42
37
|
|
|
38
|
+
// Check the result of linking
|
|
43
39
|
var linked = gl.getProgramParameter(program, gl.LINK_STATUS); // 判断着色器对象是否链接成功
|
|
44
|
-
|
|
45
40
|
if (!linked) {
|
|
46
41
|
var error = gl.getProgramInfoLog(program);
|
|
47
42
|
console.warn('Failed to link program: ' + error);
|
|
@@ -50,59 +45,50 @@ function createProgram(gl, vshader, fshader) {
|
|
|
50
45
|
gl.deleteShader(vertexShader);
|
|
51
46
|
return null;
|
|
52
47
|
}
|
|
53
|
-
|
|
54
48
|
var numAttributes = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
|
|
55
|
-
|
|
56
49
|
for (var i = 0; i < numAttributes; i++) {
|
|
57
|
-
var attribute = gl.getActiveAttrib(program, i);
|
|
58
|
-
|
|
50
|
+
var attribute = gl.getActiveAttrib(program, i);
|
|
51
|
+
// @ts-ignore
|
|
59
52
|
program[attribute.name] = gl.getAttribLocation(program, attribute.name);
|
|
60
53
|
}
|
|
61
|
-
|
|
62
54
|
var numUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);
|
|
63
|
-
|
|
64
55
|
for (var i$1 = 0; i$1 < numUniforms; i$1++) {
|
|
65
|
-
var uniform = gl.getActiveUniform(program, i$1);
|
|
66
|
-
|
|
56
|
+
var uniform = gl.getActiveUniform(program, i$1);
|
|
57
|
+
// @ts-ignore
|
|
67
58
|
program[uniform.name] = gl.getUniformLocation(program, uniform.name);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
program.vertexShader = vertexShader; // @ts-ignore
|
|
59
|
+
}
|
|
72
60
|
|
|
61
|
+
// @ts-ignore
|
|
62
|
+
program.vertexShader = vertexShader;
|
|
63
|
+
// @ts-ignore
|
|
73
64
|
program.fragmentShader = fragmentShader;
|
|
74
65
|
return program;
|
|
75
66
|
}
|
|
76
|
-
|
|
77
67
|
function loadShader(gl, type, source) {
|
|
78
68
|
// Create shader object
|
|
79
69
|
var shader = gl.createShader(type); // 生成着色器对象
|
|
80
|
-
|
|
81
70
|
if (shader == null) {
|
|
82
71
|
console.warn('unable to create shader');
|
|
83
72
|
return null;
|
|
84
|
-
}
|
|
85
|
-
|
|
73
|
+
}
|
|
86
74
|
|
|
75
|
+
// Set the shader program
|
|
87
76
|
gl.shaderSource(shader, source); // 载入着色器
|
|
88
|
-
// Compile the shader
|
|
89
77
|
|
|
78
|
+
// Compile the shader
|
|
90
79
|
gl.compileShader(shader); // 编译着色器代码
|
|
91
|
-
// Check the result of compilation
|
|
92
80
|
|
|
81
|
+
// Check the result of compilation
|
|
93
82
|
var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); // 判断着色器对象是否生成成功
|
|
94
83
|
// gl.SHADER_TYPE、gl.DELETE_STATUS、gl.COMPILE_STATUS
|
|
95
|
-
|
|
96
84
|
if (!compiled) {
|
|
97
85
|
var error = gl.getShaderInfoLog(shader);
|
|
98
86
|
console.warn('Failed to compile shader: ' + error);
|
|
99
87
|
gl.deleteShader(shader);
|
|
100
88
|
return null;
|
|
101
89
|
}
|
|
102
|
-
|
|
103
90
|
return shader;
|
|
104
91
|
}
|
|
105
|
-
|
|
106
92
|
function createTexture(gl, filter, data, width, height) {
|
|
107
93
|
var texture = gl.createTexture();
|
|
108
94
|
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
@@ -114,7 +100,6 @@ function createTexture(gl, filter, data, width, height) {
|
|
|
114
100
|
gl.bindTexture(gl.TEXTURE_2D, null);
|
|
115
101
|
return texture;
|
|
116
102
|
}
|
|
117
|
-
|
|
118
103
|
function createDataTexture(gl, filter, data) {
|
|
119
104
|
var texture = gl.createTexture();
|
|
120
105
|
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
@@ -126,28 +111,22 @@ function createDataTexture(gl, filter, data) {
|
|
|
126
111
|
gl.bindTexture(gl.TEXTURE_2D, null);
|
|
127
112
|
return texture;
|
|
128
113
|
}
|
|
129
|
-
|
|
130
114
|
function bindTexture(gl, texture, unit) {
|
|
131
115
|
gl.activeTexture(gl.TEXTURE0 + unit);
|
|
132
116
|
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
133
117
|
}
|
|
134
|
-
|
|
135
118
|
function createBuffer(gl, data) {
|
|
136
119
|
var buffer = gl.createBuffer();
|
|
137
120
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
138
121
|
gl.bufferData(gl.ARRAY_BUFFER, data, gl.STATIC_DRAW);
|
|
139
122
|
return buffer;
|
|
140
123
|
}
|
|
141
|
-
|
|
142
124
|
function bindAttriBuffer(gl, attrName, vertices, count, program) {
|
|
143
125
|
var buffer = gl.createBuffer();
|
|
144
|
-
|
|
145
126
|
if (!buffer) {
|
|
146
127
|
console.warn('failed create vertex buffer');
|
|
147
128
|
}
|
|
148
|
-
|
|
149
129
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer); // 将缓冲区对象绑定到目标
|
|
150
|
-
|
|
151
130
|
gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW); // 向缓冲区对象中写入数据
|
|
152
131
|
|
|
153
132
|
var attr = gl.getAttribLocation(program, attrName);
|
|
@@ -160,67 +139,52 @@ function bindAttriBuffer(gl, attrName, vertices, count, program) {
|
|
|
160
139
|
count: count
|
|
161
140
|
};
|
|
162
141
|
}
|
|
163
|
-
|
|
164
142
|
function bindAttriIndicesBuffer(gl, indices) {
|
|
165
143
|
var buffer = gl.createBuffer();
|
|
166
|
-
|
|
167
144
|
if (!buffer) {
|
|
168
145
|
console.warn('failed create vertex buffer');
|
|
169
146
|
} else {
|
|
170
147
|
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
|
|
171
148
|
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW);
|
|
172
149
|
}
|
|
173
|
-
|
|
174
150
|
return buffer;
|
|
175
151
|
}
|
|
176
|
-
|
|
177
152
|
function bindUnifrom(gl, unifromName, data, program, vec) {
|
|
178
153
|
var uniform = gl.getUniformLocation(program, unifromName);
|
|
179
|
-
|
|
180
154
|
if (uniform === null || uniform < 0) {
|
|
181
155
|
console.warn('无法获取 uniform 变量的存储位置');
|
|
182
156
|
} else {
|
|
183
157
|
setUnifrom(gl, uniform, data, vec);
|
|
184
158
|
}
|
|
185
|
-
|
|
186
159
|
return uniform;
|
|
187
160
|
}
|
|
188
|
-
|
|
189
161
|
function setUnifrom(gl, location, data, vec) {
|
|
190
162
|
switch (vec) {
|
|
191
163
|
case 'float':
|
|
192
164
|
gl.uniform1f(location, data);
|
|
193
165
|
break;
|
|
194
|
-
|
|
195
166
|
case 'vec2':
|
|
196
167
|
gl.uniform2fv(location, data);
|
|
197
168
|
break;
|
|
198
|
-
|
|
199
169
|
case 'vec3':
|
|
200
170
|
gl.uniform3fv(location, data);
|
|
201
171
|
break;
|
|
202
|
-
|
|
203
172
|
case 'vec4':
|
|
204
173
|
gl.uniform4fv(location, data);
|
|
205
174
|
break;
|
|
206
|
-
|
|
207
175
|
case 'bool':
|
|
208
176
|
gl.uniform1i(location, data); // 1 - true 0 - false
|
|
209
|
-
|
|
210
177
|
break;
|
|
211
|
-
|
|
212
178
|
case 'sampler2d':
|
|
213
179
|
break;
|
|
214
|
-
|
|
215
180
|
case 'mat4':
|
|
216
181
|
gl.uniformMatrix4fv(location, false, data);
|
|
217
182
|
break;
|
|
218
183
|
}
|
|
219
184
|
}
|
|
220
|
-
|
|
221
185
|
function initFramebuffer(gl) {
|
|
222
186
|
var drawingBufferWidth = gl.drawingBufferWidth,
|
|
223
|
-
|
|
187
|
+
drawingBufferHeight = gl.drawingBufferHeight;
|
|
224
188
|
var OFFER_SCREEN_WIDTH = drawingBufferWidth;
|
|
225
189
|
var OFFER_SCREEN_HEIGHT = drawingBufferHeight;
|
|
226
190
|
var FRAMEBUFFER = gl.createFramebuffer();
|
|
@@ -229,12 +193,12 @@ function initFramebuffer(gl) {
|
|
|
229
193
|
gl.bindRenderbuffer(gl.RENDERBUFFER, depthbuffer);
|
|
230
194
|
gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, OFFER_SCREEN_WIDTH, OFFER_SCREEN_HEIGHT);
|
|
231
195
|
gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, depthbuffer);
|
|
232
|
-
var texture = gl.createTexture();
|
|
233
|
-
|
|
234
|
-
FRAMEBUFFER.texture = texture;
|
|
235
|
-
|
|
236
|
-
FRAMEBUFFER.width = OFFER_SCREEN_WIDTH;
|
|
237
|
-
|
|
196
|
+
var texture = gl.createTexture();
|
|
197
|
+
// @ts-ignore
|
|
198
|
+
FRAMEBUFFER.texture = texture;
|
|
199
|
+
// @ts-ignore
|
|
200
|
+
FRAMEBUFFER.width = OFFER_SCREEN_WIDTH;
|
|
201
|
+
// @ts-ignore
|
|
238
202
|
FRAMEBUFFER.height = OFFER_SCREEN_HEIGHT;
|
|
239
203
|
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
240
204
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
|