@luma.gl/engine 8.5.8 → 8.6.0-alpha.2

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 (270) hide show
  1. package/dist/animation/key-frames.d.ts +18 -0
  2. package/dist/animation/key-frames.d.ts.map +1 -0
  3. package/dist/{esm/animation → animation}/key-frames.js +13 -6
  4. package/dist/animation/key-frames.js.map +1 -0
  5. package/dist/animation/timeline.d.ts +51 -0
  6. package/dist/animation/timeline.d.ts.map +1 -0
  7. package/dist/{esm/animation → animation}/timeline.js +10 -5
  8. package/dist/animation/timeline.js.map +1 -0
  9. package/dist/bundle.d.ts +2 -0
  10. package/dist/bundle.d.ts.map +1 -0
  11. package/dist/bundle.js +5 -0
  12. package/dist/bundle.js.map +1 -0
  13. package/dist/geometries/cone-geometry.d.ts +10 -0
  14. package/dist/geometries/cone-geometry.d.ts.map +1 -0
  15. package/dist/{esm/geometries → geometries}/cone-geometry.js +2 -2
  16. package/dist/geometries/cone-geometry.js.map +1 -0
  17. package/dist/geometries/cube-geometry.d.ts +9 -0
  18. package/dist/geometries/cube-geometry.d.ts.map +1 -0
  19. package/dist/{esm/geometries → geometries}/cube-geometry.js +18 -18
  20. package/dist/geometries/cube-geometry.js.map +1 -0
  21. package/dist/geometries/cylinder-geometry.d.ts +10 -0
  22. package/dist/geometries/cylinder-geometry.d.ts.map +1 -0
  23. package/dist/{esm/geometries → geometries}/cylinder-geometry.js +2 -2
  24. package/dist/geometries/cylinder-geometry.js.map +1 -0
  25. package/dist/geometries/ico-sphere-geometry.d.ts +11 -0
  26. package/dist/geometries/ico-sphere-geometry.d.ts.map +1 -0
  27. package/dist/{esm/geometries → geometries}/ico-sphere-geometry.js +2 -2
  28. package/dist/geometries/ico-sphere-geometry.js.map +1 -0
  29. package/dist/geometries/plane-geometry.d.ts +10 -0
  30. package/dist/geometries/plane-geometry.d.ts.map +1 -0
  31. package/dist/{esm/geometries → geometries}/plane-geometry.js +5 -5
  32. package/dist/geometries/plane-geometry.js.map +1 -0
  33. package/dist/geometries/sphere-geometry.d.ts +12 -0
  34. package/dist/geometries/sphere-geometry.d.ts.map +1 -0
  35. package/dist/{esm/geometries → geometries}/sphere-geometry.js +2 -9
  36. package/dist/geometries/sphere-geometry.js.map +1 -0
  37. package/dist/geometries/truncated-cone-geometry.d.ts +13 -0
  38. package/dist/geometries/truncated-cone-geometry.d.ts.map +1 -0
  39. package/dist/{esm/geometries → geometries}/truncated-cone-geometry.js +1 -1
  40. package/dist/geometries/truncated-cone-geometry.js.map +1 -0
  41. package/dist/geometry/geometry-utils.d.ts +2 -0
  42. package/dist/geometry/geometry-utils.d.ts.map +1 -0
  43. package/dist/{esm/geometry → geometry}/geometry-utils.js +0 -0
  44. package/dist/geometry/geometry-utils.js.map +1 -0
  45. package/dist/geometry/geometry.d.ts +44 -0
  46. package/dist/geometry/geometry.d.ts.map +1 -0
  47. package/dist/{esm/geometry → geometry}/geometry.js +28 -19
  48. package/dist/geometry/geometry.js.map +1 -0
  49. package/dist/index.d.ts +26 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +17 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/lib/animation-loop.d.ts +149 -0
  54. package/dist/lib/animation-loop.d.ts.map +1 -0
  55. package/dist/{esm/lib → lib}/animation-loop.js +190 -143
  56. package/dist/lib/animation-loop.js.map +1 -0
  57. package/dist/lib/model-utils.d.ts +4 -0
  58. package/dist/lib/model-utils.d.ts.map +1 -0
  59. package/dist/{esm/lib → lib}/model-utils.js +3 -2
  60. package/dist/lib/model-utils.js.map +1 -0
  61. package/dist/lib/model.d.ts +109 -0
  62. package/dist/lib/model.d.ts.map +1 -0
  63. package/dist/{esm/lib → lib}/model.js +76 -20
  64. package/dist/lib/model.js.map +1 -0
  65. package/dist/lib/program-manager.d.ts +39 -0
  66. package/dist/lib/program-manager.d.ts.map +1 -0
  67. package/dist/{esm/lib → lib}/program-manager.js +29 -18
  68. package/dist/lib/program-manager.js.map +1 -0
  69. package/dist/lib/render-loop.d.ts +27 -0
  70. package/dist/lib/render-loop.d.ts.map +1 -0
  71. package/dist/lib/render-loop.js +56 -0
  72. package/dist/lib/render-loop.js.map +1 -0
  73. package/dist/transform/buffer-transform.d.ts +36 -0
  74. package/dist/transform/buffer-transform.d.ts.map +1 -0
  75. package/dist/{esm/transform → transform}/buffer-transform.js +15 -8
  76. package/dist/transform/buffer-transform.js.map +1 -0
  77. package/dist/transform/texture-transform.d.ts +57 -0
  78. package/dist/transform/texture-transform.d.ts.map +1 -0
  79. package/dist/{esm/transform → transform}/texture-transform.js +48 -16
  80. package/dist/transform/texture-transform.js.map +1 -0
  81. package/dist/transform/transform-shader-utils.d.ts +26 -0
  82. package/dist/transform/transform-shader-utils.d.ts.map +1 -0
  83. package/dist/{esm/transform → transform}/transform-shader-utils.js +38 -46
  84. package/dist/transform/transform-shader-utils.js.map +1 -0
  85. package/dist/transform/transform-types.d.ts +44 -0
  86. package/dist/transform/transform-types.d.ts.map +1 -0
  87. package/dist/transform/transform-types.js +2 -0
  88. package/dist/transform/transform-types.js.map +1 -0
  89. package/dist/transform/transform.d.ts +47 -0
  90. package/dist/transform/transform.d.ts.map +1 -0
  91. package/dist/{esm/transform → transform}/transform.js +63 -43
  92. package/dist/transform/transform.js.map +1 -0
  93. package/dist/utils/clip-space.d.ts +5 -0
  94. package/dist/utils/clip-space.d.ts.map +1 -0
  95. package/dist/{esm/utils → utils}/clip-space.js +3 -17
  96. package/dist/utils/clip-space.js.map +1 -0
  97. package/package.json +11 -11
  98. package/src/animation/{key-frames.js → key-frames.ts} +18 -16
  99. package/src/animation/{timeline.js → timeline.ts} +54 -18
  100. package/src/bundle.ts +4 -0
  101. package/src/geometries/{cone-geometry.js → cone-geometry.ts} +9 -3
  102. package/src/geometries/{cube-geometry.js → cube-geometry.ts} +17 -12
  103. package/src/geometries/cylinder-geometry.ts +20 -0
  104. package/src/geometries/{ico-sphere-geometry.js → ico-sphere-geometry.ts} +10 -3
  105. package/src/geometries/{plane-geometry.js → plane-geometry.ts} +11 -6
  106. package/src/geometries/{sphere-geometry.js → sphere-geometry.ts} +15 -11
  107. package/src/geometries/{truncated-cone-geometry.js → truncated-cone-geometry.ts} +14 -5
  108. package/src/geometry/{geometry-utils.js → geometry-utils.ts} +2 -0
  109. package/src/geometry/{geometry.js → geometry.ts} +47 -34
  110. package/src/index.ts +35 -0
  111. package/src/lib/animation-loop.ts +724 -0
  112. package/src/lib/{model-utils.js → model-utils.ts} +2 -2
  113. package/src/lib/{model.js → model.ts} +184 -66
  114. package/src/lib/{program-manager.js → program-manager.ts} +53 -34
  115. package/src/lib/render-loop.ts +56 -0
  116. package/src/transform/{buffer-transform.js → buffer-transform.ts} +42 -27
  117. package/src/transform/{texture-transform.js → texture-transform.ts} +35 -25
  118. package/src/transform/{transform-shader-utils.js → transform-shader-utils.ts} +55 -27
  119. package/src/transform/transform-types.ts +42 -0
  120. package/src/transform/transform.ts +189 -0
  121. package/src/utils/{clip-space.js → clip-space.ts} +4 -3
  122. package/dist/dist.js +0 -32403
  123. package/dist/dist.min.js +0 -1
  124. package/dist/es5/animation/key-frames.d.ts +0 -19
  125. package/dist/es5/animation/key-frames.js +0 -95
  126. package/dist/es5/animation/key-frames.js.map +0 -1
  127. package/dist/es5/animation/timeline.d.ts +0 -39
  128. package/dist/es5/animation/timeline.js +0 -211
  129. package/dist/es5/animation/timeline.js.map +0 -1
  130. package/dist/es5/bundle.js +0 -9
  131. package/dist/es5/bundle.js.map +0 -1
  132. package/dist/es5/geometries/cone-geometry.d.ts +0 -5
  133. package/dist/es5/geometries/cone-geometry.js +0 -59
  134. package/dist/es5/geometries/cone-geometry.js.map +0 -1
  135. package/dist/es5/geometries/cube-geometry.d.ts +0 -5
  136. package/dist/es5/geometries/cube-geometry.js +0 -75
  137. package/dist/es5/geometries/cube-geometry.js.map +0 -1
  138. package/dist/es5/geometries/cylinder-geometry.d.ts +0 -5
  139. package/dist/es5/geometries/cylinder-geometry.js +0 -55
  140. package/dist/es5/geometries/cylinder-geometry.js.map +0 -1
  141. package/dist/es5/geometries/ico-sphere-geometry.d.ts +0 -5
  142. package/dist/es5/geometries/ico-sphere-geometry.js +0 -217
  143. package/dist/es5/geometries/ico-sphere-geometry.js.map +0 -1
  144. package/dist/es5/geometries/index.d.ts +0 -7
  145. package/dist/es5/geometries/index.js +0 -64
  146. package/dist/es5/geometries/index.js.map +0 -1
  147. package/dist/es5/geometries/plane-geometry.d.ts +0 -5
  148. package/dist/es5/geometries/plane-geometry.js +0 -168
  149. package/dist/es5/geometries/plane-geometry.js.map +0 -1
  150. package/dist/es5/geometries/sphere-geometry.d.ts +0 -5
  151. package/dist/es5/geometries/sphere-geometry.js +0 -152
  152. package/dist/es5/geometries/sphere-geometry.js.map +0 -1
  153. package/dist/es5/geometries/truncated-cone-geometry.d.ts +0 -5
  154. package/dist/es5/geometries/truncated-cone-geometry.js +0 -171
  155. package/dist/es5/geometries/truncated-cone-geometry.js.map +0 -1
  156. package/dist/es5/geometry/geometry-utils.d.ts +0 -1
  157. package/dist/es5/geometry/geometry-utils.js +0 -49
  158. package/dist/es5/geometry/geometry-utils.js.map +0 -1
  159. package/dist/es5/geometry/geometry.d.ts +0 -25
  160. package/dist/es5/geometry/geometry.js +0 -150
  161. package/dist/es5/geometry/geometry.js.map +0 -1
  162. package/dist/es5/index.d.ts +0 -19
  163. package/dist/es5/index.js +0 -128
  164. package/dist/es5/index.js.map +0 -1
  165. package/dist/es5/lib/animation-loop.d.ts +0 -158
  166. package/dist/es5/lib/animation-loop.js +0 -642
  167. package/dist/es5/lib/animation-loop.js.map +0 -1
  168. package/dist/es5/lib/model-utils.d.ts +0 -3
  169. package/dist/es5/lib/model-utils.js +0 -110
  170. package/dist/es5/lib/model-utils.js.map +0 -1
  171. package/dist/es5/lib/model.d.ts +0 -214
  172. package/dist/es5/lib/model.js +0 -584
  173. package/dist/es5/lib/model.js.map +0 -1
  174. package/dist/es5/lib/program-manager.d.ts +0 -79
  175. package/dist/es5/lib/program-manager.js +0 -238
  176. package/dist/es5/lib/program-manager.js.map +0 -1
  177. package/dist/es5/transform/buffer-transform.d.ts +0 -13
  178. package/dist/es5/transform/buffer-transform.js +0 -294
  179. package/dist/es5/transform/buffer-transform.js.map +0 -1
  180. package/dist/es5/transform/resource-transform.d.ts +0 -16
  181. package/dist/es5/transform/texture-transform.d.ts +0 -16
  182. package/dist/es5/transform/texture-transform.js +0 -405
  183. package/dist/es5/transform/texture-transform.js.map +0 -1
  184. package/dist/es5/transform/transform-shader-utils.d.ts +0 -31
  185. package/dist/es5/transform/transform-shader-utils.js +0 -160
  186. package/dist/es5/transform/transform-shader-utils.js.map +0 -1
  187. package/dist/es5/transform/transform.d.ts +0 -33
  188. package/dist/es5/transform/transform.js +0 -274
  189. package/dist/es5/transform/transform.js.map +0 -1
  190. package/dist/es5/utils/clip-space.d.ts +0 -5
  191. package/dist/es5/utils/clip-space.js +0 -72
  192. package/dist/es5/utils/clip-space.js.map +0 -1
  193. package/dist/esm/animation/key-frames.d.ts +0 -19
  194. package/dist/esm/animation/key-frames.js.map +0 -1
  195. package/dist/esm/animation/timeline.d.ts +0 -39
  196. package/dist/esm/animation/timeline.js.map +0 -1
  197. package/dist/esm/bundle.js +0 -7
  198. package/dist/esm/bundle.js.map +0 -1
  199. package/dist/esm/geometries/cone-geometry.d.ts +0 -5
  200. package/dist/esm/geometries/cone-geometry.js.map +0 -1
  201. package/dist/esm/geometries/cube-geometry.d.ts +0 -5
  202. package/dist/esm/geometries/cube-geometry.js.map +0 -1
  203. package/dist/esm/geometries/cylinder-geometry.d.ts +0 -5
  204. package/dist/esm/geometries/cylinder-geometry.js.map +0 -1
  205. package/dist/esm/geometries/ico-sphere-geometry.d.ts +0 -5
  206. package/dist/esm/geometries/ico-sphere-geometry.js.map +0 -1
  207. package/dist/esm/geometries/index.d.ts +0 -7
  208. package/dist/esm/geometries/index.js +0 -8
  209. package/dist/esm/geometries/index.js.map +0 -1
  210. package/dist/esm/geometries/plane-geometry.d.ts +0 -5
  211. package/dist/esm/geometries/plane-geometry.js.map +0 -1
  212. package/dist/esm/geometries/sphere-geometry.d.ts +0 -5
  213. package/dist/esm/geometries/sphere-geometry.js.map +0 -1
  214. package/dist/esm/geometries/truncated-cone-geometry.d.ts +0 -5
  215. package/dist/esm/geometries/truncated-cone-geometry.js.map +0 -1
  216. package/dist/esm/geometry/geometry-utils.d.ts +0 -1
  217. package/dist/esm/geometry/geometry-utils.js.map +0 -1
  218. package/dist/esm/geometry/geometry.d.ts +0 -25
  219. package/dist/esm/geometry/geometry.js.map +0 -1
  220. package/dist/esm/index.d.ts +0 -19
  221. package/dist/esm/index.js +0 -16
  222. package/dist/esm/index.js.map +0 -1
  223. package/dist/esm/lib/animation-loop.d.ts +0 -158
  224. package/dist/esm/lib/animation-loop.js.map +0 -1
  225. package/dist/esm/lib/model-utils.d.ts +0 -3
  226. package/dist/esm/lib/model-utils.js.map +0 -1
  227. package/dist/esm/lib/model.d.ts +0 -214
  228. package/dist/esm/lib/model.js.map +0 -1
  229. package/dist/esm/lib/program-manager.d.ts +0 -79
  230. package/dist/esm/lib/program-manager.js.map +0 -1
  231. package/dist/esm/transform/buffer-transform.d.ts +0 -13
  232. package/dist/esm/transform/buffer-transform.js.map +0 -1
  233. package/dist/esm/transform/resource-transform.d.ts +0 -16
  234. package/dist/esm/transform/texture-transform.d.ts +0 -16
  235. package/dist/esm/transform/texture-transform.js.map +0 -1
  236. package/dist/esm/transform/transform-shader-utils.d.ts +0 -31
  237. package/dist/esm/transform/transform-shader-utils.js.map +0 -1
  238. package/dist/esm/transform/transform.d.ts +0 -33
  239. package/dist/esm/transform/transform.js.map +0 -1
  240. package/dist/esm/utils/clip-space.d.ts +0 -5
  241. package/dist/esm/utils/clip-space.js.map +0 -1
  242. package/src/animation/key-frames.d.ts +0 -19
  243. package/src/animation/timeline.d.ts +0 -39
  244. package/src/bundle.js +0 -7
  245. package/src/geometries/cone-geometry.d.ts +0 -5
  246. package/src/geometries/cube-geometry.d.ts +0 -5
  247. package/src/geometries/cylinder-geometry.d.ts +0 -5
  248. package/src/geometries/cylinder-geometry.js +0 -14
  249. package/src/geometries/ico-sphere-geometry.d.ts +0 -5
  250. package/src/geometries/index.d.ts +0 -7
  251. package/src/geometries/index.js +0 -7
  252. package/src/geometries/plane-geometry.d.ts +0 -5
  253. package/src/geometries/sphere-geometry.d.ts +0 -5
  254. package/src/geometries/truncated-cone-geometry.d.ts +0 -5
  255. package/src/geometry/geometry-utils.d.ts +0 -1
  256. package/src/geometry/geometry.d.ts +0 -25
  257. package/src/index.d.ts +0 -19
  258. package/src/index.js +0 -22
  259. package/src/lib/animation-loop.d.ts +0 -158
  260. package/src/lib/animation-loop.js +0 -601
  261. package/src/lib/model-utils.d.ts +0 -3
  262. package/src/lib/model.d.ts +0 -214
  263. package/src/lib/program-manager.d.ts +0 -79
  264. package/src/transform/buffer-transform.d.ts +0 -13
  265. package/src/transform/resource-transform.d.ts +0 -16
  266. package/src/transform/texture-transform.d.ts +0 -16
  267. package/src/transform/transform-shader-utils.d.ts +0 -31
  268. package/src/transform/transform.d.ts +0 -33
  269. package/src/transform/transform.js +0 -177
  270. package/src/utils/clip-space.d.ts +0 -5
@@ -1,16 +0,0 @@
1
- export type TransformDrawOptions = {
2
- attributes?: object;
3
- framebuffer?: any;
4
- uniforms?: object;
5
- discard?: boolean;
6
- parameters?: object;
7
- transformFeedback?: any;
8
- };
9
-
10
- export type TransformModelProps = {
11
- vs: any;
12
- fs: any;
13
- modules: any;
14
- uniforms: any;
15
- inject: any;
16
- };
@@ -1,16 +0,0 @@
1
- import {TransformDrawOptions, TransformModelProps} from './resource-transform';
2
-
3
- export default class TextureTransform {
4
- constructor(gl: WebGLRenderingContext, props?: {});
5
-
6
- updateModelProps(props?: {}): TransformModelProps;
7
-
8
- getDrawOptions(opts?: {}): TransformDrawOptions;
9
-
10
- swap(): boolean;
11
- update(opts?: {}): void;
12
- getTargetTexture(): any;
13
- getData(opts: {packed?: boolean}): any;
14
- getFramebuffer(): any;
15
- delete(): void;
16
- }
@@ -1,405 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
- var _webgl = require("@luma.gl/webgl");
17
-
18
- var _shadertools = require("@luma.gl/shadertools");
19
-
20
- var _transformShaderUtils = require("./transform-shader-utils");
21
-
22
- var _SRC_TEX_PARAMETER_OV;
23
-
24
- var SRC_TEX_PARAMETER_OVERRIDES = (_SRC_TEX_PARAMETER_OV = {}, (0, _defineProperty2.default)(_SRC_TEX_PARAMETER_OV, 10241, 9728), (0, _defineProperty2.default)(_SRC_TEX_PARAMETER_OV, 10240, 9728), (0, _defineProperty2.default)(_SRC_TEX_PARAMETER_OV, 10242, 33071), (0, _defineProperty2.default)(_SRC_TEX_PARAMETER_OV, 10243, 33071), _SRC_TEX_PARAMETER_OV);
25
- var FS_OUTPUT_VARIABLE = 'transform_output';
26
-
27
- var TextureTransform = function () {
28
- function TextureTransform(gl) {
29
- var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
30
- (0, _classCallCheck2.default)(this, TextureTransform);
31
- this.gl = gl;
32
- this.id = this.currentIndex = 0;
33
- this._swapTexture = null;
34
- this.targetTextureVarying = null;
35
- this.targetTextureType = null;
36
- this.samplerTextureMap = null;
37
- this.bindings = [];
38
- this.resources = {};
39
-
40
- this._initialize(props);
41
-
42
- Object.seal(this);
43
- }
44
-
45
- (0, _createClass2.default)(TextureTransform, [{
46
- key: "updateModelProps",
47
- value: function updateModelProps() {
48
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
49
-
50
- var updatedModelProps = this._processVertexShader(props);
51
-
52
- return Object.assign({}, props, updatedModelProps);
53
- }
54
- }, {
55
- key: "getDrawOptions",
56
- value: function getDrawOptions() {
57
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
58
- var _this$bindings$this$c = this.bindings[this.currentIndex],
59
- sourceBuffers = _this$bindings$this$c.sourceBuffers,
60
- sourceTextures = _this$bindings$this$c.sourceTextures,
61
- framebuffer = _this$bindings$this$c.framebuffer,
62
- targetTexture = _this$bindings$this$c.targetTexture;
63
- var attributes = Object.assign({}, sourceBuffers, opts.attributes);
64
- var uniforms = Object.assign({}, opts.uniforms);
65
- var parameters = Object.assign({}, opts.parameters);
66
- var discard = opts.discard;
67
-
68
- if (this.hasSourceTextures || this.hasTargetTexture) {
69
- attributes.transform_elementID = this.elementIDBuffer;
70
-
71
- for (var sampler in this.samplerTextureMap) {
72
- var textureName = this.samplerTextureMap[sampler];
73
- uniforms[sampler] = sourceTextures[textureName];
74
- }
75
-
76
- this._setSourceTextureParameters();
77
-
78
- var sizeUniforms = (0, _transformShaderUtils.getSizeUniforms)({
79
- sourceTextureMap: sourceTextures,
80
- targetTextureVarying: this.targetTextureVarying,
81
- targetTexture: targetTexture
82
- });
83
- Object.assign(uniforms, sizeUniforms);
84
- }
85
-
86
- if (this.hasTargetTexture) {
87
- discard = false;
88
- parameters.viewport = [0, 0, framebuffer.width, framebuffer.height];
89
- }
90
-
91
- return {
92
- attributes: attributes,
93
- framebuffer: framebuffer,
94
- uniforms: uniforms,
95
- discard: discard,
96
- parameters: parameters
97
- };
98
- }
99
- }, {
100
- key: "swap",
101
- value: function swap() {
102
- if (this._swapTexture) {
103
- this.currentIndex = this._getNextIndex();
104
- return true;
105
- }
106
-
107
- return false;
108
- }
109
- }, {
110
- key: "update",
111
- value: function update() {
112
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
113
-
114
- this._setupTextures(opts);
115
- }
116
- }, {
117
- key: "getTargetTexture",
118
- value: function getTargetTexture() {
119
- var targetTexture = this.bindings[this.currentIndex].targetTexture;
120
- return targetTexture;
121
- }
122
- }, {
123
- key: "getData",
124
- value: function getData() {
125
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
126
- _ref$packed = _ref.packed,
127
- packed = _ref$packed === void 0 ? false : _ref$packed;
128
-
129
- var framebuffer = this.bindings[this.currentIndex].framebuffer;
130
- var pixels = (0, _webgl.readPixelsToArray)(framebuffer);
131
-
132
- if (!packed) {
133
- return pixels;
134
- }
135
-
136
- var ArrayType = pixels.constructor;
137
- var channelCount = (0, _shadertools.typeToChannelCount)(this.targetTextureType);
138
- var packedPixels = new ArrayType(pixels.length * channelCount / 4);
139
- var packCount = 0;
140
-
141
- for (var i = 0; i < pixels.length; i += 4) {
142
- for (var j = 0; j < channelCount; j++) {
143
- packedPixels[packCount++] = pixels[i + j];
144
- }
145
- }
146
-
147
- return packedPixels;
148
- }
149
- }, {
150
- key: "getFramebuffer",
151
- value: function getFramebuffer() {
152
- var currentResources = this.bindings[this.currentIndex];
153
- return currentResources.framebuffer;
154
- }
155
- }, {
156
- key: "delete",
157
- value: function _delete() {
158
- if (this.ownTexture) {
159
- this.ownTexture.delete();
160
- }
161
-
162
- if (this.elementIDBuffer) {
163
- this.elementIDBuffer.delete();
164
- }
165
- }
166
- }, {
167
- key: "_initialize",
168
- value: function _initialize() {
169
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
170
- var _targetTextureVarying = props._targetTextureVarying,
171
- _swapTexture = props._swapTexture;
172
- this._swapTexture = _swapTexture;
173
- this.targetTextureVarying = _targetTextureVarying;
174
- this.hasTargetTexture = _targetTextureVarying;
175
-
176
- this._setupTextures(props);
177
- }
178
- }, {
179
- key: "_createTargetTexture",
180
- value: function _createTargetTexture(props) {
181
- var sourceTextures = props.sourceTextures,
182
- textureOrReference = props.textureOrReference;
183
-
184
- if (textureOrReference instanceof _webgl.Texture2D) {
185
- return textureOrReference;
186
- }
187
-
188
- var refTexture = sourceTextures[textureOrReference];
189
-
190
- if (!refTexture) {
191
- return null;
192
- }
193
-
194
- this._targetRefTexName = textureOrReference;
195
- return this._createNewTexture(refTexture);
196
- }
197
- }, {
198
- key: "_setupTextures",
199
- value: function _setupTextures() {
200
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
201
-
202
- var sourceBuffers = props.sourceBuffers,
203
- _props$_sourceTexture = props._sourceTextures,
204
- _sourceTextures = _props$_sourceTexture === void 0 ? {} : _props$_sourceTexture,
205
- _targetTexture = props._targetTexture;
206
-
207
- var targetTexture = this._createTargetTexture({
208
- sourceTextures: _sourceTextures,
209
- textureOrReference: _targetTexture
210
- });
211
-
212
- this.hasSourceTextures = this.hasSourceTextures || _sourceTextures && Object.keys(_sourceTextures).length > 0;
213
-
214
- this._updateBindings({
215
- sourceBuffers: sourceBuffers,
216
- sourceTextures: _sourceTextures,
217
- targetTexture: targetTexture
218
- });
219
-
220
- if ('elementCount' in props) {
221
- this._updateElementIDBuffer(props.elementCount);
222
- }
223
- }
224
- }, {
225
- key: "_updateElementIDBuffer",
226
- value: function _updateElementIDBuffer(elementCount) {
227
- if (typeof elementCount !== 'number' || this.elementCount >= elementCount) {
228
- return;
229
- }
230
-
231
- var elementIds = new Float32Array(elementCount);
232
- elementIds.forEach(function (_, index, array) {
233
- array[index] = index;
234
- });
235
-
236
- if (!this.elementIDBuffer) {
237
- this.elementIDBuffer = new _webgl.Buffer(this.gl, {
238
- data: elementIds,
239
- accessor: {
240
- size: 1
241
- }
242
- });
243
- } else {
244
- this.elementIDBuffer.setData({
245
- data: elementIds
246
- });
247
- }
248
-
249
- this.elementCount = elementCount;
250
- }
251
- }, {
252
- key: "_updateBindings",
253
- value: function _updateBindings(opts) {
254
- this.bindings[this.currentIndex] = this._updateBinding(this.bindings[this.currentIndex], opts);
255
-
256
- if (this._swapTexture) {
257
- var _this$_swapTextures = this._swapTextures(this.bindings[this.currentIndex]),
258
- sourceTextures = _this$_swapTextures.sourceTextures,
259
- targetTexture = _this$_swapTextures.targetTexture;
260
-
261
- var nextIndex = this._getNextIndex();
262
-
263
- this.bindings[nextIndex] = this._updateBinding(this.bindings[nextIndex], {
264
- sourceTextures: sourceTextures,
265
- targetTexture: targetTexture
266
- });
267
- }
268
- }
269
- }, {
270
- key: "_updateBinding",
271
- value: function _updateBinding(binding, opts) {
272
- var sourceBuffers = opts.sourceBuffers,
273
- sourceTextures = opts.sourceTextures,
274
- targetTexture = opts.targetTexture;
275
-
276
- if (!binding) {
277
- binding = {
278
- sourceBuffers: {},
279
- sourceTextures: {},
280
- targetTexture: null
281
- };
282
- }
283
-
284
- Object.assign(binding.sourceTextures, sourceTextures);
285
- Object.assign(binding.sourceBuffers, sourceBuffers);
286
-
287
- if (targetTexture) {
288
- binding.targetTexture = targetTexture;
289
- var width = targetTexture.width,
290
- height = targetTexture.height;
291
- var _binding = binding,
292
- framebuffer = _binding.framebuffer;
293
-
294
- if (framebuffer) {
295
- framebuffer.update({
296
- attachments: (0, _defineProperty2.default)({}, 36064, targetTexture),
297
- resizeAttachments: false
298
- });
299
- framebuffer.resize({
300
- width: width,
301
- height: height
302
- });
303
- } else {
304
- binding.framebuffer = new _webgl.Framebuffer(this.gl, {
305
- id: "transform-framebuffer",
306
- width: width,
307
- height: height,
308
- attachments: (0, _defineProperty2.default)({}, 36064, targetTexture)
309
- });
310
- }
311
- }
312
-
313
- return binding;
314
- }
315
- }, {
316
- key: "_setSourceTextureParameters",
317
- value: function _setSourceTextureParameters() {
318
- var index = this.currentIndex;
319
- var sourceTextures = this.bindings[index].sourceTextures;
320
-
321
- for (var name in sourceTextures) {
322
- sourceTextures[name].setParameters(SRC_TEX_PARAMETER_OVERRIDES);
323
- }
324
- }
325
- }, {
326
- key: "_swapTextures",
327
- value: function _swapTextures(opts) {
328
- if (!this._swapTexture) {
329
- return null;
330
- }
331
-
332
- var sourceTextures = Object.assign({}, opts.sourceTextures);
333
- sourceTextures[this._swapTexture] = opts.targetTexture;
334
- var targetTexture = opts.sourceTextures[this._swapTexture];
335
- return {
336
- sourceTextures: sourceTextures,
337
- targetTexture: targetTexture
338
- };
339
- }
340
- }, {
341
- key: "_createNewTexture",
342
- value: function _createNewTexture(refTexture) {
343
- var _parameters;
344
-
345
- var texture = (0, _webgl.cloneTextureFrom)(refTexture, {
346
- parameters: (_parameters = {}, (0, _defineProperty2.default)(_parameters, 10241, 9728), (0, _defineProperty2.default)(_parameters, 10240, 9728), (0, _defineProperty2.default)(_parameters, 10242, 33071), (0, _defineProperty2.default)(_parameters, 10243, 33071), _parameters),
347
- pixelStore: (0, _defineProperty2.default)({}, 37440, false)
348
- });
349
-
350
- if (this.ownTexture) {
351
- this.ownTexture.delete();
352
- }
353
-
354
- this.ownTexture = texture;
355
- return texture;
356
- }
357
- }, {
358
- key: "_getNextIndex",
359
- value: function _getNextIndex() {
360
- return (this.currentIndex + 1) % 2;
361
- }
362
- }, {
363
- key: "_processVertexShader",
364
- value: function _processVertexShader() {
365
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
366
- var _this$bindings$this$c2 = this.bindings[this.currentIndex],
367
- sourceTextures = _this$bindings$this$c2.sourceTextures,
368
- targetTexture = _this$bindings$this$c2.targetTexture;
369
-
370
- var _updateForTextures = (0, _transformShaderUtils.updateForTextures)({
371
- vs: props.vs,
372
- sourceTextureMap: sourceTextures,
373
- targetTextureVarying: this.targetTextureVarying,
374
- targetTexture: targetTexture
375
- }),
376
- vs = _updateForTextures.vs,
377
- uniforms = _updateForTextures.uniforms,
378
- targetTextureType = _updateForTextures.targetTextureType,
379
- inject = _updateForTextures.inject,
380
- samplerTextureMap = _updateForTextures.samplerTextureMap;
381
-
382
- var combinedInject = (0, _shadertools.combineInjects)([props.inject || {}, inject]);
383
- this.targetTextureType = targetTextureType;
384
- this.samplerTextureMap = samplerTextureMap;
385
- var fs = props._fs || (0, _shadertools.getPassthroughFS)({
386
- version: (0, _webgl.getShaderVersion)(vs),
387
- input: this.targetTextureVarying,
388
- inputType: targetTextureType,
389
- output: FS_OUTPUT_VARIABLE
390
- });
391
- var modules = this.hasSourceTextures || this.targetTextureVarying ? [_shadertools._transform].concat(props.modules || []) : props.modules;
392
- return {
393
- vs: vs,
394
- fs: fs,
395
- modules: modules,
396
- uniforms: uniforms,
397
- inject: combinedInject
398
- };
399
- }
400
- }]);
401
- return TextureTransform;
402
- }();
403
-
404
- exports.default = TextureTransform;
405
- //# sourceMappingURL=texture-transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/transform/texture-transform.js"],"names":["SRC_TEX_PARAMETER_OVERRIDES","FS_OUTPUT_VARIABLE","TextureTransform","gl","props","id","currentIndex","_swapTexture","targetTextureVarying","targetTextureType","samplerTextureMap","bindings","resources","_initialize","Object","seal","updatedModelProps","_processVertexShader","assign","opts","sourceBuffers","sourceTextures","framebuffer","targetTexture","attributes","uniforms","parameters","discard","hasSourceTextures","hasTargetTexture","transform_elementID","elementIDBuffer","sampler","textureName","_setSourceTextureParameters","sizeUniforms","sourceTextureMap","viewport","width","height","_getNextIndex","_setupTextures","packed","pixels","ArrayType","constructor","channelCount","packedPixels","length","packCount","i","j","currentResources","ownTexture","delete","_targetTextureVarying","textureOrReference","Texture2D","refTexture","_targetRefTexName","_createNewTexture","_sourceTextures","_targetTexture","_createTargetTexture","keys","_updateBindings","_updateElementIDBuffer","elementCount","elementIds","Float32Array","forEach","_","index","array","Buffer","data","accessor","size","setData","_updateBinding","_swapTextures","nextIndex","binding","update","attachments","resizeAttachments","resize","Framebuffer","name","setParameters","texture","pixelStore","vs","inject","combinedInject","fs","_fs","version","input","inputType","output","modules","transformModule","concat"],"mappings":"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","sourcesContent":["/** @typedef {import('./transform').TransformProps} TransformProps */\nimport GL from '@luma.gl/constants';\n\nimport {\n cloneTextureFrom,\n readPixelsToArray,\n getShaderVersion,\n Buffer,\n Texture2D,\n Framebuffer\n} from '@luma.gl/webgl';\n\nimport {\n _transform as transformModule,\n getPassthroughFS,\n typeToChannelCount,\n combineInjects\n} from '@luma.gl/shadertools';\n\nimport {updateForTextures, getSizeUniforms} from './transform-shader-utils';\n\n// TODO: move these constants to transform-shader-utils\n// Texture parameters needed so sample can precisely pick pixel for given element id.\nconst SRC_TEX_PARAMETER_OVERRIDES = {\n [GL.TEXTURE_MIN_FILTER]: GL.NEAREST,\n [GL.TEXTURE_MAG_FILTER]: GL.NEAREST,\n [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE\n};\nconst FS_OUTPUT_VARIABLE = 'transform_output';\n\nexport default class TextureTransform {\n constructor(gl, props = {}) {\n this.gl = gl;\n this.id = this.currentIndex = 0;\n this._swapTexture = null;\n this.targetTextureVarying = null;\n this.targetTextureType = null;\n this.samplerTextureMap = null;\n this.bindings = []; // each element is an object : {sourceTextures, targetTexture, framebuffer}\n\n this.resources = {}; // resources to be deleted\n\n this._initialize(props);\n Object.seal(this);\n }\n\n updateModelProps(props = {}) {\n const updatedModelProps = this._processVertexShader(props);\n return Object.assign({}, props, updatedModelProps);\n }\n\n getDrawOptions(opts = {}) {\n const {sourceBuffers, sourceTextures, framebuffer, targetTexture} = this.bindings[\n this.currentIndex\n ];\n\n const attributes = Object.assign({}, sourceBuffers, opts.attributes);\n const uniforms = Object.assign({}, opts.uniforms);\n const parameters = Object.assign({}, opts.parameters);\n let discard = opts.discard;\n\n if (this.hasSourceTextures || this.hasTargetTexture) {\n attributes.transform_elementID = this.elementIDBuffer;\n\n for (const sampler in this.samplerTextureMap) {\n const textureName = this.samplerTextureMap[sampler];\n uniforms[sampler] = sourceTextures[textureName];\n }\n this._setSourceTextureParameters();\n // get texture size uniforms\n const sizeUniforms = getSizeUniforms({\n sourceTextureMap: sourceTextures,\n targetTextureVarying: this.targetTextureVarying,\n targetTexture\n });\n Object.assign(uniforms, sizeUniforms);\n }\n\n if (this.hasTargetTexture) {\n discard = false;\n parameters.viewport = [0, 0, framebuffer.width, framebuffer.height];\n }\n\n return {attributes, framebuffer, uniforms, discard, parameters};\n }\n\n swap() {\n if (this._swapTexture) {\n this.currentIndex = this._getNextIndex();\n return true;\n }\n return false;\n }\n\n // update source and/or feedbackBuffers\n update(opts = {}) {\n this._setupTextures(opts);\n }\n\n // returns current target texture\n getTargetTexture() {\n const {targetTexture} = this.bindings[this.currentIndex];\n return targetTexture;\n }\n\n getData({packed = false} = {}) {\n const {framebuffer} = this.bindings[this.currentIndex];\n const pixels = readPixelsToArray(framebuffer);\n\n if (!packed) {\n return pixels;\n }\n\n // readPixels returns 4 elements for each pixel, pack the elements when requested\n const ArrayType = pixels.constructor;\n const channelCount = typeToChannelCount(this.targetTextureType);\n // @ts-ignore\n const packedPixels = new ArrayType((pixels.length * channelCount) / 4);\n let packCount = 0;\n for (let i = 0; i < pixels.length; i += 4) {\n for (let j = 0; j < channelCount; j++) {\n packedPixels[packCount++] = pixels[i + j];\n }\n }\n return packedPixels;\n }\n\n // returns current framebuffer object that is being used.\n getFramebuffer() {\n const currentResources = this.bindings[this.currentIndex];\n return currentResources.framebuffer;\n }\n\n // Delete owned resources.\n delete() {\n if (this.ownTexture) {\n this.ownTexture.delete();\n }\n if (this.elementIDBuffer) {\n this.elementIDBuffer.delete();\n }\n }\n\n // Private\n\n _initialize(props = {}) {\n const {_targetTextureVarying, _swapTexture} = props;\n this._swapTexture = _swapTexture;\n this.targetTextureVarying = _targetTextureVarying;\n this.hasTargetTexture = _targetTextureVarying;\n this._setupTextures(props);\n }\n\n // auto create target texture if requested\n _createTargetTexture(props) {\n const {sourceTextures, textureOrReference} = props;\n if (textureOrReference instanceof Texture2D) {\n return textureOrReference;\n }\n // 'targetTexture' is a reference souce texture.\n const refTexture = sourceTextures[textureOrReference];\n if (!refTexture) {\n return null;\n }\n\n // save reference texture name, when corresponding source texture is updated\n // we also update target texture.\n this._targetRefTexName = textureOrReference;\n\n return this._createNewTexture(refTexture);\n }\n\n /** @param {TransformProps} props */\n _setupTextures(props = {}) {\n const {sourceBuffers, _sourceTextures = {}, _targetTexture} = props;\n const targetTexture = this._createTargetTexture({\n sourceTextures: _sourceTextures,\n textureOrReference: _targetTexture\n });\n this.hasSourceTextures =\n this.hasSourceTextures || (_sourceTextures && Object.keys(_sourceTextures).length > 0);\n this._updateBindings({sourceBuffers, sourceTextures: _sourceTextures, targetTexture});\n if ('elementCount' in props) {\n this._updateElementIDBuffer(props.elementCount);\n }\n }\n\n _updateElementIDBuffer(elementCount) {\n if (typeof elementCount !== 'number' || this.elementCount >= elementCount) {\n return;\n }\n // NOTE: using float so this will work with GLSL 1.0 shaders.\n const elementIds = new Float32Array(elementCount);\n elementIds.forEach((_, index, array) => {\n array[index] = index;\n });\n if (!this.elementIDBuffer) {\n this.elementIDBuffer = new Buffer(this.gl, {\n data: elementIds,\n accessor: {size: 1}\n });\n } else {\n this.elementIDBuffer.setData({data: elementIds});\n }\n this.elementCount = elementCount;\n }\n\n _updateBindings(opts) {\n this.bindings[this.currentIndex] = this._updateBinding(this.bindings[this.currentIndex], opts);\n if (this._swapTexture) {\n const {sourceTextures, targetTexture} = this._swapTextures(this.bindings[this.currentIndex]);\n const nextIndex = this._getNextIndex();\n this.bindings[nextIndex] = this._updateBinding(this.bindings[nextIndex], {\n sourceTextures,\n targetTexture\n });\n }\n }\n\n _updateBinding(binding, opts) {\n const {sourceBuffers, sourceTextures, targetTexture} = opts;\n if (!binding) {\n binding = {\n sourceBuffers: {},\n sourceTextures: {},\n targetTexture: null\n };\n }\n Object.assign(binding.sourceTextures, sourceTextures);\n Object.assign(binding.sourceBuffers, sourceBuffers);\n if (targetTexture) {\n binding.targetTexture = targetTexture;\n\n const {width, height} = targetTexture;\n const {framebuffer} = binding;\n if (framebuffer) {\n // First update texture without re-sizing attachments\n framebuffer.update({\n attachments: {[GL.COLOR_ATTACHMENT0]: targetTexture},\n resizeAttachments: false\n });\n // Resize to new taget texture size\n framebuffer.resize({width, height});\n } else {\n binding.framebuffer = new Framebuffer(this.gl, {\n id: `transform-framebuffer`,\n width,\n height,\n attachments: {\n [GL.COLOR_ATTACHMENT0]: targetTexture\n }\n });\n }\n }\n return binding;\n }\n\n // set texture filtering parameters on source textures.\n _setSourceTextureParameters() {\n const index = this.currentIndex;\n const {sourceTextures} = this.bindings[index];\n for (const name in sourceTextures) {\n sourceTextures[name].setParameters(SRC_TEX_PARAMETER_OVERRIDES);\n }\n }\n\n _swapTextures(opts) {\n if (!this._swapTexture) {\n return null;\n }\n const sourceTextures = Object.assign({}, opts.sourceTextures);\n sourceTextures[this._swapTexture] = opts.targetTexture;\n\n const targetTexture = opts.sourceTextures[this._swapTexture];\n\n return {sourceTextures, targetTexture};\n }\n\n // Create a buffer and add to list of buffers to be deleted.\n _createNewTexture(refTexture) {\n const texture = cloneTextureFrom(refTexture, {\n parameters: {\n [GL.TEXTURE_MIN_FILTER]: GL.NEAREST,\n [GL.TEXTURE_MAG_FILTER]: GL.NEAREST,\n [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE\n },\n pixelStore: {\n [GL.UNPACK_FLIP_Y_WEBGL]: false\n }\n });\n\n // thre can only be one target texture\n if (this.ownTexture) {\n this.ownTexture.delete();\n }\n this.ownTexture = texture;\n\n return texture;\n }\n\n _getNextIndex() {\n return (this.currentIndex + 1) % 2;\n }\n\n // build and return shader releated parameters\n _processVertexShader(props = {}) {\n const {sourceTextures, targetTexture} = this.bindings[this.currentIndex];\n // @ts-ignore TODO - uniforms is not present\n const {vs, uniforms, targetTextureType, inject, samplerTextureMap} = updateForTextures({\n vs: props.vs,\n sourceTextureMap: sourceTextures,\n targetTextureVarying: this.targetTextureVarying,\n targetTexture\n });\n const combinedInject = combineInjects([props.inject || {}, inject]);\n this.targetTextureType = targetTextureType;\n this.samplerTextureMap = samplerTextureMap;\n const fs =\n props._fs ||\n getPassthroughFS({\n version: getShaderVersion(vs),\n input: this.targetTextureVarying,\n inputType: targetTextureType,\n output: FS_OUTPUT_VARIABLE\n });\n const modules =\n this.hasSourceTextures || this.targetTextureVarying\n ? [transformModule].concat(props.modules || [])\n : props.modules;\n return {vs, fs, modules, uniforms, inject: combinedInject};\n }\n}\n"],"file":"texture-transform.js"}
@@ -1,31 +0,0 @@
1
- export function updateForTextures(options: {
2
- vs: any;
3
- sourceTextureMap: any;
4
- targetTextureVarying: any;
5
- targetTexture: any;
6
- }): {
7
- vs: any;
8
- targetTextureType: any;
9
- inject: {};
10
- samplerTextureMap: {};
11
- };
12
-
13
- export function getSizeUniforms(options: {
14
- sourceTextureMap: any;
15
- targetTextureVarying: any;
16
- targetTexture: any;
17
- }): {};
18
-
19
- export function getVaryingType(line: any, varying: any): any;
20
-
21
- export function processAttributeDefinition(
22
- line: any,
23
- textureMap: any
24
- ): {
25
- updatedLine: string;
26
- inject: {
27
- 'vs:#decl': string;
28
- 'vs:#main-start': string;
29
- };
30
- samplerTextureMap: {};
31
- };
@@ -1,160 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.updateForTextures = updateForTextures;
7
- exports.getSizeUniforms = getSizeUniforms;
8
- exports.getVaryingType = getVaryingType;
9
- exports.processAttributeDefinition = processAttributeDefinition;
10
-
11
- var _webgl = require("@luma.gl/webgl");
12
-
13
- var _shadertools = require("@luma.gl/shadertools");
14
-
15
- var SAMPLER_UNIFORM_PREFIX = 'transform_uSampler_';
16
- var SIZE_UNIFORM_PREFIX = 'transform_uSize_';
17
- var VS_POS_VARIABLE = 'transform_position';
18
-
19
- function updateForTextures(_ref) {
20
- var vs = _ref.vs,
21
- sourceTextureMap = _ref.sourceTextureMap,
22
- targetTextureVarying = _ref.targetTextureVarying,
23
- targetTexture = _ref.targetTexture;
24
- var texAttributeNames = Object.keys(sourceTextureMap);
25
- var sourceCount = texAttributeNames.length;
26
- var targetTextureType = null;
27
- var samplerTextureMap = {};
28
- var updatedVs = vs;
29
- var finalInject = {};
30
-
31
- if (sourceCount > 0 || targetTextureVarying) {
32
- var vsLines = updatedVs.split('\n');
33
- var updateVsLines = vsLines.slice();
34
- vsLines.forEach(function (line, index, lines) {
35
- if (sourceCount > 0) {
36
- var updated = processAttributeDefinition(line, sourceTextureMap);
37
-
38
- if (updated) {
39
- var updatedLine = updated.updatedLine,
40
- inject = updated.inject;
41
- updateVsLines[index] = updatedLine;
42
- finalInject = (0, _shadertools.combineInjects)([finalInject, inject]);
43
- Object.assign(samplerTextureMap, updated.samplerTextureMap);
44
- sourceCount--;
45
- }
46
- }
47
-
48
- if (targetTextureVarying && !targetTextureType) {
49
- targetTextureType = getVaryingType(line, targetTextureVarying);
50
- }
51
- });
52
-
53
- if (targetTextureVarying) {
54
- (0, _webgl.assert)(targetTexture);
55
- var sizeName = "".concat(SIZE_UNIFORM_PREFIX).concat(targetTextureVarying);
56
- var uniformDeclaration = "uniform vec2 ".concat(sizeName, ";\n");
57
- var posInstructions = " vec2 ".concat(VS_POS_VARIABLE, " = transform_getPos(").concat(sizeName, ");\n gl_Position = vec4(").concat(VS_POS_VARIABLE, ", 0, 1.);\n");
58
- var inject = {
59
- 'vs:#decl': uniformDeclaration,
60
- 'vs:#main-start': posInstructions
61
- };
62
- finalInject = (0, _shadertools.combineInjects)([finalInject, inject]);
63
- }
64
-
65
- updatedVs = updateVsLines.join('\n');
66
- }
67
-
68
- return {
69
- vs: updatedVs,
70
- targetTextureType: targetTextureType,
71
- inject: finalInject,
72
- samplerTextureMap: samplerTextureMap
73
- };
74
- }
75
-
76
- function getSizeUniforms(_ref2) {
77
- var sourceTextureMap = _ref2.sourceTextureMap,
78
- targetTextureVarying = _ref2.targetTextureVarying,
79
- targetTexture = _ref2.targetTexture;
80
- var uniforms = {};
81
- var width;
82
- var height;
83
-
84
- if (targetTextureVarying) {
85
- width = targetTexture.width;
86
- height = targetTexture.height;
87
- uniforms["".concat(SIZE_UNIFORM_PREFIX).concat(targetTextureVarying)] = [width, height];
88
- }
89
-
90
- for (var textureName in sourceTextureMap) {
91
- var _sourceTextureMap$tex = sourceTextureMap[textureName];
92
- width = _sourceTextureMap$tex.width;
93
- height = _sourceTextureMap$tex.height;
94
- uniforms["".concat(SIZE_UNIFORM_PREFIX).concat(textureName)] = [width, height];
95
- }
96
-
97
- return uniforms;
98
- }
99
-
100
- function getAttributeDefinition(line) {
101
- return (0, _shadertools.getQualifierDetails)(line, ['attribute', 'in']);
102
- }
103
-
104
- function getSamplerDeclerations(textureName) {
105
- var samplerName = "".concat(SAMPLER_UNIFORM_PREFIX).concat(textureName);
106
- var sizeName = "".concat(SIZE_UNIFORM_PREFIX).concat(textureName);
107
- var uniformDeclerations = " uniform sampler2D ".concat(samplerName, ";\n uniform vec2 ").concat(sizeName, ";");
108
- return {
109
- samplerName: samplerName,
110
- sizeName: sizeName,
111
- uniformDeclerations: uniformDeclerations
112
- };
113
- }
114
-
115
- function getVaryingType(line, varying) {
116
- var qualaiferDetails = (0, _shadertools.getQualifierDetails)(line, ['varying', 'out']);
117
-
118
- if (!qualaiferDetails) {
119
- return null;
120
- }
121
-
122
- return qualaiferDetails.name === varying ? qualaiferDetails.type : null;
123
- }
124
-
125
- function processAttributeDefinition(line, textureMap) {
126
- var samplerTextureMap = {};
127
- var attributeData = getAttributeDefinition(line);
128
-
129
- if (!attributeData) {
130
- return null;
131
- }
132
-
133
- var type = attributeData.type,
134
- name = attributeData.name;
135
-
136
- if (name && textureMap[name]) {
137
- var updatedLine = "// ".concat(line, " => Replaced by Transform with a sampler");
138
-
139
- var _getSamplerDecleratio = getSamplerDeclerations(name),
140
- samplerName = _getSamplerDecleratio.samplerName,
141
- sizeName = _getSamplerDecleratio.sizeName,
142
- uniformDeclerations = _getSamplerDecleratio.uniformDeclerations;
143
-
144
- var channels = (0, _shadertools.typeToChannelSuffix)(type);
145
- var sampleInstruction = " ".concat(type, " ").concat(name, " = transform_getInput(").concat(samplerName, ", ").concat(sizeName, ").").concat(channels, ";\n");
146
- samplerTextureMap[samplerName] = name;
147
- var inject = {
148
- 'vs:#decl': uniformDeclerations,
149
- 'vs:#main-start': sampleInstruction
150
- };
151
- return {
152
- updatedLine: updatedLine,
153
- inject: inject,
154
- samplerTextureMap: samplerTextureMap
155
- };
156
- }
157
-
158
- return null;
159
- }
160
- //# sourceMappingURL=transform-shader-utils.js.map