From ac116ab22ed949821cce243e882f22bfa3d18aa8 Mon Sep 17 00:00:00 2001 From: Ib Green Date: Sat, 12 Aug 2023 12:10:55 -0400 Subject: [PATCH] feat(engine): model cleanup (#1779) --- .../debug/README.md | 1 - docs/README.mdx | 20 +-- docs/developer-guide/debugging.md | 28 +++- docs/sidebar.json | 53 +++---- docs/tutorials/transform.mdx | 2 + docs/upgrade-guide/README.md | 16 +- .../api-v8/program-management/package.json | 10 +- .../api-v8/program-management/vite.config.ts | 1 - examples-wip/api-v8/stress-test/package.json | 10 +- examples-wip/notready/dof/package.json | 12 +- examples-wip/notready/dof/vite.config.ts | 1 - examples-wip/notready/geospatial/package.json | 8 +- .../notready/geospatial/vite.config.ts | 1 - examples-wip/notready/gltf/package.json | 12 +- examples-wip/notready/gltf/vite.config.ts | 1 - .../notready/instanced-transform/package.json | 10 +- .../instanced-transform/vite.config.ts | 1 - .../notready/transform-feedback/package.json | 8 +- .../transform-feedback/vite.config.ts | 1 - examples-wip/notready/wandering/package.json | 10 +- .../notready/wandering/vite.config.ts | 1 - .../webgl/external-webgl-context/package.json | 6 +- .../webgl/hello-instancing-webgl/package.json | 6 +- .../webgl/shader-modules-webgl/package.json | 8 +- examples/api/animation/package.json | 8 +- examples/api/animation/vite.config.ts | 1 - examples/api/cubemap/package.json | 10 +- examples/api/cubemap/vite.config.ts | 1 - examples/api/texture-3d/package.json | 6 +- examples/api/texture-3d/vite.config.ts | 1 - .../getting-started/hello-cube/package.json | 8 +- .../getting-started/hello-cube/vite.config.ts | 1 - .../hello-instancing/package.json | 6 +- .../hello-instancing/vite.config.ts | 1 - .../hello-triangle/package.json | 8 +- .../hello-triangle/vite.config.ts | 1 - .../getting-started/lighting/package.json | 10 +- .../getting-started/shader-hooks/package.json | 8 +- .../shader-hooks/vite.config.ts | 1 - .../shader-modules/package.json | 8 +- .../shader-modules/vite.config.ts | 1 - examples/showcase/instancing/adapters.ts | 4 - .../showcase/instancing/{app.tsx => app.ts} | 1 - examples/showcase/instancing/index.html | 12 +- examples/showcase/instancing/package.json | 10 +- examples/showcase/instancing/vite.config.ts | 1 - examples/showcase/persistence/app.ts | 2 +- examples/showcase/persistence/package.json | 10 +- examples/showcase/persistence/vite.config.ts | 1 - examples/webgpu/computeboids/package.json | 8 +- examples/webgpu/hello-triangle/package.json | 8 +- examples/webgpu/instanced-cubes/package.json | 8 +- examples/webgpu/rotating-cube/package.json | 8 +- examples/webgpu/textured-cube/package.json | 8 +- examples/webgpu/two-cubes/package.json | 6 +- {modules => modules-wip}/debug/README.md | 0 {modules => modules-wip}/debug/package.json | 2 +- {modules => modules-wip}/debug/src/bundle.ts | 0 {modules => modules-wip}/debug/src/index.ts | 8 - .../khronos-webgl-context-loss.ts | 0 .../webgl-api-tracing/khronos-webgl-error.ts | 0 .../webgl-api-tracing/webgl-debug-context.ts | 0 .../src/webgl-api-tracing/webgl-debug.js | 0 {modules => modules-wip}/debug/test/index.ts | 3 +- .../webgl-debug-context.spec.ts | 0 {modules => modules-wip}/debug/tsconfig.json | 0 modules-wip/experimental/package.json | 12 +- modules-wip/gltools/package.json | 8 +- modules-wip/webgl-legacy/package.json | 10 +- .../webgl-legacy/src/classic/vertex-array.ts | 3 +- .../src/glsl-to-js-compiler/compile-shader.ts | 0 .../src/glsl-to-js-compiler/debug-context.ts | 0 .../src/glsl-to-js-compiler/draw-model.ts | 0 .../glsl-to-js-compiler/normalize-uniforms.ts | 0 modules-wip/webgl-legacy/src/index.ts | 12 ++ .../compile-shader.spec.ts | 0 .../test/adapter/resources/buffer.spec.ts | 12 +- modules/api/src/adapter/resources/buffer.ts | 15 -- modules/engine/src/model/model.ts | 142 +++++++----------- modules/test-utils/package.json | 6 +- modules/test-utils/tsconfig.json | 1 - .../objects/webgl-vertex-array-object.ts | 4 +- .../src/adapter/resources/webgl-buffer.ts | 78 +++++----- .../resources/webgl-external-texture.ts | 2 +- .../resources/webgl-render-pipeline.ts | 37 ++++- modules/webgl/src/adapter/webgl-device.ts | 6 +- .../webgl/src/classic/buffer-with-accessor.ts | 85 ++++++----- modules/webgl/src/classic/copy-and-blit.ts | 5 +- .../context/debug/webgl-developer-tools.ts | 10 +- .../parameters/webgl-parameter-tables.ts | 4 +- .../adapter/resources/webgl-buffer.spec.ts | 8 +- nyc.config.js | 4 - test/modules.ts | 4 +- tsconfig.build.json | 3 - tsconfig.json | 6 - website/docusaurus.config.js | 6 +- website/package.json | 18 ++- .../src/react-luma/components/device-tabs.tsx | 6 +- .../react-luma/components/luma-example.tsx | 4 +- .../example-instanced-transform.jsx | 2 +- .../getting-started/example-transform.jsx | 2 +- yarn.lock | 85 +---------- 102 files changed, 443 insertions(+), 564 deletions(-) rename {docs/api-reference => docs-wip}/debug/README.md (99%) delete mode 100644 examples/showcase/instancing/adapters.ts rename examples/showcase/instancing/{app.tsx => app.ts} (99%) rename {modules => modules-wip}/debug/README.md (100%) rename {modules => modules-wip}/debug/package.json (96%) rename {modules => modules-wip}/debug/src/bundle.ts (100%) rename {modules => modules-wip}/debug/src/index.ts (67%) rename {modules => modules-wip}/debug/src/webgl-api-tracing/khronos-webgl-context-loss.ts (100%) rename {modules => modules-wip}/debug/src/webgl-api-tracing/khronos-webgl-error.ts (100%) rename {modules => modules-wip}/debug/src/webgl-api-tracing/webgl-debug-context.ts (100%) rename {modules => modules-wip}/debug/src/webgl-api-tracing/webgl-debug.js (100%) rename {modules => modules-wip}/debug/test/index.ts (51%) rename {modules => modules-wip}/debug/test/webgl-api-tracing/webgl-debug-context.spec.ts (100%) rename {modules => modules-wip}/debug/tsconfig.json (100%) rename {modules/debug => modules-wip/webgl-legacy}/src/glsl-to-js-compiler/compile-shader.ts (100%) rename {modules/debug => modules-wip/webgl-legacy}/src/glsl-to-js-compiler/debug-context.ts (100%) rename {modules/debug => modules-wip/webgl-legacy}/src/glsl-to-js-compiler/draw-model.ts (100%) rename {modules/debug => modules-wip/webgl-legacy}/src/glsl-to-js-compiler/normalize-uniforms.ts (100%) rename {modules/debug => modules-wip/webgl-legacy}/test/glsl-to-js-compiler/compile-shader.spec.ts (100%) diff --git a/docs/api-reference/debug/README.md b/docs-wip/debug/README.md similarity index 99% rename from docs/api-reference/debug/README.md rename to docs-wip/debug/README.md index abeb1e1532..b82f753eda 100644 --- a/docs/api-reference/debug/README.md +++ b/docs-wip/debug/README.md @@ -10,7 +10,6 @@ To use debug support, first import the debug tools, then call `createGLContext` ```typescript import {createGLContext} from '@luma.gl/gltools'; -import '@luma.gl/debug'; const gl = createGLContext(gl, {debug: true}); ``` diff --git a/docs/README.mdx b/docs/README.mdx index f5af634175..2dbb897132 100644 --- a/docs/README.mdx +++ b/docs/README.mdx @@ -1,4 +1,4 @@ -# Introduction +# Overview

@@ -48,21 +48,21 @@ luma.gl is a modern GPU toolkit for the Web, created to facilitate processing and visualization of big data on GPUs, that offers: -- A "closer-to-the-metal" API for working with GPUs in JavaScript. -- WebGPU, WebGL2 and WebGL backends. -- A GLSL shader system supporting modules, dependencies, injection, transpilation etc. -- A minimal set of higher-level classes such as `Model`, `Transform` and `AnimationLoop` and basic scenegraph support. +- A "close-to-the-metal" API for working with GPUs in TypeScript and JavaScript. +- Offers WebGPU, WebGL2 and WebGL backends. +- A minimal set of engine-level classes such as `Model`, `Transform` and `AnimationLoop` and basic scenegraph support. - glTF support. -- Shader modules for compute, visual effects and post processing. +- A shader management system supporting shader modules, dependencies, injection, transpilation etc. +- Pre-optimized shader modules for compute, visual effects and post processing. -Instead of including limited support for math and data loading, luma.gl integrates seamlessly with dedicated companion framworks such as: +Unlike some other GPU frameworks, luma.gl does not include support for prerequisites such math and data loading. Instead luma.gl integrates seamlessly with dedicated companion framworks such as: -- [loaders.gl](https://loaders.gl) - a long list of 3D and geospatial data format standards are supported out of the box. +- [loaders.gl](https://loaders.gl) - wide range of 3D and geospatial data format standards. - [math.gl](https://uber-web.github.io/math.gl/docs) - a variety of high precision geospatial and 3D math logic. -luma.gl is a small framework that can be used to build other GPU frameworks. The canonical example is +luma.gl is intended to be a foundation on top of which to build higher-level GPU frameworks. The primary example is -- [deck.gl](https://deck.gl) - an extensive geospatial GPU framework that even supports functional programming paradigms, built on top of luma.gl. +- [deck.gl](https://deck.gl) - geospatial GPU visualization and compute via a high-performance functional programming API. ## Philosophy diff --git a/docs/developer-guide/debugging.md b/docs/developer-guide/debugging.md index b7c16da7f4..3fc08855d7 100644 --- a/docs/developer-guide/debugging.md +++ b/docs/developer-guide/debugging.md @@ -64,14 +64,17 @@ Buffers will also have their first values checked to ensure that they are not Na ## Resource Leak Detection -See the chapter on Profiling for some tools that can help spot resource leaks. +See the chapter on Profiling for tools that can help spot resource leaks. -## Khronos WebGL developer tools integration (WebGL only) +## WebGL API tracing integration (WebGL only) -luma.gl is pre-integrated with the Khronos group's WebGL developer tools (the [WebGLDeveloperTools](https://github.com/KhronosGroup/WebGLDeveloperTools)) and luma.gl use these tools to "instrument" the `WebGLRenderingContext` which enabled: +luma.gl is pre-integrated with the Khronos group's WebGL developer tools (the [WebGLDeveloperTools](https://github.com/KhronosGroup/WebGLDeveloperTools)) which provide the following features: -- **Inline WebGL Error Detections** - Check the WebGL error status after each WebGL call and throws an exception if an error was detected, breaking the debugger at the correct place, and also extract helpful information about the error. -- **WebGL Parameters Checking** - Ensure that WebGL parameters are set to valid values. +- **WebGL API tracing** - Logs each call to the WebGL context with parameters. +- **Synchronous WebGL Error Detections** - Checks the WebGL error status after each WebGL call and throws an exception if an error was detected, breaking the debugger at the correct place, and also extract helpful information about the error. +- **WebGL Parameters Checking** - Checks that WebGL parameters are set to valid values. + +The most flexible way to enable WebGL API tracing is by typing the following command into the browser developer tools console: Note that the developer tools module is loaded dynamically when a device is created with the debug flag set, so the developer tools can be activated in production code by opening the browser console and typing: @@ -93,12 +96,23 @@ const device = luma.createDevice({type: 'webgl', debug: true}); luma.gl integrates with [Spector.js](https://spector.babylonjs.com/), a powerful debug tool created by the BabylonJS team. -To avoid performance impact, luma.gl doesn't load or start spector.js by default. +The most flexible way to enable Spector.js is by typing the following command into the browser developer tools console: + +``` +luma.log.set('spector', true); +``` -- Add the `spector: true` option when creating a device. +And then restarting the application (e.g. via Command-R on MacOS), + + +You can also enable spector when creating a device by adding the `spector: true` option. To display Spector.js stats when loaded. ``` luma.spector.displayUI() ``` + +:::info +Spector.js is dynamically loaded into your application, so there is no bundle size penalty. +::: \ No newline at end of file diff --git a/docs/sidebar.json b/docs/sidebar.json index 01ae4921a3..144b4166ec 100644 --- a/docs/sidebar.json +++ b/docs/sidebar.json @@ -1,17 +1,6 @@ [ "README", "whats-new", - "public-review", - { - "type": "category", - "label": "Upgrade Guide", - "items": [ - "upgrade-guide/README", - "upgrade-guide/api-philosophy", - "upgrade-guide/upgrade-v9", - "upgrade-guide/upgrade-v9-parameters" - ] - }, { "type": "category", "label": "Tutorials", @@ -30,18 +19,6 @@ "tutorials/whats-next" ] }, - { - "type": "category", - "label": "Developer Guide", - "items": [ - "developer-guide/installing", - "developer-guide/debugging", - "developer-guide/testing", - "developer-guide/profiling", - "developer-guide/bundling", - "developer-guide/contributing" - ] - }, { "type": "category", "label": "API Guide", @@ -54,6 +31,7 @@ "api-guide/background/webgpu-vs-webgl" ] }, + "public-review", "api-guide/README", "api-guide/device", "api-guide/resources", @@ -210,14 +188,29 @@ "items": [ "api-reference/webgpu/README" ] - }, - { - "type": "category", - "label": "@luma.gl/debug", - "items": [ - "api-reference/debug/README" - ] } ] + }, + { + "type": "category", + "label": "Developer Guide", + "items": [ + "developer-guide/installing", + "developer-guide/debugging", + "developer-guide/testing", + "developer-guide/profiling", + "developer-guide/bundling", + "developer-guide/contributing" + ] + }, + { + "type": "category", + "label": "Upgrade Guide", + "items": [ + "upgrade-guide/README", + "upgrade-guide/api-philosophy", + "upgrade-guide/upgrade-v9", + "upgrade-guide/upgrade-v9-parameters" + ] } ] diff --git a/docs/tutorials/transform.mdx b/docs/tutorials/transform.mdx index 5f2c013325..ecfa7c1551 100644 --- a/docs/tutorials/transform.mdx +++ b/docs/tutorials/transform.mdx @@ -1,4 +1,5 @@ import {DeviceTabs} from '@site/src/react-luma'; +import {TransformExample} from '@site'; # Transform @@ -9,6 +10,7 @@ TransformFeedback based examples are temporarily disabled until `Transform` clas ::: + In this tutorial, we'll learn how to use [transform feedback](https://www.khronos.org/opengl/wiki/Transform_Feedback) using luma.gl's high-level API. Transform feedback allows us to capture vertex shader results from one pass and use them in subsequent passes. It is a powerful tool that can be used to set up massively parrallelized animations or data transformations. Note that transform feedback can only be used with WebGL 2. diff --git a/docs/upgrade-guide/README.md b/docs/upgrade-guide/README.md index b7776e9e28..bf3015117a 100644 --- a/docs/upgrade-guide/README.md +++ b/docs/upgrade-guide/README.md @@ -1,14 +1,20 @@ # Upgrade Guide -This upgrade guide focuses on breaking changes in the APIs. +This upgrade guide calls out any breaking changes in the luma.gl API. It covers all releases, and includes information on how to update affected applications. -> Upgrade instructions assume that you are upgrading from the immediately previous release. -> If you are upgrading across multiple releases you will want to consider the release notes for all -> intermediary releases. +:::info +luma.gl largely follows [**semantic versioning**](https://semver.org) conventions: breaking changes are done in major versions only, minor version bumps bring new functionality but no breaking changes, and patch releases contain only low-risk fixes. However luma.gl is a big framework and there are cases where maintainers decide that it is reasonable to make a small breaking change in a minor releases for some infrequently used part of the API. +::: + +:::caution +Upgrade instructions assume that you are upgrading from the immediately previous release. +If you are upgrading across multiple releases you will want to consider the release notes for all +intermediary releases. +::: ## Upgrading to v9.0 -luma.gl v9 represents a major API changes and a substantial amount of documentation is provided: +luma.gl v9 represents a major, "once in a generation" API change and separate documentation is provided: - [v9 upgrade guide](./upgrade-to-v9). - [v9 GPU parameter upgrade guide](./upgrade-v9-parameters.md) - [v9 API philosophy](./api-philosophy). diff --git a/examples-wip/api-v8/program-management/package.json b/examples-wip/api-v8/program-management/package.json index b00c432c8e..3967bf4334 100644 --- a/examples-wip/api-v8/program-management/package.json +++ b/examples-wip/api-v8/program-management/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-program-management", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,10 +8,10 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/core": "9.0.0-alpha.21", - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", + "@luma.gl/core": "9.0.0-alpha.27", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples-wip/api-v8/program-management/vite.config.ts b/examples-wip/api-v8/program-management/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples-wip/api-v8/program-management/vite.config.ts +++ b/examples-wip/api-v8/program-management/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples-wip/api-v8/stress-test/package.json b/examples-wip/api-v8/stress-test/package.json index 750c6caa36..144d723ab1 100644 --- a/examples-wip/api-v8/stress-test/package.json +++ b/examples-wip/api-v8/stress-test/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-example-stress-test", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "description": "A stress test for luma.gl.", "contributors": [ @@ -12,10 +12,10 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/constants": "9.0.0-alpha.21", - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", + "@luma.gl/constants": "9.0.0-alpha.27", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4", "@probe.gl/stats-widget": "^4.0.0" }, diff --git a/examples-wip/notready/dof/package.json b/examples-wip/notready/dof/package.json index 93823691c2..9fcf7f751a 100644 --- a/examples-wip/notready/dof/package.json +++ b/examples-wip/notready/dof/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-dof", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "description": "An es6 Depth of Field example for luma.gl.", "contributors": [ @@ -12,11 +12,11 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/constants": "9.0.0-alpha.21", - "@luma.gl/core": "9.0.0-alpha.21", - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgl-legacy": "9.0.0-alpha.21", + "@luma.gl/constants": "9.0.0-alpha.27", + "@luma.gl/core": "9.0.0-alpha.27", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", + "@luma.gl/webgl-legacy": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples-wip/notready/dof/vite.config.ts b/examples-wip/notready/dof/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples-wip/notready/dof/vite.config.ts +++ b/examples-wip/notready/dof/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples-wip/notready/geospatial/package.json b/examples-wip/notready/geospatial/package.json index 4dafb674f4..3a847e7cba 100644 --- a/examples-wip/notready/geospatial/package.json +++ b/examples-wip/notready/geospatial/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-geospatial", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,9 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgl-legacy": "9.0.0-alpha.21", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", + "@luma.gl/webgl-legacy": "9.0.0-alpha.27", "mapbox-gl": "^1.2.1" }, "devDependencies": { diff --git a/examples-wip/notready/geospatial/vite.config.ts b/examples-wip/notready/geospatial/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples-wip/notready/geospatial/vite.config.ts +++ b/examples-wip/notready/geospatial/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples-wip/notready/gltf/package.json b/examples-wip/notready/gltf/package.json index 1f7b234f7b..3dbb55be98 100644 --- a/examples-wip/notready/gltf/package.json +++ b/examples-wip/notready/gltf/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-gltf", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "description": "glTF loader using luma.gl for rendering.", "contributors": [ @@ -15,11 +15,11 @@ "@loaders.gl/core": "^3.2.12", "@loaders.gl/gltf": "^3.2.12", "@loaders.gl/polyfills": "^3.2.12", - "@luma.gl/constants": "9.0.0-alpha.21", - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/experimental": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgl-legacy": "9.0.0-alpha.21", + "@luma.gl/constants": "9.0.0-alpha.27", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/experimental": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", + "@luma.gl/webgl-legacy": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples-wip/notready/gltf/vite.config.ts b/examples-wip/notready/gltf/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples-wip/notready/gltf/vite.config.ts +++ b/examples-wip/notready/gltf/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples-wip/notready/instanced-transform/package.json b/examples-wip/notready/instanced-transform/package.json index 086418b56e..9628332371 100644 --- a/examples-wip/notready/instanced-transform/package.json +++ b/examples-wip/notready/instanced-transform/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-instanced-transform", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,10 +8,10 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgl-legacy": "9.0.0-alpha.21", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", + "@luma.gl/webgl-legacy": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples-wip/notready/instanced-transform/vite.config.ts b/examples-wip/notready/instanced-transform/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples-wip/notready/instanced-transform/vite.config.ts +++ b/examples-wip/notready/instanced-transform/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples-wip/notready/transform-feedback/package.json b/examples-wip/notready/transform-feedback/package.json index a476d7212a..e979d0fd4d 100644 --- a/examples-wip/notready/transform-feedback/package.json +++ b/examples-wip/notready/transform-feedback/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-transform-feedback", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,9 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgl-legacy": "9.0.0-alpha.21" + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", + "@luma.gl/webgl-legacy": "9.0.0-alpha.27" }, "devDependencies": { "typescript": "^5.1.6", diff --git a/examples-wip/notready/transform-feedback/vite.config.ts b/examples-wip/notready/transform-feedback/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples-wip/notready/transform-feedback/vite.config.ts +++ b/examples-wip/notready/transform-feedback/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples-wip/notready/wandering/package.json b/examples-wip/notready/wandering/package.json index df9c93d045..0928db8969 100644 --- a/examples-wip/notready/wandering/package.json +++ b/examples-wip/notready/wandering/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-wandering", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,10 +8,10 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgl-legacy": "9.0.0-alpha.21", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", + "@luma.gl/webgl-legacy": "9.0.0-alpha.27", "@probe.gl/log": "^4.0.0" }, "devDependencies": { diff --git a/examples-wip/notready/wandering/vite.config.ts b/examples-wip/notready/wandering/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples-wip/notready/wandering/vite.config.ts +++ b/examples-wip/notready/wandering/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples-wip/webgl/external-webgl-context/package.json b/examples-wip/webgl/external-webgl-context/package.json index 213b6de449..902c9b0c2d 100644 --- a/examples-wip/webgl/external-webgl-context/package.json +++ b/examples-wip/webgl/external-webgl-context/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-external-content", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,8 +8,8 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21" + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27" }, "devDependencies": { "typescript": "^5.1.6", diff --git a/examples-wip/webgl/hello-instancing-webgl/package.json b/examples-wip/webgl/hello-instancing-webgl/package.json index c519ffc338..be17b07fbd 100644 --- a/examples-wip/webgl/hello-instancing-webgl/package.json +++ b/examples-wip/webgl/hello-instancing-webgl/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-hello-instancing-low", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,8 +8,8 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21" + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27" }, "devDependencies": { "typescript": "^5.1.6", diff --git a/examples-wip/webgl/shader-modules-webgl/package.json b/examples-wip/webgl/shader-modules-webgl/package.json index 06f1747034..b267228edd 100644 --- a/examples-wip/webgl/shader-modules-webgl/package.json +++ b/examples-wip/webgl/shader-modules-webgl/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-shader-modules-low", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,9 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21" + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27" }, "devDependencies": { "typescript": "^5.1.6", diff --git a/examples/api/animation/package.json b/examples/api/animation/package.json index 74b6107010..128d44e2a9 100644 --- a/examples/api/animation/package.json +++ b/examples/api/animation/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-animation", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,9 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples/api/animation/vite.config.ts b/examples/api/animation/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples/api/animation/vite.config.ts +++ b/examples/api/animation/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples/api/cubemap/package.json b/examples/api/cubemap/package.json index e7ee82d20d..0046842cdb 100644 --- a/examples/api/cubemap/package.json +++ b/examples/api/cubemap/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-cubemap", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,10 +8,10 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/api": "9.0.0-alpha.21", - "@luma.gl/constants": "9.0.0-alpha.21", - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", + "@luma.gl/api": "9.0.0-alpha.27", + "@luma.gl/constants": "9.0.0-alpha.27", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples/api/cubemap/vite.config.ts b/examples/api/cubemap/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples/api/cubemap/vite.config.ts +++ b/examples/api/cubemap/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples/api/texture-3d/package.json b/examples/api/texture-3d/package.json index 9ccde86225..484cbf8ed6 100644 --- a/examples/api/texture-3d/package.json +++ b/examples/api/texture-3d/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-texture-3d", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,8 +8,8 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples/api/texture-3d/vite.config.ts b/examples/api/texture-3d/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples/api/texture-3d/vite.config.ts +++ b/examples/api/texture-3d/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples/getting-started/hello-cube/package.json b/examples/getting-started/hello-cube/package.json index 39e4264cea..5993a3e899 100644 --- a/examples/getting-started/hello-cube/package.json +++ b/examples/getting-started/hello-cube/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-hello-cube", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,9 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples/getting-started/hello-cube/vite.config.ts b/examples/getting-started/hello-cube/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples/getting-started/hello-cube/vite.config.ts +++ b/examples/getting-started/hello-cube/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples/getting-started/hello-instancing/package.json b/examples/getting-started/hello-instancing/package.json index 91a14973df..815f082e5c 100644 --- a/examples/getting-started/hello-instancing/package.json +++ b/examples/getting-started/hello-instancing/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-hello-instancing-high", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,8 +8,8 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21" + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27" }, "devDependencies": { "typescript": "^5.1.6", diff --git a/examples/getting-started/hello-instancing/vite.config.ts b/examples/getting-started/hello-instancing/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples/getting-started/hello-instancing/vite.config.ts +++ b/examples/getting-started/hello-instancing/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples/getting-started/hello-triangle/package.json b/examples/getting-started/hello-triangle/package.json index 471afdd632..02cf33d08f 100644 --- a/examples/getting-started/hello-triangle/package.json +++ b/examples/getting-started/hello-triangle/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-hello-triangle", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,9 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgl-legacy": "9.0.0-alpha.21" + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", + "@luma.gl/webgl-legacy": "9.0.0-alpha.27" }, "devDependencies": { "typescript": "^5.1.6", diff --git a/examples/getting-started/hello-triangle/vite.config.ts b/examples/getting-started/hello-triangle/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples/getting-started/hello-triangle/vite.config.ts +++ b/examples/getting-started/hello-triangle/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples/getting-started/lighting/package.json b/examples/getting-started/lighting/package.json index 4724f54149..14b7c19a55 100644 --- a/examples/getting-started/lighting/package.json +++ b/examples/getting-started/lighting/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-lighting", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,10 +8,10 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgl-legacy": "9.0.0-alpha.21", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", + "@luma.gl/webgl-legacy": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples/getting-started/shader-hooks/package.json b/examples/getting-started/shader-hooks/package.json index 38e4549366..6ae5ff94ea 100644 --- a/examples/getting-started/shader-hooks/package.json +++ b/examples/getting-started/shader-hooks/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-shader-hooks", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,9 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/api": "9.0.0-alpha.21", - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21" + "@luma.gl/api": "9.0.0-alpha.27", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27" }, "devDependencies": { "typescript": "^5.1.6", diff --git a/examples/getting-started/shader-hooks/vite.config.ts b/examples/getting-started/shader-hooks/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples/getting-started/shader-hooks/vite.config.ts +++ b/examples/getting-started/shader-hooks/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples/getting-started/shader-modules/package.json b/examples/getting-started/shader-modules/package.json index 28348ffbd6..c4c91907d6 100644 --- a/examples/getting-started/shader-modules/package.json +++ b/examples/getting-started/shader-modules/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-shader-modules", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,9 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgl-legacy": "9.0.0-alpha.21" + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", + "@luma.gl/webgl-legacy": "9.0.0-alpha.27" }, "devDependencies": { "typescript": "^5.1.6", diff --git a/examples/getting-started/shader-modules/vite.config.ts b/examples/getting-started/shader-modules/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples/getting-started/shader-modules/vite.config.ts +++ b/examples/getting-started/shader-modules/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples/showcase/instancing/adapters.ts b/examples/showcase/instancing/adapters.ts deleted file mode 100644 index 532c6905dc..0000000000 --- a/examples/showcase/instancing/adapters.ts +++ /dev/null @@ -1,4 +0,0 @@ -import {luma} from '@luma.gl/api'; -import {WebGLDevice} from '@luma.gl/webgl'; -// import {WebGPUDevice} from '@luma.gl/webgpu'; -luma.registerDevices([WebGLDevice]); diff --git a/examples/showcase/instancing/app.tsx b/examples/showcase/instancing/app.ts similarity index 99% rename from examples/showcase/instancing/app.tsx rename to examples/showcase/instancing/app.ts index 0b1ad7a62b..61c42f595d 100644 --- a/examples/showcase/instancing/app.tsx +++ b/examples/showcase/instancing/app.ts @@ -180,7 +180,6 @@ export default class AppAnimationLoopTemplate extends AnimationLoopTemplate { } // Draw the cubes - // @ts-ignore const renderPass = device.beginRenderPass({clearColor: [0, 0, 0, 1], clearDepth: 1, clearStencil: 0}); this.cube.setUniforms({ uTime: this.timeline.getTime(timeChannel), diff --git a/examples/showcase/instancing/index.html b/examples/showcase/instancing/index.html index 1538d64275..7b3b587f94 100644 --- a/examples/showcase/instancing/index.html +++ b/examples/showcase/instancing/index.html @@ -1,10 +1,12 @@ diff --git a/examples/showcase/instancing/package.json b/examples/showcase/instancing/package.json index 1b6e468231..e06a247aae 100644 --- a/examples/showcase/instancing/package.json +++ b/examples/showcase/instancing/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-instancing", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,10 +8,10 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgl-legacy": "9.0.0-alpha.21", + "@luma.gl/api": "9.0.0-alpha.27", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples/showcase/instancing/vite.config.ts b/examples/showcase/instancing/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples/showcase/instancing/vite.config.ts +++ b/examples/showcase/instancing/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples/showcase/persistence/app.ts b/examples/showcase/persistence/app.ts index 95b4751a13..0390fe3e15 100644 --- a/examples/showcase/persistence/app.ts +++ b/examples/showcase/persistence/app.ts @@ -128,7 +128,7 @@ export default class AppAnimationLoopTemplate extends AnimationLoopTemplate { id: 'nucleon', vs: SPHERE_VS, fs: SPHERE_FS, - geometry: new SphereGeometry({nlat: 20, nlong: 30}), // To test that sphere generation is working properly. + geometry: new SphereGeometry({nlat: 20, nlong: 30}), parameters: { depthWriteEnabled: true, depthCompare: 'less-equal', diff --git a/examples/showcase/persistence/package.json b/examples/showcase/persistence/package.json index 73d2b96dcb..79e40090f8 100644 --- a/examples/showcase/persistence/package.json +++ b/examples/showcase/persistence/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-persistence", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,11 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/core": "9.0.0-alpha.21", - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/experimental": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgl-legacy": "9.0.0-alpha.21", + "@luma.gl/core": "9.0.0-alpha.27", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples/showcase/persistence/vite.config.ts b/examples/showcase/persistence/vite.config.ts index f4efed6ba0..40bc4b7683 100644 --- a/examples/showcase/persistence/vite.config.ts +++ b/examples/showcase/persistence/vite.config.ts @@ -4,7 +4,6 @@ const alias = { '@luma.gl/api': `${__dirname}/../../../modules/api/src`, '@luma.gl/constants': `${__dirname}/../../../modules/constants/src`, '@luma.gl/core': `${__dirname}/../../../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../../../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../../../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../../../modules/experimental/src`, '@luma.gl/webgl-legacy': `${__dirname}/../../../modules/webgl-legacy/src`, diff --git a/examples/webgpu/computeboids/package.json b/examples/webgpu/computeboids/package.json index ba056c5dbb..262c403a95 100644 --- a/examples/webgpu/computeboids/package.json +++ b/examples/webgpu/computeboids/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-webgpu-computeboids", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,9 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgpu": "9.0.0-alpha.21", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgpu": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples/webgpu/hello-triangle/package.json b/examples/webgpu/hello-triangle/package.json index 574584e82b..8a3e3477ae 100644 --- a/examples/webgpu/hello-triangle/package.json +++ b/examples/webgpu/hello-triangle/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-webgpu-hello-triangle", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,9 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgpu": "9.0.0-alpha.21", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgpu": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples/webgpu/instanced-cubes/package.json b/examples/webgpu/instanced-cubes/package.json index eb6610e049..df340e1863 100644 --- a/examples/webgpu/instanced-cubes/package.json +++ b/examples/webgpu/instanced-cubes/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-webgpu-instance-uniforms", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,9 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgpu": "9.0.0-alpha.21", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgpu": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples/webgpu/rotating-cube/package.json b/examples/webgpu/rotating-cube/package.json index 5329e487d3..0660a99c53 100644 --- a/examples/webgpu/rotating-cube/package.json +++ b/examples/webgpu/rotating-cube/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-webgpu-rotating-cube", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,9 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgpu": "9.0.0-alpha.21", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgpu": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples/webgpu/textured-cube/package.json b/examples/webgpu/textured-cube/package.json index e7cf0683d4..b4f30d48c1 100644 --- a/examples/webgpu/textured-cube/package.json +++ b/examples/webgpu/textured-cube/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-webgpu-textured-cube", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,9 +8,9 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgpu": "9.0.0-alpha.21", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgpu": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/examples/webgpu/two-cubes/package.json b/examples/webgpu/two-cubes/package.json index 46c1e496d1..6a72d16698 100644 --- a/examples/webgpu/two-cubes/package.json +++ b/examples/webgpu/two-cubes/package.json @@ -1,6 +1,6 @@ { "name": "luma.gl-examples-webgpu-two-cubes", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "private": true, "scripts": { "start": "vite", @@ -8,8 +8,8 @@ "serve": "vite preview" }, "dependencies": { - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgpu": "9.0.0-alpha.21", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgpu": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4" }, "devDependencies": { diff --git a/modules/debug/README.md b/modules-wip/debug/README.md similarity index 100% rename from modules/debug/README.md rename to modules-wip/debug/README.md diff --git a/modules/debug/package.json b/modules-wip/debug/package.json similarity index 96% rename from modules/debug/package.json rename to modules-wip/debug/package.json index 4c85717b0e..39842b8501 100644 --- a/modules/debug/package.json +++ b/modules-wip/debug/package.json @@ -45,7 +45,7 @@ "glsl-transpiler": "^1.8.5" }, "peerDependencies": { - "@luma.gl/core": "9.0.0-alpha.21" + "@luma.gl/core": "9.0.0-alpha.27" }, "gitHead": "c636c34b8f1581eed163e94543a8eb1f4382ba8e" } diff --git a/modules/debug/src/bundle.ts b/modules-wip/debug/src/bundle.ts similarity index 100% rename from modules/debug/src/bundle.ts rename to modules-wip/debug/src/bundle.ts diff --git a/modules/debug/src/index.ts b/modules-wip/debug/src/index.ts similarity index 67% rename from modules/debug/src/index.ts rename to modules-wip/debug/src/index.ts index 1ec48fa03f..24de7696ea 100644 --- a/modules/debug/src/index.ts +++ b/modules-wip/debug/src/index.ts @@ -1,13 +1,5 @@ import {log} from '@luma.gl/api'; -export {COLOR_MODE} from './glsl-to-js-compiler/draw-model'; -export {_DebugContext} from './glsl-to-js-compiler/debug-context'; -export { - compileShaderModule, - compileVertexShader, - compileFragmentShader -} from './glsl-to-js-compiler/compile-shader'; - export {makeDebugContext} from './webgl-api-tracing/webgl-debug-context'; // Register the Khronos WebGLDebugger module that lets us instrument WebGLContexts diff --git a/modules/debug/src/webgl-api-tracing/khronos-webgl-context-loss.ts b/modules-wip/debug/src/webgl-api-tracing/khronos-webgl-context-loss.ts similarity index 100% rename from modules/debug/src/webgl-api-tracing/khronos-webgl-context-loss.ts rename to modules-wip/debug/src/webgl-api-tracing/khronos-webgl-context-loss.ts diff --git a/modules/debug/src/webgl-api-tracing/khronos-webgl-error.ts b/modules-wip/debug/src/webgl-api-tracing/khronos-webgl-error.ts similarity index 100% rename from modules/debug/src/webgl-api-tracing/khronos-webgl-error.ts rename to modules-wip/debug/src/webgl-api-tracing/khronos-webgl-error.ts diff --git a/modules/debug/src/webgl-api-tracing/webgl-debug-context.ts b/modules-wip/debug/src/webgl-api-tracing/webgl-debug-context.ts similarity index 100% rename from modules/debug/src/webgl-api-tracing/webgl-debug-context.ts rename to modules-wip/debug/src/webgl-api-tracing/webgl-debug-context.ts diff --git a/modules/debug/src/webgl-api-tracing/webgl-debug.js b/modules-wip/debug/src/webgl-api-tracing/webgl-debug.js similarity index 100% rename from modules/debug/src/webgl-api-tracing/webgl-debug.js rename to modules-wip/debug/src/webgl-api-tracing/webgl-debug.js diff --git a/modules/debug/test/index.ts b/modules-wip/debug/test/index.ts similarity index 51% rename from modules/debug/test/index.ts rename to modules-wip/debug/test/index.ts index 6757cda552..b71c3d6172 100644 --- a/modules/debug/test/index.ts +++ b/modules-wip/debug/test/index.ts @@ -1,2 +1,3 @@ -import './glsl-to-js-compiler/compile-shader.spec'; +// luma.gl, MIT license + import './webgl-api-tracing/webgl-debug-context.spec'; diff --git a/modules/debug/test/webgl-api-tracing/webgl-debug-context.spec.ts b/modules-wip/debug/test/webgl-api-tracing/webgl-debug-context.spec.ts similarity index 100% rename from modules/debug/test/webgl-api-tracing/webgl-debug-context.spec.ts rename to modules-wip/debug/test/webgl-api-tracing/webgl-debug-context.spec.ts diff --git a/modules/debug/tsconfig.json b/modules-wip/debug/tsconfig.json similarity index 100% rename from modules/debug/tsconfig.json rename to modules-wip/debug/tsconfig.json diff --git a/modules-wip/experimental/package.json b/modules-wip/experimental/package.json index 6a37b44cc4..ac175aedb3 100644 --- a/modules-wip/experimental/package.json +++ b/modules-wip/experimental/package.json @@ -1,6 +1,6 @@ { "name": "@luma.gl/experimental", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "description": "Experimental classes for luma.gl", "type": "module", "license": "MIT", @@ -39,15 +39,15 @@ "pre-build": "npm run build-bundle && npm run build-bundle -- --env=dev" }, "dependencies": { - "@luma.gl/api": "9.0.0-alpha.21", - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgl-legacy": "9.0.0-alpha.21", + "@luma.gl/api": "9.0.0-alpha.27", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", + "@luma.gl/webgl-legacy": "9.0.0-alpha.27", "@math.gl/core": "4.0.0-alpha.4", "earcut": "^2.0.6" }, "devDependencies": { - "@luma.gl/test-utils": "9.0.0-alpha.21" + "@luma.gl/test-utils": "9.0.0-alpha.27" }, "peerDependencies": { "@loaders.gl/gltf": "^3.2.12", diff --git a/modules-wip/gltools/package.json b/modules-wip/gltools/package.json index 33577fde0d..645fedfb98 100644 --- a/modules-wip/gltools/package.json +++ b/modules-wip/gltools/package.json @@ -1,6 +1,6 @@ { "name": "@luma.gl/gltools", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "description": "WebGL2 API Polyfills for WebGL1 WebGLRenderingContext", "type": "module", "license": "MIT", @@ -38,9 +38,9 @@ }, "dependencies": { "@babel/runtime": "^7.0.0", - "@luma.gl/constants": "9.0.0-alpha.21", - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", + "@luma.gl/constants": "9.0.0-alpha.27", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", "@probe.gl/log": "^4.0.2" }, "gitHead": "c636c34b8f1581eed163e94543a8eb1f4382ba8e" diff --git a/modules-wip/webgl-legacy/package.json b/modules-wip/webgl-legacy/package.json index e224d8903d..c64c133caf 100644 --- a/modules-wip/webgl-legacy/package.json +++ b/modules-wip/webgl-legacy/package.json @@ -1,6 +1,6 @@ { "name": "@luma.gl/webgl-legacy", - "version": "9.0.0-alpha.21", + "version": "9.0.0-alpha.27", "description": "The legacy luma.gl v8 API", "type": "module", "license": "MIT", @@ -38,10 +38,10 @@ }, "dependencies": { "@babel/runtime": "^7.0.0", - "@luma.gl/constants": "9.0.0-alpha.21", - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/shadertools": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", + "@luma.gl/constants": "9.0.0-alpha.27", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/shadertools": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", "@probe.gl/log": "^4.0.2" }, "gitHead": "c636c34b8f1581eed163e94543a8eb1f4382ba8e" diff --git a/modules-wip/webgl-legacy/src/classic/vertex-array.ts b/modules-wip/webgl-legacy/src/classic/vertex-array.ts index a3a972ae18..1bde65bb3a 100644 --- a/modules-wip/webgl-legacy/src/classic/vertex-array.ts +++ b/modules-wip/webgl-legacy/src/classic/vertex-array.ts @@ -445,8 +445,7 @@ export default class VertexArray { // index type is saved for drawElement calls drawParams.elementCount = this.elements.getElementCount(this.elements.accessor); drawParams.isIndexed = true; - // @ts-expect-error TODO looks like a valid type mismatch - drawParams.indexType = this.elementsAccessor.type || this.elements.accessor.type; + drawParams.indexType = this.elements.glIndexType; drawParams.indexOffset = this.elementsAccessor.offset || 0; } diff --git a/modules/debug/src/glsl-to-js-compiler/compile-shader.ts b/modules-wip/webgl-legacy/src/glsl-to-js-compiler/compile-shader.ts similarity index 100% rename from modules/debug/src/glsl-to-js-compiler/compile-shader.ts rename to modules-wip/webgl-legacy/src/glsl-to-js-compiler/compile-shader.ts diff --git a/modules/debug/src/glsl-to-js-compiler/debug-context.ts b/modules-wip/webgl-legacy/src/glsl-to-js-compiler/debug-context.ts similarity index 100% rename from modules/debug/src/glsl-to-js-compiler/debug-context.ts rename to modules-wip/webgl-legacy/src/glsl-to-js-compiler/debug-context.ts diff --git a/modules/debug/src/glsl-to-js-compiler/draw-model.ts b/modules-wip/webgl-legacy/src/glsl-to-js-compiler/draw-model.ts similarity index 100% rename from modules/debug/src/glsl-to-js-compiler/draw-model.ts rename to modules-wip/webgl-legacy/src/glsl-to-js-compiler/draw-model.ts diff --git a/modules/debug/src/glsl-to-js-compiler/normalize-uniforms.ts b/modules-wip/webgl-legacy/src/glsl-to-js-compiler/normalize-uniforms.ts similarity index 100% rename from modules/debug/src/glsl-to-js-compiler/normalize-uniforms.ts rename to modules-wip/webgl-legacy/src/glsl-to-js-compiler/normalize-uniforms.ts diff --git a/modules-wip/webgl-legacy/src/index.ts b/modules-wip/webgl-legacy/src/index.ts index f0f740e487..3d2310d547 100644 --- a/modules-wip/webgl-legacy/src/index.ts +++ b/modules-wip/webgl-legacy/src/index.ts @@ -132,3 +132,15 @@ export {default as ProgramManager} from './engine/program-manager'; export {default as Transform} from './transform/transform'; export {default as ClipSpace} from './engine/classic-clip-space'; + +// GLSL debugger + +export {COLOR_MODE} from './glsl-to-js-compiler/draw-model'; +export {_DebugContext} from './glsl-to-js-compiler/debug-context'; +export { + compileShaderModule, + compileVertexShader, + compileFragmentShader +} from './glsl-to-js-compiler/compile-shader'; + +import './glsl-to-js-compiler/compile-shader.spec'; diff --git a/modules/debug/test/glsl-to-js-compiler/compile-shader.spec.ts b/modules-wip/webgl-legacy/test/glsl-to-js-compiler/compile-shader.spec.ts similarity index 100% rename from modules/debug/test/glsl-to-js-compiler/compile-shader.spec.ts rename to modules-wip/webgl-legacy/test/glsl-to-js-compiler/compile-shader.spec.ts diff --git a/modules/api-tests/test/adapter/resources/buffer.spec.ts b/modules/api-tests/test/adapter/resources/buffer.spec.ts index e7d02d5851..28b92260a1 100644 --- a/modules/api-tests/test/adapter/resources/buffer.spec.ts +++ b/modules/api-tests/test/adapter/resources/buffer.spec.ts @@ -81,9 +81,9 @@ test('Buffer#constructor offset and size', t => { test('Buffer#bind/unbind', t => { for (const device of getWebGLTestDevices()) { const buffer = device.createBuffer({usage: Buffer.VERTEX}); - device.gl.bindBuffer(buffer.target, buffer.handle); + device.gl.bindBuffer(buffer.glTarget, buffer.handle); t.ok(buffer instanceof Buffer, `${device.info.type} Buffer bind/unbind successful`); - device.gl.bindBuffer(buffer.target, null); + device.gl.bindBuffer(buffer.glTarget, null); buffer.destroy(); } t.end(); @@ -98,9 +98,9 @@ test('Buffer#bind/unbind with index', t => { } const buffer = device.createBuffer({usage: Buffer.UNIFORM}); - device.gl2.bindBufferBase(buffer.target, 0, buffer.handle); + device.gl2.bindBufferBase(buffer.glTarget, 0, buffer.handle); t.ok(buffer instanceof Buffer, `${device.info.type} Buffer bind/unbind with index successful`); - device.gl2.bindBufferBase(buffer.target, 0, null); + device.gl2.bindBufferBase(buffer.glTarget, 0, null); buffer.destroy(); } @@ -113,13 +113,13 @@ test('Buffer#construction', t => { let buffer: WEBGLBuffer; buffer = device.createBuffer({usage: Buffer.VERTEX, data: new Float32Array([1, 2, 3])}); - t.ok(buffer.target === GL.ARRAY_BUFFER, `${device.info.type} Buffer(ARRAY_BUFFER) successful`); + t.ok(buffer.glTarget === GL.ARRAY_BUFFER, `${device.info.type} Buffer(ARRAY_BUFFER) successful`); buffer.destroy(); // TODO - buffer could check for integer ELEMENT_ARRAY_BUFFER types buffer = device.createBuffer({usage: Buffer.INDEX, data: new Float32Array([1, 2, 3])}); t.ok( - buffer.target === GL.ELEMENT_ARRAY_BUFFER, + buffer.glTarget === GL.ELEMENT_ARRAY_BUFFER, `${device.info.type} Buffer(ELEMENT_ARRAY_BUFFER) successful` ); diff --git a/modules/api/src/adapter/resources/buffer.ts b/modules/api/src/adapter/resources/buffer.ts index 7e432fee6e..b7a81ea734 100644 --- a/modules/api/src/adapter/resources/buffer.ts +++ b/modules/api/src/adapter/resources/buffer.ts @@ -19,21 +19,6 @@ export type BufferProps = ResourceProps & { // TBD mappedAtCreation?: boolean; - - /** @deprecated * - accessor?: any; // AccessorObject; - - /** @deprecated Use BufferProps.usage = VERTEX | INDEX | UNIFORM * - target?: number; - /** @deprecated Bind separately * - index?: number; - /** @deprecated * - offset?: number; - /** @deprecated * - size?: number; - /** @deprecated * - type?: number; - */ } const DEFAULT_BUFFER_PROPS: Required = { diff --git a/modules/engine/src/model/model.ts b/modules/engine/src/model/model.ts index b9e896fbe7..d316f009f1 100644 --- a/modules/engine/src/model/model.ts +++ b/modules/engine/src/model/model.ts @@ -6,7 +6,8 @@ import { RenderPipelineProps, RenderPass, Binding, - PrimitiveTopology + PrimitiveTopology, + log } from '@luma.gl/api'; import {RenderPipeline} from '@luma.gl/api'; import type {ShaderModule} from '@luma.gl/shadertools'; @@ -15,6 +16,9 @@ import {getAttributeBuffersFromGeometry, getIndexBufferFromGeometry} from './mod import {PipelineFactory} from '../lib/pipeline-factory'; import {TypedArray} from '@math.gl/core'; +/** @todo import type */ +type UniformValue = unknown; + export type ModelProps = Omit & { // Model also accepts a string vs?: {glsl?: string; wgsl?: string} | string | null; @@ -48,23 +52,34 @@ export class Model { readonly vs: string; readonly fs: string | null = null; readonly topology: PrimitiveTopology; - readonly vertexCount; - userData: {[key: string]: any} = {}; - readonly pipelineFactory: PipelineFactory; + /** The underlying GPU "program". @note May be recreated if parameters change */ pipeline: RenderPipeline; + userData: {[key: string]: any} = {}; - props: Required; + // readonly props: Required; + + /** Vertex count */ + vertexCount: number; + /** instance count */ + instanceCount: number = 0; + /** Buffer-valued attributes */ + bufferAttributes: Record = {}; + /** Constant-valued attributes */ + constantAttributes: Record = {}; + /** Bindings (textures, samplers, uniform buffers) */ + bindings: Record = {}; + /** Uniforms */ + uniforms: Record = {}; private _getModuleUniforms: (props?: Record>) => Record; constructor(device: Device, props: ModelProps) { - this.props = {...DEFAULT_MODEL_PROPS, ...props}; - props = this.props; - this.id = this.props.id; + props = {...DEFAULT_MODEL_PROPS, ...props}; + this.id = props.id; this.device = device; - Object.assign(this.userData, this.props.userData); + Object.assign(this.userData, props.userData); // Create the pipeline if (!props.vs) { @@ -75,18 +90,19 @@ export class Model { this.fs = getShaderSource(this.device, props.fs); } - this.vertexCount = this.props.vertexCount; - this.topology = this.props.topology; + this.vertexCount = props.vertexCount; + this.instanceCount = props.instanceCount; + this.topology = props.topology; - if (this.props.geometry) { - this.vertexCount = this.props.geometry.vertexCount; - this.topology = this.props.geometry.topology || 'triangle-list'; + if (props.geometry) { + this.vertexCount = props.geometry.vertexCount; + this.topology = props.geometry.topology || 'triangle-list'; } this.pipelineFactory = - this.props.pipelineFactory || PipelineFactory.getDefaultPipelineFactory(this.device); + props.pipelineFactory || PipelineFactory.getDefaultPipelineFactory(this.device); const {pipeline, getUniforms} = this.pipelineFactory.createRenderPipeline({ - ...this.props, + ...props, vs: this.vs, fs: this.fs, topology: this.topology, @@ -98,27 +114,26 @@ export class Model { this.pipeline = pipeline; this._getModuleUniforms = getUniforms; - if (this.props.geometry) { - this._setGeometry(this.props.geometry); + if (props.geometry) { + this._setGeometry(props.geometry); } this.setUniforms(this._getModuleUniforms()); // Get all default module uniforms - this.setProps(this.props); + this.setProps(props); } destroy(): void { this.pipelineFactory.release(this.pipeline); } - draw(renderPass: RenderPass): this { + draw(renderPass: RenderPass): void { this.pipeline.draw({ renderPass, vertexCount: this.vertexCount, - instanceCount: this.props.instanceCount + instanceCount: this.instanceCount }); - return this; } - setProps(props: ModelProps): this { + setProps(props: ModelProps): void { if (props.indices) { this.setIndexBuffer(props.indices); } @@ -134,95 +149,42 @@ export class Model { if (props.moduleSettings) { this.updateModuleSettings(props.moduleSettings); } - return this; } - updateModuleSettings(props: Record): this { + updateModuleSettings(props: Record): void { const uniforms = this._getModuleUniforms(props); this.setUniforms(uniforms); - return this; } - setIndexBuffer(indices: Buffer): this { + setIndexBuffer(indices: Buffer): void { this.pipeline.setIndexBuffer(indices); // this._indices = indices; - return this; } - // Temporary hack to support deck.gl's dependency on luma.gl v8 Model attribute API. - _splitAttributes( - attributes: Record, - filterBuffers?: boolean - ): { - bufferAttributes: Record; - constantAttributes: Record; - indices?: Buffer; - } { - const bufferAttributes: Record = {}; - const constantAttributes: Record = {}; - const indices: Buffer | undefined = attributes.indices as Buffer; - - delete attributes.indices; - - for (const name in attributes) { - let attribute = attributes[name]; - - if (attribute instanceof Buffer) { - bufferAttributes[name] = attribute; - continue; - } - - // The `getValue` call provides support for deck.gl `Attribute` class - // TODO - remove once deck refactoring completes - // @ts-ignore - if (attribute.getValue) { - // @ts-ignore - attribute = attribute.getValue(); - console.warn(`attribute ${name}: getValue() will be removed`); - } - - if (ArrayBuffer.isView(attribute) && !attribute) { - constantAttributes[name] = attribute as unknown as TypedArray; - continue; - } - - // @ts-ignore - if (filterBuffers && attribute[name]._buffer) { - // @ts-ignore - buffer[name] = attribute[name]._buffer; - } + setAttributes(bufferAttributes: Record): void { + if (bufferAttributes.indices) { + log.warn(`Model:${this.id} setAttributes() - indices should be set using setIndexBuffer()`); } - return {bufferAttributes, constantAttributes, indices}; + this.pipeline.setAttributes(bufferAttributes); + Object.assign(this.bufferAttributes, bufferAttributes); } - setAttributes(attributes: Record, filterBuffers?: boolean): void { - const {bufferAttributes, constantAttributes, indices} = this._splitAttributes(attributes, filterBuffers); - - // Temporary HACK since deck.gl v9 sets indices as part of attributes - if (indices) { - this.setIndexBuffer(indices); - console.warn('luma.gl: indices should not be part of attributes'); - } - - this.pipeline.setAttributes(bufferAttributes); - // TODO - WebGL only. We may have to allocate buffers on WebGPU + setConstantAttributes(constantAttributes: Record): void { + // TODO - this doesn't work under WebGPU, we'll need to create buffers or inject uniforms this.pipeline.setConstantAttributes(constantAttributes); - - Object.assign(this.props.attributes, bufferAttributes, constantAttributes); + Object.assign(this.constantAttributes, constantAttributes); } /** Set the bindings */ - setBindings(bindings: Record): this { + setBindings(bindings: Record): void { this.pipeline.setBindings(bindings); - Object.assign(this.props.bindings, bindings); - return this; + Object.assign(this.bindings, bindings); } - setUniforms(uniforms: Record): this { + setUniforms(uniforms: Record): void { this.pipeline.setUniforms(uniforms); - Object.assign(this.props.uniforms, uniforms); - return this; + Object.assign(this.uniforms, uniforms); } _setGeometry(geometry: Geometry): void { diff --git a/modules/test-utils/package.json b/modules/test-utils/package.json index e86712b9c8..f33c557778 100644 --- a/modules/test-utils/package.json +++ b/modules/test-utils/package.json @@ -48,9 +48,9 @@ "gl": "^6.0.1" }, "peerDependencies": { - "@luma.gl/api": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgpu": "9.0.0-alpha.21", + "@luma.gl/api": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", + "@luma.gl/webgpu": "9.0.0-alpha.27", "@probe.gl/test-utils": "^4.0.2" }, "engines_comment": [ diff --git a/modules/test-utils/tsconfig.json b/modules/test-utils/tsconfig.json index 454fa4fed0..03d69cc1fb 100644 --- a/modules/test-utils/tsconfig.json +++ b/modules/test-utils/tsconfig.json @@ -10,7 +10,6 @@ }, "references": [ {"path": "../api"}, - {"path": "../debug"}, {"path": "../webgl"}, {"path": "../webgpu"} ] diff --git a/modules/webgl/src/adapter/objects/webgl-vertex-array-object.ts b/modules/webgl/src/adapter/objects/webgl-vertex-array-object.ts index 330f80e664..1751c26698 100644 --- a/modules/webgl/src/adapter/objects/webgl-vertex-array-object.ts +++ b/modules/webgl/src/adapter/objects/webgl-vertex-array-object.ts @@ -84,7 +84,7 @@ export class WEBGLVertexArrayObject extends WebGLResource { @@ -95,7 +95,7 @@ export class WEBGLVertexArrayObject extends WebGLResource = {}; bindings: Record = {}; + constantAttributes: Record = {}; + _textureUniforms: Record = {}; _textureIndexCounter: number = 0; _uniformCount: number = 0; @@ -85,7 +87,7 @@ export class WEBGLRenderPipeline extends RenderPipeline { setIndexBuffer(indexBuffer: Buffer): void { const webglBuffer = cast(indexBuffer); this.vertexArrayObject.setElementBuffer(webglBuffer); - this._indexBuffer = indexBuffer; + this._indexBuffer = webglBuffer; } /** @todo needed for portable model */ @@ -128,6 +130,7 @@ export class WEBGLRenderPipeline extends RenderPipeline { } this.vertexArrayObject.setConstant(attribute.location, value); } + Object.assign(this.constantAttributes, attributes); } /** @@ -203,7 +206,7 @@ export class WEBGLRenderPipeline extends RenderPipeline { const drawMode = getDrawMode(this.props.topology); const isIndexed: boolean = Boolean(this._indexBuffer); - const indexType = this._indexBuffer?.props.indexType === 'uint16' ? GL.UNSIGNED_SHORT : GL.UNSIGNED_INT; + const indexType = this._indexBuffer?.glIndexType; const isInstanced: boolean = Number(options.instanceCount) > 0; // Avoid WebGL draw call when not rendering any data or values are incomplete @@ -227,6 +230,7 @@ export class WEBGLRenderPipeline extends RenderPipeline { // We have to apply bindings before every draw call since other draw calls will overwrite this._applyBindings(); this._applyUniforms(); + this._applyConstantAttributes(); const webglRenderPass = renderPass as WEBGLRenderPass; @@ -386,9 +390,25 @@ export class WEBGLRenderPipeline extends RenderPipeline { } } } + + /** + * Constant attributes are only supported in WebGL, not in WebGPU + * Any attribute that is disabled in the current vertex array object + * is read from the context's global constant value for that attribute location. + */ + _applyConstantAttributes(): void { + for (const [name, value] of Object.entries(this.constantAttributes)) { + const attribute = getAttributeLayout(this.layout, name); + if (!attribute) { + log.warn(`Ignoring constant value supplied for unknown attribute "${name}" in pipeline "${this.id}"`)(); + continue; // eslint-disable-line no-continue + } + this.vertexArrayObject.setConstant(attribute.location, value); + } + } } -/** Get the primitive type for transform feedback */ +/** Get the primitive type for draw */ function getDrawMode( topology: PrimitiveTopology ): GL.POINTS | GL.LINES | GL.LINE_STRIP | GL.LINE_LOOP | GL.TRIANGLES | GL.TRIANGLE_STRIP | GL.TRIANGLE_FAN { @@ -420,6 +440,11 @@ function getGLPrimitive(topology: PrimitiveTopology): GL.POINTS | GL.LINES | GL. } } +function getAttributeLayout(layout: ShaderLayout, name: string): AttributeLayout | null { + return layout.attributes.find((binding) => binding.name === name) || null; +} + + // function getAttributesByLocation( // attributes: Record, // layout: ShaderLayout @@ -434,10 +459,6 @@ function getGLPrimitive(topology: PrimitiveTopology): GL.POINTS | GL.LINES | GL. // return byLocation; // } -function getAttributeLayout(layout: ShaderLayout, name: string): AttributeLayout | null { - return layout.attributes.find((binding) => binding.name === name) || null; -} - /* TODO function getBindingLayout(layout: ShaderLayout, name: string): BindingLayout { const binding = layout.bindings.find((binding) => binding.name === name); diff --git a/modules/webgl/src/adapter/webgl-device.ts b/modules/webgl/src/adapter/webgl-device.ts index 5b3cc39b73..2c9693dcb0 100644 --- a/modules/webgl/src/adapter/webgl-device.ts +++ b/modules/webgl/src/adapter/webgl-device.ts @@ -130,11 +130,13 @@ export class WebGLDevice extends Device { } // Load webgl and spector debug scripts from CDN if requested - if (props.debug) { + if (log.get('debug') || props.debug) { await loadWebGLDeveloperTools(); } + // @ts-expect-error spector not on props - if (props.spector) { + const {spector} = props; + if (log.get('spector') || spector) { await loadSpectorJS(); } diff --git a/modules/webgl/src/classic/buffer-with-accessor.ts b/modules/webgl/src/classic/buffer-with-accessor.ts index 6f4c4a3ffd..5ba9676886 100644 --- a/modules/webgl/src/classic/buffer-with-accessor.ts +++ b/modules/webgl/src/classic/buffer-with-accessor.ts @@ -55,9 +55,9 @@ function getWEBGLBufferProps(props: BufferWithAccessorProps | ArrayBufferView | props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE); const bufferProps = {...props }; - if (bufferProps.offset) { - bufferProps.byteOffset = bufferProps.offset; - } + // if (bufferProps.offset) { + // bufferProps.byteOffset = bufferProps.offset; + // } return bufferProps; } @@ -65,19 +65,18 @@ function getWEBGLBufferProps(props: BufferWithAccessorProps | ArrayBufferView | export type BufferWithAccessorProps = BufferProps & { handle?: WebGLBuffer; - target?: number; - webglUsage?: number; - accessor?: AccessorObject; - /** @deprecated */ - index?: number; - /** @deprecated */ - offset?: number; - /** @deprecated */ - size?: number; - /** @deprecated */ - type?: number + // target?: number; + // glUsage?: number; + // /** @deprecated */ + // index?: number; + // /** @deprecated */ + // offset?: number; + // /** @deprecated */ + // size?: number; + // /** @deprecated */ + // type?: number } /** WebGL Buffer interface */ @@ -141,7 +140,8 @@ export class BufferWithAccessor extends WEBGLBuffer { props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE); // Initialize member fields - this.webglUsage = props.webglUsage || GL.STATIC_DRAW; + // @ts-expect-error readonly field + this.glUsage = props.glUsage || GL.STATIC_DRAW; this.debugData = null; // Deprecated: Merge main props and accessor @@ -149,7 +149,7 @@ export class BufferWithAccessor extends WEBGLBuffer { // Set data: (re)initializes the buffer if (props.data) { - this._setData(props.data, props.offset, props.byteLength); + this._setData(props.data, props.byteOffset, props.byteLength); } else { this._setByteLength(props.byteLength || 0); } @@ -220,17 +220,17 @@ export class BufferWithAccessor extends WEBGLBuffer { // Create the buffer - binding it here for the first time locks the type // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type // @ts-expect-error - const target = this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.target; - this.gl.bindBuffer(target, this.handle); + const glTarget = this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.glTarget; + this.gl.bindBuffer(glTarget, this.handle); // WebGL2: subData supports additional srcOffset and length parameters if (srcOffset !== 0 || byteLength !== undefined) { assertWebGL2Context(this.gl); // @ts-expect-error - this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength); + this.gl.bufferSubData(this.glTarget, offset, data, srcOffset, byteLength); } else { - this.gl.bufferSubData(target, offset, data); + this.gl.bufferSubData(glTarget, offset, data); } - this.gl.bindBuffer(target, null); + this.gl.bindBuffer(glTarget, null); // TODO - update local `data` if offsets are right this.debugData = null; @@ -321,9 +321,9 @@ export class BufferWithAccessor extends WEBGLBuffer { * - GL.UNIFORM_BUFFER: `offset` must be aligned to GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT. * - GL.UNIFORM_BUFFER: `size` must be a minimum of GL.UNIFORM_BLOCK_SIZE_DATA. */ - bind(options?: {target?: number; index?: any; offset?: number; size: any}): this { + bind(options?: {glTarget?: number; index?: any; offset?: number; size?: any}): this { const { - target = this.target, // target for the bind operation + glTarget = this.glTarget, // target for the bind operation index = this.accessor && this.accessor.index, // index = index of target (indexed bind point) offset = 0, size @@ -331,27 +331,27 @@ export class BufferWithAccessor extends WEBGLBuffer { // NOTE: While GL.TRANSFORM_FEEDBACK_BUFFER and GL.UNIFORM_BUFFER could // be used as direct binding points, they will not affect transform feedback or // uniform buffer state. Instead indexed bindings need to be made. - if (target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER) { + if (glTarget === GL.UNIFORM_BUFFER || glTarget === GL.TRANSFORM_FEEDBACK_BUFFER) { if (size !== undefined) { - this.gl2?.bindBufferRange(target, index, this.handle, offset, size); + this.gl2?.bindBufferRange(glTarget, index, this.handle, offset, size); } else { assert(offset === 0); // Make sure offset wasn't supplied - this.gl2?.bindBufferBase(target, index, this.handle); + this.gl2?.bindBufferBase(glTarget, index, this.handle); } } else { - this.gl.bindBuffer(target, this.handle); + this.gl.bindBuffer(glTarget, this.handle); } return this; } - unbind(options?: {target?: any; index?: any}): this { - const {target = this.target, index = this.accessor && this.accessor.index} = options || {}; - const isIndexedBuffer = target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER; + unbind(options?: {glTarget?: any; index?: any}): this { + const {glTarget = this.glTarget, index = this.accessor && this.accessor.index} = options || {}; + const isIndexedBuffer = glTarget === GL.UNIFORM_BUFFER || glTarget === GL.TRANSFORM_FEEDBACK_BUFFER; if (isIndexedBuffer) { - this.gl2?.bindBufferBase(target, index, null); + this.gl2?.bindBufferBase(glTarget, index, null); } else { - this.gl.bindBuffer(target, null); + this.gl.bindBuffer(glTarget, null); } return this; } @@ -384,7 +384,7 @@ export class BufferWithAccessor extends WEBGLBuffer { const target = this._getTarget(); this.gl.bindBuffer(target, this.handle); - this.gl.bufferData(target, byteLength, this.webglUsage); + this.gl.bufferData(target, byteLength, this.glUsage); this.gl.bufferSubData(target, offset, data); this.gl.bindBuffer(target, null); @@ -401,7 +401,7 @@ export class BufferWithAccessor extends WEBGLBuffer { } // Allocate a GPU buffer of specified size. - _setByteLength(byteLength: number, webglUsage = this.webglUsage): this { + _setByteLength(byteLength: number): this { assert(byteLength >= 0); this.trackDeallocatedMemory(); @@ -414,12 +414,11 @@ export class BufferWithAccessor extends WEBGLBuffer { data = new Float32Array(0); } - const target = this._getTarget(); - this.gl.bindBuffer(target, this.handle); - this.gl.bufferData(target, data, webglUsage); - this.gl.bindBuffer(target, null); + const glTarget = this._getTarget(); + this.gl.bindBuffer(glTarget, this.handle); + this.gl.bufferData(glTarget, data, this.glUsage); + this.gl.bindBuffer(glTarget, null); - this.webglUsage = webglUsage; this.debugData = null; this.bytesUsed = byteLength; this.byteLength = byteLength; @@ -433,7 +432,7 @@ export class BufferWithAccessor extends WEBGLBuffer { // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type _getTarget() { // @ts-expect-error - return this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.target; + return this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.glTarget; } _getAvailableElementCount(srcByteOffset: number) { @@ -453,9 +452,9 @@ export class BufferWithAccessor extends WEBGLBuffer { // RESOURCE METHODS getParameter(pname: GL): any { - this.gl.bindBuffer(this.target, this.handle); - const value = this.gl.getBufferParameter(this.target, pname); - this.gl.bindBuffer(this.target, null); + this.gl.bindBuffer(this.glTarget, this.handle); + const value = this.gl.getBufferParameter(this.glTarget, pname); + this.gl.bindBuffer(this.glTarget, null); return value; } diff --git a/modules/webgl/src/classic/copy-and-blit.ts b/modules/webgl/src/classic/copy-and-blit.ts index cb55cba3e4..4832dd8b1d 100644 --- a/modules/webgl/src/classic/copy-and-blit.ts +++ b/modules/webgl/src/classic/copy-and-blit.ts @@ -121,8 +121,7 @@ export function readPixelsToBuffer( target = new Buffer(gl2, {byteLength, accessor: {type: sourceType, size: components}}); } - // @ts-expect-error - target.bind({target: GL.PIXEL_PACK_BUFFER}); + target.bind({glTarget: GL.PIXEL_PACK_BUFFER}); withParameters(gl2, {framebuffer}, () => { gl2.readPixels( sourceX, @@ -134,7 +133,7 @@ export function readPixelsToBuffer( targetByteOffset ); }); - target.unbind({target: GL.PIXEL_PACK_BUFFER}); + target.unbind({glTarget: GL.PIXEL_PACK_BUFFER}); if (deleteFramebuffer) { framebuffer.destroy(); } diff --git a/modules/webgl/src/context/debug/webgl-developer-tools.ts b/modules/webgl/src/context/debug/webgl-developer-tools.ts index fe5b76ec2d..4a1c4fd707 100644 --- a/modules/webgl/src/context/debug/webgl-developer-tools.ts +++ b/modules/webgl/src/context/debug/webgl-developer-tools.ts @@ -1,6 +1,7 @@ // luma.gl, MIT license import {log, loadScript} from '@luma.gl/api'; import {GL} from '@luma.gl/constants'; +import {isBrowser} from '@probe.gl/env' const WEBGL_DEBUG_CDN_URL = 'https://unpkg.com/webgl-debug@2.0.1/index.js'; @@ -18,8 +19,13 @@ type DebugContextProps = { // webgl2: false, // } +type ContextData = { + realContext?: WebGLRenderingContext; + debugContext?: WebGLRenderingContext; +} + // Helper to get shared context data -function getContextData(gl: any) { +function getContextData(gl: any): ContextData { gl.luma = gl.luma || {}; return gl.luma; } @@ -36,7 +42,7 @@ declare global { * @see https://github.com/vorg/webgl-debug */ export async function loadWebGLDeveloperTools(): Promise { - if (!globalThis.WebGLDebugUtils) { + if (isBrowser() && !globalThis.WebGLDebugUtils) { globalThis.global = globalThis.global || globalThis; // @ts-expect-error Developer tools expects global to be set globalThis.global.module = {}; diff --git a/modules/webgl/src/context/parameters/webgl-parameter-tables.ts b/modules/webgl/src/context/parameters/webgl-parameter-tables.ts index 450825b553..773e36ea29 100644 --- a/modules/webgl/src/context/parameters/webgl-parameter-tables.ts +++ b/modules/webgl/src/context/parameters/webgl-parameter-tables.ts @@ -116,9 +116,9 @@ const bindBuffer = (gl: WebGLRenderingContext, value: unknown, key: GL) => { [GL.PIXEL_PACK_BUFFER_BINDING]: GL.PIXEL_PACK_BUFFER, [GL.PIXEL_UNPACK_BUFFER_BINDING]: GL.PIXEL_UNPACK_BUFFER }; - const target = bindingMap[key]; + const glTarget = bindingMap[key]; - gl.bindBuffer(target, value); + gl.bindBuffer(glTarget, value); }; // Utility diff --git a/modules/webgl/test/adapter/resources/webgl-buffer.spec.ts b/modules/webgl/test/adapter/resources/webgl-buffer.spec.ts index fc8b06ed15..e5e3ad5f16 100644 --- a/modules/webgl/test/adapter/resources/webgl-buffer.spec.ts +++ b/modules/webgl/test/adapter/resources/webgl-buffer.spec.ts @@ -59,9 +59,9 @@ test('Buffer#constructor offset and size', t => { test('Buffer#bind/unbind', t => { for (const device of getWebGLTestDevices()) { const buffer = device.createBuffer({usage: Buffer.VERTEX}); - device.gl.bindBuffer(buffer.target, buffer.handle); + device.gl.bindBuffer(buffer.glTarget, buffer.handle); t.ok(buffer instanceof Buffer, `${device.info.type} Buffer bind/unbind successful`); - device.gl.bindBuffer(buffer.target, null); + device.gl.bindBuffer(buffer.glTarget, null); buffer.destroy(); } t.end(); @@ -77,9 +77,9 @@ test('Buffer#bind/unbind with index', t => { } const buffer = device.createBuffer({usage: Buffer.UNIFORM, index: 0}); - device.gl.bindBuffer(buffer.target, buffer.handle); + device.gl.bindBuffer(buffer.glTarget, buffer.handle); t.ok(buffer instanceof Buffer, `${device.info.type} Buffer bind/unbind with index successful`); - device.gl.bindBuffer(buffer.target, null); + device.gl.bindBuffer(buffer.glTarget, null); buffer.destroy(); } diff --git a/nyc.config.js b/nyc.config.js index 5c8150e9bb..108b8c46ee 100644 --- a/nyc.config.js +++ b/nyc.config.js @@ -15,10 +15,6 @@ module.exports = { 'modules/constants', // core is just re-exporting things at the moment 'modules/core', - // debug is an optional dependency - 'modules/debug', - // deprecated module - 'modules/webgl-legacy', // we don't have a test setup for WebGPU yet 'modules/webgpu', // these are test utilities diff --git a/test/modules.ts b/test/modules.ts index e79da04198..8ef391c540 100644 --- a/test/modules.ts +++ b/test/modules.ts @@ -2,7 +2,8 @@ // Imports tests for all modules that do not depend on WebGL // Make sure the WebGL developer tools are pre-loaded. Test contexts are created synchronously -import '@luma.gl/debug'; +import {luma} from '@luma.gl/api'; +luma.log.set('debug', true); // Shadertools is a GLSL textual processing library, no actual WebGL dependencies import '@luma.gl/shadertools/test'; @@ -13,7 +14,6 @@ import '@luma.gl/api-tests/test'; // WEBGL ADAPTER TESTS import '@luma.gl/webgl/test'; -import '@luma.gl/debug/test'; // WEBGPU ADAPTER TESTS import '@luma.gl/webgpu/test'; diff --git a/tsconfig.build.json b/tsconfig.build.json index f4ff421dc2..943a0c000a 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -10,14 +10,11 @@ {"path": "modules/api-tests"}, {"path": "modules/constants"}, {"path": "modules/core"}, - {"path": "modules/debug"}, {"path": "modules/engine"}, {"path": "modules/shadertools"}, {"path": "modules/test-utils"}, {"path": "modules/webgl"}, {"path": "modules/webgpu"} - // {"path": "modules/gltools"}, - // {"path": "modules/webgl-legacy"}, // {"path": "modules/experimental"} ] } diff --git a/tsconfig.json b/tsconfig.json index 0d50971a4a..6894cf8eaa 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -48,22 +48,16 @@ "@luma.gl/constants/test/*": ["modules/constants/test/*"], "@luma.gl/core/*": ["modules/core/src/*"], "@luma.gl/core/test/*": ["modules/core/test/*"], - "@luma.gl/debug/*": ["modules/debug/src/*"], - "@luma.gl/debug/test/*": ["modules/debug/test/*"], "@luma.gl/engine/*": ["modules/engine/src/*"], "@luma.gl/engine/test/*": ["modules/engine/test/*"], // "@luma.gl/experimental/*": ["modules/experimental/src/*"], // "@luma.gl/experimental/test/*": ["modules/experimental/test/*"], - // "@luma.gl/gltools/*": ["modules/gltools/src/*"], - // "@luma.gl/gltools/test/*": ["modules/gltools/test/*"], "@luma.gl/shadertools/*": ["modules/shadertools/src/*"], "@luma.gl/shadertools/test/*": ["modules/shadertools/test/*"], "@luma.gl/test-utils/*": ["modules/test-utils/src/*"], "@luma.gl/test-utils/test/*": ["modules/test-utils/test/*"], "@luma.gl/webgl/*": ["modules/webgl/src/*"], "@luma.gl/webgl/test/*": ["modules/webgl/test/*"], - // "@luma.gl/webgl-legacy/*": ["modules/webgl-legacy/src/*"], - // "@luma.gl/webgl-legacy/test/*": ["modules/webgl-legacy/test/*"], "@luma.gl/webgpu/*": ["modules/webgpu/src/*"], "@luma.gl/webgpu/test/*": ["modules/webgpu/test/*"], "test/*": ["test/*"] diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index b5bab27983..13d0f44a19 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -39,7 +39,6 @@ const config = { {alias: { '@luma.gl/api': `${__dirname}/../modules/api/src`, '@luma.gl/core': `${__dirname}/../modules/core/src`, - '@luma.gl/debug': `${__dirname}/../modules/debug/src`, '@luma.gl/engine': `${__dirname}/../modules/engine/src`, '@luma.gl/experimental': `${__dirname}/../modules/experimental/src`, '@luma.gl/shadertools': `${__dirname}/../modules/shadertools/src`, @@ -47,10 +46,7 @@ const config = { '@luma.gl/webgl': `${__dirname}/../modules/webgl/src`, '@luma.gl/webgpu': `${__dirname}/../modules/webgpu/src`, // deprecated modules - '@luma.gl/constants': `${__dirname}/../modules/constants/src`, - '@luma.gl/webgl-legacy': `${__dirname}/../modules/webgl-legacy/src`, - // removed (empty) modules - '@luma.gl/gltools': `${__dirname}/../modules/gltools/src`, + '@luma.gl/constants': `${__dirname}/../modules/constants/src` }} ], [ diff --git a/website/package.json b/website/package.json index f7e4e1f509..67bbceec10 100644 --- a/website/package.json +++ b/website/package.json @@ -16,12 +16,11 @@ }, "dependencies": { "@algolia/autocomplete-js": "^1.8.3", - "@luma.gl/api": "9.0.0-alpha.21", - "@luma.gl/core": "9.0.0-alpha.21", - "@luma.gl/engine": "9.0.0-alpha.21", - "@luma.gl/gltools": "9.0.0-alpha.21", - "@luma.gl/webgl": "9.0.0-alpha.21", - "@luma.gl/webgpu": "9.0.0-alpha.21", + "@luma.gl/api": "9.0.0-alpha.27", + "@luma.gl/core": "9.0.0-alpha.27", + "@luma.gl/engine": "9.0.0-alpha.27", + "@luma.gl/webgl": "9.0.0-alpha.27", + "@luma.gl/webgpu": "9.0.0-alpha.27", "clsx": "^1.1.1", "zustand": "^4.1.5", "styled-components": "^5.3.3", @@ -39,5 +38,10 @@ "prism-react-renderer": "^1.2.1", "ts-node": "~10.9.1" }, - "browserslist": {} + "browserslist": {}, + "resolutions": { + "react": "^17.0.2", + "react-dom": "^17.0.2", + "styled-components": "^4.4.1" + } } diff --git a/website/src/react-luma/components/device-tabs.tsx b/website/src/react-luma/components/device-tabs.tsx index a793ca3421..ab71ae2a2c 100644 --- a/website/src/react-luma/components/device-tabs.tsx +++ b/website/src/react-luma/components/device-tabs.tsx @@ -13,14 +13,16 @@ export const DeviceTabs = props => { {/* */} {deviceError} + { /* - {/* */} + {/* } {deviceError} - {/* */} + {/* } {deviceError} + */ } ); }; diff --git a/website/src/react-luma/components/luma-example.tsx b/website/src/react-luma/components/luma-example.tsx index e5737f651b..62fc2e20fc 100644 --- a/website/src/react-luma/components/luma-example.tsx +++ b/website/src/react-luma/components/luma-example.tsx @@ -1,6 +1,6 @@ import React, {FC, useEffect, useRef, useState, useCallback, forwardRef} from 'react'; // eslint-disable-line import {isBrowser} from '@probe.gl/env'; -import {Device, luma, setPathPrefix} from '@luma.gl/api'; +import {Device, log, luma, setPathPrefix} from '@luma.gl/api'; import {AnimationLoopTemplate, AnimationLoop, makeAnimationLoop} from '@luma.gl/engine'; import StatsWidget from '@probe.gl/stats-widget'; @@ -70,7 +70,7 @@ export const LumaExample: FC = (props: LumaExampleProps) => { const callbackRef = useCallback((canvas: HTMLCanvasElement) => { if (canvas) { if (!animationLoop) { - console.error(`creating luma device ${canvas.id}`); // , ref.current); + log.info(0, `creating luma device ${canvas.id}`); // , ref.current); canvas.style.width = '100vw'; canvas.style.height = '50vh'; const device = luma.createDevice({type: deviceType, canvas, container: containerName}); diff --git a/website/src/templates/getting-started/example-instanced-transform.jsx b/website/src/templates/getting-started/example-instanced-transform.jsx index 55359eeb55..c01a9f824b 100644 --- a/website/src/templates/getting-started/example-instanced-transform.jsx +++ b/website/src/templates/getting-started/example-instanced-transform.jsx @@ -7,7 +7,7 @@ export class InstancedTransformExample extends React.Component { const { pageContext } = this.props; const exampleConfig = (pageContext && pageContext.exampleConfig) || {}; return ( -

Transform examples temporarily disabled
+

Note: Transform examples temporarily disabled

// ); } diff --git a/website/src/templates/getting-started/example-transform.jsx b/website/src/templates/getting-started/example-transform.jsx index 01c155b9f5..c81fc8cf45 100644 --- a/website/src/templates/getting-started/example-transform.jsx +++ b/website/src/templates/getting-started/example-transform.jsx @@ -7,7 +7,7 @@ export class TransformExample extends React.Component { const { pageContext } = this.props; const exampleConfig = (pageContext && pageContext.exampleConfig) || {}; return ( -
+

Note: Transform examples temporarily disabled

); // LumaExample name="transform" AnimationLoopTemplate={AnimationLoopTemplate} exampleConfig={exampleConfig} /> } diff --git a/yarn.lock b/yarn.lock index 4248d2961a..4251632c14 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3109,11 +3109,6 @@ array-find-index@^1.0.1: resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== -array-flatten@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" @@ -3399,11 +3394,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -balanced-match@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" - integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== - base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -4888,7 +4878,7 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escaper@3.0.6, escaper@^2.5.3: +escaper@3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/escaper/-/escaper-3.0.6.tgz#82cb26d95e3de87c87ef786b0592ac19a55c704b" integrity sha512-QEdbdnIdh8+VgK6jr2iOixGR/havRmnwAMqFmYldBn6QZrTYmuwHlAE4bZ36PUa5kKlnrb0egSvEQTvFfdHtEw== @@ -5001,7 +4991,7 @@ eslint-plugin-jsx-a11y@^6.1.2: semver "^6.3.0" "eslint-plugin-luma-gl-custom-rules@file:./dev-modules/eslint-plugin-luma-gl-custom-rules": - version "9.0.0-alpha.24" + version "9.0.0-alpha.27" eslint-plugin-markdown@^2.2.0: version "2.2.1" @@ -5242,13 +5232,6 @@ exponential-backoff@^3.1.1: resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== -expression-eval@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/expression-eval/-/expression-eval-5.0.1.tgz#845758fa9ba64d9edc7b6804ae404934a6cfee6b" - integrity sha512-7SL4miKp19lI834/F6y156xlNg+i9Q41tteuGNCq9C06S78f1bm3BXuvf0+QpQxv369Pv/P2R7Hb17hzxLpbDA== - dependencies: - jsep "^0.3.0" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -5483,11 +5466,6 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -float-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/float-regex/-/float-regex-1.0.0.tgz#f80fa91d672c6b924842034bd87a0dd72069d2ef" - integrity sha512-rtI2SaW8FwQkni2ilbNONIqm2ZANLcEBun8URzJ8o1Dda9AzzZE6cQ8hB0Pgrah41INP+MWzqqRJx6jgpkY/gA== - flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -5964,36 +5942,13 @@ globby@^9.2.0: pify "^4.0.1" slash "^2.0.0" -glsl-parser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/glsl-parser/-/glsl-parser-2.0.1.tgz#3ffac4ee05cc4d8141fd6b1e41e82b3766ff61b9" - integrity sha512-hcPQtfz0AtxkyooSvim0RsHFNsiHXTY80GX2GtoTpFTImxW3cOINpb0cY6HFKnYkbheQRM7cDzCzzItNT6ZSiA== - dependencies: - glsl-tokenizer "^2.1.4" - through "2.3.4" - through2 "^0.6.3" - -glsl-tokenizer@^2.1.4, glsl-tokenizer@^2.1.5: +glsl-tokenizer@^2.1.5: version "2.1.5" resolved "https://registry.yarnpkg.com/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz#1c2e78c16589933c274ba278d0a63b370c5fee1a" integrity sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA== dependencies: through2 "^0.6.3" -glsl-transpiler@^1.8.5: - version "1.8.6" - resolved "https://registry.yarnpkg.com/glsl-transpiler/-/glsl-transpiler-1.8.6.tgz#acb54459206a72b9962866f8b82619e3d82c9914" - integrity sha512-U/vPKq1hytHh8dHGzr3i9CpGO012PDVtmAlYFTEMFW6s/OriAlw/kWpHxlwgqquwFIq7yhhtlrcJ3Pa4lvkYEw== - dependencies: - array-flatten "^2.0.0" - float-regex "^1.0.0" - glsl-parser "^2.0.1" - glsl-tokenizer "^2.1.5" - inherits "^2.0.1" - pick-by-alias "^1.2.0" - prepr "^1.1.2" - xtend "^4.0.1" - gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -6869,11 +6824,6 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== -jsep@^0.3.0: - version "0.3.5" - resolved "https://registry.yarnpkg.com/jsep/-/jsep-0.3.5.tgz#3fd79ebd92f6f434e4857d5272aaeef7d948264d" - integrity sha512-AoRLBDc6JNnKjNcmonituEABS5bcfqDhQAWWXNTFrqu6nVXBpBAGfcoTGZMFlIrh9FjmE1CQyX9CTNwZrXMMDA== - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -8441,11 +8391,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parenthesis@^3.1.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/parenthesis/-/parenthesis-3.1.8.tgz#3457fccb8f05db27572b841dad9d2630b912f125" - integrity sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw== - parse-data-uri@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/parse-data-uri/-/parse-data-uri-0.2.0.tgz#bf04d851dd5c87b0ab238e5d01ace494b604b4c9" @@ -8614,11 +8559,6 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -pick-by-alias@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pick-by-alias/-/pick-by-alias-1.2.0.tgz#5f7cb2b1f21a6e1e884a0c87855aa4a37361107b" - integrity sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw== - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -8742,18 +8682,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prepr@^1.1.2: - version "1.2.5" - resolved "https://registry.yarnpkg.com/prepr/-/prepr-1.2.5.tgz#a93c9102b6cac33a601747e425b37b818fe1dc09" - integrity sha512-ftD6RTlxi76lKWtAcBen2V0V6lPGQZlcIY+nVqKSCik6W60ORUMWlfMIAQMYMzuLTBr8zLshccuQXusO5MinCA== - dependencies: - balanced-match "^2.0.0" - escaper "^2.5.3" - expression-eval "^5.0.0" - object-assign "^4.1.1" - parenthesis "^3.1.8" - strip-json-comments "^3.1.1" - prettier-check@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prettier-check/-/prettier-check-2.0.0.tgz#edd086ee12d270579233ccb136a16e6afcfba1ae" @@ -10301,11 +10229,6 @@ through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8, resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -through@2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.4.tgz#495e40e8d8a8eaebc7c275ea88c2b8fc14c56455" - integrity sha512-DwbmSAcABsMazNkLOJJSLRC3gfh4cPxUxJCn9npmvbcI6undhgoJ2ShvEOgZrW8BH62Gyr9jKboGbfFcmY5VsQ== - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -10980,7 +10903,7 @@ ws@8.13.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.1, xtend@~4.0.1: +"xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==