@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.
- package/dist/animation/key-frames.d.ts +18 -0
- package/dist/animation/key-frames.d.ts.map +1 -0
- package/dist/{esm/animation → animation}/key-frames.js +13 -6
- package/dist/animation/key-frames.js.map +1 -0
- package/dist/animation/timeline.d.ts +51 -0
- package/dist/animation/timeline.d.ts.map +1 -0
- package/dist/{esm/animation → animation}/timeline.js +10 -5
- package/dist/animation/timeline.js.map +1 -0
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +5 -0
- package/dist/bundle.js.map +1 -0
- package/dist/geometries/cone-geometry.d.ts +10 -0
- package/dist/geometries/cone-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/cone-geometry.js +2 -2
- package/dist/geometries/cone-geometry.js.map +1 -0
- package/dist/geometries/cube-geometry.d.ts +9 -0
- package/dist/geometries/cube-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/cube-geometry.js +18 -18
- package/dist/geometries/cube-geometry.js.map +1 -0
- package/dist/geometries/cylinder-geometry.d.ts +10 -0
- package/dist/geometries/cylinder-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/cylinder-geometry.js +2 -2
- package/dist/geometries/cylinder-geometry.js.map +1 -0
- package/dist/geometries/ico-sphere-geometry.d.ts +11 -0
- package/dist/geometries/ico-sphere-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/ico-sphere-geometry.js +2 -2
- package/dist/geometries/ico-sphere-geometry.js.map +1 -0
- package/dist/geometries/plane-geometry.d.ts +10 -0
- package/dist/geometries/plane-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/plane-geometry.js +5 -5
- package/dist/geometries/plane-geometry.js.map +1 -0
- package/dist/geometries/sphere-geometry.d.ts +12 -0
- package/dist/geometries/sphere-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/sphere-geometry.js +2 -9
- package/dist/geometries/sphere-geometry.js.map +1 -0
- package/dist/geometries/truncated-cone-geometry.d.ts +13 -0
- package/dist/geometries/truncated-cone-geometry.d.ts.map +1 -0
- package/dist/{esm/geometries → geometries}/truncated-cone-geometry.js +1 -1
- package/dist/geometries/truncated-cone-geometry.js.map +1 -0
- package/dist/geometry/geometry-utils.d.ts +2 -0
- package/dist/geometry/geometry-utils.d.ts.map +1 -0
- package/dist/{esm/geometry → geometry}/geometry-utils.js +0 -0
- package/dist/geometry/geometry-utils.js.map +1 -0
- package/dist/geometry/geometry.d.ts +44 -0
- package/dist/geometry/geometry.d.ts.map +1 -0
- package/dist/{esm/geometry → geometry}/geometry.js +28 -19
- package/dist/geometry/geometry.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/animation-loop.d.ts +149 -0
- package/dist/lib/animation-loop.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/animation-loop.js +190 -143
- package/dist/lib/animation-loop.js.map +1 -0
- package/dist/lib/model-utils.d.ts +4 -0
- package/dist/lib/model-utils.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/model-utils.js +3 -2
- package/dist/lib/model-utils.js.map +1 -0
- package/dist/lib/model.d.ts +109 -0
- package/dist/lib/model.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/model.js +76 -20
- package/dist/lib/model.js.map +1 -0
- package/dist/lib/program-manager.d.ts +39 -0
- package/dist/lib/program-manager.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/program-manager.js +29 -18
- package/dist/lib/program-manager.js.map +1 -0
- package/dist/lib/render-loop.d.ts +27 -0
- package/dist/lib/render-loop.d.ts.map +1 -0
- package/dist/lib/render-loop.js +56 -0
- package/dist/lib/render-loop.js.map +1 -0
- package/dist/transform/buffer-transform.d.ts +36 -0
- package/dist/transform/buffer-transform.d.ts.map +1 -0
- package/dist/{esm/transform → transform}/buffer-transform.js +15 -8
- package/dist/transform/buffer-transform.js.map +1 -0
- package/dist/transform/texture-transform.d.ts +57 -0
- package/dist/transform/texture-transform.d.ts.map +1 -0
- package/dist/{esm/transform → transform}/texture-transform.js +48 -16
- package/dist/transform/texture-transform.js.map +1 -0
- package/dist/transform/transform-shader-utils.d.ts +26 -0
- package/dist/transform/transform-shader-utils.d.ts.map +1 -0
- package/dist/{esm/transform → transform}/transform-shader-utils.js +38 -46
- package/dist/transform/transform-shader-utils.js.map +1 -0
- package/dist/transform/transform-types.d.ts +44 -0
- package/dist/transform/transform-types.d.ts.map +1 -0
- package/dist/transform/transform-types.js +2 -0
- package/dist/transform/transform-types.js.map +1 -0
- package/dist/transform/transform.d.ts +47 -0
- package/dist/transform/transform.d.ts.map +1 -0
- package/dist/{esm/transform → transform}/transform.js +63 -43
- package/dist/transform/transform.js.map +1 -0
- package/dist/utils/clip-space.d.ts +5 -0
- package/dist/utils/clip-space.d.ts.map +1 -0
- package/dist/{esm/utils → utils}/clip-space.js +3 -17
- package/dist/utils/clip-space.js.map +1 -0
- package/package.json +11 -11
- package/src/animation/{key-frames.js → key-frames.ts} +18 -16
- package/src/animation/{timeline.js → timeline.ts} +54 -18
- package/src/bundle.ts +4 -0
- package/src/geometries/{cone-geometry.js → cone-geometry.ts} +9 -3
- package/src/geometries/{cube-geometry.js → cube-geometry.ts} +17 -12
- package/src/geometries/cylinder-geometry.ts +20 -0
- package/src/geometries/{ico-sphere-geometry.js → ico-sphere-geometry.ts} +10 -3
- package/src/geometries/{plane-geometry.js → plane-geometry.ts} +11 -6
- package/src/geometries/{sphere-geometry.js → sphere-geometry.ts} +15 -11
- package/src/geometries/{truncated-cone-geometry.js → truncated-cone-geometry.ts} +14 -5
- package/src/geometry/{geometry-utils.js → geometry-utils.ts} +2 -0
- package/src/geometry/{geometry.js → geometry.ts} +47 -34
- package/src/index.ts +35 -0
- package/src/lib/animation-loop.ts +724 -0
- package/src/lib/{model-utils.js → model-utils.ts} +2 -2
- package/src/lib/{model.js → model.ts} +184 -66
- package/src/lib/{program-manager.js → program-manager.ts} +53 -34
- package/src/lib/render-loop.ts +56 -0
- package/src/transform/{buffer-transform.js → buffer-transform.ts} +42 -27
- package/src/transform/{texture-transform.js → texture-transform.ts} +35 -25
- package/src/transform/{transform-shader-utils.js → transform-shader-utils.ts} +55 -27
- package/src/transform/transform-types.ts +42 -0
- package/src/transform/transform.ts +189 -0
- package/src/utils/{clip-space.js → clip-space.ts} +4 -3
- package/dist/dist.js +0 -32403
- package/dist/dist.min.js +0 -1
- package/dist/es5/animation/key-frames.d.ts +0 -19
- package/dist/es5/animation/key-frames.js +0 -95
- package/dist/es5/animation/key-frames.js.map +0 -1
- package/dist/es5/animation/timeline.d.ts +0 -39
- package/dist/es5/animation/timeline.js +0 -211
- package/dist/es5/animation/timeline.js.map +0 -1
- package/dist/es5/bundle.js +0 -9
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/geometries/cone-geometry.d.ts +0 -5
- package/dist/es5/geometries/cone-geometry.js +0 -59
- package/dist/es5/geometries/cone-geometry.js.map +0 -1
- package/dist/es5/geometries/cube-geometry.d.ts +0 -5
- package/dist/es5/geometries/cube-geometry.js +0 -75
- package/dist/es5/geometries/cube-geometry.js.map +0 -1
- package/dist/es5/geometries/cylinder-geometry.d.ts +0 -5
- package/dist/es5/geometries/cylinder-geometry.js +0 -55
- package/dist/es5/geometries/cylinder-geometry.js.map +0 -1
- package/dist/es5/geometries/ico-sphere-geometry.d.ts +0 -5
- package/dist/es5/geometries/ico-sphere-geometry.js +0 -217
- package/dist/es5/geometries/ico-sphere-geometry.js.map +0 -1
- package/dist/es5/geometries/index.d.ts +0 -7
- package/dist/es5/geometries/index.js +0 -64
- package/dist/es5/geometries/index.js.map +0 -1
- package/dist/es5/geometries/plane-geometry.d.ts +0 -5
- package/dist/es5/geometries/plane-geometry.js +0 -168
- package/dist/es5/geometries/plane-geometry.js.map +0 -1
- package/dist/es5/geometries/sphere-geometry.d.ts +0 -5
- package/dist/es5/geometries/sphere-geometry.js +0 -152
- package/dist/es5/geometries/sphere-geometry.js.map +0 -1
- package/dist/es5/geometries/truncated-cone-geometry.d.ts +0 -5
- package/dist/es5/geometries/truncated-cone-geometry.js +0 -171
- package/dist/es5/geometries/truncated-cone-geometry.js.map +0 -1
- package/dist/es5/geometry/geometry-utils.d.ts +0 -1
- package/dist/es5/geometry/geometry-utils.js +0 -49
- package/dist/es5/geometry/geometry-utils.js.map +0 -1
- package/dist/es5/geometry/geometry.d.ts +0 -25
- package/dist/es5/geometry/geometry.js +0 -150
- package/dist/es5/geometry/geometry.js.map +0 -1
- package/dist/es5/index.d.ts +0 -19
- package/dist/es5/index.js +0 -128
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/lib/animation-loop.d.ts +0 -158
- package/dist/es5/lib/animation-loop.js +0 -642
- package/dist/es5/lib/animation-loop.js.map +0 -1
- package/dist/es5/lib/model-utils.d.ts +0 -3
- package/dist/es5/lib/model-utils.js +0 -110
- package/dist/es5/lib/model-utils.js.map +0 -1
- package/dist/es5/lib/model.d.ts +0 -214
- package/dist/es5/lib/model.js +0 -584
- package/dist/es5/lib/model.js.map +0 -1
- package/dist/es5/lib/program-manager.d.ts +0 -79
- package/dist/es5/lib/program-manager.js +0 -238
- package/dist/es5/lib/program-manager.js.map +0 -1
- package/dist/es5/transform/buffer-transform.d.ts +0 -13
- package/dist/es5/transform/buffer-transform.js +0 -294
- package/dist/es5/transform/buffer-transform.js.map +0 -1
- package/dist/es5/transform/resource-transform.d.ts +0 -16
- package/dist/es5/transform/texture-transform.d.ts +0 -16
- package/dist/es5/transform/texture-transform.js +0 -405
- package/dist/es5/transform/texture-transform.js.map +0 -1
- package/dist/es5/transform/transform-shader-utils.d.ts +0 -31
- package/dist/es5/transform/transform-shader-utils.js +0 -160
- package/dist/es5/transform/transform-shader-utils.js.map +0 -1
- package/dist/es5/transform/transform.d.ts +0 -33
- package/dist/es5/transform/transform.js +0 -274
- package/dist/es5/transform/transform.js.map +0 -1
- package/dist/es5/utils/clip-space.d.ts +0 -5
- package/dist/es5/utils/clip-space.js +0 -72
- package/dist/es5/utils/clip-space.js.map +0 -1
- package/dist/esm/animation/key-frames.d.ts +0 -19
- package/dist/esm/animation/key-frames.js.map +0 -1
- package/dist/esm/animation/timeline.d.ts +0 -39
- package/dist/esm/animation/timeline.js.map +0 -1
- package/dist/esm/bundle.js +0 -7
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/geometries/cone-geometry.d.ts +0 -5
- package/dist/esm/geometries/cone-geometry.js.map +0 -1
- package/dist/esm/geometries/cube-geometry.d.ts +0 -5
- package/dist/esm/geometries/cube-geometry.js.map +0 -1
- package/dist/esm/geometries/cylinder-geometry.d.ts +0 -5
- package/dist/esm/geometries/cylinder-geometry.js.map +0 -1
- package/dist/esm/geometries/ico-sphere-geometry.d.ts +0 -5
- package/dist/esm/geometries/ico-sphere-geometry.js.map +0 -1
- package/dist/esm/geometries/index.d.ts +0 -7
- package/dist/esm/geometries/index.js +0 -8
- package/dist/esm/geometries/index.js.map +0 -1
- package/dist/esm/geometries/plane-geometry.d.ts +0 -5
- package/dist/esm/geometries/plane-geometry.js.map +0 -1
- package/dist/esm/geometries/sphere-geometry.d.ts +0 -5
- package/dist/esm/geometries/sphere-geometry.js.map +0 -1
- package/dist/esm/geometries/truncated-cone-geometry.d.ts +0 -5
- package/dist/esm/geometries/truncated-cone-geometry.js.map +0 -1
- package/dist/esm/geometry/geometry-utils.d.ts +0 -1
- package/dist/esm/geometry/geometry-utils.js.map +0 -1
- package/dist/esm/geometry/geometry.d.ts +0 -25
- package/dist/esm/geometry/geometry.js.map +0 -1
- package/dist/esm/index.d.ts +0 -19
- package/dist/esm/index.js +0 -16
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/animation-loop.d.ts +0 -158
- package/dist/esm/lib/animation-loop.js.map +0 -1
- package/dist/esm/lib/model-utils.d.ts +0 -3
- package/dist/esm/lib/model-utils.js.map +0 -1
- package/dist/esm/lib/model.d.ts +0 -214
- package/dist/esm/lib/model.js.map +0 -1
- package/dist/esm/lib/program-manager.d.ts +0 -79
- package/dist/esm/lib/program-manager.js.map +0 -1
- package/dist/esm/transform/buffer-transform.d.ts +0 -13
- package/dist/esm/transform/buffer-transform.js.map +0 -1
- package/dist/esm/transform/resource-transform.d.ts +0 -16
- package/dist/esm/transform/texture-transform.d.ts +0 -16
- package/dist/esm/transform/texture-transform.js.map +0 -1
- package/dist/esm/transform/transform-shader-utils.d.ts +0 -31
- package/dist/esm/transform/transform-shader-utils.js.map +0 -1
- package/dist/esm/transform/transform.d.ts +0 -33
- package/dist/esm/transform/transform.js.map +0 -1
- package/dist/esm/utils/clip-space.d.ts +0 -5
- package/dist/esm/utils/clip-space.js.map +0 -1
- package/src/animation/key-frames.d.ts +0 -19
- package/src/animation/timeline.d.ts +0 -39
- package/src/bundle.js +0 -7
- package/src/geometries/cone-geometry.d.ts +0 -5
- package/src/geometries/cube-geometry.d.ts +0 -5
- package/src/geometries/cylinder-geometry.d.ts +0 -5
- package/src/geometries/cylinder-geometry.js +0 -14
- package/src/geometries/ico-sphere-geometry.d.ts +0 -5
- package/src/geometries/index.d.ts +0 -7
- package/src/geometries/index.js +0 -7
- package/src/geometries/plane-geometry.d.ts +0 -5
- package/src/geometries/sphere-geometry.d.ts +0 -5
- package/src/geometries/truncated-cone-geometry.d.ts +0 -5
- package/src/geometry/geometry-utils.d.ts +0 -1
- package/src/geometry/geometry.d.ts +0 -25
- package/src/index.d.ts +0 -19
- package/src/index.js +0 -22
- package/src/lib/animation-loop.d.ts +0 -158
- package/src/lib/animation-loop.js +0 -601
- package/src/lib/model-utils.d.ts +0 -3
- package/src/lib/model.d.ts +0 -214
- package/src/lib/program-manager.d.ts +0 -79
- package/src/transform/buffer-transform.d.ts +0 -13
- package/src/transform/resource-transform.d.ts +0 -16
- package/src/transform/texture-transform.d.ts +0 -16
- package/src/transform/transform-shader-utils.d.ts +0 -31
- package/src/transform/transform.d.ts +0 -33
- package/src/transform/transform.js +0 -177
- package/src/utils/clip-space.d.ts +0 -5
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/animation-loop.js"],"names":["isPage","document","statIdCounter","AnimationLoop","props","onCreateContext","opts","onAddHTML","onInitialize","onRender","onFinalize","onError","gl","glOptions","debug","createFramebuffer","autoResizeViewport","autoResizeDrawingBuffer","stats","lumaStats","get","useDevicePixels","log","deprecated","useDevicePixelRatio","needsRedraw","timeline","cpuTime","gpuTime","frameRate","_initialized","_running","_animationFrameId","_nextFramePromise","_resolveNextFrame","_cpuStartTime","setProps","start","bind","stop","_pageLoadPromise","_onMousemove","_onMouseleave","_setDisplay","reason","startPromise","_getPageLoadPromise","then","_createWebGLContext","_createFramebuffer","_startEventHandling","_initializeCallbackData","_updateCallbackData","_resizeCanvasDrawingBuffer","_resizeViewport","_gpuTimeQuery","Query","isSupported","animationProps","appContext","_addCallbackData","_startLoop","catch","isContextLost","_beginTimers","_setupFrame","_renderFrame","_clearNeedsRedraw","offScreen","commit","_endTimers","_finalizeCallbackData","_cancelAnimationFrame","setNeedsRedraw","Promise","resolve","waitForRender","canvas","toDataURL","id","defaultValue","element","getElementById","Number","value","removed","renderFrame","redraw","_requestAnimationFrame","reject","readyState","window","addEventListener","display","delete","animationLoop","animationFrameId","cancelAnimationFrame","renderFrameCallback","requestAnimationFrame","undefined","_resizeFramebuffer","framebuffer","startTime","Date","now","engineTime","tick","tock","time","_timeline","_loop","_animationLoop","_mousePosition","_getSizeAndAspect","width","height","aspect","update","Math","floor","getTime","_offScreen","Object","assign","OffscreenCanvas","Error","_createInfoDiv","wrapperDiv","createElement","body","appendChild","style","position","div","left","bottom","background","html","innerHTML","drawingBufferWidth","drawingBufferHeight","clientHeight","clientWidth","viewport","Framebuffer","resize","timeEnd","timeStart","isResultAvailable","isTimerDisjoint","addTime","getTimerMilliseconds","beginTimeElapsedQuery","end","e","offsetX","offsetY"],"mappings":"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","sourcesContent":["import {\n isWebGL,\n createGLContext,\n instrumentGLContext,\n resizeGLContext,\n resetParameters\n} from '@luma.gl/gltools';\n\nimport {\n requestAnimationFrame,\n cancelAnimationFrame,\n Query,\n lumaStats,\n // TODO - remove dependency on framebuffer (bundle size impact)\n Framebuffer,\n log,\n assert\n} from '@luma.gl/webgl';\n\nimport {isBrowser} from 'probe.gl/env';\n\nconst isPage = isBrowser() && typeof document !== 'undefined';\n\nlet statIdCounter = 0;\n\nexport default class AnimationLoop {\n /*\n * @param {HTMLCanvasElement} canvas - if provided, width and height will be passed to context\n */\n constructor(props = {}) {\n const {\n onCreateContext = opts => createGLContext(opts),\n onAddHTML = null,\n onInitialize = () => {},\n onRender = () => {},\n onFinalize = () => {},\n onError,\n\n gl = null,\n glOptions = {},\n debug = false,\n\n createFramebuffer = false,\n\n // view parameters\n autoResizeViewport = true,\n autoResizeDrawingBuffer = true,\n stats = lumaStats.get(`animation-loop-${statIdCounter++}`)\n } = props;\n\n let {useDevicePixels = true} = props;\n\n if ('useDevicePixelRatio' in props) {\n log.deprecated('useDevicePixelRatio', 'useDevicePixels')();\n // @ts-ignore\n useDevicePixels = props.useDevicePixelRatio;\n }\n\n this.props = {\n onCreateContext,\n onAddHTML,\n onInitialize,\n onRender,\n onFinalize,\n onError,\n\n gl,\n glOptions,\n debug,\n createFramebuffer\n };\n\n // state\n this.gl = gl;\n this.needsRedraw = null;\n this.timeline = null;\n this.stats = stats;\n this.cpuTime = this.stats.get('CPU Time');\n this.gpuTime = this.stats.get('GPU Time');\n this.frameRate = this.stats.get('Frame Rate');\n\n this._initialized = false;\n this._running = false;\n this._animationFrameId = null;\n this._nextFramePromise = null;\n this._resolveNextFrame = null;\n this._cpuStartTime = 0;\n\n this.setProps({\n autoResizeViewport,\n autoResizeDrawingBuffer,\n useDevicePixels\n });\n\n // Bind methods\n this.start = this.start.bind(this);\n this.stop = this.stop.bind(this);\n\n this._pageLoadPromise = null;\n\n this._onMousemove = this._onMousemove.bind(this);\n this._onMouseleave = this._onMouseleave.bind(this);\n }\n\n delete() {\n this.stop();\n this._setDisplay(null);\n }\n\n setNeedsRedraw(reason) {\n assert(typeof reason === 'string');\n this.needsRedraw = this.needsRedraw || reason;\n return this;\n }\n\n setProps(props) {\n if ('autoResizeViewport' in props) {\n this.autoResizeViewport = props.autoResizeViewport;\n }\n if ('autoResizeDrawingBuffer' in props) {\n this.autoResizeDrawingBuffer = props.autoResizeDrawingBuffer;\n }\n if ('useDevicePixels' in props) {\n this.useDevicePixels = props.useDevicePixels;\n }\n return this;\n }\n\n // Starts a render loop if not already running\n // @param {Object} context - contains frame specific info (E.g. tick, width, height, etc)\n start(opts = {}) {\n if (this._running) {\n return this;\n }\n this._running = true;\n // console.debug(`Starting ${this.constructor.name}`);\n // Wait for start promise before rendering frame\n const startPromise = this._getPageLoadPromise()\n .then(() => {\n if (!this._running || this._initialized) {\n return null;\n }\n\n // Create the WebGL context\n this._createWebGLContext(opts);\n this._createFramebuffer();\n this._startEventHandling();\n\n // Initialize the callback data\n this._initializeCallbackData();\n this._updateCallbackData();\n\n // Default viewport setup, in case onInitialize wants to render\n this._resizeCanvasDrawingBuffer();\n this._resizeViewport();\n\n this._gpuTimeQuery = Query.isSupported(this.gl, ['timers']) ? new Query(this.gl) : null;\n\n this._initialized = true;\n\n // Note: onIntialize can return a promise (in case it needs to load resources)\n return this.onInitialize(this.animationProps);\n })\n .then(appContext => {\n if (this._running) {\n this._addCallbackData(appContext || {});\n if (appContext !== false) {\n this._startLoop();\n }\n }\n });\n\n if (this.props.onError) {\n startPromise.catch(this.props.onError);\n }\n\n return this;\n }\n\n // Redraw now\n redraw() {\n if (this.isContextLost()) {\n return this;\n }\n\n this._beginTimers();\n\n this._setupFrame();\n this._updateCallbackData();\n\n this._renderFrame(this.animationProps);\n\n // clear needsRedraw flag\n this._clearNeedsRedraw();\n\n // https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/commit\n // Chrome's offscreen canvas does not require gl.commit\n if (this.offScreen && this.gl.commit) {\n this.gl.commit();\n }\n\n if (this._resolveNextFrame) {\n this._resolveNextFrame(this);\n this._nextFramePromise = null;\n this._resolveNextFrame = null;\n }\n\n this._endTimers();\n\n return this;\n }\n\n // Stops a render loop if already running, finalizing\n stop() {\n // console.debug(`Stopping ${this.constructor.name}`);\n if (this._running) {\n this._finalizeCallbackData();\n this._cancelAnimationFrame(this._animationFrameId);\n this._nextFramePromise = null;\n this._resolveNextFrame = null;\n this._animationFrameId = null;\n this._running = false;\n }\n return this;\n }\n\n attachTimeline(timeline) {\n this.timeline = timeline;\n\n return this.timeline;\n }\n\n detachTimeline() {\n this.timeline = null;\n }\n\n waitForRender() {\n this.setNeedsRedraw('waitForRender');\n\n if (!this._nextFramePromise) {\n this._nextFramePromise = new Promise(resolve => {\n this._resolveNextFrame = resolve;\n });\n }\n return this._nextFramePromise;\n }\n\n async toDataURL() {\n this.setNeedsRedraw('toDataURL');\n\n await this.waitForRender();\n\n return this.gl.canvas.toDataURL();\n }\n\n isContextLost() {\n return this.gl.isContextLost();\n }\n\n onCreateContext(...args) {\n return this.props.onCreateContext(...args);\n }\n\n onInitialize(...args) {\n return this.props.onInitialize(...args);\n }\n\n onRender(...args) {\n return this.props.onRender(...args);\n }\n\n onFinalize(...args) {\n return this.props.onFinalize(...args);\n }\n\n // DEPRECATED/REMOVED METHODS\n\n getHTMLControlValue(id, defaultValue = 1) {\n const element = document.getElementById(id);\n // @ts-ignore Not all html elements have value\n return element ? Number(element.value) : defaultValue;\n }\n\n // Update parameters\n setViewParameters() {\n log.removed('AnimationLoop.setViewParameters', 'AnimationLoop.setProps')();\n return this;\n }\n\n // PRIVATE METHODS\n\n _startLoop() {\n const renderFrame = () => {\n if (!this._running) {\n return;\n }\n this.redraw();\n this._animationFrameId = this._requestAnimationFrame(renderFrame);\n };\n\n // cancel any pending renders to ensure only one loop can ever run\n this._cancelAnimationFrame(this._animationFrameId);\n this._animationFrameId = this._requestAnimationFrame(renderFrame);\n }\n\n // PRIVATE METHODS\n\n _getPageLoadPromise() {\n if (!this._pageLoadPromise) {\n this._pageLoadPromise = isPage\n ? new Promise((resolve, reject) => {\n if (isPage && document.readyState === 'complete') {\n resolve(document);\n return;\n }\n window.addEventListener('load', () => {\n resolve(document);\n });\n })\n : Promise.resolve({});\n }\n return this._pageLoadPromise;\n }\n\n _setDisplay(display) {\n if (this.display) {\n this.display.delete();\n this.display.animationLoop = null;\n }\n\n // store animation loop on the display\n if (display) {\n display.animationLoop = this;\n }\n\n this.display = display;\n }\n\n _cancelAnimationFrame(animationFrameId) {\n // E.g. VR display has a separate animation frame to sync with headset\n if (this.display && this.display.cancelAnimationFrame) {\n return this.display.cancelAnimationFrame(animationFrameId);\n }\n\n return cancelAnimationFrame(animationFrameId);\n }\n\n _requestAnimationFrame(renderFrameCallback) {\n if (this._running) {\n // E.g. VR display has a separate animation frame to sync with headset\n if (this.display && this.display.requestAnimationFrame) {\n return this.display.requestAnimationFrame(renderFrameCallback);\n }\n\n return requestAnimationFrame(renderFrameCallback);\n }\n return undefined;\n }\n\n // Called on each frame, can be overridden to call onRender multiple times\n // to support e.g. stereoscopic rendering\n _renderFrame(...args) {\n // Allow e.g. VR display to render multiple frames.\n if (this.display) {\n this.display._renderFrame(...args);\n return;\n }\n\n // call callback\n this.onRender(...args);\n // end callback\n }\n\n _clearNeedsRedraw() {\n this.needsRedraw = null;\n }\n\n _setupFrame() {\n this._resizeCanvasDrawingBuffer();\n this._resizeViewport();\n this._resizeFramebuffer();\n }\n\n // Initialize the object that will be passed to app callbacks\n _initializeCallbackData() {\n this.animationProps = {\n gl: this.gl,\n\n stop: this.stop,\n canvas: this.gl.canvas,\n framebuffer: this.framebuffer,\n\n // Initial values\n useDevicePixels: this.useDevicePixels,\n needsRedraw: null,\n\n // Animation props\n startTime: Date.now(),\n engineTime: 0,\n tick: 0,\n tock: 0,\n\n // Timeline time for back compatibility\n time: 0,\n\n // Experimental\n _timeline: this.timeline,\n _loop: this,\n _animationLoop: this,\n _mousePosition: null // Event props\n };\n }\n\n // Update the context object that will be passed to app callbacks\n _updateCallbackData() {\n const {width, height, aspect} = this._getSizeAndAspect();\n if (width !== this.animationProps.width || height !== this.animationProps.height) {\n this.setNeedsRedraw('drawing buffer resized');\n }\n if (aspect !== this.animationProps.aspect) {\n this.setNeedsRedraw('drawing buffer aspect changed');\n }\n\n this.animationProps.width = width;\n this.animationProps.height = height;\n this.animationProps.aspect = aspect;\n\n this.animationProps.needsRedraw = this.needsRedraw;\n\n // Update time properties\n this.animationProps.engineTime = Date.now() - this.animationProps.startTime;\n\n if (this.timeline) {\n this.timeline.update(this.animationProps.engineTime);\n }\n\n this.animationProps.tick = Math.floor((this.animationProps.time / 1000) * 60);\n this.animationProps.tock++;\n\n // For back compatibility\n this.animationProps.time = this.timeline\n ? this.timeline.getTime()\n : this.animationProps.engineTime;\n\n // experimental\n this.animationProps._offScreen = this.offScreen;\n }\n\n _finalizeCallbackData() {\n // call callback\n this.onFinalize(this.animationProps);\n // end callback\n }\n\n // Add application's data to the app context object\n _addCallbackData(appContext) {\n if (typeof appContext === 'object' && appContext !== null) {\n this.animationProps = Object.assign({}, this.animationProps, appContext);\n }\n }\n\n // Either uses supplied or existing context, or calls provided callback to create one\n _createWebGLContext(opts) {\n this.offScreen =\n opts.canvas &&\n typeof OffscreenCanvas !== 'undefined' &&\n opts.canvas instanceof OffscreenCanvas;\n\n // Create the WebGL context if necessary\n opts = Object.assign({}, opts, this.props.glOptions);\n this.gl = this.props.gl ? instrumentGLContext(this.props.gl, opts) : this.onCreateContext(opts);\n\n if (!isWebGL(this.gl)) {\n throw new Error('AnimationLoop.onCreateContext - illegal context returned');\n }\n\n // Reset the WebGL context.\n resetParameters(this.gl);\n\n this._createInfoDiv();\n }\n\n _createInfoDiv() {\n if (this.gl.canvas && this.props.onAddHTML) {\n const wrapperDiv = document.createElement('div');\n document.body.appendChild(wrapperDiv);\n wrapperDiv.style.position = 'relative';\n const div = document.createElement('div');\n div.style.position = 'absolute';\n div.style.left = '10px';\n div.style.bottom = '10px';\n div.style.width = '300px';\n div.style.background = 'white';\n wrapperDiv.appendChild(this.gl.canvas);\n wrapperDiv.appendChild(div);\n const html = this.props.onAddHTML(div);\n if (html) {\n div.innerHTML = html;\n }\n }\n }\n\n _getSizeAndAspect() {\n // https://webglfundamentals.org/webgl/lessons/webgl-resizing-the-canvas.html\n const width = this.gl.drawingBufferWidth;\n const height = this.gl.drawingBufferHeight;\n\n // https://webglfundamentals.org/webgl/lessons/webgl-anti-patterns.html\n let aspect = 1;\n const {canvas} = this.gl;\n\n if (canvas && canvas.clientHeight) {\n aspect = canvas.clientWidth / canvas.clientHeight;\n } else if (width > 0 && height > 0) {\n aspect = width / height;\n }\n\n return {width, height, aspect};\n }\n\n // Default viewport setup\n _resizeViewport() {\n if (this.autoResizeViewport) {\n this.gl.viewport(0, 0, this.gl.drawingBufferWidth, this.gl.drawingBufferHeight);\n }\n }\n\n // Resize the render buffer of the canvas to match canvas client size\n // Optionally multiplying with devicePixel ratio\n _resizeCanvasDrawingBuffer() {\n if (this.autoResizeDrawingBuffer) {\n resizeGLContext(this.gl, {useDevicePixels: this.useDevicePixels});\n }\n }\n\n // TBD - deprecated?\n _createFramebuffer() {\n // Setup default framebuffer\n if (this.props.createFramebuffer) {\n this.framebuffer = new Framebuffer(this.gl);\n }\n }\n\n _resizeFramebuffer() {\n if (this.framebuffer) {\n this.framebuffer.resize({\n width: this.gl.drawingBufferWidth,\n height: this.gl.drawingBufferHeight\n });\n }\n }\n\n _beginTimers() {\n this.frameRate.timeEnd();\n this.frameRate.timeStart();\n\n // Check if timer for last frame has completed.\n // GPU timer results are never available in the same\n // frame they are captured.\n if (\n this._gpuTimeQuery &&\n this._gpuTimeQuery.isResultAvailable() &&\n !this._gpuTimeQuery.isTimerDisjoint()\n ) {\n this.stats.get('GPU Time').addTime(this._gpuTimeQuery.getTimerMilliseconds());\n }\n\n if (this._gpuTimeQuery) {\n // GPU time query start\n this._gpuTimeQuery.beginTimeElapsedQuery();\n }\n\n this.cpuTime.timeStart();\n }\n\n _endTimers() {\n this.cpuTime.timeEnd();\n\n if (this._gpuTimeQuery) {\n // GPU time query end. Results will be available on next frame.\n this._gpuTimeQuery.end();\n }\n }\n\n // Event handling\n\n _startEventHandling() {\n const {canvas} = this.gl;\n if (canvas) {\n canvas.addEventListener('mousemove', this._onMousemove);\n canvas.addEventListener('mouseleave', this._onMouseleave);\n }\n }\n\n _onMousemove(e) {\n this.animationProps._mousePosition = [e.offsetX, e.offsetY];\n }\n _onMouseleave(e) {\n this.animationProps._mousePosition = null;\n }\n}\n"],"file":"animation-loop.js"}
|
|
@@ -1,110 +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.getBuffersFromGeometry = getBuffersFromGeometry;
|
|
9
|
-
exports.inferAttributeAccessor = inferAttributeAccessor;
|
|
10
|
-
|
|
11
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
-
|
|
13
|
-
var _webgl = require("@luma.gl/webgl");
|
|
14
|
-
|
|
15
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
16
|
-
|
|
17
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
18
|
-
|
|
19
|
-
var GLTF_TO_LUMA_ATTRIBUTE_MAP = {
|
|
20
|
-
POSITION: 'positions',
|
|
21
|
-
NORMAL: 'normals',
|
|
22
|
-
COLOR_0: 'colors',
|
|
23
|
-
TEXCOORD_0: 'texCoords',
|
|
24
|
-
TEXCOORD_1: 'texCoords1',
|
|
25
|
-
TEXCOORD_2: 'texCoords2'
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
function getBuffersFromGeometry(gl, geometry, options) {
|
|
29
|
-
var buffers = {};
|
|
30
|
-
var indices = geometry.indices;
|
|
31
|
-
|
|
32
|
-
for (var name in geometry.attributes) {
|
|
33
|
-
var attribute = geometry.attributes[name];
|
|
34
|
-
var remappedName = mapAttributeName(name, options);
|
|
35
|
-
|
|
36
|
-
if (name === 'indices') {
|
|
37
|
-
indices = attribute;
|
|
38
|
-
} else if (attribute.constant) {
|
|
39
|
-
buffers[remappedName] = attribute.value;
|
|
40
|
-
} else {
|
|
41
|
-
var typedArray = attribute.value;
|
|
42
|
-
|
|
43
|
-
var accessor = _objectSpread({}, attribute);
|
|
44
|
-
|
|
45
|
-
delete accessor.value;
|
|
46
|
-
buffers[remappedName] = [new _webgl.Buffer(gl, typedArray), accessor];
|
|
47
|
-
inferAttributeAccessor(name, accessor);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (indices) {
|
|
52
|
-
var data = indices.value || indices;
|
|
53
|
-
(0, _webgl.assert)(data instanceof Uint16Array || data instanceof Uint32Array, 'attribute array for "indices" must be of integer type');
|
|
54
|
-
var _accessor = {
|
|
55
|
-
size: 1,
|
|
56
|
-
isIndexed: indices.isIndexed === undefined ? true : indices.isIndexed
|
|
57
|
-
};
|
|
58
|
-
buffers.indices = [new _webgl.Buffer(gl, {
|
|
59
|
-
data: data,
|
|
60
|
-
target: 34963
|
|
61
|
-
}), _accessor];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return buffers;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function mapAttributeName(name, options) {
|
|
68
|
-
var _ref = options || {},
|
|
69
|
-
_ref$attributeMap = _ref.attributeMap,
|
|
70
|
-
attributeMap = _ref$attributeMap === void 0 ? GLTF_TO_LUMA_ATTRIBUTE_MAP : _ref$attributeMap;
|
|
71
|
-
|
|
72
|
-
return attributeMap && attributeMap[name] || name;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
function inferAttributeAccessor(attributeName, attribute) {
|
|
76
|
-
var category;
|
|
77
|
-
|
|
78
|
-
switch (attributeName) {
|
|
79
|
-
case 'texCoords':
|
|
80
|
-
case 'texCoord1':
|
|
81
|
-
case 'texCoord2':
|
|
82
|
-
case 'texCoord3':
|
|
83
|
-
category = 'uvs';
|
|
84
|
-
break;
|
|
85
|
-
|
|
86
|
-
case 'vertices':
|
|
87
|
-
case 'positions':
|
|
88
|
-
case 'normals':
|
|
89
|
-
case 'pickingColors':
|
|
90
|
-
category = 'vectors';
|
|
91
|
-
break;
|
|
92
|
-
|
|
93
|
-
default:
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
switch (category) {
|
|
97
|
-
case 'vectors':
|
|
98
|
-
attribute.size = attribute.size || 3;
|
|
99
|
-
break;
|
|
100
|
-
|
|
101
|
-
case 'uvs':
|
|
102
|
-
attribute.size = attribute.size || 2;
|
|
103
|
-
break;
|
|
104
|
-
|
|
105
|
-
default:
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
(0, _webgl.assert)(Number.isFinite(attribute.size), "attribute ".concat(attributeName, " needs size"));
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=model-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/model-utils.js"],"names":["GLTF_TO_LUMA_ATTRIBUTE_MAP","POSITION","NORMAL","COLOR_0","TEXCOORD_0","TEXCOORD_1","TEXCOORD_2","getBuffersFromGeometry","gl","geometry","options","buffers","indices","name","attributes","attribute","remappedName","mapAttributeName","constant","value","typedArray","accessor","Buffer","inferAttributeAccessor","data","Uint16Array","Uint32Array","size","isIndexed","undefined","target","attributeMap","attributeName","category","Number","isFinite"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {Buffer, assert} from '@luma.gl/webgl';\n\n// Support for mapping new geometries with glTF attribute names to \"classic\" luma.gl shader names\nconst GLTF_TO_LUMA_ATTRIBUTE_MAP = {\n POSITION: 'positions',\n NORMAL: 'normals',\n COLOR_0: 'colors',\n TEXCOORD_0: 'texCoords',\n TEXCOORD_1: 'texCoords1',\n TEXCOORD_2: 'texCoords2'\n};\n\nexport function getBuffersFromGeometry(gl, geometry, options) {\n const buffers = {};\n let indices = geometry.indices;\n\n for (const name in geometry.attributes) {\n const attribute = geometry.attributes[name];\n const remappedName = mapAttributeName(name, options);\n\n if (name === 'indices') {\n indices = attribute;\n } else if (attribute.constant) {\n buffers[remappedName] = attribute.value;\n } else {\n const typedArray = attribute.value;\n // Create accessor by copying the attribute and removing `value``\n const accessor = {...attribute};\n delete accessor.value;\n buffers[remappedName] = [new Buffer(gl, typedArray), accessor];\n\n inferAttributeAccessor(name, accessor);\n }\n }\n\n if (indices) {\n const data = indices.value || indices;\n assert(\n data instanceof Uint16Array || data instanceof Uint32Array,\n 'attribute array for \"indices\" must be of integer type'\n );\n const accessor = {\n size: 1,\n isIndexed: indices.isIndexed === undefined ? true : indices.isIndexed\n };\n buffers.indices = [\n new Buffer(gl, {\n data,\n target: GL.ELEMENT_ARRAY_BUFFER\n }),\n accessor\n ];\n }\n\n return buffers;\n}\n\nfunction mapAttributeName(name, options) {\n const {attributeMap = GLTF_TO_LUMA_ATTRIBUTE_MAP} = options || {};\n return (attributeMap && attributeMap[name]) || name;\n}\n\n// Check for well known attribute names\n// eslint-disable-next-line complexity\nexport function inferAttributeAccessor(attributeName, attribute) {\n let category;\n switch (attributeName) {\n case 'texCoords':\n case 'texCoord1':\n case 'texCoord2':\n case 'texCoord3':\n category = 'uvs';\n break;\n case 'vertices':\n case 'positions':\n case 'normals':\n case 'pickingColors':\n category = 'vectors';\n break;\n default:\n }\n\n // Check for categorys\n switch (category) {\n case 'vectors':\n attribute.size = attribute.size || 3;\n break;\n case 'uvs':\n attribute.size = attribute.size || 2;\n break;\n default:\n }\n\n assert(Number.isFinite(attribute.size), `attribute ${attributeName} needs size`);\n}\n"],"file":"model-utils.js"}
|
package/dist/es5/lib/model.d.ts
DELETED
|
@@ -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
|
-
*/
|