@luma.gl/webgl 9.0.0-beta.4 → 9.0.0-beta.5

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 (237) hide show
  1. package/dist/adapter/converters/device-parameters.js +240 -158
  2. package/dist/adapter/converters/sampler-parameters.d.ts +0 -4
  3. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/sampler-parameters.js +73 -68
  5. package/dist/adapter/converters/shader-formats.js +33 -46
  6. package/dist/adapter/converters/texture-formats.d.ts +9 -18
  7. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  8. package/dist/adapter/converters/texture-formats.js +454 -871
  9. package/dist/adapter/converters/vertex-formats.js +52 -61
  10. package/dist/adapter/device-helpers/device-features.d.ts +2 -5
  11. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  12. package/dist/adapter/device-helpers/device-features.js +56 -87
  13. package/dist/adapter/device-helpers/device-limits.d.ts +2 -4
  14. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  15. package/dist/adapter/device-helpers/device-limits.js +88 -83
  16. package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
  17. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
  18. package/dist/adapter/device-helpers/get-device-info.js +79 -63
  19. package/dist/adapter/device-helpers/webgl-device-features.d.ts +6 -0
  20. package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -0
  21. package/dist/adapter/device-helpers/webgl-device-features.js +52 -0
  22. package/dist/adapter/device-helpers/webgl-device-info.d.ts +4 -0
  23. package/dist/adapter/device-helpers/webgl-device-info.d.ts.map +1 -0
  24. package/dist/adapter/device-helpers/webgl-device-info.js +87 -0
  25. package/dist/adapter/device-helpers/webgl-device-limits.d.ts +50 -0
  26. package/dist/adapter/device-helpers/webgl-device-limits.d.ts.map +1 -0
  27. package/dist/adapter/device-helpers/webgl-device-limits.js +92 -0
  28. package/dist/adapter/helpers/decode-webgl-types.js +87 -76
  29. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -1
  30. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  31. package/dist/adapter/helpers/get-shader-layout.js +261 -226
  32. package/dist/adapter/helpers/parse-shader-compiler-log.js +46 -37
  33. package/dist/adapter/helpers/set-uniform.d.ts +1 -1
  34. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  35. package/dist/adapter/helpers/set-uniform.js +67 -82
  36. package/dist/adapter/helpers/webgl-topology-utils.js +77 -93
  37. package/dist/adapter/objects/constants-to-keys.d.ts +1 -1
  38. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  39. package/dist/adapter/objects/constants-to-keys.js +18 -12
  40. package/dist/adapter/objects/webgl-renderbuffer.js +76 -80
  41. package/dist/adapter/objects/webgl-resource.d.ts +1 -1
  42. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  43. package/dist/adapter/objects/webgl-resource.js +204 -154
  44. package/dist/adapter/resources/webgl-buffer.d.ts +2 -3
  45. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  46. package/dist/adapter/resources/webgl-buffer.js +160 -119
  47. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  48. package/dist/adapter/resources/webgl-command-buffer.js +268 -171
  49. package/dist/adapter/resources/webgl-command-encoder.js +32 -40
  50. package/dist/adapter/resources/webgl-external-texture.js +92 -1
  51. package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
  52. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  53. package/dist/adapter/resources/webgl-framebuffer.js +167 -139
  54. package/dist/adapter/resources/webgl-render-pass.js +121 -95
  55. package/dist/adapter/resources/webgl-render-pipeline.d.ts +11 -1
  56. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  57. package/dist/adapter/resources/webgl-render-pipeline.js +378 -228
  58. package/dist/adapter/resources/webgl-sampler.d.ts +0 -2
  59. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  60. package/dist/adapter/resources/webgl-sampler.js +43 -34
  61. package/dist/adapter/resources/webgl-shader.d.ts +10 -1
  62. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  63. package/dist/adapter/resources/webgl-shader.js +106 -45
  64. package/dist/adapter/resources/webgl-texture.d.ts +2 -6
  65. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  66. package/dist/adapter/resources/webgl-texture.js +614 -699
  67. package/dist/adapter/resources/webgl-transform-feedback.d.ts +1 -1
  68. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -1
  69. package/dist/adapter/resources/webgl-transform-feedback.js +143 -145
  70. package/dist/adapter/resources/webgl-vertex-array.d.ts +1 -1
  71. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -1
  72. package/dist/adapter/resources/webgl-vertex-array.js +229 -158
  73. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  74. package/dist/adapter/webgl-canvas-context.js +58 -37
  75. package/dist/adapter/webgl-device.d.ts +7 -15
  76. package/dist/adapter/webgl-device.d.ts.map +1 -1
  77. package/dist/adapter/webgl-device.js +440 -381
  78. package/dist/classic/accessor.js +132 -102
  79. package/dist/classic/clear.d.ts +2 -2
  80. package/dist/classic/clear.d.ts.map +1 -1
  81. package/dist/classic/clear.js +73 -73
  82. package/dist/classic/copy-and-blit.d.ts.map +1 -1
  83. package/dist/classic/copy-and-blit.js +176 -177
  84. package/dist/classic/format-utils.d.ts +2 -2
  85. package/dist/classic/format-utils.js +38 -32
  86. package/dist/classic/typed-array-utils.js +95 -81
  87. package/dist/context/{polyfill → context}/context-data.d.ts +2 -1
  88. package/dist/context/context/context-data.d.ts.map +1 -0
  89. package/dist/context/context/context-data.js +33 -0
  90. package/dist/context/context/create-browser-context.d.ts +1 -6
  91. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  92. package/dist/context/context/create-browser-context.js +62 -49
  93. package/dist/context/debug/spector.js +54 -50
  94. package/dist/context/debug/webgl-developer-tools.d.ts +1 -2
  95. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  96. package/dist/context/debug/webgl-developer-tools.js +102 -76
  97. package/dist/context/parameters/unified-parameter-api.d.ts +3 -3
  98. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  99. package/dist/context/parameters/unified-parameter-api.js +95 -46
  100. package/dist/context/parameters/webgl-parameter-tables.d.ts +110 -99
  101. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  102. package/dist/context/parameters/webgl-parameter-tables.js +456 -404
  103. package/dist/context/state-tracker/deep-array-equal.js +18 -14
  104. package/dist/context/state-tracker/track-context-state.d.ts +4 -4
  105. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  106. package/dist/context/state-tracker/track-context-state.js +190 -126
  107. package/dist/context/state-tracker/with-parameters.d.ts +1 -1
  108. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  109. package/dist/context/state-tracker/with-parameters.js +45 -29
  110. package/dist/dist.dev.js +2568 -3786
  111. package/dist/index.cjs +1346 -2464
  112. package/dist/index.cjs.map +7 -0
  113. package/dist/index.d.ts +2 -5
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +36 -26
  116. package/dist/types.js +2 -1
  117. package/dist.min.js +9 -42
  118. package/package.json +11 -15
  119. package/src/adapter/converters/device-parameters.ts +0 -1
  120. package/src/adapter/converters/sampler-parameters.ts +0 -17
  121. package/src/adapter/converters/texture-formats.ts +86 -154
  122. package/src/adapter/device-helpers/webgl-device-features.ts +69 -0
  123. package/src/adapter/device-helpers/{get-device-info.ts → webgl-device-info.ts} +3 -4
  124. package/src/adapter/device-helpers/{device-limits.ts → webgl-device-limits.ts} +25 -23
  125. package/src/adapter/helpers/get-shader-layout.ts +17 -28
  126. package/src/adapter/helpers/set-uniform.ts +1 -3
  127. package/src/adapter/objects/constants-to-keys.ts +1 -1
  128. package/src/adapter/objects/webgl-renderbuffer.ts +4 -4
  129. package/src/adapter/objects/webgl-resource.ts +3 -18
  130. package/src/adapter/resources/webgl-buffer.ts +6 -11
  131. package/src/adapter/resources/webgl-command-buffer.ts +20 -30
  132. package/src/adapter/resources/webgl-external-texture.ts +2 -3
  133. package/src/adapter/resources/webgl-framebuffer.ts +4 -5
  134. package/src/adapter/resources/webgl-render-pass.ts +7 -7
  135. package/src/adapter/resources/webgl-render-pipeline.ts +106 -31
  136. package/src/adapter/resources/webgl-sampler.ts +5 -9
  137. package/src/adapter/resources/webgl-shader.ts +57 -10
  138. package/src/adapter/resources/webgl-texture.ts +29 -103
  139. package/src/adapter/resources/webgl-transform-feedback.ts +14 -15
  140. package/src/adapter/resources/webgl-vertex-array.ts +16 -18
  141. package/src/adapter/webgl-canvas-context.ts +1 -7
  142. package/src/adapter/webgl-device.ts +18 -67
  143. package/src/classic/clear.ts +13 -14
  144. package/src/classic/copy-and-blit.ts +1 -2
  145. package/src/context/context/context-data.ts +44 -0
  146. package/src/context/context/create-browser-context.ts +7 -32
  147. package/src/context/debug/webgl-developer-tools.ts +6 -8
  148. package/src/context/parameters/unified-parameter-api.ts +3 -3
  149. package/src/context/parameters/webgl-parameter-tables.ts +66 -75
  150. package/src/context/state-tracker/track-context-state.ts +18 -17
  151. package/src/context/state-tracker/with-parameters.ts +1 -1
  152. package/src/index.ts +2 -17
  153. package/dist/adapter/converters/device-parameters.js.map +0 -1
  154. package/dist/adapter/converters/sampler-parameters.js.map +0 -1
  155. package/dist/adapter/converters/shader-formats.js.map +0 -1
  156. package/dist/adapter/converters/texture-formats.js.map +0 -1
  157. package/dist/adapter/converters/vertex-formats.js.map +0 -1
  158. package/dist/adapter/device-helpers/device-features.js.map +0 -1
  159. package/dist/adapter/device-helpers/device-limits.js.map +0 -1
  160. package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
  161. package/dist/adapter/device-helpers/is-old-ie.d.ts +0 -2
  162. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +0 -1
  163. package/dist/adapter/device-helpers/is-old-ie.js +0 -9
  164. package/dist/adapter/device-helpers/is-old-ie.js.map +0 -1
  165. package/dist/adapter/helpers/decode-webgl-types.js.map +0 -1
  166. package/dist/adapter/helpers/get-shader-layout.js.map +0 -1
  167. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  168. package/dist/adapter/helpers/set-uniform.js.map +0 -1
  169. package/dist/adapter/helpers/webgl-topology-utils.js.map +0 -1
  170. package/dist/adapter/objects/constants-to-keys.js.map +0 -1
  171. package/dist/adapter/objects/webgl-renderbuffer.js.map +0 -1
  172. package/dist/adapter/objects/webgl-resource.js.map +0 -1
  173. package/dist/adapter/resources/webgl-buffer.js.map +0 -1
  174. package/dist/adapter/resources/webgl-command-buffer.js.map +0 -1
  175. package/dist/adapter/resources/webgl-command-encoder.js.map +0 -1
  176. package/dist/adapter/resources/webgl-external-texture.js.map +0 -1
  177. package/dist/adapter/resources/webgl-framebuffer.js.map +0 -1
  178. package/dist/adapter/resources/webgl-render-pass.js.map +0 -1
  179. package/dist/adapter/resources/webgl-render-pipeline.js.map +0 -1
  180. package/dist/adapter/resources/webgl-sampler.js.map +0 -1
  181. package/dist/adapter/resources/webgl-shader.js.map +0 -1
  182. package/dist/adapter/resources/webgl-texture.js.map +0 -1
  183. package/dist/adapter/resources/webgl-transform-feedback.js.map +0 -1
  184. package/dist/adapter/resources/webgl-vertex-array.js.map +0 -1
  185. package/dist/adapter/webgl-canvas-context.js.map +0 -1
  186. package/dist/adapter/webgl-device.js.map +0 -1
  187. package/dist/classic/accessor.js.map +0 -1
  188. package/dist/classic/clear.js.map +0 -1
  189. package/dist/classic/copy-and-blit.js.map +0 -1
  190. package/dist/classic/format-utils.js.map +0 -1
  191. package/dist/classic/typed-array-utils.js.map +0 -1
  192. package/dist/context/context/create-browser-context.js.map +0 -1
  193. package/dist/context/context/create-headless-context.d.ts +0 -9
  194. package/dist/context/context/create-headless-context.d.ts.map +0 -1
  195. package/dist/context/context/create-headless-context.js +0 -42
  196. package/dist/context/context/create-headless-context.js.map +0 -1
  197. package/dist/context/context/webgl-checks.d.ts +0 -13
  198. package/dist/context/context/webgl-checks.d.ts.map +0 -1
  199. package/dist/context/context/webgl-checks.js +0 -31
  200. package/dist/context/context/webgl-checks.js.map +0 -1
  201. package/dist/context/debug/spector.js.map +0 -1
  202. package/dist/context/debug/webgl-developer-tools.js.map +0 -1
  203. package/dist/context/parameters/unified-parameter-api.js.map +0 -1
  204. package/dist/context/parameters/webgl-parameter-tables.js.map +0 -1
  205. package/dist/context/polyfill/context-data.d.ts.map +0 -1
  206. package/dist/context/polyfill/context-data.js +0 -12
  207. package/dist/context/polyfill/context-data.js.map +0 -1
  208. package/dist/context/polyfill/get-parameter-polyfill.d.ts +0 -2
  209. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +0 -1
  210. package/dist/context/polyfill/get-parameter-polyfill.js +0 -85
  211. package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
  212. package/dist/context/polyfill/polyfill-context.d.ts +0 -5
  213. package/dist/context/polyfill/polyfill-context.d.ts.map +0 -1
  214. package/dist/context/polyfill/polyfill-context.js +0 -87
  215. package/dist/context/polyfill/polyfill-context.js.map +0 -1
  216. package/dist/context/polyfill/polyfill-table.d.ts +0 -48
  217. package/dist/context/polyfill/polyfill-table.d.ts.map +0 -1
  218. package/dist/context/polyfill/polyfill-table.js +0 -137
  219. package/dist/context/polyfill/polyfill-table.js.map +0 -1
  220. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +0 -2
  221. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +0 -1
  222. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -265
  223. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  224. package/dist/context/state-tracker/deep-array-equal.js.map +0 -1
  225. package/dist/context/state-tracker/track-context-state.js.map +0 -1
  226. package/dist/context/state-tracker/with-parameters.js.map +0 -1
  227. package/dist/index.js.map +0 -1
  228. package/dist/types.js.map +0 -1
  229. package/src/adapter/device-helpers/device-features.ts +0 -161
  230. package/src/adapter/device-helpers/is-old-ie.ts +0 -14
  231. package/src/context/context/create-headless-context.ts +0 -51
  232. package/src/context/context/webgl-checks.ts +0 -51
  233. package/src/context/polyfill/context-data.ts +0 -30
  234. package/src/context/polyfill/get-parameter-polyfill.ts +0 -122
  235. package/src/context/polyfill/polyfill-context.ts +0 -104
  236. package/src/context/polyfill/polyfill-table.ts +0 -167
  237. package/src/context/polyfill/polyfill-vertex-array-object.ts +0 -365
@@ -1,118 +1,148 @@
1
+ // luma.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
1
3
  import { assert, checkProps } from '@luma.gl/core';
2
- import { getTypedArrayFromGLType } from "./typed-array-utils.js";
4
+ import { GL } from '@luma.gl/constants';
5
+ import { getTypedArrayFromGLType } from './typed-array-utils';
3
6
  const DEFAULT_ACCESSOR_VALUES = {
4
- offset: 0,
5
- stride: 0,
6
- type: 5126,
7
- size: 1,
8
- divisor: 0,
9
- normalized: false,
10
- integer: false
7
+ offset: 0,
8
+ stride: 0,
9
+ type: GL.FLOAT,
10
+ size: 1,
11
+ divisor: 0,
12
+ normalized: false,
13
+ integer: false
11
14
  };
12
15
  const PROP_CHECKS = {
13
- deprecatedProps: {
14
- instanced: 'divisor',
15
- isInstanced: 'divisor'
16
- }
16
+ deprecatedProps: {
17
+ instanced: 'divisor',
18
+ isInstanced: 'divisor'
19
+ }
17
20
  };
18
21
  export class Accessor {
19
- static getBytesPerElement(accessor) {
20
- const ArrayType = getTypedArrayFromGLType(accessor.type || 5126);
21
- return ArrayType.BYTES_PER_ELEMENT;
22
- }
23
- static getBytesPerVertex(accessor) {
24
- assert(accessor.size);
25
- const ArrayType = getTypedArrayFromGLType(accessor.type || 5126);
26
- return ArrayType.BYTES_PER_ELEMENT * accessor.size;
27
- }
28
- static resolve() {
29
- for (var _len = arguments.length, accessors = new Array(_len), _key = 0; _key < _len; _key++) {
30
- accessors[_key] = arguments[_key];
31
- }
32
- return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]);
33
- }
34
- constructor() {
35
- this.offset = void 0;
36
- this.stride = void 0;
37
- this.type = void 0;
38
- this.size = void 0;
39
- this.divisor = void 0;
40
- this.normalized = void 0;
41
- this.integer = void 0;
42
- this.buffer = void 0;
43
- this.index = void 0;
44
- for (var _len2 = arguments.length, accessors = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
45
- accessors[_key2] = arguments[_key2];
46
- }
47
- accessors.forEach(accessor => this._assign(accessor));
48
- Object.freeze(this);
49
- }
50
- toString() {
51
- return JSON.stringify(this);
52
- }
53
- get BYTES_PER_ELEMENT() {
54
- return Accessor.getBytesPerElement(this);
55
- }
56
- get BYTES_PER_VERTEX() {
57
- return Accessor.getBytesPerVertex(this);
58
- }
59
- _assign() {
60
- let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
61
- props = checkProps('Accessor', props, PROP_CHECKS);
62
- if (props.type !== undefined) {
63
- this.type = props.type;
64
- if (props.type === 5124 || props.type === 5125) {
65
- this.integer = true;
66
- }
67
- }
68
- if (props.size !== undefined) {
69
- this.size = props.size;
70
- }
71
- if (props.offset !== undefined) {
72
- this.offset = props.offset;
73
- }
74
- if (props.stride !== undefined) {
75
- this.stride = props.stride;
76
- }
77
- if (props.normalize !== undefined) {
78
- this.normalized = props.normalize;
22
+ offset;
23
+ stride;
24
+ type;
25
+ size;
26
+ divisor;
27
+ normalized;
28
+ integer;
29
+ buffer;
30
+ index;
31
+ static getBytesPerElement(accessor) {
32
+ // TODO: using `FLOAT` when type is not specified,
33
+ // ensure this assumption is valid or force API to specify type.
34
+ const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);
35
+ return ArrayType.BYTES_PER_ELEMENT;
79
36
  }
80
- if (props.normalized !== undefined) {
81
- this.normalized = props.normalized;
37
+ static getBytesPerVertex(accessor) {
38
+ assert(accessor.size);
39
+ // TODO: using `FLOAT` when type is not specified,
40
+ // ensure this assumption is valid or force API to specify type.
41
+ const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);
42
+ return ArrayType.BYTES_PER_ELEMENT * accessor.size;
82
43
  }
83
- if (props.integer !== undefined) {
84
- this.integer = props.integer;
44
+ // Combines (merges) a list of accessors. On top of default values
45
+ // Usually [programAccessor, bufferAccessor, appAccessor]
46
+ // All props will be set in the returned object.
47
+ // TODO check for conflicts between values in the supplied accessors
48
+ static resolve(...accessors) {
49
+ return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]); // Default values
85
50
  }
86
- if (props.divisor !== undefined) {
87
- this.divisor = props.divisor;
51
+ constructor(...accessors) {
52
+ accessors.forEach((accessor) => this._assign(accessor)); // Merge in sequence
53
+ Object.freeze(this);
88
54
  }
89
- if (props.buffer !== undefined) {
90
- this.buffer = props.buffer;
55
+ toString() {
56
+ return JSON.stringify(this);
91
57
  }
92
- if (props.index !== undefined) {
93
- if (typeof props.index === 'boolean') {
94
- this.index = props.index ? 1 : 0;
95
- } else {
96
- this.index = props.index;
97
- }
58
+ // ACCESSORS
59
+ // TODO - remove>
60
+ get BYTES_PER_ELEMENT() {
61
+ return Accessor.getBytesPerElement(this);
98
62
  }
99
- if (props.instanced !== undefined) {
100
- this.divisor = props.instanced ? 1 : 0;
63
+ get BYTES_PER_VERTEX() {
64
+ return Accessor.getBytesPerVertex(this);
101
65
  }
102
- if (props.isInstanced !== undefined) {
103
- this.divisor = props.isInstanced ? 1 : 0;
66
+ // PRIVATE
67
+ // eslint-disable-next-line complexity, max-statements
68
+ _assign(props = {}) {
69
+ props = checkProps('Accessor', props, PROP_CHECKS);
70
+ if (props.type !== undefined) {
71
+ this.type = props.type;
72
+ // Auto-deduce integer type?
73
+ if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {
74
+ this.integer = true;
75
+ }
76
+ }
77
+ if (props.size !== undefined) {
78
+ this.size = props.size;
79
+ }
80
+ if (props.offset !== undefined) {
81
+ this.offset = props.offset;
82
+ }
83
+ if (props.stride !== undefined) {
84
+ this.stride = props.stride;
85
+ }
86
+ // @ts-expect-error
87
+ if (props.normalize !== undefined) {
88
+ // @ts-expect-error
89
+ this.normalized = props.normalize;
90
+ }
91
+ if (props.normalized !== undefined) {
92
+ this.normalized = props.normalized;
93
+ }
94
+ if (props.integer !== undefined) {
95
+ this.integer = props.integer;
96
+ }
97
+ // INSTANCE DIVISOR
98
+ if (props.divisor !== undefined) {
99
+ this.divisor = props.divisor;
100
+ }
101
+ // Buffer is optional
102
+ if (props.buffer !== undefined) {
103
+ this.buffer = props.buffer;
104
+ }
105
+ // The binding index (for binding e.g. Transform feedbacks and Uniform buffers)
106
+ // TODO - should this be part of accessor?
107
+ if (props.index !== undefined) {
108
+ if (typeof props.index === 'boolean') {
109
+ this.index = props.index ? 1 : 0;
110
+ }
111
+ else {
112
+ this.index = props.index;
113
+ }
114
+ }
115
+ // DEPRECATED
116
+ // @ts-expect-error
117
+ if (props.instanced !== undefined) {
118
+ // @ts-expect-error
119
+ this.divisor = props.instanced ? 1 : 0;
120
+ }
121
+ // @ts-expect-error
122
+ if (props.isInstanced !== undefined) {
123
+ // @ts-expect-error
124
+ this.divisor = props.isInstanced ? 1 : 0;
125
+ }
126
+ if (this.offset === undefined)
127
+ delete this.offset;
128
+ if (this.stride === undefined)
129
+ delete this.stride;
130
+ if (this.type === undefined)
131
+ delete this.type;
132
+ if (this.size === undefined)
133
+ delete this.size;
134
+ if (this.divisor === undefined)
135
+ delete this.divisor;
136
+ if (this.normalized === undefined)
137
+ delete this.normalized;
138
+ if (this.integer === undefined)
139
+ delete this.integer;
140
+ if (this.buffer === undefined)
141
+ delete this.buffer;
142
+ if (this.index === undefined)
143
+ delete this.index;
144
+ return this;
104
145
  }
105
- if (this.offset === undefined) delete this.offset;
106
- if (this.stride === undefined) delete this.stride;
107
- if (this.type === undefined) delete this.type;
108
- if (this.size === undefined) delete this.size;
109
- if (this.divisor === undefined) delete this.divisor;
110
- if (this.normalized === undefined) delete this.normalized;
111
- if (this.integer === undefined) delete this.integer;
112
- if (this.buffer === undefined) delete this.buffer;
113
- if (this.index === undefined) delete this.index;
114
- return this;
115
- }
116
146
  }
147
+ // TEST EXPORTS
117
148
  export { DEFAULT_ACCESSOR_VALUES };
118
- //# sourceMappingURL=accessor.js.map
@@ -3,7 +3,7 @@ import { Device, Framebuffer } from '@luma.gl/core';
3
3
  * Optionally clears depth, color and stencil buffers
4
4
  * @deprecated Set clear color when creating a RenderPass.
5
5
  */
6
- export declare function clear(gl: Device | WebGLRenderingContext, options?: {
6
+ export declare function clear(device: Device, options?: {
7
7
  framebuffer?: Framebuffer;
8
8
  color?: any;
9
9
  depth?: any;
@@ -13,7 +13,7 @@ export declare function clear(gl: Device | WebGLRenderingContext, options?: {
13
13
  * WebGL2 - clear a specific drawing buffer
14
14
  * @deprecated Set clear color when creating a RenderPass
15
15
  */
16
- export declare function clearBuffer(gl: Device | WebGLRenderingContext, options?: {
16
+ export declare function clearBuffer(device: Device, options?: {
17
17
  framebuffer?: Framebuffer;
18
18
  buffer?: any;
19
19
  drawBuffer?: any;
@@ -1 +1 @@
1
- {"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../src/classic/clear.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAS,MAAM,eAAe,CAAC;AAiB1D;;;GAGG;AACH,wBAAgB,KAAK,CACnB,EAAE,EAAE,MAAM,GAAG,qBAAqB,EAClC,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,CAAA;CAAC,GAC7E,IAAI,CAsCN;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,GAAG,qBAAqB,EAClC,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAC,QAuCnF"}
1
+ {"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../src/classic/clear.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAS,MAAM,eAAe,CAAC;AAiB1D;;;GAGG;AACH,wBAAgB,KAAK,CACnB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,CAAA;CAAC,GAC7E,IAAI,CAsCN;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAC,QAsCnF"}
@@ -1,6 +1,8 @@
1
+ // luma.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
1
3
  import { assert } from '@luma.gl/core';
2
- import { WebGLDevice } from "../adapter/webgl-device.js";
3
- import { withGLParameters } from "../context/state-tracker/with-parameters.js";
4
+ import { withGLParameters } from '../context/state-tracker/with-parameters';
5
+ // Should collapse during minification
4
6
  const GL_DEPTH_BUFFER_BIT = 0x00000100;
5
7
  const GL_STENCIL_BUFFER_BIT = 0x00000400;
6
8
  const GL_COLOR_BUFFER_BIT = 0x00004000;
@@ -8,81 +10,79 @@ const GL_COLOR = 0x1800;
8
10
  const GL_DEPTH = 0x1801;
9
11
  const GL_STENCIL = 0x1802;
10
12
  const GL_DEPTH_STENCIL = 0x84f9;
13
+ // Should disappear if asserts are removed
11
14
  const ERR_ARGUMENTS = 'clear: bad arguments';
12
- export function clear(gl, options) {
13
- const device = WebGLDevice.attach(gl);
14
- const {
15
- framebuffer = null,
16
- color = null,
17
- depth = null,
18
- stencil = null
19
- } = options || {};
20
- const parameters = {};
21
- if (framebuffer) {
22
- parameters.framebuffer = framebuffer;
23
- }
24
- let clearFlags = 0;
25
- if (color) {
26
- clearFlags |= GL_COLOR_BUFFER_BIT;
27
- if (color !== true) {
28
- parameters.clearColor = color;
15
+ /**
16
+ * Optionally clears depth, color and stencil buffers
17
+ * @deprecated Set clear color when creating a RenderPass.
18
+ */
19
+ export function clear(device, options) {
20
+ const { framebuffer = null, color = null, depth = null, stencil = null } = options || {};
21
+ const parameters = {};
22
+ if (framebuffer) {
23
+ parameters.framebuffer = framebuffer;
29
24
  }
30
- }
31
- if (depth) {
32
- clearFlags |= GL_DEPTH_BUFFER_BIT;
33
- if (depth !== true) {
34
- parameters.clearDepth = depth;
25
+ let clearFlags = 0;
26
+ if (color) {
27
+ clearFlags |= GL_COLOR_BUFFER_BIT;
28
+ if (color !== true) {
29
+ parameters.clearColor = color;
30
+ }
35
31
  }
36
- }
37
- if (stencil) {
38
- clearFlags |= GL_STENCIL_BUFFER_BIT;
39
- if (depth !== true) {
40
- parameters.clearStencil = depth;
32
+ if (depth) {
33
+ clearFlags |= GL_DEPTH_BUFFER_BIT;
34
+ if (depth !== true) {
35
+ parameters.clearDepth = depth;
36
+ }
41
37
  }
42
- }
43
- assert(clearFlags !== 0, ERR_ARGUMENTS);
44
- withGLParameters(device.gl, parameters, () => {
45
- device.gl.clear(clearFlags);
46
- });
47
- }
48
- export function clearBuffer(gl, options) {
49
- const device = WebGLDevice.attach(gl);
50
- const {
51
- framebuffer = null,
52
- buffer = GL_COLOR,
53
- drawBuffer = 0,
54
- value = [0, 0, 0, 0]
55
- } = options || {};
56
- withGLParameters(device.gl2, {
57
- framebuffer
58
- }, () => {
59
- switch (buffer) {
60
- case GL_COLOR:
61
- switch (value.constructor) {
62
- case Int32Array:
63
- device.gl2.clearBufferiv(buffer, drawBuffer, value);
64
- break;
65
- case Uint32Array:
66
- device.gl2.clearBufferuiv(buffer, drawBuffer, value);
67
- break;
68
- case Float32Array:
69
- default:
70
- device.gl2.clearBufferfv(buffer, drawBuffer, value);
38
+ if (stencil) {
39
+ clearFlags |= GL_STENCIL_BUFFER_BIT;
40
+ if (depth !== true) {
41
+ parameters.clearStencil = depth;
71
42
  }
72
- break;
73
- case GL_DEPTH:
74
- device.gl2.clearBufferfv(GL_DEPTH, 0, [value]);
75
- break;
76
- case GL_STENCIL:
77
- device.gl2.clearBufferiv(GL_STENCIL, 0, [value]);
78
- break;
79
- case GL_DEPTH_STENCIL:
80
- const [depth, stencil] = value;
81
- device.gl2.clearBufferfi(GL_DEPTH_STENCIL, 0, depth, stencil);
82
- break;
83
- default:
84
- assert(false, ERR_ARGUMENTS);
85
43
  }
86
- });
44
+ assert(clearFlags !== 0, ERR_ARGUMENTS);
45
+ // Temporarily set any clear "colors" and call clear
46
+ withGLParameters(device, parameters, () => {
47
+ const gl = device.gl;
48
+ gl.clear(clearFlags);
49
+ });
50
+ }
51
+ /**
52
+ * WebGL2 - clear a specific drawing buffer
53
+ * @deprecated Set clear color when creating a RenderPass
54
+ */
55
+ export function clearBuffer(device, options) {
56
+ const { framebuffer = null, buffer = GL_COLOR, drawBuffer = 0, value = [0, 0, 0, 0] } = options || {};
57
+ const gl = device.gl;
58
+ withGLParameters(gl, { framebuffer }, () => {
59
+ // Method selection per OpenGL ES 3 docs
60
+ switch (buffer) {
61
+ case GL_COLOR:
62
+ switch (value.constructor) {
63
+ case Int32Array:
64
+ gl.clearBufferiv(buffer, drawBuffer, value);
65
+ break;
66
+ case Uint32Array:
67
+ gl.clearBufferuiv(buffer, drawBuffer, value);
68
+ break;
69
+ case Float32Array:
70
+ default:
71
+ gl.clearBufferfv(buffer, drawBuffer, value);
72
+ }
73
+ break;
74
+ case GL_DEPTH:
75
+ gl.clearBufferfv(GL_DEPTH, 0, [value]);
76
+ break;
77
+ case GL_STENCIL:
78
+ gl.clearBufferiv(GL_STENCIL, 0, [value]);
79
+ break;
80
+ case GL_DEPTH_STENCIL:
81
+ const [depth, stencil] = value;
82
+ gl.clearBufferfi(GL_DEPTH_STENCIL, 0, depth, stencil);
83
+ break;
84
+ default:
85
+ assert(false, ERR_ARGUMENTS);
86
+ }
87
+ });
87
88
  }
88
- //# sourceMappingURL=clear.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy-and-blit.d.ts","sourceRoot":"","sources":["../../src/classic/copy-and-blit.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AACrF,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AAMtC,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAE9D;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;IAEjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,UAAU,GAAG,WAAW,GAAG,YAAY,CAiDzC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,WAAW,CAyCb;AAED;;;GAGG;AAEH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,MAAM,EAAE,OAAO,GAAG,EAAE,EACpB,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAgGT;AAYD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAUrF"}
1
+ {"version":3,"file":"copy-and-blit.d.ts","sourceRoot":"","sources":["../../src/classic/copy-and-blit.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AACrF,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AAMtC,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAE9D;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;IAEjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,UAAU,GAAG,WAAW,GAAG,YAAY,CAiDzC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,WAAW,CAyCb;AAED;;;GAGG;AAEH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,MAAM,EAAE,OAAO,GAAG,EAAE,EACpB,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CA+FT;AAYD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAUrF"}