@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,214 +0,0 @@
1
- import ProgramManager from './program-manager';
2
- import {Program, Shader} from '@luma.gl/webgl';
3
-
4
- type DefineMap = object;
5
- type InjectionMap = object;
6
-
7
- type ProgramProps = {
8
- program?: Program
9
- vs?: Shader | string
10
- fs?: Shader | string
11
- modules?: (object | string)[]; // Array<ShaderModule | ShaderModuleObject | string>
12
- defines?: DefineMap
13
- inject?: InjectionMap
14
- varyings?: string[]
15
- bufferMode?: number
16
- transpileToGLSL100?: boolean
17
- }
18
-
19
- type ModelProps = ProgramProps & {
20
- id?: string
21
- moduleSettings?: object; // UniformsOptions
22
- attributes?: object,
23
- uniforms?: object; // Uniforms
24
- geometry?: object; // Geometry
25
- vertexCount?: number
26
- drawMode?: number
27
- isInstanced?: boolean
28
- instanceCount?: number
29
- programManager?: ProgramManager
30
- onBeforeRender?: () => void
31
- onAfterRender?: () => void
32
- _feedbackBuffers?: object; // FeedbackBuffers
33
- }
34
-
35
- /*
36
- export type ModelProps = {
37
- id?: string;
38
- program?: Program;
39
- vs?: Shader | string;
40
- fs?: Shader | string;
41
- geometry?: object;
42
- drawMode?: number;
43
- vertexCount?: number;
44
- isInstanced?: boolean;
45
- modules?: object;
46
- defines?: object;
47
- inject?: object;
48
- varyings?: object;
49
- bufferMode?: number;
50
- transpileToGLSL100?: boolean;
51
- };
52
- */
53
-
54
- export default class Model {
55
- readonly id: string;
56
- readonly gl: WebGLRenderingContext;
57
- readonly animated: boolean;
58
- readonly programManager: ProgramManager;
59
- readonly vertexCount: number;
60
-
61
- constructor(gl: WebGLRenderingContext, props?: ModelProps);
62
- initialize(props: any): void;
63
- setProps(props: any): void;
64
- delete(): void;
65
- getDrawMode(): any;
66
- getVertexCount(): any;
67
- getInstanceCount(): any;
68
- getAttributes(): any;
69
- getProgram(): any;
70
- setProgram(props: any): void;
71
- getUniforms(): any;
72
- setDrawMode(drawMode: any): this;
73
- setVertexCount(vertexCount: number): this;
74
- setInstanceCount(instanceCount: number): this;
75
- setGeometry(geometry: any): this;
76
- setAttributes(attributes?: object): this;
77
- setUniforms(uniforms?: object): this;
78
- getModuleUniforms(opts?: object): any;
79
- updateModuleSettings(opts?: object): this;
80
- clear(opts: any): this;
81
- draw(opts?: {}): boolean;
82
- transform(opts?: {}): this;
83
- render(uniforms?: {}): any;
84
- }
85
-
86
- /*
87
- import Geometry from '../geometry/geometry';
88
- import { AnimationProps } from './animation-loop';
89
- import {
90
- Buffer,
91
- Program,
92
- VertexArray,
93
- Framebuffer,
94
- TransformFeedback,
95
- Accessor,
96
- VertexShader,
97
- FragmentShader
98
- } from '@luma.gl/webgl';
99
-
100
- import {
101
- AccessorObject
102
- } from '@luma.gl/webgl/src/classes/accessor'
103
-
104
- import {
105
- Uniforms,
106
- UniformsOptions
107
- } from '@luma.gl/webgl/src/classes/uniforms'
108
-
109
- import {
110
- ShaderModule,
111
- ShaderModuleObject,
112
- InjectionMap
113
- } from '@luma.gl/shadertools/src/lib/shader-module'
114
-
115
- import {
116
- DefineMap
117
- } from '@luma.gl/shadertools/src/lib/assemble-shaders'
118
-
119
- type Attribute = Buffer | AccessorObject | Accessor |
120
- [Buffer, Accessor] | [Buffer, AccessorObject]
121
-
122
- interface Attributes {
123
- [attributeName: string]: Attribute
124
- }
125
-
126
- interface Parameters {
127
- [parameterConstant: number]: boolean
128
- [settingName: string]: boolean
129
- }
130
-
131
- interface FeedbackBuffers {
132
- [name: string]: string | Buffer
133
- }
134
-
135
- interface ProgramProps {
136
- program: Program
137
- vs: VertexShader | string
138
- fs: FragmentShader | string
139
- modules: Array<ShaderModule | ShaderModuleObject | string>
140
- defines: DefineMap
141
- inject: InjectionMap
142
- varyings: Array<string>
143
- bufferMode: number
144
- transpileToGLSL100: boolean
145
- }
146
-
147
- interface ModelProps extends ProgramProps {
148
- id?: string
149
- moduleSettings?: UniformsOptions
150
- uniforms?: Uniforms
151
- geometry?: Geometry
152
- vertexCount?: number
153
- drawMode?: number
154
- programManager?: ProgramManager
155
- onBeforeRender?: () => void
156
- onAfterRender?: () => void
157
- _feedbackBuffers?: FeedbackBuffers
158
- }
159
-
160
- interface DrawOpts {
161
- moduleSettings?: UniformsOptions
162
- framebuffer: Framebuffer
163
- uniforms?: Uniforms
164
- attributes?: Attributes
165
- parameters?: Parameters
166
- transformFeedback?: TransformFeedback
167
- vertexArray?: VertexArray
168
- }
169
-
170
- interface ClearOpts {
171
- framebuffer?: Framebuffer
172
- color?: boolean
173
- depth?: boolean
174
- stencil?: boolean
175
- }
176
-
177
- interface TransformOpts extends DrawOpts {
178
- discard: boolean
179
- feedbackBuffers: FeedbackBuffers
180
- unbindModels: Array<Model>
181
- parameters: Parameters
182
- }
183
-
184
- export default class Model {
185
- readonly id: string;
186
- readonly gl: WebGLRenderingContext;
187
- readonly animated: boolean;
188
- readonly programManager: ProgramManager;
189
-
190
- constructor(gl: WebGLRenderingContext, props?: ModelProps);
191
- initialize(props: any): void;
192
- setProps(props: any): void;
193
- delete(): void;
194
- getDrawMode(): any;
195
- getVertexCount(): any;
196
- getInstanceCount(): any;
197
- getAttributes(): any;
198
- getProgram(): any;
199
- setProgram(props: any): void;
200
- getUniforms(): any;
201
- setDrawMode(drawMode: any): this;
202
- setVertexCount(vertexCount: number): this;
203
- setInstanceCount(instanceCount: number): this;
204
- setGeometry(geometry: any): this;
205
- setAttributes(attributes?: object): this;
206
- setUniforms(uniforms?: object): this;
207
- getModuleUniforms(opts?: object): any;
208
- updateModuleSettings(opts?: object): this;
209
- clear(opts: any): this;
210
- draw(opts?: {}): any;
211
- transform(opts?: {}): this;
212
- render(uniforms?: {}): any;
213
- }
214
- */
@@ -1,79 +0,0 @@
1
- export default class ProgramManager {
2
- static getDefaultProgramManager(gl: WebGLRenderingContext): any;
3
- constructor(gl: WebGLRenderingContext);
4
- addDefaultModule(module: any): void;
5
- removeDefaultModule(module: any): void;
6
- addShaderHook(hook: any, opts: any): void;
7
- get(props?: {}): any;
8
- getUniforms(program: any): any;
9
- release(program: any): void;
10
- }
11
-
12
- /*
13
- import {
14
- VertexShader,
15
- FragmentShader,
16
- Program
17
- } from '@luma.gl/webgl';
18
-
19
- import {
20
- Uniforms,
21
- UniformsOptions
22
- } from '@luma.gl/webgl/src/classes/uniforms'
23
-
24
- import {
25
- ShaderModule,
26
- ShaderModuleObject,
27
- InjectionMap
28
- } from '@luma.gl/shadertools/src/lib/shader-module'
29
-
30
- import {
31
- DefineMap
32
- } from '@luma.gl/shadertools/src/lib/assemble-shaders'
33
-
34
- interface ProgramManagerProps {
35
- vs?: VertexShader | string
36
- fs?: FragmentShader | string
37
- modules?: Array<ShaderModuleObject | string>
38
- defines?: DefineMap
39
- inject?: InjectionMap
40
- varyings?: Array<string>
41
- bufferMode?: number
42
- transpileToGLSL100?: boolean
43
- }
44
-
45
- export default class ProgramManager {
46
- stateHash: number
47
- gl: WebGLRenderingContext
48
- _programCache: {
49
- [programHash: string]: Program
50
- }
51
- _getUniforms: {
52
- [programHash: string]: (opts: UniformsOptions, context: Uniforms) => Uniforms
53
- }
54
- _registeredModules: {} // TODO: Remove? This isn't used anywhere in luma.gl
55
- _hookFunctions: Array<{
56
- hook: string
57
- header?: string
58
- footer?: string
59
- }>
60
- _defaultModules: Array<ShaderModuleObject | ShaderModule>
61
- _hashes: {
62
- [key: string]: number
63
- }
64
- _hashCounter: number
65
- _useCounts: {
66
- [programHash: string]: number
67
- }
68
- static getDefaultProgramManager(gl: WebGLRenderingContext): ProgramManager;
69
- constructor(gl: WebGLRenderingContext);
70
- addDefaultModule(module: ShaderModuleObject | ShaderModule): void;
71
- removeDefaultModule(module: ShaderModuleObject | ShaderModule | string): void;
72
- addShaderHook(hook: string, opts?: {header?: string, footer?: string}): void;
73
- get(props?: ProgramManagerProps): Program;
74
- getUniforms(program: Program): ((opts: UniformsOptions, context: Uniforms) => Uniforms) | null;
75
- release(program: Program): void;
76
- _getHash(key: string): number;
77
- _getModuleList(appModules?: Array<ShaderModuleObject | ShaderModule>): Array<ShaderModuleObject | ShaderModule>;
78
- }
79
- */
@@ -1,13 +0,0 @@
1
- import {TransformDrawOptions, TransformModelProps} from './resource-transform';
2
-
3
- export default class BufferTransform {
4
- constructor(gl: WebGLRenderingContext, props?: {});
5
- setupResources(opts: any): void;
6
- updateModelProps(props?: {}): TransformModelProps;
7
- getDrawOptions(opts?: {}): TransformDrawOptions;
8
- swap(): boolean;
9
- update(opts?: {}): void;
10
- getBuffer(varyingName: any): any;
11
- getData(options?: {varyingName: string}): any;
12
- delete(): void;
13
- }
@@ -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,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,33 +0,0 @@
1
- import Model from '../lib/model';
2
-
3
- export type TransformProps = {
4
- vs?: string;
5
- elementCount?: number;
6
- sourceBuffers?: object;
7
- feedbackBuffers?: object;
8
- varyings?: string[];
9
- feedbackMap?: object;
10
- modules?: object[]; // TODO use ShaderModule type
11
- _sourceTextures?: any;
12
- _targetTexture?: any;
13
- _targetTextureVarying?: string;
14
- _swapTexture?: string;
15
- _fs?: string;
16
- inject?: any;
17
- drawMode?: number;
18
- };
19
-
20
- export default class Transform {
21
- readonly model: Model;
22
-
23
- static isSupported(gl: WebGLRenderingContext): any;
24
- constructor(gl: WebGLRenderingContext, props?: TransformProps);
25
- delete(): void;
26
- run(opts?: {}): void;
27
- swap(): void;
28
- getBuffer(varyingName?: any): any;
29
- // TODO - mix of options for buffers and textures
30
- getData(opts?: {packed?: boolean; varyingName?: string}): any;
31
- getFramebuffer(): any;
32
- update(opts?: TransformProps): void;
33
- }
@@ -1,177 +0,0 @@
1
- import GL from '@luma.gl/constants';
2
- import {getPassthroughFS} from '@luma.gl/shadertools';
3
- import BufferTransform from './buffer-transform';
4
- import TextureTransform from './texture-transform';
5
-
6
- import {isWebGL2} from '@luma.gl/gltools';
7
- import {assert, isObjectEmpty, getShaderVersion} from '@luma.gl/webgl';
8
- import Model from '../lib/model';
9
-
10
- // takes source and target buffers/textures and setsup the pipeline
11
- export default class Transform {
12
- static isSupported(gl) {
13
- // TODO : differentiate writting to buffer vs not
14
- return isWebGL2(gl);
15
- }
16
-
17
- constructor(gl, props = {}) {
18
- this.gl = gl;
19
- this.model = null;
20
- this.elementCount = 0;
21
- this.bufferTransform = null;
22
- this.textureTransform = null;
23
- this.elementIDBuffer = null;
24
- this._initialize(props);
25
- Object.seal(this);
26
- }
27
-
28
- // Delete owned resources.
29
- delete() {
30
- const {model, bufferTransform, textureTransform} = this;
31
- if (model) {
32
- model.delete();
33
- }
34
- if (bufferTransform) {
35
- bufferTransform.delete();
36
- }
37
- if (textureTransform) {
38
- textureTransform.delete();
39
- }
40
- }
41
-
42
- // Run one transform loop.
43
- run(opts = {}) {
44
- const {clearRenderTarget = true} = opts;
45
-
46
- const updatedOpts = this._updateDrawOptions(opts);
47
-
48
- if (clearRenderTarget && updatedOpts.framebuffer) {
49
- updatedOpts.framebuffer.clear({color: true});
50
- }
51
-
52
- this.model.transform(updatedOpts);
53
- }
54
-
55
- // swap resources if a map is provided
56
- swap() {
57
- let swapped = false;
58
- const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean);
59
- for (const resourceTransform of resourceTransforms) {
60
- swapped = swapped || resourceTransform.swap();
61
- }
62
- assert(swapped, 'Nothing to swap');
63
- }
64
-
65
- // Return Buffer object for given varying name.
66
- getBuffer(varyingName = null) {
67
- return this.bufferTransform && this.bufferTransform.getBuffer(varyingName);
68
- }
69
-
70
- // Return data either from Buffer or from Texture
71
- getData(opts = {}) {
72
- const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean);
73
- for (const resourceTransform of resourceTransforms) {
74
- // @ts-ignore
75
- const data = resourceTransform.getData(opts);
76
- if (data) {
77
- return data;
78
- }
79
- }
80
- return null;
81
- }
82
-
83
- // Return framebuffer object if rendering to textures
84
- getFramebuffer() {
85
- return this.textureTransform && this.textureTransform.getFramebuffer();
86
- }
87
-
88
- // Update some or all buffer/texture bindings.
89
- update(opts = {}) {
90
- if ('elementCount' in opts) {
91
- // @ts-ignore TODO
92
- this.model.setVertexCount(opts.elementCount);
93
- }
94
- const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean);
95
- for (const resourceTransform of resourceTransforms) {
96
- resourceTransform.update(opts);
97
- }
98
- }
99
-
100
- // Private
101
-
102
- _initialize(props = {}) {
103
- const {gl} = this;
104
- this._buildResourceTransforms(gl, props);
105
-
106
- props = this._updateModelProps(props);
107
- this.model = new Model(
108
- gl,
109
- Object.assign({}, props, {
110
- fs: props.fs || getPassthroughFS({version: getShaderVersion(props.vs)}),
111
- id: props.id || 'transform-model',
112
- drawMode: props.drawMode || GL.POINTS,
113
- vertexCount: props.elementCount
114
- })
115
- );
116
-
117
- /* eslint-disable no-unused-expressions */
118
- this.bufferTransform && this.bufferTransform.setupResources({model: this.model});
119
- /* eslint-enable no-unused-expressions */
120
- }
121
-
122
- _updateModelProps(props) {
123
- let updatedProps = Object.assign({}, props);
124
- const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean);
125
- for (const resourceTransform of resourceTransforms) {
126
- updatedProps = resourceTransform.updateModelProps(updatedProps);
127
- }
128
- return updatedProps;
129
- }
130
-
131
- _buildResourceTransforms(gl, props) {
132
- if (canCreateBufferTransform(props)) {
133
- this.bufferTransform = new BufferTransform(gl, props);
134
- }
135
- if (canCreateTextureTransform(props)) {
136
- this.textureTransform = new TextureTransform(gl, props);
137
- }
138
- assert(
139
- this.bufferTransform || this.textureTransform,
140
- 'must provide source/feedback buffers or source/target textures'
141
- );
142
- }
143
-
144
- _updateDrawOptions(opts) {
145
- let updatedOpts = Object.assign({}, opts);
146
- const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean);
147
- for (const resourceTransform of resourceTransforms) {
148
- updatedOpts = Object.assign(updatedOpts, resourceTransform.getDrawOptions(updatedOpts));
149
- }
150
- return updatedOpts;
151
- }
152
- }
153
-
154
- // Helper Methods
155
-
156
- function canCreateBufferTransform(props) {
157
- if (
158
- !isObjectEmpty(props.feedbackBuffers) ||
159
- !isObjectEmpty(props.feedbackMap) ||
160
- (props.varyings && props.varyings.length > 0)
161
- ) {
162
- return true;
163
- }
164
- return false;
165
- }
166
-
167
- function canCreateTextureTransform(props) {
168
- if (
169
- !isObjectEmpty(props._sourceTextures) ||
170
- props._targetTexture ||
171
- props._targetTextureVarying
172
- ) {
173
- return true;
174
- }
175
-
176
- return false;
177
- }
@@ -1,5 +0,0 @@
1
- import Model, {ModelProps} from '../lib/model';
2
-
3
- export default class ClipSpace extends Model {
4
- constructor(gl: WebGLRenderingContext, opts?: ModelProps);
5
- }