@openglobus/og 0.11.5 → 0.11.6

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 (145) hide show
  1. package/package.json +5 -7
  2. package/src/og/Clock.js +6 -10
  3. package/src/og/Events.js +5 -7
  4. package/src/og/Extent.js +73 -32
  5. package/src/og/ImageCanvas.js +18 -15
  6. package/src/og/LonLat.js +13 -10
  7. package/src/og/Popup.js +18 -17
  8. package/src/og/QueueArray.js +3 -4
  9. package/src/og/Rectangle.js +4 -6
  10. package/src/og/Stack.js +2 -4
  11. package/src/og/ajax.js +20 -14
  12. package/src/og/astro/earth.js +21 -15
  13. package/src/og/bv/Box.js +2 -3
  14. package/src/og/bv/Sphere.js +10 -7
  15. package/src/og/camera/Frustum.js +19 -12
  16. package/src/og/camera/PlanetCamera.js +0 -1
  17. package/src/og/control/CompassButton.js +1 -2
  18. package/src/og/control/Control.js +7 -9
  19. package/src/og/control/DebugInfo.js +0 -1
  20. package/src/og/control/KeyboardNavigation.js +9 -9
  21. package/src/og/control/LayerSwitcher.js +21 -20
  22. package/src/og/control/SegmentBoundVisualization.js +5 -6
  23. package/src/og/control/ShowFps.js +12 -7
  24. package/src/og/control/SimpleNavigation.js +5 -7
  25. package/src/og/control/Sun.js +22 -12
  26. package/src/og/control/ToggleWireframe.js +3 -3
  27. package/src/og/control/TouchNavigation.js +43 -32
  28. package/src/og/control/ZoomControl.js +40 -24
  29. package/src/og/ellipsoid/Ellipsoid.js +148 -56
  30. package/src/og/ellipsoid/wgs84.js +3 -3
  31. package/src/og/entity/BaseBillboard.js +65 -14
  32. package/src/og/entity/Billboard.js +9 -5
  33. package/src/og/entity/BillboardHandler.js +310 -64
  34. package/src/og/entity/Entity.js +39 -1
  35. package/src/og/entity/EntityCollection.js +47 -24
  36. package/src/og/entity/GeoObject.js +228 -0
  37. package/src/og/entity/GeoObjectHandler.js +910 -0
  38. package/src/og/entity/GeometryHandler.js +595 -123
  39. package/src/og/entity/Label.js +53 -18
  40. package/src/og/entity/LabelHandler.js +42 -244
  41. package/src/og/entity/LabelWorker.js +213 -0
  42. package/src/og/entity/Object3d.js +504 -0
  43. package/src/og/entity/PointCloud.js +76 -28
  44. package/src/og/entity/PointCloudHandler.js +5 -5
  45. package/src/og/entity/Ray.js +49 -16
  46. package/src/og/entity/Strip.js +72 -43
  47. package/src/og/entity/StripHandler.js +23 -23
  48. package/src/og/layer/BaseGeoImage.js +50 -19
  49. package/src/og/layer/CanvasTiles.js +16 -16
  50. package/src/og/layer/GeoImage.js +6 -6
  51. package/src/og/layer/KML.js +55 -33
  52. package/src/og/layer/Layer.js +3 -3
  53. package/src/og/layer/Vector.js +94 -48
  54. package/src/og/layer/WMS.js +33 -16
  55. package/src/og/light/LightSource.js +19 -12
  56. package/src/og/math/Mat3.js +24 -12
  57. package/src/og/math/Mat4.js +603 -603
  58. package/src/og/math/Plane.js +19 -18
  59. package/src/og/math/Ray.js +17 -12
  60. package/src/og/math/Vec2.js +24 -14
  61. package/src/og/math/Vec3.js +60 -30
  62. package/src/og/math/coder.js +7 -7
  63. package/src/og/proj/EPSG3857.js +3 -3
  64. package/src/og/proj/EPSG4326.js +3 -3
  65. package/src/og/proj/Proj.js +2 -4
  66. package/src/og/quadTree/Node.js +31 -17
  67. package/src/og/renderer/Renderer.js +23 -6
  68. package/src/og/renderer/RendererEvents.js +1 -1
  69. package/src/og/scene/BaseNode.js +2 -3
  70. package/src/og/scene/Planet.js +2 -2
  71. package/src/og/scene/RenderNode.js +15 -8
  72. package/src/og/shaders/geoObject.js +211 -0
  73. package/src/og/shaders/pointCloud.js +41 -41
  74. package/src/og/shaders/shape.js +12 -18
  75. package/src/og/shaders/skybox.js +36 -36
  76. package/src/og/shapes/BaseShape.js +107 -35
  77. package/src/og/shapes/Icosphere.js +25 -10
  78. package/src/og/shapes/Sphere.js +8 -11
  79. package/src/og/utils/TextureAtlas.js +16 -18
  80. package/src/og/utils/shared.js +1 -1
  81. package/src/og/webgl/Handler.js +68 -49
  82. package/src/og/webgl/Multisample.js +44 -16
  83. package/src/og/webgl/Program.js +78 -33
  84. package/src/og/webgl/callbacks.js +3 -3
  85. package/types/Deferred.d.ts +1 -1
  86. package/types/Events.d.ts +2 -2
  87. package/types/Extent.d.ts +1 -1
  88. package/types/Rectangle.d.ts +1 -1
  89. package/types/ajax.d.ts +1 -1
  90. package/types/bv/Box.d.ts +1 -1
  91. package/types/bv/Sphere.d.ts +1 -1
  92. package/types/camera/Camera.d.ts +5 -5
  93. package/types/camera/Frustum.d.ts +6 -6
  94. package/types/camera/PlanetCamera.d.ts +8 -8
  95. package/types/control/Control.d.ts +1 -1
  96. package/types/control/EarthCoordinates.d.ts +1 -1
  97. package/types/control/Sun.d.ts +1 -1
  98. package/types/entity/BaseBillboard.d.ts +15 -8
  99. package/types/entity/Entity.d.ts +24 -9
  100. package/types/entity/EntityCollection.d.ts +15 -9
  101. package/types/entity/GeoObject.d.ts +111 -0
  102. package/types/entity/GeoObjectHandler.d.ts +77 -0
  103. package/types/entity/Geometry.d.ts +1 -1
  104. package/types/entity/GeometryHandler.d.ts +1 -1
  105. package/types/entity/Label.d.ts +3 -3
  106. package/types/entity/LabelHandler.d.ts +2 -0
  107. package/types/entity/LabelWorker.d.ts +9 -0
  108. package/types/entity/PointCloud.d.ts +1 -1
  109. package/types/entity/Polyline.d.ts +5 -5
  110. package/types/entity/Ray.d.ts +1 -1
  111. package/types/entity/Strip.d.ts +1 -1
  112. package/types/layer/BaseGeoImage.d.ts +3 -3
  113. package/types/layer/CanvasTiles.d.ts +5 -5
  114. package/types/layer/GeoImage.d.ts +1 -1
  115. package/types/layer/GeoVideo.d.ts +1 -1
  116. package/types/layer/Layer.d.ts +5 -5
  117. package/types/layer/Vector.d.ts +9 -9
  118. package/types/layer/XYZ.d.ts +3 -3
  119. package/types/light/LightSource.d.ts +7 -7
  120. package/types/math/Plane.d.ts +1 -1
  121. package/types/math/Ray.d.ts +1 -1
  122. package/types/math/Vec2.d.ts +34 -34
  123. package/types/math/Vec3.d.ts +1 -1
  124. package/types/math/Vec4.d.ts +1 -1
  125. package/types/math/coder.d.ts +1 -1
  126. package/types/math.d.ts +1 -1
  127. package/types/proj/Proj.d.ts +2 -2
  128. package/types/quadTree/Node.d.ts +1 -1
  129. package/types/renderer/Renderer.d.ts +12 -10
  130. package/types/renderer/RendererEvents.d.ts +1 -1
  131. package/types/scene/BaseNode.d.ts +4 -4
  132. package/types/scene/Planet.d.ts +40 -40
  133. package/types/scene/RenderNode.d.ts +9 -9
  134. package/types/segment/Segment.d.ts +9 -9
  135. package/types/shaders/geoObject.d.ts +3 -0
  136. package/types/shapes/BaseShape.d.ts +5 -5
  137. package/types/terrain/EmptyTerrain.d.ts +2 -2
  138. package/types/terrain/GlobusTerrain.d.ts +4 -4
  139. package/types/utils/TextureAtlas.d.ts +4 -4
  140. package/types/utils/shared.d.ts +9 -9
  141. package/types/webgl/Framebuffer.d.ts +1 -1
  142. package/types/webgl/Handler.d.ts +16 -7
  143. package/types/webgl/Multisample.d.ts +2 -2
  144. package/types/webgl/Program.d.ts +6 -0
  145. package/types/webgl/ProgramController.d.ts +1 -1
@@ -27,10 +27,9 @@ const vendorPrefixes = ["", "WEBKIT_", "MOZ_"];
27
27
  * @param {string} id - Canvas element id that WebGL handler assing with. If it's null
28
28
  * or undefined creates hidden canvas and handler bacomes hidden.
29
29
  * @param {Object} [params] - Handler options:
30
- * @param {number} [params.anisotropy] - Anisitropy filter degree. 8 is default.
30
+ * @param {number} [params.anisotropy] - Anisotropy filter degree. 8 is default.
31
31
  * @param {number} [params.width] - Hidden handler width. 256 is default.
32
32
  * @param {number} [params.height] - Hidden handler height. 256 is default.
33
- * @param {Object} [param.scontext] - Native WebGL context attributes. See https://www.khronos.org/registry/webgl/specs/latest/1.0/#WEBGLCONTEXTATTRIBUTES
34
33
  * @param {Array.<string>} [params.extensions] - Additional WebGL extension list. Available by default: EXT_texture_filter_anisotropic.
35
34
  */
36
35
  class Handler {
@@ -100,7 +99,7 @@ class Handler {
100
99
  }
101
100
  this._params.width = w || 256;
102
101
 
103
- var h = this._params.height;
102
+ let h = this._params.height;
104
103
  if (h > MAX_SIZE) {
105
104
  h = MAX_SIZE;
106
105
  }
@@ -150,7 +149,7 @@ class Handler {
150
149
  * @returns {Object} -
151
150
  */
152
151
  static getExtension(gl, name) {
153
- var i, ext;
152
+ let i, ext;
154
153
  for (i in vendorPrefixes) {
155
154
  ext = gl.getExtension(vendorPrefixes[i] + name);
156
155
  if (ext) {
@@ -168,12 +167,13 @@ class Handler {
168
167
  */
169
168
  static getContext(canvas, contextAttributes) {
170
169
  const CONTEXT_TYPE = ["webgl2", "webgl"];
171
- var ctx = null;
170
+ let ctx = null;
172
171
 
173
172
  try {
174
173
  for (let i = 0; i < CONTEXT_TYPE.length; i++) {
175
174
  ctx = canvas.getContext(CONTEXT_TYPE[i], contextAttributes);
176
175
  if (ctx) {
176
+ console.log(CONTEXT_TYPE[i]);
177
177
  ctx.type = CONTEXT_TYPE[i];
178
178
  break;
179
179
  }
@@ -219,8 +219,8 @@ class Handler {
219
219
  type = "UNSIGNED_BYTE",
220
220
  level = 0
221
221
  ) {
222
- var gl = this.gl;
223
- var texture = gl.createTexture();
222
+ let gl = this.gl;
223
+ let texture = gl.createTexture();
224
224
  gl.bindTexture(gl.TEXTURE_2D, texture);
225
225
  gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
226
226
 
@@ -295,8 +295,8 @@ class Handler {
295
295
  * @returns {Object} - WebGL texture object.
296
296
  */
297
297
  createEmptyTexture_n(width, height) {
298
- var gl = this.gl;
299
- var texture = gl.createTexture();
298
+ let gl = this.gl;
299
+ let texture = gl.createTexture();
300
300
  gl.bindTexture(gl.TEXTURE_2D, texture);
301
301
  gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
302
302
  gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
@@ -316,8 +316,8 @@ class Handler {
316
316
  * @returns {Object} - WebGL texture object.
317
317
  */
318
318
  createEmptyTexture_l(width, height) {
319
- var gl = this.gl;
320
- var texture = gl.createTexture();
319
+ let gl = this.gl;
320
+ let texture = gl.createTexture();
321
321
  gl.bindTexture(gl.TEXTURE_2D, texture);
322
322
  gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
323
323
  gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
@@ -356,8 +356,8 @@ class Handler {
356
356
  * @returns {Object} - WebGL texture object.
357
357
  */
358
358
  static createTexture_l(handler, image) {
359
- var gl = handler.gl;
360
- var texture = gl.createTexture();
359
+ let gl = handler.gl;
360
+ let texture = gl.createTexture();
361
361
  gl.bindTexture(gl.TEXTURE_2D, texture);
362
362
  gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
363
363
  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
@@ -375,8 +375,8 @@ class Handler {
375
375
  * @returns {Object} - WebGL texture object.
376
376
  */
377
377
  static createTexture_mm(handler, image) {
378
- var gl = handler.gl;
379
- var texture = gl.createTexture();
378
+ let gl = handler.gl;
379
+ let texture = gl.createTexture();
380
380
  gl.bindTexture(gl.TEXTURE_2D, texture);
381
381
  gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
382
382
  gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
@@ -395,8 +395,8 @@ class Handler {
395
395
  * @returns {Object} - WebGL texture object.
396
396
  */
397
397
  static createTexture_a(handler, image) {
398
- var gl = handler.gl;
399
- var texture = gl.createTexture();
398
+ let gl = handler.gl;
399
+ let texture = gl.createTexture();
400
400
  gl.bindTexture(gl.TEXTURE_2D, texture);
401
401
  gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
402
402
  gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
@@ -452,15 +452,15 @@ class Handler {
452
452
  * @returns {Object} - WebGL texture object.
453
453
  */
454
454
  loadCubeMapTexture(params) {
455
- var gl = this.gl;
456
- var texture = gl.createTexture();
455
+ let gl = this.gl;
456
+ let texture = gl.createTexture();
457
457
  gl.bindTexture(gl.TEXTURE_CUBE_MAP, texture);
458
458
  gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
459
459
  gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
460
460
  gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
461
461
  gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
462
462
 
463
- var faces = [
463
+ let faces = [
464
464
  [params.px, gl.TEXTURE_CUBE_MAP_POSITIVE_X],
465
465
  [params.nx, gl.TEXTURE_CUBE_MAP_NEGATIVE_X],
466
466
  [params.py, gl.TEXTURE_CUBE_MAP_POSITIVE_Y],
@@ -469,9 +469,9 @@ class Handler {
469
469
  [params.nz, gl.TEXTURE_CUBE_MAP_NEGATIVE_Z]
470
470
  ];
471
471
 
472
- var imageCanvas = new ImageCanvas();
472
+ let imageCanvas = new ImageCanvas();
473
473
  imageCanvas.fillEmpty();
474
- var emptyImage = imageCanvas.getImage();
474
+ let emptyImage = imageCanvas.getImage();
475
475
 
476
476
  for (let i = 0; i < faces.length; i++) {
477
477
  let face = faces[i][1];
@@ -505,7 +505,7 @@ class Handler {
505
505
  */
506
506
  addProgram(program, notActivate) {
507
507
  if (!this.programs[program.name]) {
508
- var sc = new ProgramController(this, program);
508
+ let sc = new ProgramController(this, program);
509
509
  this.programs[program.name] = sc;
510
510
  this._initProgramController(sc);
511
511
  if (notActivate) {
@@ -534,7 +534,7 @@ class Handler {
534
534
  * @param {Array.<Program>} programsArr - Shader program array.
535
535
  */
536
536
  addPrograms(programsArr) {
537
- for (var i = 0; i < programsArr.length; i++) {
537
+ for (let i = 0; i < programsArr.length; i++) {
538
538
  this.addProgram(programsArr[i]);
539
539
  }
540
540
  }
@@ -563,7 +563,7 @@ class Handler {
563
563
  * @private
564
564
  */
565
565
  _initPrograms() {
566
- for (var p in this.programs) {
566
+ for (let p in this.programs) {
567
567
  this._initProgramController(this.programs[p]);
568
568
  }
569
569
  }
@@ -577,7 +577,7 @@ class Handler {
577
577
  */
578
578
  initializeExtension(extensionStr, showLog) {
579
579
  if (!(this.extensions && this.extensions[extensionStr])) {
580
- var ext = Handler.getExtension(this.gl, extensionStr);
580
+ let ext = Handler.getExtension(this.gl, extensionStr);
581
581
  if (ext) {
582
582
  this.extensions[extensionStr] = ext;
583
583
  } else if (showLog) {
@@ -618,7 +618,7 @@ class Handler {
618
618
  this._params.extensions.push("OES_texture_float_linear");
619
619
  }
620
620
 
621
- var i = this._params.extensions.length;
621
+ let i = this._params.extensions.length;
622
622
  while (i--) {
623
623
  this.initializeExtension(this._params.extensions[i], true);
624
624
  }
@@ -646,7 +646,7 @@ class Handler {
646
646
  this.gl.cullFace(this.gl.BACK);
647
647
  this.activateFaceCulling();
648
648
  this.deactivateBlending();
649
- var that = this;
649
+ let that = this;
650
650
  this.createDefaultTexture({ color: "rgba(0,0,0,0.0)" }, function (t) {
651
651
  that.transparentTexture = t;
652
652
  });
@@ -710,7 +710,7 @@ class Handler {
710
710
  * @return {Object} -
711
711
  */
712
712
  createStreamArrayBuffer(itemSize, numItems, usage, bites = 4) {
713
- var buffer = this.gl.createBuffer();
713
+ let buffer = this.gl.createBuffer();
714
714
  this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
715
715
  this.gl.bufferData(
716
716
  this.gl.ARRAY_BUFFER,
@@ -750,7 +750,7 @@ class Handler {
750
750
  * @return {Object} -
751
751
  */
752
752
  createArrayBuffer(array, itemSize, numItems, usage) {
753
- var buffer = this.gl.createBuffer();
753
+ let buffer = this.gl.createBuffer();
754
754
  this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
755
755
  this.gl.bufferData(this.gl.ARRAY_BUFFER, array, usage || this.gl.STATIC_DRAW);
756
756
  this.gl.bindBuffer(this.gl.ARRAY_BUFFER, null);
@@ -759,6 +759,25 @@ class Handler {
759
759
  return buffer;
760
760
  }
761
761
 
762
+ /**
763
+ * Creates ARRAY buffer specific length.
764
+ * @public
765
+ * @param {Array.<number>} array - Input array.
766
+ * @param {number} itemSize - Array item size.
767
+ * @param {number} numItems - Items quantity.
768
+ * @param {number} [usage=STATIC_DRAW] - Parameter of the bufferData call can be one of STATIC_DRAW, DYNAMIC_DRAW, or STREAM_DRAW.
769
+ * @return {Object} -
770
+ */
771
+ createArrayBufferLength(size, usage) {
772
+ let buffer = this.gl.createBuffer();
773
+ this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
774
+ this.gl.bufferData(this.gl.ARRAY_BUFFER, size, usage || this.gl.STATIC_DRAW);
775
+ this.gl.bindBuffer(this.gl.ARRAY_BUFFER, null);
776
+ buffer.itemSize = 1;
777
+ buffer.numItems = size;
778
+ return buffer;
779
+ }
780
+
762
781
  /**
763
782
  * Creates ELEMENT ARRAY buffer.
764
783
  * @public
@@ -769,7 +788,7 @@ class Handler {
769
788
  * @return {Object} -
770
789
  */
771
790
  createElementArrayBuffer(array, itemSize, numItems, usage) {
772
- var buffer = this.gl.createBuffer();
791
+ let buffer = this.gl.createBuffer();
773
792
  this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, buffer);
774
793
  this.gl.bufferData(this.gl.ELEMENT_ARRAY_BUFFER, array, usage || this.gl.STATIC_DRAW);
775
794
  this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, null);
@@ -836,7 +855,7 @@ class Handler {
836
855
  * @returns {number} -
837
856
  */
838
857
  getCenter() {
839
- var c = this.canvas;
858
+ let c = this.canvas;
840
859
  return new Vec2(Math.round(c.width * 0.5), Math.round(c.height * 0.5));
841
860
  }
842
861
 
@@ -847,18 +866,18 @@ class Handler {
847
866
  */
848
867
  drawFrame() {
849
868
  /** Calculating frame time */
850
- var now = window.performance.now();
869
+ let now = window.performance.now();
851
870
  this.deltaTime = now - this._lastAnimationFrameTime;
852
871
  this._lastAnimationFrameTime = now;
853
872
 
854
873
  this.defaultClock._tick(this.deltaTime);
855
874
 
856
- for (var i = 0; i < this._clocks.length; i++) {
875
+ for (let i = 0; i < this._clocks.length; i++) {
857
876
  this._clocks[i]._tick(this.deltaTime);
858
877
  }
859
878
 
860
879
  /** Canvas resize checking */
861
- var canvas = this.canvas;
880
+ let canvas = this.canvas;
862
881
  if (canvas.clientWidth !== canvas.width || canvas.clientHeight !== canvas.height) {
863
882
  this.setSize(canvas.clientWidth, canvas.clientHeight);
864
883
  }
@@ -872,7 +891,7 @@ class Handler {
872
891
  * @public
873
892
  */
874
893
  clearFrame() {
875
- var gl = this.gl;
894
+ let gl = this.gl;
876
895
  this.gl.clearColor(0.0, 0.0, 0.0, 1.0);
877
896
  gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
878
897
  }
@@ -914,8 +933,8 @@ class Handler {
914
933
  * @param {callback} [success] - Creation callback
915
934
  */
916
935
  createDefaultTexture(params, success) {
917
- var imgCnv;
918
- var texture;
936
+ let imgCnv;
937
+ let texture;
919
938
  if (params && params.color) {
920
939
  imgCnv = new ImageCanvas(2, 2);
921
940
  imgCnv.fillColor(params.color);
@@ -923,8 +942,8 @@ class Handler {
923
942
  texture.default = true;
924
943
  success(texture);
925
944
  } else if (params && params.url) {
926
- var img = new Image();
927
- var that = this;
945
+ let img = new Image();
946
+ let that = this;
928
947
  img.onload = function () {
929
948
  texture = that.createTexture(this);
930
949
  texture.default = true;
@@ -944,11 +963,11 @@ class Handler {
944
963
  * @public
945
964
  */
946
965
  destroy() {
947
- var gl = this.gl;
966
+ let gl = this.gl;
948
967
 
949
968
  this.stop();
950
969
 
951
- for (var p in this.programs) {
970
+ for (let p in this.programs) {
952
971
  this.removeProgram(p);
953
972
  }
954
973
 
@@ -965,8 +984,8 @@ class Handler {
965
984
  this.canvas.height = 1;
966
985
  this.canvas = null;
967
986
 
968
- var numAttribs = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);
969
- var tmp = gl.createBuffer();
987
+ let numAttribs = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);
988
+ let tmp = gl.createBuffer();
970
989
  gl.bindBuffer(gl.ARRAY_BUFFER, tmp);
971
990
  for (let ii = 0; ii < numAttribs; ++ii) {
972
991
  gl.disableVertexAttribArray(ii);
@@ -975,7 +994,7 @@ class Handler {
975
994
  }
976
995
  gl.deleteBuffer(tmp);
977
996
 
978
- var numTextureUnits = gl.getParameter(gl.MAX_TEXTlURE_IMAGE_UNITS);
997
+ let numTextureUnits = gl.getParameter(gl.MAX_TEXTlURE_IMAGE_UNITS);
979
998
  for (let ii = 0; ii < numTextureUnits; ++ii) {
980
999
  gl.activeTexture(gl.TEXTURE0 + ii);
981
1000
  gl.bindTexture(gl.TEXTURE_CUBE_MAP, null);
@@ -1013,15 +1032,15 @@ class Handler {
1013
1032
  }
1014
1033
 
1015
1034
  addClocks(clockArr) {
1016
- for (var i = 0; i < clockArr.length; i++) {
1035
+ for (let i = 0; i < clockArr.length; i++) {
1017
1036
  this.addClock(clockArr[i]);
1018
1037
  }
1019
1038
  }
1020
1039
 
1021
1040
  removeClock(clock) {
1022
1041
  if (clock.__handler) {
1023
- var c = this._clocks;
1024
- var i = c.length;
1042
+ let c = this._clocks;
1043
+ let i = c.length;
1025
1044
  while (i--) {
1026
1045
  if (c[i].equal(clock)) {
1027
1046
  clock.__handler = null;
@@ -1037,7 +1056,7 @@ export const createTexture = {
1037
1056
  NEAREST: Handler.createTexture_n,
1038
1057
  LINEAR: Handler.createTexture_l,
1039
1058
  MIPMAP: Handler.createTexture_mm,
1040
- ANISOTROPHIC: Handler.createTexture_a
1059
+ ANISOTROPIC: Handler.createTexture_a
1041
1060
  };
1042
1061
 
1043
1062
  export { Handler };
@@ -2,7 +2,7 @@
2
2
  * @module og/webgl/Multisample
3
3
  */
4
4
 
5
- 'use strict';
5
+ "use strict";
6
6
 
7
7
  /**
8
8
  * Class represents multisample framebuffer.
@@ -16,9 +16,7 @@
16
16
  * @param {Boolean} [options.useDepth] - Using depth buffer during the rendering.
17
17
  */
18
18
  export class Multisample {
19
-
20
19
  constructor(handler, options) {
21
-
22
20
  options = options || {};
23
21
 
24
22
  /**
@@ -28,7 +26,9 @@ export class Multisample {
28
26
  */
29
27
  this.handler = handler;
30
28
 
31
- this._internalFormat = options.internalFormat ? options.internalFormat.toUpperCase() : "RGBA8";
29
+ this._internalFormat = options.internalFormat
30
+ ? options.internalFormat.toUpperCase()
31
+ : "RGBA8";
32
32
 
33
33
  /**
34
34
  * Framebuffer object.
@@ -62,10 +62,11 @@ export class Multisample {
62
62
 
63
63
  this._useDepth = options.useDepth != undefined ? options.useDepth : true;
64
64
 
65
- this._depthComponent = options.depthComponent != undefined ? options.depthComponent : "DEPTH_COMPONENT16";
65
+ this._depthComponent =
66
+ options.depthComponent != undefined ? options.depthComponent : "DEPTH_COMPONENT16";
66
67
 
67
68
  /**
68
- * Framebuffer activity.
69
+ * Framebuffer activity.
69
70
  * @private
70
71
  * @type {boolean}
71
72
  */
@@ -102,7 +103,6 @@ export class Multisample {
102
103
  * @private
103
104
  */
104
105
  init() {
105
-
106
106
  var gl = this.handler.gl;
107
107
 
108
108
  this._glFilter = gl[this._filter];
@@ -115,8 +115,19 @@ export class Multisample {
115
115
  for (var i = 0; i < this.renderbuffers.length; i++) {
116
116
  let rb = gl.createRenderbuffer();
117
117
  gl.bindRenderbuffer(gl.RENDERBUFFER, rb);
118
- gl.renderbufferStorageMultisample(gl.RENDERBUFFER, this._msaa, gl[this._internalFormat], this._width, this._height);
119
- gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + i, gl.RENDERBUFFER, rb);
118
+ gl.renderbufferStorageMultisample(
119
+ gl.RENDERBUFFER,
120
+ this._msaa,
121
+ gl[this._internalFormat],
122
+ this._width,
123
+ this._height
124
+ );
125
+ gl.framebufferRenderbuffer(
126
+ gl.FRAMEBUFFER,
127
+ gl.COLOR_ATTACHMENT0 + i,
128
+ gl.RENDERBUFFER,
129
+ rb
130
+ );
120
131
  colorAttachments.push(gl.COLOR_ATTACHMENT0 + i);
121
132
  this.renderbuffers[i] = rb;
122
133
  gl.bindRenderbuffer(gl.RENDERBUFFER, null);
@@ -126,8 +137,19 @@ export class Multisample {
126
137
  if (this._useDepth) {
127
138
  this._depthRenderbuffer = gl.createRenderbuffer();
128
139
  gl.bindRenderbuffer(gl.RENDERBUFFER, this._depthRenderbuffer);
129
- gl.renderbufferStorageMultisample(gl.RENDERBUFFER, this._msaa, gl[this._depthComponent], this._width, this._height);
130
- gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, this._depthRenderbuffer);
140
+ gl.renderbufferStorageMultisample(
141
+ gl.RENDERBUFFER,
142
+ this._msaa,
143
+ gl[this._depthComponent],
144
+ this._width,
145
+ this._height
146
+ );
147
+ gl.framebufferRenderbuffer(
148
+ gl.FRAMEBUFFER,
149
+ gl.DEPTH_ATTACHMENT,
150
+ gl.RENDERBUFFER,
151
+ this._depthRenderbuffer
152
+ );
131
153
  gl.bindRenderbuffer(gl.RENDERBUFFER, null);
132
154
  }
133
155
 
@@ -137,7 +159,6 @@ export class Multisample {
137
159
  }
138
160
 
139
161
  blitTo(framebuffer, attachmentIndex = 0) {
140
-
141
162
  let gl = this.handler.gl;
142
163
 
143
164
  gl.bindFramebuffer(gl.READ_FRAMEBUFFER, this._fbo);
@@ -147,9 +168,16 @@ export class Multisample {
147
168
  gl.clearBufferfv(gl.COLOR, 0, [0.0, 0.0, 0.0, 1.0]);
148
169
 
149
170
  gl.blitFramebuffer(
150
- 0, 0, this._width, this._height,
151
- 0, 0, framebuffer._width, framebuffer._height,
152
- gl.COLOR_BUFFER_BIT, this._glFilter
171
+ 0,
172
+ 0,
173
+ this._width,
174
+ this._height,
175
+ 0,
176
+ 0,
177
+ framebuffer._width,
178
+ framebuffer._height,
179
+ gl.COLOR_BUFFER_BIT,
180
+ this._glFilter
153
181
  );
154
182
 
155
183
  gl.bindFramebuffer(gl.FRAMEBUFFER, null);
@@ -229,4 +257,4 @@ export class Multisample {
229
257
  gl.viewport(0, 0, h.canvas.width, h.canvas.height);
230
258
  }
231
259
  }
232
- }
260
+ }