@antv/l7-layers 2.16.0 → 2.16.1

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