@luma.gl/engine 9.0.0-alpha.21 → 9.0.0-alpha.23

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 (46) hide show
  1. package/dist/animation-loop/animation-loop.d.ts.map +1 -1
  2. package/dist/animation-loop/animation-loop.js +3 -1
  3. package/dist/animation-loop/animation-loop.js.map +1 -1
  4. package/dist/animation-loop/animation-props.d.ts +2 -1
  5. package/dist/animation-loop/animation-props.d.ts.map +1 -1
  6. package/dist/animation-loop/animation-props.js.map +1 -1
  7. package/dist/dist.dev.js +1321 -633
  8. package/dist/index.cjs +110 -29
  9. package/dist/index.d.ts +3 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/clip-space.d.ts +1 -1
  14. package/dist/lib/clip-space.d.ts.map +1 -1
  15. package/dist/lib/clip-space.js +1 -1
  16. package/dist/lib/clip-space.js.map +1 -1
  17. package/dist/lib/pipeline-factory.d.ts +1 -1
  18. package/dist/lib/pipeline-factory.d.ts.map +1 -1
  19. package/dist/lib/pipeline-factory.js.map +1 -1
  20. package/dist/model/model-utils.d.ts.map +1 -0
  21. package/dist/model/model-utils.js.map +1 -0
  22. package/dist/{lib → model}/model.d.ts +7 -2
  23. package/dist/model/model.d.ts.map +1 -0
  24. package/dist/{lib → model}/model.js +10 -6
  25. package/dist/model/model.js.map +1 -0
  26. package/dist/transform/transform.d.ts +98 -0
  27. package/dist/transform/transform.d.ts.map +1 -0
  28. package/dist/transform/transform.js +67 -0
  29. package/dist/transform/transform.js.map +1 -0
  30. package/dist.min.js +83 -65
  31. package/package.json +6 -6
  32. package/src/animation-loop/animation-loop.ts +5 -1
  33. package/src/animation-loop/animation-props.ts +2 -1
  34. package/src/index.ts +4 -2
  35. package/src/lib/clip-space.ts +1 -1
  36. package/src/lib/pipeline-factory.ts +1 -1
  37. package/src/{lib → model}/model.ts +16 -7
  38. package/src/transform/transform.ts +246 -0
  39. package/dist/lib/model-utils.d.ts.map +0 -1
  40. package/dist/lib/model-utils.js.map +0 -1
  41. package/dist/lib/model.d.ts.map +0 -1
  42. package/dist/lib/model.js.map +0 -1
  43. package/src/.DS_Store +0 -0
  44. /package/dist/{lib → model}/model-utils.d.ts +0 -0
  45. /package/dist/{lib → model}/model-utils.js +0 -0
  46. /package/src/{lib → model}/model-utils.ts +0 -0
@@ -0,0 +1,98 @@
1
+ import { Device, Buffer, Texture, Framebuffer } from '@luma.gl/api';
2
+ import { WebGLDevice, GLParameters } from '@luma.gl/webgl';
3
+ declare type TransformFeedback = any;
4
+ /** Properties for creating Transforms */
5
+ export declare type TransformProps = {
6
+ id?: string;
7
+ vs?: string;
8
+ elementCount?: number;
9
+ sourceBuffers?: Record<string, Buffer>;
10
+ feedbackBuffers?: Record<string, string | Buffer | {
11
+ buffer: Buffer;
12
+ byteOffset?: number;
13
+ }>;
14
+ varyings?: string[];
15
+ feedbackMap?: Record<string, string>;
16
+ modules?: object[];
17
+ attributes?: Record<string, any>;
18
+ uniforms?: Record<string, any>;
19
+ defines?: Record<string, any>;
20
+ parameters?: GLParameters;
21
+ discard?: boolean;
22
+ isIndexed?: boolean;
23
+ inject?: Record<string, string>;
24
+ drawMode?: number;
25
+ framebuffer?: Framebuffer;
26
+ _sourceTextures?: Record<string, Texture>;
27
+ _targetTexture?: string | Texture;
28
+ _targetTextureVarying?: string;
29
+ _swapTexture?: string | null;
30
+ _fs?: string;
31
+ fs?: string;
32
+ };
33
+ /** Options that can be provided when running a Transform */
34
+ export declare type TransformRunOptions = {
35
+ framebuffer?: Framebuffer;
36
+ clearRenderTarget?: boolean;
37
+ uniforms?: Record<string, any>;
38
+ parameters?: Record<string, any>;
39
+ discard?: boolean;
40
+ };
41
+ /** Options that control drawing a Transform. Used by subclasses to return draw parameters */
42
+ export declare type TransformDrawOptions = {
43
+ attributes?: Record<string, any>;
44
+ framebuffer?: any;
45
+ uniforms?: object;
46
+ discard?: boolean;
47
+ parameters?: object;
48
+ transformFeedback?: any;
49
+ };
50
+ export declare type TransformBinding = {
51
+ sourceBuffers: Record<string, Buffer>;
52
+ sourceTextures: Record<string, Texture>;
53
+ feedbackBuffers?: Record<string, Buffer | {
54
+ buffer: Buffer;
55
+ }>;
56
+ transformFeedback?: TransformFeedback;
57
+ framebuffer?: Framebuffer;
58
+ targetTexture?: Texture;
59
+ };
60
+ /**
61
+ * Takes source and target buffers/textures and sets up the pipeline
62
+ */
63
+ export declare class Transform {
64
+ /**
65
+ * Check if Transforms are supported (they are not under WebGL1)
66
+ * @todo differentiate writing to buffer vs not
67
+ */
68
+ static isSupported(device: Device | WebGLRenderingContext): boolean;
69
+ readonly device: WebGLDevice;
70
+ readonly gl: WebGL2RenderingContext;
71
+ elementCount: number;
72
+ elementIDBuffer: Buffer | null;
73
+ constructor(device: Device | WebGLRenderingContext, props?: TransformProps);
74
+ /** Delete owned resources. */
75
+ destroy(): void;
76
+ /** @deprecated Use destroy*() */
77
+ delete(): void;
78
+ /** Run one transform loop. */
79
+ run(options?: TransformRunOptions): void;
80
+ /** swap resources if a map is provided */
81
+ swap(): void;
82
+ /** Return Buffer object for given varying name. */
83
+ getBuffer(varyingName: string): Buffer | null;
84
+ /** Return data either from Buffer or from Texture */
85
+ getData(options?: {
86
+ packed?: boolean;
87
+ varyingName?: string;
88
+ }): void;
89
+ /** Return framebuffer object if rendering to textures */
90
+ getFramebuffer(): Framebuffer | null;
91
+ /** Update some or all buffer/texture bindings. */
92
+ update(props: TransformProps): void;
93
+ _updateModelProps(props: TransformProps): TransformProps;
94
+ _buildResourceTransforms(props: TransformProps): void;
95
+ _updateDrawOptions(options: TransformRunOptions): TransformDrawOptions;
96
+ }
97
+ export {};
98
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/transform/transform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import { getShaderInfo, getPassthroughFS } from '@luma.gl/shadertools';
3
+ import GL from '@luma.gl/constants';
4
+ import { WebGLDevice } from '@luma.gl/webgl';
5
+ import { Model } from "../model/model.js";
6
+ export class Transform {
7
+ static isSupported(device) {
8
+ return false;
9
+ }
10
+ constructor(device) {
11
+ let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12
+ _defineProperty(this, "device", void 0);
13
+ _defineProperty(this, "gl", void 0);
14
+ _defineProperty(this, "elementCount", 0);
15
+ _defineProperty(this, "elementIDBuffer", null);
16
+ this.device = WebGLDevice.attach(device);
17
+ this.gl = this.device.gl2;
18
+ this._buildResourceTransforms(props);
19
+ props = this._updateModelProps(props);
20
+ this.model = new Model(this.device, {
21
+ ...props,
22
+ fs: props.fs || getPassthroughFS({
23
+ version: getShaderInfo(props.vs).version
24
+ }),
25
+ id: props.id || 'transform-model',
26
+ drawMode: props.drawMode || GL.POINTS,
27
+ vertexCount: props.elementCount
28
+ });
29
+ Object.seal(this);
30
+ }
31
+ destroy() {}
32
+ delete() {
33
+ this.destroy();
34
+ }
35
+ run(options) {
36
+ const {
37
+ clearRenderTarget = true
38
+ } = options || {};
39
+ const updatedOpts = this._updateDrawOptions(options);
40
+ if (clearRenderTarget && updatedOpts.framebuffer) {}
41
+ }
42
+ swap() {}
43
+ getBuffer(varyingName) {
44
+ return null;
45
+ }
46
+ getData() {
47
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
48
+ }
49
+ getFramebuffer() {
50
+ return null;
51
+ }
52
+ update(props) {}
53
+ _updateModelProps(props) {
54
+ const updatedProps = {
55
+ ...props
56
+ };
57
+ return updatedProps;
58
+ }
59
+ _buildResourceTransforms(props) {}
60
+ _updateDrawOptions(options) {
61
+ const updatedOpts = {
62
+ ...options
63
+ };
64
+ return updatedOpts;
65
+ }
66
+ }
67
+ //# sourceMappingURL=transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.js","names":["getShaderInfo","getPassthroughFS","GL","WebGLDevice","Model","Transform","isSupported","device","constructor","props","arguments","length","undefined","_defineProperty","attach","gl","gl2","_buildResourceTransforms","_updateModelProps","model","fs","version","vs","id","drawMode","POINTS","vertexCount","elementCount","Object","seal","destroy","delete","run","options","clearRenderTarget","updatedOpts","_updateDrawOptions","framebuffer","swap","getBuffer","varyingName","getData","getFramebuffer","update","updatedProps"],"sources":["../../src/transform/transform.ts"],"sourcesContent":["// luma.gl, MIT license\n\nimport {Device, Buffer, Texture, Framebuffer} from '@luma.gl/api';\nimport {getShaderInfo, getPassthroughFS} from '@luma.gl/shadertools';\nimport GL from '@luma.gl/constants';\nimport {WebGLDevice, GLParameters} from '@luma.gl/webgl';\nimport {Model} from '../model/model';\n\n// import {AccessorObject} from '@luma.gl/webgl';\n// import {default as TransformFeedback} from '../classic/transform-feedback';\n// import BufferTransform from './buffer-transform';\n// import TextureTransform from './texture-transform';\n\ntype TransformFeedback = any;\n\n/** Properties for creating Transforms */\nexport type TransformProps = {\n id?: string;\n vs?: string;\n elementCount?: number;\n sourceBuffers?: Record<string, Buffer>;\n feedbackBuffers?: Record<string, string | Buffer | {buffer: Buffer; byteOffset?: number}>;\n varyings?: string[];\n feedbackMap?: Record<string, string>;\n modules?: object[]; // TODO use ShaderModule type\n attributes?: Record<string, any>;\n uniforms?: Record<string, any>;\n defines?: Record<string, any>\n parameters?: GLParameters;\n discard?: boolean;\n isIndexed?: boolean;\n inject?: Record<string, string>;\n drawMode?: number;\n framebuffer?: Framebuffer;\n _sourceTextures?: Record<string, Texture>;\n _targetTexture?: string | Texture;\n _targetTextureVarying?: string;\n _swapTexture?: string | null;\n _fs?: string;\n fs?: string;\n};\n\n/** Options that can be provided when running a Transform */\nexport type TransformRunOptions = {\n framebuffer?: Framebuffer;\n clearRenderTarget?: boolean;\n uniforms?: Record<string, any>;\n parameters?: Record<string, any>;\n discard?: boolean;\n};\n\n/** Options that control drawing a Transform. Used by subclasses to return draw parameters */\nexport type TransformDrawOptions = {\n attributes?: Record<string, any>;\n framebuffer?: any;\n uniforms?: object;\n discard?: boolean;\n parameters?: object;\n transformFeedback?: any;\n};\n\nexport type TransformBinding = {\n sourceBuffers: Record<string, Buffer>;\n sourceTextures: Record<string, Texture>;\n feedbackBuffers?: Record<string, Buffer | {buffer: Buffer}>;\n transformFeedback?: TransformFeedback;\n framebuffer?: Framebuffer;\n targetTexture?: Texture;\n};\n\n/**\n * Takes source and target buffers/textures and sets up the pipeline\n */\nexport class Transform {\n /**\n * Check if Transforms are supported (they are not under WebGL1)\n * @todo differentiate writing to buffer vs not\n */\n static isSupported(device: Device | WebGLRenderingContext): boolean {\n // try {\n // const webglDevice = WebGLDevice.attach(device);\n // return webglDevice.isWebGL2;\n // } catch {\n // return false;\n // }\n return false;\n }\n\n readonly device: WebGLDevice;\n readonly gl: WebGL2RenderingContext;\n // model: Model;\n elementCount = 0;\n // bufferTransform: BufferTransform | null = null;\n // textureTransform: TextureTransform | null = null;\n elementIDBuffer: Buffer | null = null;\n\n constructor(device: Device | WebGLRenderingContext, props: TransformProps = {}) {\n this.device = WebGLDevice.attach(device);\n // TODO assert webgl2?\n this.gl = this.device.gl2;\n this._buildResourceTransforms(props);\n\n props = this._updateModelProps(props);\n // @ts-expect-error TODO this is valid type error for params\n this.model = new Model(this.device, {\n ...props,\n fs: props.fs || getPassthroughFS({version: getShaderInfo(props.vs).version}),\n id: props.id || 'transform-model',\n // @ts-expect-error\n drawMode: props.drawMode || GL.POINTS,\n vertexCount: props.elementCount\n });\n\n // if (this.bufferTransform) {\n // this.bufferTransform.setupResources({model: this.model});\n // }\n Object.seal(this);\n }\n\n /** Delete owned resources. */\n destroy(): void {\n // if (this.model) {\n // this.model.destroy();\n // }\n // if (this.bufferTransform) {\n // this.bufferTransform.destroy();\n // }\n // if (this.textureTransform) {\n // this.textureTransform.destroy();\n // }\n }\n\n /** @deprecated Use destroy*() */\n delete(): void {\n this.destroy();\n }\n\n /** Run one transform loop. */\n run(options?: TransformRunOptions): void {\n const {clearRenderTarget = true} = options || {};\n\n const updatedOpts = this._updateDrawOptions(options);\n\n if (clearRenderTarget && updatedOpts.framebuffer) {\n // clear(this.device, {framebuffer: updatedOpts.framebuffer, color: true});\n }\n\n // this.model.transform(updatedOpts);\n }\n\n /** swap resources if a map is provided */\n swap(): void {\n // let swapped = false;\n // const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean);\n // for (const resourceTransform of resourceTransforms) {\n // swapped = swapped || Boolean(resourceTransform?.swap());\n // }\n // assert(swapped, 'Nothing to swap');\n }\n\n /** Return Buffer object for given varying name. */\n getBuffer(varyingName: string): Buffer | null {\n // return this.bufferTransform && this.bufferTransform.getBuffer(varyingName);\n return null;\n }\n\n /** Return data either from Buffer or from Texture */\n getData(options: {packed?: boolean; varyingName?: string} = {}) {\n // const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean);\n // for (const resourceTransform of resourceTransforms) {\n // const data = resourceTransform?.getData(options);\n // if (data) {\n // return data;\n // }\n // }\n // return null;\n }\n\n /** Return framebuffer object if rendering to textures */\n getFramebuffer(): Framebuffer | null {\n // return this.textureTransform?.getFramebuffer() || null;\n return null;\n }\n\n /** Update some or all buffer/texture bindings. */\n update(props: TransformProps): void {\n // if (props.elementCount !== undefined) {\n // this.model.setVertexCount(props.elementCount);\n // }\n // const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean);\n // for (const resourceTransform of resourceTransforms) {\n // resourceTransform?.update(props);\n // }\n }\n\n // Private\n\n _updateModelProps(props: TransformProps): TransformProps {\n const updatedProps: TransformProps = {...props};\n // const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean) ;\n // for (const resourceTransform of resourceTransforms) {\n // updatedProps = resourceTransform.updateModelProps(updatedProps);\n // }\n return updatedProps;\n }\n\n _buildResourceTransforms(props: TransformProps) {\n // if (canCreateBufferTransform(props)) {\n // this.bufferTransform = new BufferTransform(this.device, props);\n // }\n // if (canCreateTextureTransform(props)) {\n // this.textureTransform = new TextureTransform(this.device, props);\n // }\n // assert(\n // this.bufferTransform || this.textureTransform,\n // 'must provide source/feedback buffers or source/target textures'\n // );\n }\n\n _updateDrawOptions(options: TransformRunOptions): TransformDrawOptions {\n const updatedOpts = {...options};\n // const resourceTransforms = [this.bufferTransform, this.textureTransform].filter(Boolean) ;\n // for (const resourceTransform of resourceTransforms) {\n // updatedOpts = Object.assign(updatedOpts, resourceTransform.getDrawOptions(updatedOpts));\n // }\n return updatedOpts;\n }\n}\n\n// Helper Methods\n\n// function canCreateBufferTransform(props: TransformProps): boolean {\n// const canCreate =\n// (props.feedbackBuffers && !isObjectEmpty(props.feedbackBuffers)) ||\n// (props.feedbackMap && !isObjectEmpty(props.feedbackMap)) ||\n// (props.varyings && props.varyings.length > 0);\n// return Boolean(canCreate);\n// }\n\n// function canCreateTextureTransform(props: TransformProps): boolean {\n// const canCreate =\n// (props._sourceTextures && !isObjectEmpty(props._sourceTextures)) ||\n// props._targetTexture ||\n// props._targetTextureVarying;\n// return Boolean(canCreate);\n// }\n"],"mappings":";AAGA,SAAQA,aAAa,EAAEC,gBAAgB,QAAO,sBAAsB;AACpE,OAAOC,EAAE,MAAM,oBAAoB;AACnC,SAAQC,WAAW,QAAqB,gBAAgB;AAAC,SACjDC,KAAK;AAmEb,OAAO,MAAMC,SAAS,CAAC;EAKrB,OAAOC,WAAWA,CAACC,MAAsC,EAAW;IAOlE,OAAO,KAAK;EACd;EAUAC,WAAWA,CAACD,MAAsC,EAA8B;IAAA,IAA5BE,KAAqB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAAG,eAAA;IAAAA,eAAA;IAAAA,eAAA,uBAL/D,CAAC;IAAAA,eAAA,0BAGiB,IAAI;IAGnC,IAAI,CAACN,MAAM,GAAGJ,WAAW,CAACW,MAAM,CAACP,MAAM,CAAC;IAExC,IAAI,CAACQ,EAAE,GAAG,IAAI,CAACR,MAAM,CAACS,GAAG;IACzB,IAAI,CAACC,wBAAwB,CAACR,KAAK,CAAC;IAEpCA,KAAK,GAAG,IAAI,CAACS,iBAAiB,CAACT,KAAK,CAAC;IAErC,IAAI,CAACU,KAAK,GAAG,IAAIf,KAAK,CAAC,IAAI,CAACG,MAAM,EAAE;MAClC,GAAGE,KAAK;MACRW,EAAE,EAAEX,KAAK,CAACW,EAAE,IAAInB,gBAAgB,CAAC;QAACoB,OAAO,EAAErB,aAAa,CAACS,KAAK,CAACa,EAAE,CAAC,CAACD;MAAO,CAAC,CAAC;MAC5EE,EAAE,EAAEd,KAAK,CAACc,EAAE,IAAI,iBAAiB;MAEjCC,QAAQ,EAAEf,KAAK,CAACe,QAAQ,IAAItB,EAAE,CAACuB,MAAM;MACrCC,WAAW,EAAEjB,KAAK,CAACkB;IACrB,CAAC,CAAC;IAKFC,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC;EACnB;EAGAC,OAAOA,CAAA,EAAS,CAUhB;EAGAC,MAAMA,CAAA,EAAS;IACb,IAAI,CAACD,OAAO,EAAE;EAChB;EAGAE,GAAGA,CAACC,OAA6B,EAAQ;IACvC,MAAM;MAACC,iBAAiB,GAAG;IAAI,CAAC,GAAGD,OAAO,IAAI,CAAC,CAAC;IAEhD,MAAME,WAAW,GAAG,IAAI,CAACC,kBAAkB,CAACH,OAAO,CAAC;IAEpD,IAAIC,iBAAiB,IAAIC,WAAW,CAACE,WAAW,EAAE,CAElD;EAGF;EAGAC,IAAIA,CAAA,EAAS,CAOb;EAGAC,SAASA,CAACC,WAAmB,EAAiB;IAE5C,OAAO,IAAI;EACb;EAGAC,OAAOA,CAAA,EAAyD;IAAA,IAAxDR,OAAiD,GAAAvB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAS9D;EAGAgC,cAAcA,CAAA,EAAuB;IAEnC,OAAO,IAAI;EACb;EAGAC,MAAMA,CAAClC,KAAqB,EAAQ,CAQpC;EAIAS,iBAAiBA,CAACT,KAAqB,EAAkB;IACvD,MAAMmC,YAA4B,GAAG;MAAC,GAAGnC;IAAK,CAAC;IAK/C,OAAOmC,YAAY;EACrB;EAEA3B,wBAAwBA,CAACR,KAAqB,EAAE,CAWhD;EAEA2B,kBAAkBA,CAACH,OAA4B,EAAwB;IACrE,MAAME,WAAW,GAAG;MAAC,GAAGF;IAAO,CAAC;IAKhC,OAAOE,WAAW;EACpB;AACF"}