@openglobus/og 0.11.7 → 0.12.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.
Files changed (211) hide show
  1. package/css/og.css +5 -2
  2. package/dist/@openglobus/og.css +1 -0
  3. package/dist/@openglobus/og.esm.js +21 -0
  4. package/dist/@openglobus/og.esm.js.map +1 -0
  5. package/dist/@openglobus/og.umd.js +21 -0
  6. package/dist/@openglobus/og.umd.js.map +1 -0
  7. package/package.json +11 -11
  8. package/src/og/Globe.js +18 -6
  9. package/src/og/camera/Camera.js +70 -79
  10. package/src/og/camera/PlanetCamera.js +25 -30
  11. package/src/og/control/DebugInfo.js +2 -2
  12. package/src/og/control/EarthNavigation.js +26 -17
  13. package/src/og/control/Lighting.js +52 -73
  14. package/src/og/control/MouseNavigation.js +30 -29
  15. package/src/og/control/MouseWheelZoomControl.js +257 -0
  16. package/src/og/control/Sun.js +3 -3
  17. package/src/og/control/index.js +2 -0
  18. package/src/og/control/visibleExtent/Segment.js +1862 -0
  19. package/src/og/control/visibleExtent/VisibleExtent.js +80 -0
  20. package/src/og/control/visibleExtent/drawnode.js +751 -0
  21. package/src/og/entity/BaseBillboard.js +9 -9
  22. package/src/og/entity/Entity.js +742 -742
  23. package/src/og/entity/GeoObjectHandler.js +138 -134
  24. package/src/og/entity/Label.js +7 -7
  25. package/src/og/entity/LabelHandler.js +2 -1
  26. package/src/og/layer/CanvasTiles.js +8 -12
  27. package/src/og/layer/GeoImage.js +2 -10
  28. package/src/og/layer/GeoTexture2d.js +2 -10
  29. package/src/og/layer/GeoVideo.js +2 -10
  30. package/src/og/layer/KML.js +19 -12
  31. package/src/og/layer/Layer.js +4 -23
  32. package/src/og/layer/WMS.js +0 -2
  33. package/src/og/layer/XYZ.js +31 -33
  34. package/src/og/math/Vec3.js +18 -2
  35. package/src/og/quadTree/Node.js +48 -93
  36. package/src/og/quadTree/quadTree.js +1 -1
  37. package/src/og/renderer/Renderer.js +69 -96
  38. package/src/og/renderer/RendererEvents.js +3 -1
  39. package/src/og/scene/Planet.js +171 -173
  40. package/src/og/segment/Segment.js +99 -268
  41. package/src/og/segment/Slice.js +45 -0
  42. package/src/og/shaders/drawnode.js +171 -350
  43. package/src/og/shaders/geoObject.js +15 -6
  44. package/src/og/terrain/EmptyTerrain.js +3 -2
  45. package/src/og/terrain/GlobusTerrain.js +2 -0
  46. package/src/og/utils/GeoImageCreator.js +5 -1
  47. package/src/og/utils/Loader.js +1 -1
  48. package/src/og/utils/PlainSegmentWorker.js +0 -13
  49. package/src/og/webgl/Handler.js +14 -10
  50. package/types/Clock.d.ts +94 -0
  51. package/types/Deferred.d.ts +6 -0
  52. package/types/Events.d.ts +77 -0
  53. package/types/Extent.d.ts +166 -0
  54. package/types/Globe.d.ts +85 -0
  55. package/types/ImageCanvas.d.ts +123 -0
  56. package/types/Lock.d.ts +12 -0
  57. package/types/LonLat.d.ts +108 -0
  58. package/types/Popup.d.ts +42 -0
  59. package/types/QueueArray.d.ts +19 -0
  60. package/types/Rectangle.d.ts +80 -0
  61. package/types/Stack.d.ts +19 -0
  62. package/types/ajax.d.ts +24 -0
  63. package/types/arial.d.ts +48 -0
  64. package/types/astro/astro.d.ts +38 -0
  65. package/types/astro/earth.d.ts +7 -0
  66. package/types/astro/jd.d.ts +254 -0
  67. package/types/bv/Box.d.ts +30 -0
  68. package/types/bv/Sphere.d.ts +38 -0
  69. package/types/bv/index.d.ts +3 -0
  70. package/types/camera/Camera.d.ts +312 -0
  71. package/types/camera/Frustum.d.ts +133 -0
  72. package/types/camera/PlanetCamera.d.ts +219 -0
  73. package/types/camera/index.d.ts +3 -0
  74. package/types/cons.d.ts +40 -0
  75. package/types/control/CompassButton.d.ts +17 -0
  76. package/types/control/Control.d.ts +104 -0
  77. package/types/control/DebugInfo.d.ts +15 -0
  78. package/types/control/EarthCoordinates.d.ts +47 -0
  79. package/types/control/EarthNavigation.d.ts +43 -0
  80. package/types/control/GeoImageDragControl.d.ts +6 -0
  81. package/types/control/KeyboardNavigation.d.ts +21 -0
  82. package/types/control/LayerSwitcher.d.ts +21 -0
  83. package/types/control/Lighting.d.ts +16 -0
  84. package/types/control/MouseNavigation.d.ts +48 -0
  85. package/types/control/MouseWheelZoomControl.d.ts +45 -0
  86. package/types/control/ScaleControl.d.ts +22 -0
  87. package/types/control/ShowFps.d.ts +11 -0
  88. package/types/control/SimpleNavigation.d.ts +25 -0
  89. package/types/control/Sun.d.ts +50 -0
  90. package/types/control/ToggleWireframe.d.ts +12 -0
  91. package/types/control/TouchNavigation.d.ts +48 -0
  92. package/types/control/ZoomControl.d.ts +27 -0
  93. package/types/control/index.d.ts +18 -0
  94. package/types/ellipsoid/Ellipsoid.d.ts +146 -0
  95. package/types/ellipsoid/index.d.ts +3 -0
  96. package/types/ellipsoid/wgs84.d.ts +6 -0
  97. package/types/entity/BaseBillboard.d.ts +215 -0
  98. package/types/entity/Billboard.d.ts +94 -0
  99. package/types/entity/BillboardHandler.d.ts +79 -0
  100. package/types/entity/Entity.d.ts +348 -0
  101. package/types/entity/EntityCollection.d.ts +317 -0
  102. package/types/entity/GeoObject.d.ts +111 -0
  103. package/types/entity/GeoObjectHandler.d.ts +81 -0
  104. package/types/entity/Geometry.d.ts +74 -0
  105. package/types/entity/GeometryHandler.d.ts +76 -0
  106. package/types/entity/Label.d.ts +189 -0
  107. package/types/entity/LabelHandler.d.ts +31 -0
  108. package/types/entity/LabelWorker.d.ts +11 -0
  109. package/types/entity/PointCloud.d.ts +174 -0
  110. package/types/entity/PointCloudHandler.d.ts +38 -0
  111. package/types/entity/Polyline.d.ts +306 -0
  112. package/types/entity/PolylineHandler.d.ts +18 -0
  113. package/types/entity/Ray.d.ts +124 -0
  114. package/types/entity/RayHandler.d.ts +67 -0
  115. package/types/entity/ShapeHandler.d.ts +22 -0
  116. package/types/entity/Strip.d.ts +119 -0
  117. package/types/entity/StripHandler.d.ts +38 -0
  118. package/types/entity/index.d.ts +8 -0
  119. package/types/index.core.d.ts +65 -0
  120. package/types/index.d.ts +45 -0
  121. package/types/index.webgl.d.ts +7 -0
  122. package/types/input/KeyboardHandler.d.ts +10 -0
  123. package/types/input/MouseHandler.d.ts +5 -0
  124. package/types/input/TouchHandler.d.ts +5 -0
  125. package/types/input/input.d.ts +34 -0
  126. package/types/layer/BaseGeoImage.d.ts +94 -0
  127. package/types/layer/CanvasTiles.d.ts +67 -0
  128. package/types/layer/GeoImage.d.ts +52 -0
  129. package/types/layer/GeoTexture2d.d.ts +8 -0
  130. package/types/layer/GeoVideo.d.ts +55 -0
  131. package/types/layer/KML.d.ts +68 -0
  132. package/types/layer/Layer.d.ts +310 -0
  133. package/types/layer/Material.d.ts +45 -0
  134. package/types/layer/Vector.d.ts +208 -0
  135. package/types/layer/WMS.d.ts +61 -0
  136. package/types/layer/XYZ.d.ts +119 -0
  137. package/types/layer/index.d.ts +10 -0
  138. package/types/light/LightSource.d.ts +178 -0
  139. package/types/math/Line2.d.ts +11 -0
  140. package/types/math/Line3.d.ts +10 -0
  141. package/types/math/Mat3.d.ts +65 -0
  142. package/types/math/Mat4.d.ts +176 -0
  143. package/types/math/Plane.d.ts +18 -0
  144. package/types/math/Quat.d.ts +379 -0
  145. package/types/math/Ray.d.ts +82 -0
  146. package/types/math/Vec2.d.ts +309 -0
  147. package/types/math/Vec3.d.ts +467 -0
  148. package/types/math/Vec4.d.ts +162 -0
  149. package/types/math/coder.d.ts +43 -0
  150. package/types/math/index.d.ts +11 -0
  151. package/types/math.d.ts +261 -0
  152. package/types/mercator.d.ts +92 -0
  153. package/types/proj/EPSG3857.d.ts +6 -0
  154. package/types/proj/EPSG4326.d.ts +6 -0
  155. package/types/proj/Proj.d.ts +42 -0
  156. package/types/quadTree/EntityCollectionNode.d.ts +34 -0
  157. package/types/quadTree/Node.d.ts +60 -0
  158. package/types/quadTree/quadTree.d.ts +40 -0
  159. package/types/renderer/Renderer.d.ts +290 -0
  160. package/types/renderer/RendererEvents.d.ts +237 -0
  161. package/types/res/images.d.ts +3 -0
  162. package/types/scene/Axes.d.ts +11 -0
  163. package/types/scene/BaseNode.d.ts +60 -0
  164. package/types/scene/Planet.d.ts +576 -0
  165. package/types/scene/RenderNode.d.ts +142 -0
  166. package/types/scene/SkyBox.d.ts +10 -0
  167. package/types/scene/index.d.ts +4 -0
  168. package/types/segment/Segment.d.ts +275 -0
  169. package/types/segment/SegmentLonLat.d.ts +17 -0
  170. package/types/segment/Slice.d.ts +10 -0
  171. package/types/segment/segmentHelper.d.ts +13 -0
  172. package/types/shaders/billboard.d.ts +3 -0
  173. package/types/shaders/depth.d.ts +2 -0
  174. package/types/shaders/drawnode.d.ts +7 -0
  175. package/types/shaders/geoObject.d.ts +3 -0
  176. package/types/shaders/label.d.ts +4 -0
  177. package/types/shaders/pointCloud.d.ts +2 -0
  178. package/types/shaders/polyline.d.ts +3 -0
  179. package/types/shaders/ray.d.ts +2 -0
  180. package/types/shaders/screenFrame.d.ts +2 -0
  181. package/types/shaders/shape.d.ts +4 -0
  182. package/types/shaders/skybox.d.ts +2 -0
  183. package/types/shaders/toneMapping.d.ts +2 -0
  184. package/types/shapes/BaseShape.d.ts +250 -0
  185. package/types/shapes/Sphere.d.ts +41 -0
  186. package/types/terrain/BilTerrain.d.ts +7 -0
  187. package/types/terrain/EmptyTerrain.d.ts +73 -0
  188. package/types/terrain/Geoid.d.ts +26 -0
  189. package/types/terrain/GlobusTerrain.d.ts +116 -0
  190. package/types/terrain/MapboxTerrain.d.ts +7 -0
  191. package/types/terrain/index.d.ts +5 -0
  192. package/types/utils/FontAtlas.d.ts +15 -0
  193. package/types/utils/GeoImageCreator.d.ts +30 -0
  194. package/types/utils/ImagesCacheManager.d.ts +10 -0
  195. package/types/utils/Loader.d.ts +25 -0
  196. package/types/utils/NormalMapCreator.d.ts +39 -0
  197. package/types/utils/PlainSegmentWorker.d.ts +10 -0
  198. package/types/utils/TerrainWorker.d.ts +9 -0
  199. package/types/utils/TextureAtlas.d.ts +111 -0
  200. package/types/utils/VectorTileCreator.d.ts +16 -0
  201. package/types/utils/colorTable.d.ts +143 -0
  202. package/types/utils/earcut.d.ts +6 -0
  203. package/types/utils/shared.d.ts +231 -0
  204. package/types/webgl/Framebuffer.d.ts +135 -0
  205. package/types/webgl/Handler.d.ts +417 -0
  206. package/types/webgl/Multisample.d.ts +89 -0
  207. package/types/webgl/Program.d.ts +161 -0
  208. package/types/webgl/ProgramController.d.ts +89 -0
  209. package/types/webgl/callbacks.d.ts +1 -0
  210. package/types/webgl/index.d.ts +6 -0
  211. package/types/webgl/types.d.ts +2 -0
@@ -0,0 +1,417 @@
1
+ /**
2
+ * A WebGL handler for accessing low-level WebGL capabilities.
3
+ * @class
4
+ * @param {string} id - Canvas element id that WebGL handler assing with. If it's null
5
+ * or undefined creates hidden canvas and handler bacomes hidden.
6
+ * @param {Object} [params] - Handler options:
7
+ * @param {number} [params.anisotropy] - Anisotropy filter degree. 8 is default.
8
+ * @param {number} [params.width] - Hidden handler width. 256 is default.
9
+ * @param {number} [params.height] - Hidden handler height. 256 is default.
10
+ * @param {Array.<string>} [params.extensions] - Additional WebGL extension list. Available by default: EXT_texture_filter_anisotropic.
11
+ */
12
+ export class Handler {
13
+ /**
14
+ * The return value is null if the extension is not supported, or an extension object otherwise.
15
+ * @param {Object} gl - WebGl context pointer.
16
+ * @param {String} name - Extension name.
17
+ * @returns {Object} -
18
+ */
19
+ static getExtension(gl: any, name: string): any;
20
+ /**
21
+ * Returns a drawing context on the canvas, or null if the context identifier is not supported.
22
+ * @param {Object} canvas - HTML canvas object.
23
+ * @param {Object} [contextAttributes] - See canvas.getContext contextAttributes.
24
+ * @returns {Object} -
25
+ */
26
+ static getContext(canvas: any, contextAttributes?: any): any;
27
+ constructor(id: any, params: any);
28
+ /**
29
+ * Application default timer.
30
+ * @public
31
+ * @type {Clock}
32
+ */
33
+ public defaultClock: Clock;
34
+ /**
35
+ * Custom timers.
36
+ * @protected
37
+ * @type{Clock[]}
38
+ */
39
+ protected _clocks: Clock[];
40
+ /**
41
+ * Draw frame time in milliseconds.
42
+ * @public
43
+ * @readonly
44
+ * @type {number}
45
+ */
46
+ public readonly deltaTime: number;
47
+ /**
48
+ * WebGL rendering canvas element.
49
+ * @public
50
+ * @type {Object}
51
+ */
52
+ public canvas: any;
53
+ /**
54
+ * WebGL context.
55
+ * @public
56
+ * @type {Object}
57
+ */
58
+ public gl: any;
59
+ /**
60
+ * Shader program controller list.
61
+ * @public
62
+ * @type {Object.<og.webgl.ProgramController>}
63
+ */
64
+ public programs: any;
65
+ /**
66
+ * Current active shader program controller.
67
+ * @public
68
+ * @type {ProgramController}
69
+ */
70
+ public activeProgram: ProgramController;
71
+ /**
72
+ * Handler parameters.
73
+ * @private
74
+ * @type {Object}
75
+ */
76
+ private _params;
77
+ _oneByHeight: number;
78
+ /**
79
+ * Current WebGL extensions. Becomes here after context initialization.
80
+ * @public
81
+ * @type {Object}
82
+ */
83
+ public extensions: any;
84
+ /**
85
+ * HTML Canvas object id.
86
+ * @private
87
+ * @type {Object}
88
+ */
89
+ private _id;
90
+ _lastAnimationFrameTime: number;
91
+ _initialized: boolean;
92
+ /**
93
+ * Animation frame function assigned from outside(Ex. from Renderer).
94
+ * @private
95
+ * @type {frameCallback}
96
+ */
97
+ private _frameCallback;
98
+ transparentTexture: any;
99
+ framebufferStack: Stack;
100
+ createTexture: {
101
+ NEAREST: any;
102
+ LINEAR: any;
103
+ MIPMAP: any;
104
+ ANISOTROPIC: any;
105
+ };
106
+ createTextureDefault: any;
107
+ /**
108
+ * Sets animation frame function.
109
+ * @public
110
+ * @param {callback} callback - Frame callback.
111
+ */
112
+ public setFrameCallback(callback: any): void;
113
+ /**
114
+ * Creates empty texture.
115
+ * @public
116
+ * @param {Number} [width=1] - Specifies the width of the texture image..
117
+ * @param {Number} [height=1] - Specifies the width of the texture image..
118
+ * @param {String} [filter="NEAREST"] - Specifies GL_TEXTURE_MIN(MAX)_FILTER texture value.
119
+ * @param {String} [internalFormat="RGBA"] - Specifies the color components in the texture.
120
+ * @param {String} [format="RGBA"] - Specifies the format of the texel data.
121
+ * @param {String} [type="UNSIGNED_BYTE"] - Specifies the data type of the texel data.
122
+ * @param {Number} [levels=0] - Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
123
+ * @returns {Object} - WebGL texture object.
124
+ */
125
+ public createEmptyTexture2DExt(width?: number, height?: number, filter?: string, internalFormat?: string, format?: string, type?: string, level?: number): any;
126
+ /**
127
+ * Creates Empty NEAREST filtered texture.
128
+ * @public
129
+ * @param {number} width - Empty texture width.
130
+ * @param {number} height - Empty texture height.
131
+ * @returns {Object} - WebGL texture object.
132
+ */
133
+ public createEmptyTexture_n(width: number, height: number, internalFormat: any): any;
134
+ /**
135
+ * Creates empty LINEAR filtered texture.
136
+ * @public
137
+ * @param {number} width - Empty texture width.
138
+ * @param {number} height - Empty texture height.
139
+ * @returns {Object} - WebGL texture object.
140
+ */
141
+ public createEmptyTexture_l(width: number, height: number, internalFormat: any): any;
142
+ /**
143
+ * Creates NEAREST filter texture.
144
+ * @public
145
+ * @param {Object} image - Image or Canvas object.
146
+ * @returns {Object} - WebGL texture object.
147
+ */
148
+ public createTexture_n_webgl1(image: any, internalFormat: any): any;
149
+ /**
150
+ * Creates LINEAR filter texture.
151
+ * @public
152
+ * @param {Object} image - Image or Canvas object.
153
+ * @returns {Object} - WebGL texture object.
154
+ */
155
+ public createTexture_l_webgl1(image: any, internalFormat: any): any;
156
+ /**
157
+ * Creates MIPMAP filter texture.
158
+ * @public
159
+ * @param {Object} image - Image or Canvas object.
160
+ * @returns {Object} - WebGL texture object.
161
+ */
162
+ public createTexture_mm_webgl1(image: any, internalFormat: any): any;
163
+ /**
164
+ * Creates ANISOTROPY filter texture.
165
+ * @public
166
+ * @param {Object} image - Image or Canvas object.
167
+ * @returns {Object} - WebGL texture object.
168
+ */
169
+ public createTexture_a_webgl1(image: any, internalFormat: any): any;
170
+ /**
171
+ * Creates NEAREST filter texture.
172
+ * @public
173
+ * @param {Object} image - Image or Canvas object.
174
+ * @returns {Object} - WebGL texture object.
175
+ */
176
+ public createTexture_n_webgl2(image: any, internalFormat: any): any;
177
+ /**
178
+ * Creates LINEAR filter texture.
179
+ * @public
180
+ * @param {Object} image - Image or Canvas object.
181
+ * @returns {Object} - WebGL texture object.
182
+ */
183
+ public createTexture_l_webgl2(image: any, internalFormat: any): any;
184
+ /**
185
+ * Creates MIPMAP filter texture.
186
+ * @public
187
+ * @param {Object} image - Image or Canvas object.
188
+ * @returns {Object} - WebGL texture object.
189
+ */
190
+ public createTexture_mm_webgl2(image: any, internalFormat: any): any;
191
+ /**
192
+ * Creates ANISOTROPY filter texture.
193
+ * @public
194
+ * @param {Object} image - Image or Canvas object.
195
+ * @returns {Object} - WebGL texture object.
196
+ */
197
+ public createTexture_a_webgl2(image: any, internalFormat: any): any;
198
+ /**
199
+ * Creates cube texture.
200
+ * @public
201
+ * @param {Object.<string>} params - Face image urls:
202
+ * @param {string} params.px - Positive X or right image url.
203
+ * @param {string} params.nx - Negative X or left image url.
204
+ * @param {string} params.py - Positive Y or up image url.
205
+ * @param {string} params.ny - Negative Y or bottom image url.
206
+ * @param {string} params.pz - Positive Z or face image url.
207
+ * @param {string} params.nz - Negative Z or back image url.
208
+ * @returns {Object} - WebGL texture object.
209
+ */
210
+ public loadCubeMapTexture(params: any): any;
211
+ /**
212
+ * Adds shader program to the handler.
213
+ * @public
214
+ * @param {Program} program - Shader program.
215
+ * @param {boolean} [notActivate] - If it's true program will not compile.
216
+ * @return {Program} -
217
+ */
218
+ public addProgram(program: Program, notActivate?: boolean): Program;
219
+ /**
220
+ * Removes shader program from handler.
221
+ * @public
222
+ * @param {String} name - Shader program name.
223
+ */
224
+ public removeProgram(name: string): void;
225
+ /**
226
+ * Adds shader programs to the handler.
227
+ * @public
228
+ * @param {Array.<Program>} programsArr - Shader program array.
229
+ */
230
+ public addPrograms(programsArr: Array<Program>): void;
231
+ /**
232
+ * Used in addProgram
233
+ * @private
234
+ * @param {ProgramController} sc - Program controller
235
+ */
236
+ private _initProgramController;
237
+ /**
238
+ * Used in init function.
239
+ * @private
240
+ */
241
+ private _initPrograms;
242
+ /**
243
+ * Initialize additional WebGL extensions.
244
+ * @public
245
+ * @param {string} extensionStr - Extension name.
246
+ * @param {boolean} showLog - Show logging.
247
+ * @return {Object} -
248
+ */
249
+ public initializeExtension(extensionStr: string, showLog: boolean): any;
250
+ /**
251
+ * Main function that initialize handler.
252
+ * @public
253
+ */
254
+ public initialize(): void;
255
+ createTexture_n: any;
256
+ createTexture_l: any;
257
+ createTexture_mm: any;
258
+ createTexture_a: any;
259
+ /**
260
+ * Sets default gl render parameters. Used in init function.
261
+ * @private
262
+ */
263
+ private _setDefaults;
264
+ /**
265
+ * Activate depth test.
266
+ * @public
267
+ */
268
+ public activateDepthTest(): void;
269
+ /**
270
+ * Deactivate depth test.
271
+ * @public
272
+ */
273
+ public deactivateDepthTest(): void;
274
+ /**
275
+ * Activate face culling.
276
+ * @public
277
+ */
278
+ public activateFaceCulling(): void;
279
+ /**
280
+ * Deactivate face cullting.
281
+ * @public
282
+ */
283
+ public deactivateFaceCulling(): void;
284
+ /**
285
+ * Activate blending.
286
+ * @public
287
+ */
288
+ public activateBlending(): void;
289
+ /**
290
+ * Deactivate blending.
291
+ * @public
292
+ */
293
+ public deactivateBlending(): void;
294
+ /**
295
+ * Creates STREAM_DRAW ARRAY buffer.
296
+ * @public
297
+ * @param {Array.<number>} array - Input array.
298
+ * @param {number} itemSize - Array item size.
299
+ * @param {number} numItems - Items quantity.
300
+ * @param {number} [usage=STATIC_DRAW] - Parameter of the bufferData call can be one of STATIC_DRAW, DYNAMIC_DRAW, or STREAM_DRAW.
301
+ * @return {Object} -
302
+ */
303
+ public createStreamArrayBuffer(itemSize: number, numItems: number, usage?: number, bites?: number): any;
304
+ /**
305
+ * Load stream ARRAY buffer.
306
+ * @public
307
+ * @param {Array.<number>} array - Input array.
308
+ * @param {number} itemSize - Array item size.
309
+ * @param {number} numItems - Items quantity.
310
+ * @param {number} [usage=STATIC_DRAW] - Parameter of the bufferData call can be one of STATIC_DRAW, DYNAMIC_DRAW, or STREAM_DRAW.
311
+ * @return {Object} -
312
+ */
313
+ public setStreamArrayBuffer(buffer: any, array: Array<number>, offset?: number): any;
314
+ /**
315
+ * Creates ARRAY buffer.
316
+ * @public
317
+ * @param {Array.<number>} array - Input array.
318
+ * @param {number} itemSize - Array item size.
319
+ * @param {number} numItems - Items quantity.
320
+ * @param {number} [usage=STATIC_DRAW] - Parameter of the bufferData call can be one of STATIC_DRAW, DYNAMIC_DRAW, or STREAM_DRAW.
321
+ * @return {Object} -
322
+ */
323
+ public createArrayBuffer(array: Array<number>, itemSize: number, numItems: number, usage?: number): any;
324
+ /**
325
+ * Creates ARRAY buffer specific length.
326
+ * @public
327
+ * @param {Array.<number>} array - Input array.
328
+ * @param {number} itemSize - Array item size.
329
+ * @param {number} numItems - Items quantity.
330
+ * @param {number} [usage=STATIC_DRAW] - Parameter of the bufferData call can be one of STATIC_DRAW, DYNAMIC_DRAW, or STREAM_DRAW.
331
+ * @return {Object} -
332
+ */
333
+ public createArrayBufferLength(size: any, usage?: number): any;
334
+ /**
335
+ * Creates ELEMENT ARRAY buffer.
336
+ * @public
337
+ * @param {Array.<number>} array - Input array.
338
+ * @param {number} itemSize - Array item size.
339
+ * @param {number} numItems - Items quantity.
340
+ * @param {number} [usage=STATIC_DRAW] - Parameter of the bufferData call can be one of STATIC_DRAW, DYNAMIC_DRAW, or STREAM_DRAW.
341
+ * @return {Object} -
342
+ */
343
+ public createElementArrayBuffer(array: Array<number>, itemSize: number, numItems: number, usage?: number): any;
344
+ /**
345
+ * Sets handler canvas size.
346
+ * @public
347
+ * @param {number} w - Canvas width.
348
+ * @param {number} h - Canvas height.
349
+ */
350
+ public setSize(w: number, h: number): void;
351
+ set pixelRatio(arg: any);
352
+ get pixelRatio(): any;
353
+ /**
354
+ * Returns context screen width.
355
+ * @public
356
+ * @returns {number} -
357
+ */
358
+ public getWidth(): number;
359
+ /**
360
+ * Returns context screen height.
361
+ * @public
362
+ * @returns {number} -
363
+ */
364
+ public getHeight(): number;
365
+ /**
366
+ * Returns canvas aspect ratio.
367
+ * @public
368
+ * @returns {number} -
369
+ */
370
+ public getClientAspect(): number;
371
+ /**
372
+ * Returns screen center coordinates.
373
+ * @public
374
+ * @returns {number} -
375
+ */
376
+ public getCenter(): number;
377
+ /**
378
+ * Draw single frame.
379
+ * @public
380
+ * @param {number} now - Frame current time milliseconds.
381
+ */
382
+ public drawFrame(): void;
383
+ /**
384
+ * Clearing gl frame.
385
+ * @public
386
+ */
387
+ public clearFrame(): void;
388
+ /**
389
+ * Starts animation loop.
390
+ * @public
391
+ */
392
+ public start(): void;
393
+ stop(): void;
394
+ _requestAnimationFrameId: number;
395
+ /**
396
+ * Make animation.
397
+ * @private
398
+ */
399
+ private _animationFrameCallback;
400
+ /**
401
+ * Creates default texture object
402
+ * @public
403
+ * @param {Object} [params] - Texture parameters:
404
+ * @param {callback} [success] - Creation callback
405
+ */
406
+ public createDefaultTexture(params?: any, success?: callback): void;
407
+ /**
408
+ * @public
409
+ */
410
+ public destroy(): void;
411
+ addClock(clock: any): void;
412
+ addClocks(clockArr: any): void;
413
+ removeClock(clock: any): void;
414
+ }
415
+ import { Clock } from "../Clock.js";
416
+ import { ProgramController } from "./ProgramController.js";
417
+ import { Stack } from "../Stack.js";
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Class represents multisample framebuffer.
3
+ * @class
4
+ * @param {Handler} handler - WebGL handler.
5
+ * @param {Object} [options] - Framebuffer options:
6
+ * @param {number} [options.width] - Framebuffer width. Default is handler canvas width.
7
+ * @param {number} [options.height] - Framebuffer height. Default is handler canvas height.
8
+ * @param {Object} [options.texture] - Texture to render.
9
+ * @param {String} [options.depthComponent="DEPTH_COMPONENT16"] - Specifies depth buffer size.
10
+ * @param {Boolean} [options.useDepth] - Using depth buffer during the rendering.
11
+ */
12
+ export class Multisample {
13
+ constructor(handler: any, options: any);
14
+ /**
15
+ * WebGL handler.
16
+ * @public
17
+ * @type {Handler}
18
+ */
19
+ public handler: Handler;
20
+ _internalFormat: any;
21
+ /**
22
+ * Framebuffer object.
23
+ * @private
24
+ * @type {Object}
25
+ */
26
+ private _fbo;
27
+ /**
28
+ * Renderbuffer object.
29
+ * @private
30
+ * @type {Object}
31
+ */
32
+ private _depthRenderbuffer;
33
+ /**
34
+ * Framebuffer width.
35
+ * @private
36
+ * @type {number}
37
+ */
38
+ private _width;
39
+ /**
40
+ * Framebuffer width.
41
+ * @private
42
+ * @type {number}
43
+ */
44
+ private _height;
45
+ _msaa: any;
46
+ _useDepth: any;
47
+ _depthComponent: any;
48
+ /**
49
+ * Framebuffer activity.
50
+ * @private
51
+ * @type {boolean}
52
+ */
53
+ private _active;
54
+ _size: any;
55
+ _filter: any;
56
+ _glFilter: any;
57
+ renderbuffers: any[];
58
+ destroy(): void;
59
+ /**
60
+ * Framebuffer initialization.
61
+ * @private
62
+ */
63
+ private init;
64
+ blitTo(framebuffer: any, attachmentIndex?: number): void;
65
+ /**
66
+ * Sets framebuffer viewport size.
67
+ * @public
68
+ * @param {number} width - Framebuffer width.
69
+ * @param {number} height - Framebuffer height.
70
+ */
71
+ public setSize(width: number, height: number, forceDestroy: any): void;
72
+ /**
73
+ * Returns framebuffer completed.
74
+ * @public
75
+ * @returns {boolean} -
76
+ */
77
+ public isComplete(): boolean;
78
+ /**
79
+ * Activate framebuffer frame to draw.
80
+ * @public
81
+ * @returns {Framebuffer} Returns Current framebuffer.
82
+ */
83
+ public activate(): Framebuffer;
84
+ /**
85
+ * Deactivate framebuffer frame.
86
+ * @public
87
+ */
88
+ public deactivate(): void;
89
+ }
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Represents more comfortable using WebGL shader program.
3
+ * @class
4
+ * @param {string} name - Shader program name identificator.
5
+ * @param {object} material - Object stores uniforms, attributes and program codes:
6
+ * @param {object} material.uniforms - Uniforms definition section.
7
+ * @param {object} material.attributes - Attributes definition section.
8
+ * @param {string} material.vertexShader - Vertex glsl code.
9
+ * @param {string} material.fragmentShader - Fragment glsl code.
10
+ */
11
+ export class Program {
12
+ /**
13
+ * Bind program buffer.
14
+ * @function
15
+ * @param {Program} program - Used program.
16
+ * @param {Object} variable - Variable represents buffer data.
17
+ */
18
+ static bindBuffer(program: Program, variable: any): void;
19
+ constructor(name: any, material: any);
20
+ /**
21
+ * Shader progarm name.
22
+ * @public
23
+ * @type {string}
24
+ */
25
+ public name: string;
26
+ attributes: {};
27
+ uniforms: {};
28
+ /**
29
+ * Attributes.
30
+ * @public
31
+ * @type {Object}
32
+ */
33
+ public _attributes: any;
34
+ /**
35
+ * Uniforms.
36
+ * @public
37
+ * @type {Object}
38
+ */
39
+ public _uniforms: any;
40
+ /**
41
+ * Vertex shader.
42
+ * @public
43
+ * @type {string}
44
+ */
45
+ public vertexShader: string;
46
+ /**
47
+ * Fragment shader.
48
+ * @public
49
+ * @type {string}
50
+ */
51
+ public fragmentShader: string;
52
+ /**
53
+ * Webgl context.
54
+ * @public
55
+ * @type {Object}
56
+ */
57
+ public gl: any;
58
+ /**
59
+ * All program variables.
60
+ * @private
61
+ * @type {Object}
62
+ */
63
+ private _variables;
64
+ /**
65
+ * Program pointer.
66
+ * @private
67
+ * @type {Object}
68
+ */
69
+ private _p;
70
+ /**
71
+ * Texture counter.
72
+ * @prvate
73
+ * @type {number}
74
+ */
75
+ _textureID: number;
76
+ /**
77
+ * Program attributes array.
78
+ * @private
79
+ * @type {Array.<Object>}
80
+ */
81
+ private _attribArrays;
82
+ /**
83
+ * Program attributes divisor.
84
+ * @private
85
+ * @type {Array.<Object>}
86
+ */
87
+ private _attribDivisor;
88
+ /**
89
+ * Sets the current program frame.
90
+ * @public
91
+ */
92
+ public use(): void;
93
+ /**
94
+ * Sets program variables.
95
+ * @public
96
+ * @param {Object} material - Variables and values object.
97
+ */
98
+ public set(material: any): void;
99
+ /**
100
+ * Apply current variables.
101
+ * @public
102
+ */
103
+ public apply(): void;
104
+ /**
105
+ * Calls drawElements index buffer function.
106
+ * @public
107
+ * @param {number} mode - Draw mode(GL_TRIANGLES, GL_LINESTRING etc.).
108
+ * @param {Object} buffer - Index buffer.
109
+ */
110
+ public drawIndexBuffer(mode: number, buffer: any): void;
111
+ /**
112
+ * Calls drawArrays function.
113
+ * @public
114
+ * @param {number} mode - Draw mode(GL_TRIANGLES, GL_LINESTRING etc.).
115
+ * @param {number} numItems - Curent binded buffer drawing items count.
116
+ */
117
+ public drawArrays(mode: number, numItems: number): void;
118
+ /**
119
+ * Check and log for an shader compile errors and warnings. Returns True - if no errors otherwise returns False.
120
+ * @private
121
+ * @param {Object} shader - WebGl shader program.
122
+ * @param {string} src - Shader program source.
123
+ * @returns {boolean} -
124
+ */
125
+ private _getShaderCompileStatus;
126
+ /**
127
+ * Returns compiled vertex shader program pointer.
128
+ * @private
129
+ * @param {string} src - Vertex shader source code.
130
+ * @returns {Object} -
131
+ */
132
+ private _createVertexShader;
133
+ /**
134
+ * Returns compiled fragment shader program pointer.
135
+ * @private
136
+ * @param {string} src - Vertex shader source code.
137
+ * @returns {Object} -
138
+ */
139
+ private _createFragmentShader;
140
+ /**
141
+ * Disable current program vertexAttribArrays.
142
+ * @public
143
+ */
144
+ public disableAttribArrays(): void;
145
+ /**
146
+ * Enable current program vertexAttribArrays.
147
+ * @public
148
+ */
149
+ public enableAttribArrays(): void;
150
+ /**
151
+ * Delete program.
152
+ * @public
153
+ */
154
+ public delete(): void;
155
+ /**
156
+ * Creates program.
157
+ * @public
158
+ * @param {Object} gl - WebGl context.
159
+ */
160
+ public createProgram(gl: any): void;
161
+ }