From f79cb288205f7be357557979e91ca392002edcac Mon Sep 17 00:00:00 2001 From: Alvaro Saburido Date: Sat, 13 Jul 2024 10:49:58 +0200 Subject: [PATCH] feat: update core to v4 (#109) * chore: new linter * feat: update to v4, `useLoop` and remove disable render * feat: render emit and advance playgroudn for render modes * chore: remove render event on TresCanvas * chore: fix lint * chore(ci): updated node version to 20 on lint action * chore: release v1.0.0-next.0 * chore: changed file structure in playground a bit, updated dependency * fix: bloom effect in playground * chore: remove empty templates * test to make linter happy * tiny eslint fix * linting dependency test * restored eslint dependency version --------- Co-authored-by: Tino Koch <17991193+Tinoooo@users.noreply.github.com> --- .eslintignore | 8 - .eslintrc.json | 7 - .github/workflows/lint.yml | 2 +- CHANGELOG.md | 9 + CODE_OF_CONDUCT.md | 6 +- docs/.vitepress/config.ts | 2 +- ....timestamp-1700208814950-61916cb6f3fe3.mjs | 67 - docs/.vitepress/theme/TresLayout.vue | 1 - .../theme/components/BlenderCube.vue | 4 +- .../.vitepress/theme/components/BloomDemo.vue | 4 +- .../theme/components/DepthOfFieldDemo.vue | 2 +- docs/.vitepress/theme/components/DocsDemo.vue | 6 +- .../theme/components/LoveVueThreeJS.vue | 2 +- .../.vitepress/theme/components/NoiseDemo.vue | 4 +- .../theme/components/OutlineDemo.vue | 8 +- .../theme/components/PixelationDemo.vue | 3 - .../theme/components/VignetteDemo.vue | 6 +- .../theme/composables/useRouteDisposal.ts | 2 +- docs/.vitepress/theme/style.css | 2 +- docs/guide/effects/bloom.md | 6 +- docs/guide/effects/depth-of-field.md | 7 +- docs/guide/effects/glitch.md | 4 +- docs/guide/effects/noise.md | 9 +- docs/guide/effects/outline.md | 2 +- docs/guide/effects/pixelation.md | 2 +- docs/guide/effects/vignette.md | 3 +- docs/guide/index.md | 4 +- docs/tsconfig.json | 14 +- eslint.config.js | 11 + netlify.toml | 9 +- package.json | 25 +- playground-nuxt/package.json | 2 +- playground-nuxt/pages/index.vue | 8 +- playground/.eslintrc.json | 2 +- playground/components.d.ts | 3 +- playground/index.html | 2 +- playground/package.json | 16 +- playground/public/nuxt-stones/package.json | 4 +- playground/src/components/BlenderCube.vue | 4 +- playground/src/components/GraphPane.vue | 101 + playground/src/components/OutlineDemo.vue | 7 +- playground/src/composables/state.ts | 10 + playground/src/pages/advanced/on-demand.vue | 57 + playground/src/pages/bloom.vue | 18 +- playground/src/pages/depth-of-field.vue | 4 +- playground/src/pages/glitch.vue | 17 +- playground/src/pages/index.vue | 21 +- playground/src/pages/noise.vue | 4 +- playground/src/pages/outline.vue | 9 +- playground/src/pages/pixelation.vue | 1 - playground/src/pages/vignette.vue | 6 +- playground/src/router.ts | 13 +- playground/src/util/string.ts | 6 +- playground/tsconfig.json | 24 +- pnpm-lock.yaml | 17090 +++++++++------- src/core/EffectComposer.vue | 45 +- src/core/composables/effect.ts | 22 +- src/core/effects/Bloom.vue | 4 +- src/core/effects/DepthOfField.vue | 22 +- src/core/effects/Glitch.vue | 11 +- src/core/effects/Noise.vue | 2 - src/core/effects/Outline.vue | 6 +- src/core/effects/Pixelation.vue | 2 - src/core/effects/Vignette.vue | 2 - src/core/injectionKeys.ts | 2 +- src/index.ts | 4 +- src/util/object.ts | 49 +- src/util/prop.ts | 57 +- src/vite-env.d.ts | 7 - tsconfig.json | 30 +- vite.config.ts | 8 +- ....timestamp-1695304641367-06bf84dd0bc62.mjs | 165 - 72 files changed, 10451 insertions(+), 7657 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.json delete mode 100644 docs/.vitepress/config.ts.timestamp-1700208814950-61916cb6f3fe3.mjs create mode 100644 eslint.config.js create mode 100644 playground/src/components/GraphPane.vue create mode 100644 playground/src/composables/state.ts create mode 100644 playground/src/pages/advanced/on-demand.vue delete mode 100644 vite.config.ts.timestamp-1695304641367-06bf84dd0bc62.mjs diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index d88e5152..00000000 --- a/.eslintignore +++ /dev/null @@ -1,8 +0,0 @@ -dist -**.spec.js -**.test.ts -**.test.js -**.cy.js -**/cypress/** -docs/.vitepress/cache -docs/.vitepress/dist \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index cd76aa45..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "@tresjs/eslint-config-vue", - "rules": { - "@typescript-eslint/no-use-before-define": "off", - "vue/valid-template-root": "off" - } -} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a990e44b..a40c8fda 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - node-version: [16] + node-version: [20] steps: - name: Checkout uses: actions/checkout@v4 diff --git a/CHANGELOG.md b/CHANGELOG.md index ae7ec869..31712461 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ +## [1.0.0-next.0](https://github.com/Tresjs/post-processing/compare/0.7.1...1.0.0-next.0) (2024-05-21) + + +### Features + +* export useEffect composable ([#105](https://github.com/Tresjs/post-processing/issues/105)) ([b7810ba](https://github.com/Tresjs/post-processing/commit/b7810ba2864e70516c95b9866c2ea5d02a8f9b9d)) +* render emit and advance playgroudn for render modes ([5d256fc](https://github.com/Tresjs/post-processing/commit/5d256fcc5e40582e0f87c8cc1ec46fbd9a007435)) +* update to v4, `useLoop` and remove disable render ([544fb39](https://github.com/Tresjs/post-processing/commit/544fb39be3af7f71ddf994f14789215351cec569)) + ## [0.7.1](https://github.com/Tresjs/post-processing/compare/0.7.0...0.7.1) (2024-03-18) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 4aa89216..de4213b2 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -28,16 +28,16 @@ Project maintainers are responsible for clarifying the standards of acceptable b Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. -## Scope +## Scope This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the project or its community in public spaces. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. -## Enforcement +## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team by DM at [TresJS Discord](https://discord.gg/UCr96AQmWn). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership. -## Attribution +## Attribution This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 1a305183..e8eab85c 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -28,7 +28,7 @@ export default defineConfig({ content: '/og-banner.png', }, ], - ['script', { defer: 'true', 'data-site': 'OWBUVCJK', src: 'https://cdn.usefathom.com/script.js' }], + ['script', { 'defer': 'true', 'data-site': 'OWBUVCJK', 'src': 'https://cdn.usefathom.com/script.js' }], ], themeConfig: { logo: '/logo.svg', diff --git a/docs/.vitepress/config.ts.timestamp-1700208814950-61916cb6f3fe3.mjs b/docs/.vitepress/config.ts.timestamp-1700208814950-61916cb6f3fe3.mjs deleted file mode 100644 index 0f030659..00000000 --- a/docs/.vitepress/config.ts.timestamp-1700208814950-61916cb6f3fe3.mjs +++ /dev/null @@ -1,67 +0,0 @@ -// .vitepress/config.ts -import { defineConfig } from "file:///Users/alvarosabu/Projects/tres/post-processing/node_modules/.pnpm/vitepress@1.0.0-rc.25_@algolia+client-search@4.20.0_postcss@8.4.31_search-insights@2.10.0_typescript@5.2.2/node_modules/vitepress/dist/node/index.js"; -import { resolve } from "file:///Users/alvarosabu/Projects/tres/post-processing/node_modules/.pnpm/pathe@1.1.1/node_modules/pathe/dist/index.mjs"; -import { templateCompilerOptions } from "file:///Users/alvarosabu/Projects/tres/post-processing/node_modules/.pnpm/@tresjs+core@3.5.0_three@0.158.0_vue@3.3.8/node_modules/@tresjs/core/dist/tres.js"; -var __vite_injected_original_dirname = "/Users/alvarosabu/Projects/tres/post-processing/docs/.vitepress"; -var config_default = defineConfig({ - title: "Post-processing", - description: "Post-processing effects for ViteJS", - head: [["link", { rel: "icon", type: "image/svg", href: "/favicon.svg" }]], - themeConfig: { - logo: "/logo.svg", - search: { - provider: "local" - }, - // https://vitepress.dev/reference/default-theme-config - nav: [ - { text: "Guide", link: "/guide/" }, - { text: "Examples", link: "/examples" } - ], - sidebar: [ - { - text: "Guide", - items: [{ text: "Introduction", link: "/guide/" }] - }, - { - text: "Effects", - items: [ - { text: "Bloom", link: "/guide/effects/bloom" }, - { text: "Depth of Field", link: "/guide/effects/depth-of-field" }, - { text: "Glitch", link: "/guide/effects/glitch" }, - { text: "Noise", link: "/guide/effects/noise" }, - { text: "Outline", link: "/guide/effects/outline" }, - { text: "Pixelation", link: "/guide/effects/pixelation" }, - { text: "Vignette", link: "/guide/effects/vignette" } - ] - } - ], - socialLinks: [ - { icon: "twitter", link: "https://twitter.com/tresjs_dev" }, - { icon: "discord", link: "https://discord.gg/UCr96AQmWn" } - ] - }, - vite: { - optimizeDeps: { - exclude: ["vitepress"], - include: ["three"] - }, - server: { - hmr: { - overlay: false - } - }, - resolve: { - alias: { - "@tresjs/post-processing": resolve(__vite_injected_original_dirname, "../../dist/tres-postprocessing.js") - }, - dedupe: ["three"] - } - }, - vue: { - ...templateCompilerOptions - } -}); -export { - config_default as default -}; -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLnZpdGVwcmVzcy9jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvYWx2YXJvc2FidS9Qcm9qZWN0cy90cmVzL3Bvc3QtcHJvY2Vzc2luZy9kb2NzLy52aXRlcHJlc3NcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9hbHZhcm9zYWJ1L1Byb2plY3RzL3RyZXMvcG9zdC1wcm9jZXNzaW5nL2RvY3MvLnZpdGVwcmVzcy9jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL2FsdmFyb3NhYnUvUHJvamVjdHMvdHJlcy9wb3N0LXByb2Nlc3NpbmcvZG9jcy8udml0ZXByZXNzL2NvbmZpZy50c1wiO2ltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ3ZpdGVwcmVzcydcbmltcG9ydCBVbm9jc3MgZnJvbSAndW5vY3NzL3ZpdGUnXG5pbXBvcnQgc3ZnTG9hZGVyIGZyb20gJ3ZpdGUtc3ZnLWxvYWRlcidcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoZSdcbmltcG9ydCB7IHRlbXBsYXRlQ29tcGlsZXJPcHRpb25zIH0gZnJvbSAnQHRyZXNqcy9jb3JlJ1xuXG4vLyBodHRwczovL3ZpdGVwcmVzcy5kZXYvcmVmZXJlbmNlL3NpdGUtY29uZmlnXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICB0aXRsZTogJ1Bvc3QtcHJvY2Vzc2luZycsXG4gIGRlc2NyaXB0aW9uOiAnUG9zdC1wcm9jZXNzaW5nIGVmZmVjdHMgZm9yIFZpdGVKUycsXG4gIGhlYWQ6IFtbJ2xpbmsnLCB7IHJlbDogJ2ljb24nLCB0eXBlOiAnaW1hZ2Uvc3ZnJywgaHJlZjogJy9mYXZpY29uLnN2ZycgfV1dLFxuICB0aGVtZUNvbmZpZzoge1xuICAgIGxvZ286ICcvbG9nby5zdmcnLFxuICAgIHNlYXJjaDoge1xuICAgICAgcHJvdmlkZXI6ICdsb2NhbCcsXG4gICAgfSxcbiAgICAvLyBodHRwczovL3ZpdGVwcmVzcy5kZXYvcmVmZXJlbmNlL2RlZmF1bHQtdGhlbWUtY29uZmlnXG4gICAgbmF2OiBbXG4gICAgICB7IHRleHQ6ICdHdWlkZScsIGxpbms6ICcvZ3VpZGUvJyB9LFxuICAgICAgeyB0ZXh0OiAnRXhhbXBsZXMnLCBsaW5rOiAnL2V4YW1wbGVzJyB9LFxuICAgIF0sXG5cbiAgICBzaWRlYmFyOiBbXG4gICAgICB7XG4gICAgICAgIHRleHQ6ICdHdWlkZScsXG4gICAgICAgIGl0ZW1zOiBbeyB0ZXh0OiAnSW50cm9kdWN0aW9uJywgbGluazogJy9ndWlkZS8nIH1dLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGV4dDogJ0VmZmVjdHMnLFxuICAgICAgICBpdGVtczogW1xuICAgICAgICAgIHsgdGV4dDogJ0Jsb29tJywgbGluazogJy9ndWlkZS9lZmZlY3RzL2Jsb29tJyB9LFxuICAgICAgICAgIHsgdGV4dDogJ0RlcHRoIG9mIEZpZWxkJywgbGluazogJy9ndWlkZS9lZmZlY3RzL2RlcHRoLW9mLWZpZWxkJyB9LFxuICAgICAgICAgIHsgdGV4dDogJ0dsaXRjaCcsIGxpbms6ICcvZ3VpZGUvZWZmZWN0cy9nbGl0Y2gnIH0sXG4gICAgICAgICAgeyB0ZXh0OiAnTm9pc2UnLCBsaW5rOiAnL2d1aWRlL2VmZmVjdHMvbm9pc2UnIH0sXG4gICAgICAgICAgeyB0ZXh0OiAnT3V0bGluZScsIGxpbms6ICcvZ3VpZGUvZWZmZWN0cy9vdXRsaW5lJyB9LFxuICAgICAgICAgIHsgdGV4dDogJ1BpeGVsYXRpb24nLCBsaW5rOiAnL2d1aWRlL2VmZmVjdHMvcGl4ZWxhdGlvbicgfSxcbiAgICAgICAgICB7IHRleHQ6ICdWaWduZXR0ZScsIGxpbms6ICcvZ3VpZGUvZWZmZWN0cy92aWduZXR0ZScgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXSxcblxuICAgIHNvY2lhbExpbmtzOiBbXG4gICAgICB7IGljb246ICd0d2l0dGVyJywgbGluazogJ2h0dHBzOi8vdHdpdHRlci5jb20vdHJlc2pzX2RldicgfSxcbiAgICAgIHsgaWNvbjogJ2Rpc2NvcmQnLCBsaW5rOiAnaHR0cHM6Ly9kaXNjb3JkLmdnL1VDcjk2QVFtV24nIH0sXG4gICAgXSxcbiAgfSxcbiAgdml0ZToge1xuICAgIG9wdGltaXplRGVwczoge1xuICAgICAgZXhjbHVkZTogWyd2aXRlcHJlc3MnXSxcbiAgICAgIGluY2x1ZGU6IFsndGhyZWUnXSxcbiAgICB9LFxuICAgIHNlcnZlcjoge1xuICAgICAgaG1yOiB7XG4gICAgICAgIG92ZXJsYXk6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHJlc29sdmU6IHtcbiAgICAgIGFsaWFzOiB7XG4gICAgICAgICdAdHJlc2pzL3Bvc3QtcHJvY2Vzc2luZyc6IHJlc29sdmUoX19kaXJuYW1lLCAnLi4vLi4vZGlzdC90cmVzLXBvc3Rwcm9jZXNzaW5nLmpzJyksXG4gICAgICB9LFxuICAgICAgZGVkdXBlOiBbJ3RocmVlJ10sXG4gICAgfSxcbiAgfSxcbiAgdnVlOiB7XG4gICAgLi4udGVtcGxhdGVDb21waWxlck9wdGlvbnMsXG4gIH0sXG59KVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFxVyxTQUFTLG9CQUFvQjtBQUdsWSxTQUFTLGVBQWU7QUFDeEIsU0FBUywrQkFBK0I7QUFKeEMsSUFBTSxtQ0FBbUM7QUFPekMsSUFBTyxpQkFBUSxhQUFhO0FBQUEsRUFDMUIsT0FBTztBQUFBLEVBQ1AsYUFBYTtBQUFBLEVBQ2IsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssUUFBUSxNQUFNLGFBQWEsTUFBTSxlQUFlLENBQUMsQ0FBQztBQUFBLEVBQ3pFLGFBQWE7QUFBQSxJQUNYLE1BQU07QUFBQSxJQUNOLFFBQVE7QUFBQSxNQUNOLFVBQVU7QUFBQSxJQUNaO0FBQUE7QUFBQSxJQUVBLEtBQUs7QUFBQSxNQUNILEVBQUUsTUFBTSxTQUFTLE1BQU0sVUFBVTtBQUFBLE1BQ2pDLEVBQUUsTUFBTSxZQUFZLE1BQU0sWUFBWTtBQUFBLElBQ3hDO0FBQUEsSUFFQSxTQUFTO0FBQUEsTUFDUDtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sT0FBTyxDQUFDLEVBQUUsTUFBTSxnQkFBZ0IsTUFBTSxVQUFVLENBQUM7QUFBQSxNQUNuRDtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLE9BQU87QUFBQSxVQUNMLEVBQUUsTUFBTSxTQUFTLE1BQU0sdUJBQXVCO0FBQUEsVUFDOUMsRUFBRSxNQUFNLGtCQUFrQixNQUFNLGdDQUFnQztBQUFBLFVBQ2hFLEVBQUUsTUFBTSxVQUFVLE1BQU0sd0JBQXdCO0FBQUEsVUFDaEQsRUFBRSxNQUFNLFNBQVMsTUFBTSx1QkFBdUI7QUFBQSxVQUM5QyxFQUFFLE1BQU0sV0FBVyxNQUFNLHlCQUF5QjtBQUFBLFVBQ2xELEVBQUUsTUFBTSxjQUFjLE1BQU0sNEJBQTRCO0FBQUEsVUFDeEQsRUFBRSxNQUFNLFlBQVksTUFBTSwwQkFBMEI7QUFBQSxRQUN0RDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsSUFFQSxhQUFhO0FBQUEsTUFDWCxFQUFFLE1BQU0sV0FBVyxNQUFNLGlDQUFpQztBQUFBLE1BQzFELEVBQUUsTUFBTSxXQUFXLE1BQU0sZ0NBQWdDO0FBQUEsSUFDM0Q7QUFBQSxFQUNGO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDSixjQUFjO0FBQUEsTUFDWixTQUFTLENBQUMsV0FBVztBQUFBLE1BQ3JCLFNBQVMsQ0FBQyxPQUFPO0FBQUEsSUFDbkI7QUFBQSxJQUNBLFFBQVE7QUFBQSxNQUNOLEtBQUs7QUFBQSxRQUNILFNBQVM7QUFBQSxNQUNYO0FBQUEsSUFDRjtBQUFBLElBQ0EsU0FBUztBQUFBLE1BQ1AsT0FBTztBQUFBLFFBQ0wsMkJBQTJCLFFBQVEsa0NBQVcsbUNBQW1DO0FBQUEsTUFDbkY7QUFBQSxNQUNBLFFBQVEsQ0FBQyxPQUFPO0FBQUEsSUFDbEI7QUFBQSxFQUNGO0FBQUEsRUFDQSxLQUFLO0FBQUEsSUFDSCxHQUFHO0FBQUEsRUFDTDtBQUNGLENBQUM7IiwKICAibmFtZXMiOiBbXQp9Cg== diff --git a/docs/.vitepress/theme/TresLayout.vue b/docs/.vitepress/theme/TresLayout.vue index 15c65b81..c61001ab 100644 --- a/docs/.vitepress/theme/TresLayout.vue +++ b/docs/.vitepress/theme/TresLayout.vue @@ -1,5 +1,4 @@ \ No newline at end of file + diff --git a/docs/.vitepress/theme/components/BloomDemo.vue b/docs/.vitepress/theme/components/BloomDemo.vue index acd1ac03..27dfe0a9 100644 --- a/docs/.vitepress/theme/components/BloomDemo.vue +++ b/docs/.vitepress/theme/components/BloomDemo.vue @@ -1,9 +1,9 @@