{"_id":"wgsl-renderer","_rev":"29-cd762b023cadb9889eb13058740565f1","name":"wgsl-renderer","dist-tags":{"latest":"0.7.0"},"versions":{"0.0.1":{"name":"wgsl-renderer","version":"0.0.1","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.0.1","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"464ce69b3d6b043c368a5f117e6a6383dd13c188","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.0.1.tgz","fileCount":7,"integrity":"sha512-7CSnfPiEJEHALYhrDjj2FJw1AFk3VH/ay7DD1xT72iOwEPqKf5G251Yhh7kTgZGedIUtwOEK+V6VzRhOqCTu3g==","signatures":[{"sig":"MEYCIQCFMFMlBA4MLI+EtS6+EnFtgYAZ9jDGiDayzkcPT7/wiAIhAKxX3M5VD9+y0pjRCcQlETzwzXMaI8UsYOOo0PndvBIS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48950},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.0.1.tgz","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\e96fb21d2d9367753019912c39062ad5\\wgsl-renderer-0.0.1.tgz","_integrity":"sha512-7CSnfPiEJEHALYhrDjj2FJw1AFk3VH/ay7DD1xT72iOwEPqKf5G251Yhh7kTgZGedIUtwOEK+V6VzRhOqCTu3g==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"一个基于WebGPU和WGSL的多通道渲染器","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.0.1_1764657047949_0.5665420233911138","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"wgsl-renderer","version":"0.0.2","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.0.2","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"f4c3496de2622f5679fd7d8199acf71f80c56aee","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.0.2.tgz","fileCount":7,"integrity":"sha512-HcVw/61Gc/DCPQ+NUpBG3EVF5i1sSLQXQXjs6f41tSpz07H8NO5Bo8HksgwkmiY1kC9SMbS+YHdSw//pbpnDfg==","signatures":[{"sig":"MEYCIQCPgcIIsW8igM9tfWivJXe6K3vCOlG2n4XsMbeBCzIpWwIhAKVT70F3Jl0opsBTlXUbQXwHiCOWM5fcdpurfaiFShx6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49732},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.0.2.tgz","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\7219eafcd28517d1194b82077a78f73d\\wgsl-renderer-0.0.2.tgz","_integrity":"sha512-HcVw/61Gc/DCPQ+NUpBG3EVF5i1sSLQXQXjs6f41tSpz07H8NO5Bo8HksgwkmiY1kC9SMbS+YHdSw//pbpnDfg==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"一个基于WebGPU和WGSL的多通道渲染器","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.0.2_1764735446132_0.46557974819500925","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"wgsl-renderer","version":"0.0.3","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.0.3","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"e84bd6f9a8e854e3f5c471f79d195364c9d4bad2","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.0.3.tgz","fileCount":8,"integrity":"sha512-0xen4Hu7yoZYWoxmiGe3LaSD4ivQ1J22xy1bO3B+B1qdMbiVKHcfHJB+D36m72Mi7e1xBZ9FyVCEZBh/41qy0A==","signatures":[{"sig":"MEUCIDe2lICi7M31hu93jvYOW5uT7UqB/9UlbXADP3+VvZYOAiEA6aGYuWpdPTdVzUPTyMXtYAmNEMtF92WPuKCg0rBeJlQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62347},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.0.3.tgz","types":"./dist/types/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\9040773a8fde193d666268b060818f33\\wgsl-renderer-0.0.3.tgz","_integrity":"sha512-0xen4Hu7yoZYWoxmiGe3LaSD4ivQ1J22xy1bO3B+B1qdMbiVKHcfHJB+D36m72Mi7e1xBZ9FyVCEZBh/41qy0A==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"一个基于WebGPU和WGSL的多通道渲染器","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"@webgpu/types":"^0.1.66"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.0.3_1764916417435_0.4358167174670011","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"wgsl-renderer","version":"0.0.4","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.0.4","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"1b860cce113e98c614085d6b98d6b5cd47d57a07","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.0.4.tgz","fileCount":7,"integrity":"sha512-vRtL2NdUPPV6KwDnvP+jatlfVZ+1P/MPFG88nDGqqee5/lJk3U0HfJwz9V2+YsX+iZ0IY4zFRkFWM6cg4+oq/A==","signatures":[{"sig":"MEQCIBjS5FnQHWuKR1Yf6LIRE7enn+n/LhqossUcia+njX+jAiBfAdDXeBGzS21VQLBsosBH5FNdt5LQo0rvzj8JgbMAtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51176},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.0.4.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\dd0e2e182d354d262f36e7c721d3f243\\wgsl-renderer-0.0.4.tgz","_integrity":"sha512-vRtL2NdUPPV6KwDnvP+jatlfVZ+1P/MPFG88nDGqqee5/lJk3U0HfJwz9V2+YsX+iZ0IY4zFRkFWM6cg4+oq/A==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"一个基于WebGPU和WGSL的多通道渲染器","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"@webgpu/types":"^0.1.66"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.0.4_1764920204002_0.9788521492721975","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"wgsl-renderer","version":"0.0.5","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.0.5","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"4e9d7be5d40d2e077e6c68855bdad4b490952e5a","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.0.5.tgz","fileCount":7,"integrity":"sha512-duGScOskoQSYhSIWkDp7CTJ5qOQkqySLN2jaLtRPmuI5ItwMyN0D4gBF8oeMC5FirljZpxq6qWCuorIlgpPODg==","signatures":[{"sig":"MEUCIFu7IGUm+GWmYqAtKUInyxRWw5cV52xBY0xvmiRqsK8nAiEAxZr1bICFZKHuRtyHE9aY7sNfwlwykhuYq4B5Wf1uKxI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51175},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.0.5.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\818750d5415cb238939e7ab6473f739d\\wgsl-renderer-0.0.5.tgz","_integrity":"sha512-duGScOskoQSYhSIWkDp7CTJ5qOQkqySLN2jaLtRPmuI5ItwMyN0D4gBF8oeMC5FirljZpxq6qWCuorIlgpPODg==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"一个基于WebGPU和WGSL的多通道渲染器","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"@webgpu/types":"^0.1.66"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.0.5_1764927154942_0.5514612889753072","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"wgsl-renderer","version":"0.1.0","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.1.0","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"e041418378e7974988fcd61131abed95b726639e","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.1.0.tgz","fileCount":7,"integrity":"sha512-WWI+RnkuwjO5KYf0EkgyF1AgY8R2j5bkwsQEQppEeLn3XIm3Lxa33MS2ku9e6phSS+ENRzGOt1Vpk0AuN0ghMA==","signatures":[{"sig":"MEUCIBwfXc97acY5i7Y4iQlK7zJf8e7kQkKRwMI9JL55MxALAiEAznc3yQhF/OiPh38cT/ECTyVk7ISrmiofh8OoAfyMPfk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73481},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.1.0.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\f710add835d716456f929942d3a61011\\wgsl-renderer-0.1.0.tgz","_integrity":"sha512-WWI+RnkuwjO5KYf0EkgyF1AgY8R2j5bkwsQEQppEeLn3XIm3Lxa33MS2ku9e6phSS+ENRzGOt1Vpk0AuN0ghMA==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"一个基于WebGPU和WGSL的多通道渲染器","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"@webgpu/types":"^0.1.66"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.1.0_1764995633322_0.2572828132030536","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"wgsl-renderer","version":"0.1.1","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.1.1","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"63802f9f1ce335cac5d85140234bd8f5bfaef853","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.1.1.tgz","fileCount":7,"integrity":"sha512-pB4erMYzXgyr60v0KOeqbvIaFQTx5fjwIHHc9bRtDdbxKy1QtMUrJ5Qiww6u4L+QnQNVm5R2UZ9QAcK5KfPDpQ==","signatures":[{"sig":"MEQCIH5Jp5seQnwTJgMGoWh0wjZ4ayo9sMoruBhijhjGlCJQAiBHb94Wwu8oTwPE9YTOpDg2w38ZAm8ETc258JLXN6IkNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73630},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.1.1.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\8dfcf86de44f66b329b323b8626d5d34\\wgsl-renderer-0.1.1.tgz","_integrity":"sha512-pB4erMYzXgyr60v0KOeqbvIaFQTx5fjwIHHc9bRtDdbxKy1QtMUrJ5Qiww6u4L+QnQNVm5R2UZ9QAcK5KfPDpQ==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"一个基于WebGPU和WGSL的多通道渲染器","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.1.1_1765012258425_0.09595886355566763","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"wgsl-renderer","version":"0.1.2","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.1.2","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"b6d40b21fc8b697b87cc3aaec1b6a028bec47c7a","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.1.2.tgz","fileCount":7,"integrity":"sha512-fmntkG37FEU4E9pEOk6nyz3kbp9rk4sWxbSveMf6KctdxK2WhFkSDKWUp9adb8uHsASnUmYahvGjha4KEbsQwA==","signatures":[{"sig":"MEQCIHRTY59PimMAmuXnilnHiXeYdJPEV7N++VtZmbqjoxToAiBz+vEZy8CVD9uH4ILMw0Ls5EXg1cvDLvxql5EX9WwyRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73631},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.1.2.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\1e8ce89d08e53d2b8cb052e4411d6d11\\wgsl-renderer-0.1.2.tgz","_integrity":"sha512-fmntkG37FEU4E9pEOk6nyz3kbp9rk4sWxbSveMf6KctdxK2WhFkSDKWUp9adb8uHsASnUmYahvGjha4KEbsQwA==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.1.2_1765160877537_0.39798696779069886","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"wgsl-renderer","version":"0.1.3","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.1.3","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"9c2b7fe663f06ed8ec0baed385bc0951780f9dca","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.1.3.tgz","fileCount":7,"integrity":"sha512-Hl7UUHERhqqeba9ZGzqgEG7hCTKv0C6p0tMZwVgDsDAhJju/LVN2/7mSDfgQvCfv2uotJfGuLj/4qeXQzOsBdw==","signatures":[{"sig":"MEQCIEQ9hkzY6szPMjcLQoVxnDq/PK3FzJzvVxjF/MelrwhgAiAEL/U6owIUyz5lZ+GRNyik7Z9fUVVUxtlNKpKdAjZUeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73591},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.1.3.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\03fcbfebc959e5889c972923242971b9\\wgsl-renderer-0.1.3.tgz","_integrity":"sha512-Hl7UUHERhqqeba9ZGzqgEG7hCTKv0C6p0tMZwVgDsDAhJju/LVN2/7mSDfgQvCfv2uotJfGuLj/4qeXQzOsBdw==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.1.3_1765179366246_0.2833091389034492","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"wgsl-renderer","version":"0.1.4","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.1.4","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"c73d6eb17986c854f18b9e4b9dc401783f6ff37e","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.1.4.tgz","fileCount":7,"integrity":"sha512-cFHhpmm+PSjDLQfl42sPIANSaJoFZDb1uWo/GN3s2ZQwWkkmHYkBYNzYv4rdhHVXifqHjcMZ1v9KBUNpW3EKFw==","signatures":[{"sig":"MEYCIQD97zzK+JXr/no3RZS13CdSW9i/85x7tbkJwgDLKoiQoAIhANjOR+6XKhj/9vNA8aDsIGiR4QuoOURxzRV7lKQ0qBky","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80765},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.1.4.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\5b53332077a042ee4809cef7a746ddd1\\wgsl-renderer-0.1.4.tgz","_integrity":"sha512-cFHhpmm+PSjDLQfl42sPIANSaJoFZDb1uWo/GN3s2ZQwWkkmHYkBYNzYv4rdhHVXifqHjcMZ1v9KBUNpW3EKFw==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.1.4_1765266202853_0.12208268338383621","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"wgsl-renderer","version":"0.1.5","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.1.5","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"ae20fb0a504d4b911e9d219bd34329359f73f80b","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.1.5.tgz","fileCount":7,"integrity":"sha512-xqkOcz/xQL3zqEJC6On3OCroZfIWk6rmRlj2t/PDiI+vchrC2ymsThmHbeR94ALzbTCZUFU9t+YO2GK+JtWOnQ==","signatures":[{"sig":"MEUCIEvK9YDrfrBNsLbOPkhPPyOATHwqukIignKOsHt7Eq3hAiEAmAvc/O8yqUBgFlbcDdMRVB98V0AF8Z/DeKvl+u8XNHg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80786},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.1.5.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\e7ad1f6909aa688e881b39f6db74a301\\wgsl-renderer-0.1.5.tgz","_integrity":"sha512-xqkOcz/xQL3zqEJC6On3OCroZfIWk6rmRlj2t/PDiI+vchrC2ymsThmHbeR94ALzbTCZUFU9t+YO2GK+JtWOnQ==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.1.5_1765278053838_0.7996987779738436","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"wgsl-renderer","version":"0.1.6","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.1.6","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"dc2cb7db7e464c99df04008346191a5e57703bed","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.1.6.tgz","fileCount":7,"integrity":"sha512-RBcoDonsFH146xtYNUc4hD8XeHBgXRQuizGvOVAE6DPJhVkBxqwhfcdz8aL8QOzmNBXW2uRC1DdPGjL1YIEBYA==","signatures":[{"sig":"MEQCIBVb0BDqRH2jGtyo7gWQUpWdz7HHeRJb30qKZN3xn4RzAiAbG9B/kobsQafGpi4SxKrAvNqZ6n8RF5029AEA7qMXbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79920},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.1.6.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\1472a4ca2a7f666f69c0f1b8dbf3e82f\\wgsl-renderer-0.1.6.tgz","_integrity":"sha512-RBcoDonsFH146xtYNUc4hD8XeHBgXRQuizGvOVAE6DPJhVkBxqwhfcdz8aL8QOzmNBXW2uRC1DdPGjL1YIEBYA==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.1.6_1765532829344_0.9831667860006255","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"wgsl-renderer","version":"0.1.7","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.1.7","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"696d58d105fcf002d6ff060a680545dfb488b90a","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.1.7.tgz","fileCount":7,"integrity":"sha512-i8U6gG7SPxZXHmlzuTIZqwibobmpZT+SwoevIf9JXzVailnwCzGJnBAj+OcpBthY42pNBpGSunySrdr4rHQ2WA==","signatures":[{"sig":"MEUCIDXUjyLv/BdxeI80k0ZPcRjSSDl5qr4ywQN+PXhhVlk5AiEA3b2efYPD6i4eTpLlGHuBv5WVc7oKXMYpguvltu8DFkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80109},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.1.7.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\54b01cb9744882cd460297c5e29e5d9f\\wgsl-renderer-0.1.7.tgz","_integrity":"sha512-i8U6gG7SPxZXHmlzuTIZqwibobmpZT+SwoevIf9JXzVailnwCzGJnBAj+OcpBthY42pNBpGSunySrdr4rHQ2WA==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.1.7_1765782899692_0.9456394005664956","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"wgsl-renderer","version":"0.1.8","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.1.8","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"aa5616dd64b89a924e569d782557e9901648434f","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.1.8.tgz","fileCount":7,"integrity":"sha512-RziGzjOyFTP26IIQkfQ1CW6PlT4McKwMX6NW/qWW6guYBbzIZZfzS4U8mMT6uQeL/kFzt+bB0H1WKpdqAhbGRw==","signatures":[{"sig":"MEQCIDhwVC8GT1RudTQ8/azwhTtmrvKAUUsT1nqMT7lnksRTAiB/YlNHJlvv5vrOZPkGxcEo/fCAdkveQdWRCHNeQvWing==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80175},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.1.8.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\72e072fcfa904031119f30bd33722a19\\wgsl-renderer-0.1.8.tgz","_integrity":"sha512-RziGzjOyFTP26IIQkfQ1CW6PlT4McKwMX6NW/qWW6guYBbzIZZfzS4U8mMT6uQeL/kFzt+bB0H1WKpdqAhbGRw==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.1.8_1765867408169_0.7932819798800419","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"wgsl-renderer","version":"0.1.9","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.1.9","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"d49d25cfe19b693b20a76b95d541aa27c5b47aec","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.1.9.tgz","fileCount":7,"integrity":"sha512-Agp2LNpfTM7uTdOUIbaQsFX/j/niHr25UpHNheJmbSRhHyTj1iG2FarD7f0UHjHs277+gOfi4GB8PZLmJ7m2KQ==","signatures":[{"sig":"MEYCIQCTzRj76x7PV0hHOkMNlKgUjdM8GKmam2xFKs/8On1k8wIhAL7s4ah50pGEn+h7D7+PSHUbytxN9RnNaBcIJ7noBH+p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82441},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.1.9.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\54d32839cc5c0e059d916a7b859757d9\\wgsl-renderer-0.1.9.tgz","_integrity":"sha512-Agp2LNpfTM7uTdOUIbaQsFX/j/niHr25UpHNheJmbSRhHyTj1iG2FarD7f0UHjHs277+gOfi4GB8PZLmJ7m2KQ==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.1.9_1765954689193_0.2969909003266711","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"wgsl-renderer","version":"0.2.0","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.2.0","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"7759a5fb100c79c050a736b4d1c21bfcfe6bb418","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.2.0.tgz","fileCount":7,"integrity":"sha512-d4zM/N9T2Cp/Z07DoMGnuo2HQahGTfklKeU+Px+GchBKRBwi3UYKBAS+AaBaUysWeYlaUBENJFAdmY05b40pKQ==","signatures":[{"sig":"MEUCIFeCXNIRc0TAffn4p6UARVJctPCYaonc86Xv31LFEMxyAiEApsa3HErCmjw1TOUjgeI0KIbBSmNLMbxckWC4jE/5ezI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89631},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.2.0.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\b99c6c39a8950737c819863c18cac2c7\\wgsl-renderer-0.2.0.tgz","_integrity":"sha512-d4zM/N9T2Cp/Z07DoMGnuo2HQahGTfklKeU+Px+GchBKRBwi3UYKBAS+AaBaUysWeYlaUBENJFAdmY05b40pKQ==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.2.0_1765968967102_0.06511953108977497","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"wgsl-renderer","version":"0.2.1","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.2.1","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"afcb09ce8e782f67ae2f7f899d8a4fb8b1cbe7be","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.2.1.tgz","fileCount":7,"integrity":"sha512-9+gdWV/9QZ8cQ2HoEDfcBmB0T/5DuR1lAy2wuJ+fEf+YmDpZe6ejIUFYL9FVrI+Cnas+BF/PtTGKri18KYTQvg==","signatures":[{"sig":"MEQCICUAOlrsS2pXNY2vyGMORax8dgwJjVOzG+jwUBr4GKIaAiBCXiTxVXwM05ayWBw0BKYt1Mn+vZsd7IyvALvi9VfT7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89640},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.2.1.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\161f167aee9644fead1b902e42fad3ae\\wgsl-renderer-0.2.1.tgz","_integrity":"sha512-9+gdWV/9QZ8cQ2HoEDfcBmB0T/5DuR1lAy2wuJ+fEf+YmDpZe6ejIUFYL9FVrI+Cnas+BF/PtTGKri18KYTQvg==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.2.1_1765969284306_0.04422838569182996","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"wgsl-renderer","version":"0.3.0","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.3.0","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"17855e0220a73180d866aa6075191d56998ac7e5","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.3.0.tgz","fileCount":7,"integrity":"sha512-Ga/7+irI1zsEala3ZGNLnsqpnN6QH5cozcwkoIk2OxqUq7zKNqSVIK1i1z/BnKBlmbd6BEzJY/nYAcPf96dzYw==","signatures":[{"sig":"MEUCIGGhG5gnAXYGoolda6UfSnRfexk+3DjGVR5i+w2zjX43AiEAoTZ7w7N8D2tMIPg0HJ8nZe2Qsi481wQvw/3rF7fObpI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89962},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.3.0.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\7adea529625666a70d0a0a511a6d2ad7\\wgsl-renderer-0.3.0.tgz","_integrity":"sha512-Ga/7+irI1zsEala3ZGNLnsqpnN6QH5cozcwkoIk2OxqUq7zKNqSVIK1i1z/BnKBlmbd6BEzJY/nYAcPf96dzYw==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.3.0_1765970011894_0.2902708139197554","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"wgsl-renderer","version":"0.3.1","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.3.1","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"ad1b79978c1d55ace452dc237962706d8c823922","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.3.1.tgz","fileCount":7,"integrity":"sha512-jzdUFy1hc3z5u2R73uJKiTRrXQI7Yh08Rmmd8L8BqpUfivbv6XQsnfTEX1McJlC7KZm+d/8k61iC/6OdPnhtvw==","signatures":[{"sig":"MEUCIQD9+aOWR5tqLrovwuAgif0QofvGyjXeQkfFyKenJe6acAIgAxuhRWd+y580zNJNt4HQYF2M+4KySh1Z06xUYd+CXKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90018},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.3.1.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\a9f9d35b3a26067803f2f1287f2fe6fa\\wgsl-renderer-0.3.1.tgz","_integrity":"sha512-jzdUFy1hc3z5u2R73uJKiTRrXQI7Yh08Rmmd8L8BqpUfivbv6XQsnfTEX1McJlC7KZm+d/8k61iC/6OdPnhtvw==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.3.1_1765970472233_0.17301765640054279","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"wgsl-renderer","version":"0.3.2","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.3.2","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"e417aa1c200e139ab7652dc265123a4e3342cf83","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.3.2.tgz","fileCount":7,"integrity":"sha512-efK8xP5/X8W69bUQsTpKrGREQSXLWhMQD0DZMIK4Ql9Rz7T+2oi3zZlGrE/syzpMs90fZvHHKGOMx3qvDOGf5Q==","signatures":[{"sig":"MEQCIGLABGYiFZd645l426e6ZKMXiHGEHXhFckbEOanZAJSFAiA0nVxFpphObFkCbnRJiHUKfcN3nIS2WpR6TdTpl/U5Eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85923},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.3.2.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\b71b8f2df3b13540abe0975fb44fd2a6\\wgsl-renderer-0.3.2.tgz","_integrity":"sha512-efK8xP5/X8W69bUQsTpKrGREQSXLWhMQD0DZMIK4Ql9Rz7T+2oi3zZlGrE/syzpMs90fZvHHKGOMx3qvDOGf5Q==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.3.2_1765972213081_0.563833048437987","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"wgsl-renderer","version":"0.3.3","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.3.3","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"89a1fb5548b5807c3de685e18834997da930701c","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.3.3.tgz","fileCount":7,"integrity":"sha512-5JNJW+zaxPy1fr3g1Wm35HJtX29tTx1isxhOQqWsBV7xi1eHg5zmEFlHu6LhBq6WqSElIKtF6IjW2Dq9ni9SLQ==","signatures":[{"sig":"MEYCIQC86wzhpf3MHD3CNXvcfGZteG57WXjur12gGFs0noxqdgIhAMLvNbIKpoELdcd5FIidV4/Sa43VlTk4mdRRrjtgpNjr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85411},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.3.3.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\bb27d7c7f467f6befc8bccf88a910a66\\wgsl-renderer-0.3.3.tgz","_integrity":"sha512-5JNJW+zaxPy1fr3g1Wm35HJtX29tTx1isxhOQqWsBV7xi1eHg5zmEFlHu6LhBq6WqSElIKtF6IjW2Dq9ni9SLQ==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.3.3_1766039831750_0.884391121436823","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"wgsl-renderer","version":"0.3.4","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.3.4","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"c1ed16933bd6530bf9e58b179906ad6203dba2f8","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.3.4.tgz","fileCount":7,"integrity":"sha512-kDoLWarWk8oTQw4DXCyUvkBcsXOUPW9QnB+uU9f+vof+qdUJmukEXt1S79MGossTVR3NfUiCNgRU59SmLy2HLA==","signatures":[{"sig":"MEQCIHTisxLE38nr/9+orl7yr8O83cDKtgGpXJnzcTf4oQxQAiAPXOW/zIRZFt5mQAaTPYTRB109fF7yVPpGbPcPVBlCSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84661},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.3.4.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\7366424f432aa77b725b78f3514f1be6\\wgsl-renderer-0.3.4.tgz","_integrity":"sha512-kDoLWarWk8oTQw4DXCyUvkBcsXOUPW9QnB+uU9f+vof+qdUJmukEXt1S79MGossTVR3NfUiCNgRU59SmLy2HLA==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.3.4_1766206189711_0.8051506916902091","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"wgsl-renderer","version":"0.4.0","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.4.0","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"6ec0d487254deee955fc83ceadc64ccb0079c2a7","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.4.0.tgz","fileCount":7,"integrity":"sha512-OFWALK2slgAuTlJiMrhb7ZpJwFrLQiy/L4olZNkQYKds1opD5zvw8wMNNcfHcqvHLbIPl1wGI2mmVLNZQiSNqA==","signatures":[{"sig":"MEQCIAI4RY57GW5Q6xR/0wwmtlJLjBCcfmwyIlCyoOOXcXuKAiA+y0TbAdyIzeO1l6FWUEafuhk960xlhrwOyAxeoj5dgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94142},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.4.0.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\4ebdebcba9fd8893e2cb68fe3be217f2\\wgsl-renderer-0.4.0.tgz","_integrity":"sha512-OFWALK2slgAuTlJiMrhb7ZpJwFrLQiy/L4olZNkQYKds1opD5zvw8wMNNcfHcqvHLbIPl1wGI2mmVLNZQiSNqA==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.4.0_1767589423051_0.6493444146024747","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"wgsl-renderer","version":"0.4.1","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.4.1","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"f283c3bc9281eae9c145075a785e669245f8b103","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.4.1.tgz","fileCount":7,"integrity":"sha512-VhMwOhlGytbTW4uVy6zfD6X2YDoAvAozkaXi3wHU73bLZ1sX7/PowGRb/CCt0QGWH8elQLnhdWNhWQLZpgU5Cg==","signatures":[{"sig":"MEYCIQCcNSMZeBPktiW8p144q6dc8tmyE4jLJ0pEdxBSmc8qpgIhAMjGsAF+sZKp6u3HbYzK97dYDQk173m7++qS2cPUmVLO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94177},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.4.1.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\1ab2db427f854d0a909b5ddca9f75f5c\\wgsl-renderer-0.4.1.tgz","_integrity":"sha512-VhMwOhlGytbTW4uVy6zfD6X2YDoAvAozkaXi3wHU73bLZ1sX7/PowGRb/CCt0QGWH8elQLnhdWNhWQLZpgU5Cg==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.4.1_1767931517771_0.804519940290114","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"wgsl-renderer","version":"0.4.2","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.4.2","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"0619bea4ff259f3a971da2697086af9b0e9fd092","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.4.2.tgz","fileCount":7,"integrity":"sha512-tsJJjmBMt0oHWs2eXtGVzO7C9YbOrBy3SpZdEnXs5SEQ3iXShwuawWfs/BhS72LvOJ2kFFCGubWpplEu94RMcg==","signatures":[{"sig":"MEUCIQCpQhZVLT7crWCRktjtE0MRegD3mx/hzb6NsqM0n1slZgIgOVWx03vHkP5u5SiQ3nS91qab0g1KfpUL7Dr2lml2nAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96614},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.4.2.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"C:\\Users\\Administrator\\AppData\\Local\\Temp\\445117e1ef9c56b6007e9f355dd15735\\wgsl-renderer-0.4.2.tgz","_integrity":"sha512-tsJJjmBMt0oHWs2eXtGVzO7C9YbOrBy3SpZdEnXs5SEQ3iXShwuawWfs/BhS72LvOJ2kFFCGubWpplEu94RMcg==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"10.9.3","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rimraf":"^6.1.2","rolldown":"1.0.0-beta.52","typescript":"^5.4.5","@types/node":"^20.14.2","@webgpu/types":"^0.1.66","rolldown-plugin-dts":"^0.18.1","@taiyuuki/eslint-config":"^1.4.14"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.4.2_1768022774499_0.6868466339566217","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"wgsl-renderer","version":"0.5.0","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.5.0","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"84390945e2b29071750a24f69726a546e9460381","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.5.0.tgz","fileCount":7,"integrity":"sha512-v8JJ8cUIswepOCDWI1odQiCI50VPYGfCq0O+u43VugUJ0/05xKB1xxV0OAz17nZEo6Ix79btL6Ii2YQF9ZDGhQ==","signatures":[{"sig":"MEUCICbtpQ2swZj+HQSgFGTsO22QL3fs6N02iph6kOpWVggPAiEA1BhrDtwBjRT1lzCCEolCIdnvODTqADWZeph5yyoPtco=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95400},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.5.0.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"/private/var/folders/5h/r3b100fj78sd_8mlq8h763zh0000gn/T/c89e2ac3a6278c485629e07fffa29207/wgsl-renderer-0.5.0.tgz","_integrity":"sha512-v8JJ8cUIswepOCDWI1odQiCI50VPYGfCq0O+u43VugUJ0/05xKB1xxV0OAz17nZEo6Ix79btL6Ii2YQF9ZDGhQ==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"11.11.0","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","rimraf":"^6.1.3","rolldown":"1.0.0-rc.17","typescript":"^6.0.2","@types/node":"^25.5.2","@webgpu/types":"^0.1.69","rolldown-plugin-dts":"^0.23.2","@taiyuuki/eslint-config":"^1.6.6"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.5.0_1776924642571_0.2569301249230551","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"wgsl-renderer","version":"0.5.1","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.5.1","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"efc6df50e5c63bf89672c8d9a7643f380e67fce3","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.5.1.tgz","fileCount":7,"integrity":"sha512-kIIvH+7zPyu285YQklF6P/0/HACuj+H2JtIQgB7gAnvGZPCWEwgd9XlfZNDut+u9mUgcPXoQ0GDSy4WqrEFKNg==","signatures":[{"sig":"MEQCIEaac2zke7ZkeCPeQvVP8ZbKYjPHVnZIvvrQtHL6pByKAiA1+ad0NpxEVlLL60Uk57+p4RX1BJ2xNSGoF6Rp7HkHaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95444},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.5.1.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"/private/var/folders/5h/r3b100fj78sd_8mlq8h763zh0000gn/T/188a8b5e644187b1f4f6766a2408ed20/wgsl-renderer-0.5.1.tgz","_integrity":"sha512-kIIvH+7zPyu285YQklF6P/0/HACuj+H2JtIQgB7gAnvGZPCWEwgd9XlfZNDut+u9mUgcPXoQ0GDSy4WqrEFKNg==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"11.11.0","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","rimraf":"^6.1.3","rolldown":"1.0.0-rc.17","typescript":"^6.0.2","@types/node":"^25.5.2","@webgpu/types":"^0.1.69","rolldown-plugin-dts":"^0.23.2","@taiyuuki/eslint-config":"^1.6.6"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.5.1_1776925407203_0.09225227051140683","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"wgsl-renderer","version":"0.6.0","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","_id":"wgsl-renderer@0.6.0","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"dist":{"shasum":"a8e6a35dda18b12ac9bb58b36c69c6d4d163c7c7","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.6.0.tgz","fileCount":7,"integrity":"sha512-1iTZ78pnCIG6ngSQb1pcK7v5oHPGEPvrAjubumBuwYr/4WbwDWYwzxxwXCDHJ5EWYnIsD854nnVOZJBfWtWPpg==","signatures":[{"sig":"MEYCIQDkiWfi4U2MX9OrKAPx07/YBiMrFeoHSHQkignScSZjVgIhALmtO7ljEh/V/zy1Koc4JZ+HFFm/XannCBmzj7gFTV1t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115802},"main":"./dist/cjs/index.js","type":"module","_from":"file:wgsl-renderer-0.6.0.tgz","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"typings":"./dist/esm/index.d.ts","_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"_resolved":"/private/var/folders/5h/r3b100fj78sd_8mlq8h763zh0000gn/T/ad4365b40f3ddeca91fb58c9e465795b/wgsl-renderer-0.6.0.tgz","_integrity":"sha512-1iTZ78pnCIG6ngSQb1pcK7v5oHPGEPvrAjubumBuwYr/4WbwDWYwzxxwXCDHJ5EWYnIsD854nnVOZJBfWtWPpg==","repository":{"url":"git+https://github.com/taiyuuki/wgsl-renderer.git","type":"git"},"_npmVersion":"11.11.0","description":"A multi-pass renderer based on WebGPU and WGSL.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","rimraf":"^6.1.3","rolldown":"1.0.0-rc.18","typescript":"^6.0.2","@types/node":"^25.5.2","@webgpu/types":"^0.1.69","rolldown-plugin-dts":"^0.24.1","@taiyuuki/eslint-config":"^1.6.9"},"_npmOperationalInternal":{"tmp":"tmp/wgsl-renderer_0.6.0_1778035193622_0.2541873536677586","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"wgsl-renderer","version":"0.7.0","description":"A multi-pass renderer based on WebGPU and WGSL.","type":"module","main":"./dist/cjs/index.js","module":"./dist/esm/index.js","typings":"./dist/esm/index.d.ts","repository":{"type":"git","url":"git+https://github.com/taiyuuki/wgsl-renderer.git"},"bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"sideEffects":false,"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","devDependencies":{"@taiyuuki/eslint-config":"^1.6.9","@types/node":"^25.5.2","@webgpu/types":"^0.1.69","eslint":"^10.2.0","rimraf":"^6.1.3","rolldown":"1.0.0-rc.18","rolldown-plugin-dts":"^0.24.1","typescript":"^6.0.2"},"scripts":{"lint":"eslint --fix","build":"rolldown -c","clean":"rimraf dist","prebuild":"npm run clean"},"_id":"wgsl-renderer@0.7.0","_integrity":"sha512-TDBd9SM+9wPVX7ftoObM6DRlim7Ew5TtQXT9QOLHfX/XG5bYsC6CjUSAg+MvlnlclK22y022jVqKzAHQTe/Y6Q==","_resolved":"/private/var/folders/5h/r3b100fj78sd_8mlq8h763zh0000gn/T/fb33d58db6fdfc758c5d06a19b199254/wgsl-renderer-0.7.0.tgz","_from":"file:wgsl-renderer-0.7.0.tgz","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-TDBd9SM+9wPVX7ftoObM6DRlim7Ew5TtQXT9QOLHfX/XG5bYsC6CjUSAg+MvlnlclK22y022jVqKzAHQTe/Y6Q==","shasum":"75252e35977d38b97e0e1bb9a2a6100d94e5b0ca","tarball":"https://registry.npmjs.org/wgsl-renderer/-/wgsl-renderer-0.7.0.tgz","fileCount":7,"unpackedSize":118504,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDccBgu/z5+TYqMAuVO1qCF1OM3+LGclBuYORudfHgnqQIgGasIzAvBJbiqM4CTpK0UICjYGXLI/hHTi1p3RkqsmIw="}]},"_npmUser":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"directories":{},"maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wgsl-renderer_0.7.0_1780376763432_0.8287254965935305"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-02T06:30:47.948Z","modified":"2026-06-02T05:06:03.685Z","0.0.1":"2025-12-02T06:30:48.125Z","0.0.2":"2025-12-03T04:17:26.331Z","0.0.3":"2025-12-05T06:33:37.585Z","0.0.4":"2025-12-05T07:36:44.180Z","0.0.5":"2025-12-05T09:32:35.084Z","0.1.0":"2025-12-06T04:33:53.467Z","0.1.1":"2025-12-06T09:10:58.566Z","0.1.2":"2025-12-08T02:27:57.657Z","0.1.3":"2025-12-08T07:36:06.410Z","0.1.4":"2025-12-09T07:43:23.005Z","0.1.5":"2025-12-09T11:00:53.977Z","0.1.6":"2025-12-12T09:47:09.494Z","0.1.7":"2025-12-15T07:14:59.828Z","0.1.8":"2025-12-16T06:43:28.331Z","0.1.9":"2025-12-17T06:58:09.364Z","0.2.0":"2025-12-17T10:56:07.231Z","0.2.1":"2025-12-17T11:01:24.504Z","0.3.0":"2025-12-17T11:13:32.037Z","0.3.1":"2025-12-17T11:21:12.376Z","0.3.2":"2025-12-17T11:50:13.257Z","0.3.3":"2025-12-18T06:37:11.903Z","0.3.4":"2025-12-20T04:49:49.873Z","0.4.0":"2026-01-05T05:03:43.201Z","0.4.1":"2026-01-09T04:05:17.934Z","0.4.2":"2026-01-10T05:26:14.654Z","0.5.0":"2026-04-23T06:10:42.714Z","0.5.1":"2026-04-23T06:23:27.806Z","0.6.0":"2026-05-06T02:39:53.797Z","0.7.0":"2026-06-02T05:06:03.583Z"},"bugs":{"url":"https://github.com/taiyuuki/wgsl-renderer/issues"},"author":{"name":"taiyuuki","email":"taiyuuki@qq.com"},"license":"MIT","homepage":"https://github.com/taiyuuki/wgsl-renderer#readme","keywords":["webgpu","wgsl","renderer","graphics","webgl","typescript"],"repository":{"type":"git","url":"git+https://github.com/taiyuuki/wgsl-renderer.git"},"description":"A multi-pass renderer based on WebGPU and WGSL.","maintainers":[{"name":"taiyuuki","email":"taiyuuki@qq.com"}],"readme":"# WGSL Multi-Pass Renderer\n\n一个基于WebGPU和WGSL的多通道渲染器。\n\n## ✨ 特性\n\n- 🖼️ **多Pass渲染** - 支持纹理渲染、后处理效果等自定义多通道渲染\n- ⚡ **高性能渲染循环** - 支持单帧渲染和循环渲染模式\n- 🧮 **Compute 通道支持** - 可在同一管线里混合执行 compute 与 render pass\n- 🛠️ **TypeScript支持** - 完整的类型定义和清晰的API分离\n- 🎮 **Uniform系统** - 内置uniform buffer管理，支持动态参数\n\n## 🚀 快速开始\n\n### 安装\n\n```bash\nnpm i wgsl-renderer\n```\n\n### 添加渲染通道\n\n```typescript\nimport { createWGSLRenderer } from 'wgls-renderer'\n\nconst canvas = document.querySelector('canvas')\nconst renderer = await createWGSLRenderer(canvas)\n\nrenderer.addPass({\n    name: 'my-pass',\n    shaderCode: `\nstruct VSOut {\n    @builtin(position) pos: vec4<f32>,\n    @location(0) uv: vec2<f32>,\n};\n\n@vertex\nfn vs_main(@location(0) p: vec3<f32>) -> VSOut {\n    var o: VSOut;\n    o.pos = vec4<f32>(p, 1.0);\n    o.uv = p.xy * 0.5 + vec2<f32>(0.5, 0.5);\n    o.uv.y = 1.0 - o.uv.y;\n    return o;\n}\n\n@fragment\nfn fs_main(@location(0) uv: vec2<f32>) -> @location(0) vec4<f32> {\n    return vec4(1.0, 1.0, 0.0, 1.0);\n}`,\n})\n\nrenderer.renderFrame()\n```\n\n\n\n\n\n### 基础多通道使用\n\n```typescript\nimport { createWGSLRenderer } from 'wgls-renderer'\n\nconst canvas = document.getElementById('canvas')\nconst renderer = await createWGSLRenderer(canvas)\n\n// 创建采样器\nconst sampler = renderer.createSampler()\n\n// 加载图片纹理\nconst { texture, width, height } = await renderer.loadImageTexture('image.jpg')\n\n// 添加Pass 1: 渲染纹理\nrenderer.addPass({\n    name: 'texture_pass',\n    shaderCode: textureShader,\n    resources: [texture, sampler], // binding 0, 1\n})\n\n// 添加Pass 2: 后处理效果\nconst uniforms = renderer.createUniforms(8) //  创建uniform变量的绑定\n\n// 获取Pass 1的输出纹理并绑定到Pass 2\nconst texturePassOutput = renderer.getPassTexture('texture_pass')\nrenderer.addPass({\n    name: 'post_process',\n    shaderCode: postProcessShader,\n    resources: [\n        texturePassOutput, // @group(0) @binding(0)\n        sampler, // @group(0) @binding(1)\n        uniforms.getBuffer(), // @group(0) @binding(2)\n    ],\n})\n\n// 启动循环渲染，可以在回调函数中更新uniforms\nrenderer.loopRender(t => {\n\n    // 更新uniforms (注意WebGPU的内存对齐规则)\n    uniforms.values[0] = canvas.width // resolution.x\n    uniforms.values[1] = canvas.height // resolution.y\n    uniforms.values[2] = t / 1000 // time\n    uniforms.values[3] = 0 // padding (留空)\n    uniforms.values[4] = width // textureResolution.x\n    uniforms.values[5] = height // textureResolution.y\n    uniforms.apply() // 应用到GPU\n})\n\n// 或者手动执行单帧渲染\nrenderer.renderFrame()\n```\n\n\n## 🎨 着色器示例\n\n### Pass 1: 纹理渲染\n\n```wgsl\n// textureShader\nstruct VSOut {\n    @builtin(position) pos: vec4<f32>,\n    @location(0) uv: vec2<f32>,\n};\n\n@vertex\nfn vs_main(@location(0) p: vec3<f32>) -> VSOut {\n    var o: VSOut;\n    o.pos = vec4<f32>(p, 1.0);\n    o.uv = p.xy * 0.5 + vec2<f32>(0.5, 0.5);\n    o.uv.y = 1.0 - o.uv.y;\n    return o;\n}\n\n@group(0) @binding(0) var myTexture: texture_2d<f32>;\n@group(0) @binding(1) var mySampler: sampler;\n\n@fragment\nfn fs_main(@location(0) uv: vec2<f32>) -> @location(0) vec4<f32> {\n    return textureSample(myTexture, mySampler, uv);\n}\n```\n\n### Pass 2: 动态后处理效果\n\n```wgsl\n// postProcessShader\nstruct Uniforms {\n    resolution: vec2<f32>,     // offset 0-7\n    time: f32,                 // offset 8\n    // 4 bytes padding for vec3 alignment\n    texResolution: vec2<f32>,  // offset 16-23\n    speed: f32,                // offset 24\n    // 8 bytes padding for next vec3\n}\n\nstruct VSOut {\n    @builtin(position) pos: vec4<f32>,\n    @location(0) uv: vec2<f32>,\n};\n\n@vertex\nfn vs_main(@location(0) p: vec3<f32>) -> VSOut {\n    var o: VSOut;\n    o.pos = vec4<f32>(p, 1.0);\n    o.uv = p.xy * 0.5 + vec2<f32>(0.5, 0.5);\n    o.uv.y = 1.0 - o.uv.y;\n    return o;\n}\n\n@group(0) @binding(0) var prevTexture: texture_2d<f32>; // Pass 1输出纹理\n@group(0) @binding(1) var mySampler: sampler;\n@group(0) @binding(2) var<uniform> uniforms: Uniforms;\n\n@fragment\nfn fs_main(@location(0) uv: vec2<f32>) -> @location(0) vec4<f32> {\n    var color = textureSample(prevTexture, mySampler, uv);\n\n    // 动态扫描线效果\n    let scanline = 0.8 + 0.2 * sin(uv.y * 600.0 + uniforms.time * 5.0);\n    color = vec4<f32>(color.r * scanline, color.g * scanline, color.b * scanline, color.a);\n\n    // 动态波纹效果\n    let waveAmplitude = 0.05 + 0.02 * sin(uniforms.time * 2.0);\n    let waveX = sin(uv.x * 10.0 + uniforms.time * 3.0) * cos(uv.y * 8.0 + uniforms.time * 2.0) * waveAmplitude;\n\n    let finalR = clamp(color.r + waveX, 0.0, 1.0);\n    let finalG = clamp(color.g - waveX * 0.5, 0.0, 1.0);\n    let finalB = clamp(color.b + waveX * 0.3, 0.0, 1.0);\n\n    return vec4<f32>(finalR, finalG, finalB, color.a);\n}\n```\n\n## 📋 API\n\n### createWGSLRenderer(canvas, options?)\n\n创建WGSL渲染器实例。\n\n```typescript\nconst renderer = await createWGSLRenderer(canvas)\n```\n\noptions：\n\n```typescript\ninterface WGSLRendererOptions { config?: GPUCanvasConfiguration; }\n```\n\n### renderer.addPass(passOptions)\n\n添加渲染通道。\n\n```typescript\ninterface RenderPassOptions {\n    name: string;\n    shaderCode: string;\n    entryPoints?: { \n        vertex?: string;\t// 默认是 'vs_main' 函数\n        fragment?: string;\t// 默认 'fs_main' 函数\n    };\n    clearColor?: { r: number; g: number; b: number; a: number };\n    blendMode?: 'additive' | 'alpha' | 'multiply' | 'none';\n    resources?: GPUBindingResource[];\n    bindGroupSets?: { [setName: string]: GPUBindingResource[] }; // 可选的设置多个绑定组，用于动态切换\n    renderToCanvas?: boolean; // 可选的将当前通道输出到canvas，默认是false，最后一个通道始终是true\n    view?: GPUTextureView; // 可选的自定义View，renderToCanvas为true时无效。\n    format?: GPUTextureFormat; // 可选的自定义格式（使用自定义View时需要指定格式一致）\n}\n```\n\n### renderer.addComputePass(passOptions)\n\n添加计算通道。Compute 和 Render 会按照添加顺序依次执行。\n\n```ts\ninterface ComputePassOptions {\n    name: string;\n    shaderCode: string;\n    entryPoint?: string; // 默认是 'cs_main'\n    resources?: GPUBindingResource[];\n    bindGroupSets?: { [setName: string]: GPUBindingResource[] };\n    dispatch:\n        | { x: number; y?: number; z?: number }\n        | ((context: { width: number; height: number; passName: string }) => { x: number; y?: number; z?: number });\n}\n```\n\n```ts\nconst uniforms = renderer.createUniforms(4)\nconst output = renderer.getPassTexture('sim', {\n    format: 'rgba8unorm',\n    usage: GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST,\n})\n\nrenderer.addComputePass({\n    name: 'sim',\n    shaderCode: computeWGSL,\n    resources: [output, uniforms.getBuffer()],\n    dispatch: ({ width, height }) => ({\n        x: Math.ceil(width / 8),\n        y: Math.ceil(height / 8),\n        z: 1,\n    }),\n})\n```\n\n### renderer.createStorageTexture(options?)\n\n创建可用于 compute 的 storage 纹理。\n\n```ts\ninterface StorageTextureOptions {\n    width?: number;\n    height?: number;\n    format?: GPUTextureFormat; // 默认: 'rgba8unorm'\n    usage?: GPUTextureUsageFlags;\n    label?: string;\n}\n```\n\n```ts\nconst simTex = renderer.createStorageTexture({\n    width: canvas.width,\n    height: canvas.height,\n    format: 'rgba16float',\n    usage: GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST,\n})\n```\n\n### renderer.createPingPongTextures(options?)\n\n创建 A/B 双纹理，用于迭代模拟（ping-pong）。\n\n```ts\nconst pingpong = renderer.createPingPongTextures({\n    format: 'rgba16float',\n    usage: GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST,\n})\n\n// 每帧\nconst readView = pingpong.getReadView()\nconst writeView = pingpong.getWriteView()\npingpong.swap()\n```\n\n### renderer.getPassTexture(passName)\n\n获取指定通道的输出纹理，返回值并不是真正的纹理，而是一个占位符，只在实际渲染时自动将输出纹理绑定到着色器。\n\n```ts\nrenderer.getPassTexture(\n  passName: string,\n  options?: {\n    format?: GPUTextureFormat;\n    mipmaps?: boolean;\n    mipLevelCount?: number;\n    usage?: GPUTextureUsageFlags;\n  },\n)\n```\n\n如果要把输出纹理用于 compute 的 storage texture，需要在 `usage` 里包含 `GPUTextureUsage.STORAGE_BINDING`。\nstorage texture 请使用支持的格式（如 `rgba8unorm`、`rgba16float`），不要使用 `bgra8unorm`。\n\n```typescript\n// 获取my_pass通道的输出纹理\nconst passOutputTexture = renderer.getPassTexture('my_pass')\nconst sampler = renderer.createSampler()\nrenderer.addPass({\n    name: 'my_pass2',\n    shaderCode: wgslShaderCode,\n    resources: [\n        passOutputTexture,\n        sampler,\n    ],\n})\n```\n\n**对应的WGSL绑定:**\n\n```wgsl\n@group(0) @binding(0) var myTexture: texture_2d<f32>;      // resources[0]\n@group(0) @binding(1) var mySampler: sampler;              // resources[1]\n```\n\n\n\n\n\n### renderer.createUniforms(length)\n\n创建uniform变量，使用Float32Array，length单位是float的数量。\n\n```typescript\nconst myUniforms = renderer.createUniforms(8) // 8个float\n\n// 绑定到着色器\nrenderer.addPass({\n    name: 'my_pass',\n    shaderCode: wgslShaderCode,\n    resources: [\n        myUniforms.getBuffer(), // group(0) binding(0) var<uniform>\n    ],\n})\n\nmyUniforms.values[0] = 1.0 // 设置值\nmyUniforms.apply() // 应用到GPU\n```\n\n### renderer.getContext()\n\n获取WebGPU画布上下文。\n\n```typescript\nconst context = renderer.getContext()\n```\n\n### renderer.getDevice()\n\n获取WebGPU设备对象。\n\n```typescript\nconst device = renderer.getDevice()\n```\n\n### 渲染控制\n\n#### renderer.renderFrame()\n单帧渲染。\n\n#### renderer.loopRender(callback?)\n内置的循环渲染，支持每帧回调，可用于实时更新uniforms。\n\n```typescript\nrenderer.loopRender(time => {\n\n    // 每帧更新uniforms\n    myUniforms.values[2] = time * 0.001\n    myUniforms.apply()\n})\n```\n\n#### renderer.stopLoop()\n停止循环渲染。\n\n### 切换绑定组\n\n渲染器支持在运行时在不同的绑定组之间切换，用于：\n\n- 切换不同的纹理\n- 动态修改着色器参数\n- 实现多材质渲染\n\n#### renderer.switchBindGroupSet(passName, setName)\n\n给指定的通道切换绑定组\n\n```typescript\n// 给渲染通道添加多个绑定组\nrenderer.addPass({\n    name: 'main',\n    shaderCode: myShader,\n    resources: [uniforms, sampler, texture1], // Default resources\n    bindGroupSets: {\n        material1: [uniforms, sampler, texture1],\n        material2: [uniforms, sampler, texture2],\n        material3: [uniforms, sampler, texture3],\n    },\n})\n\n// Switch between materials\nrenderer.switchBindGroupSet('main', 'material1')\nrenderer.switchBindGroupSet('main', 'material2')\nrenderer.switchBindGroupSet('main', 'material3')\n```\n\n**示例：动态切换纹理**\n\n\n\n\n\n```typescript\n// 创建多个纹理\nconst textures = [\n    await renderer.loadImageTexture('texture1.png'),\n    await renderer.loadImageTexture('texture2.png'),\n    await renderer.loadImageTexture('texture3.png'),\n]\n\n// 给渲染通道设置多个绑定\nrenderer.addPass({\n    name: 'renderer',\n    shaderCode: textureShader,\n    resources: [uniforms, sampler, textures[0]], // Default\n    bindGroupSets: {\n        texture0: [uniforms, sampler, textures[0]],\n        texture1: [uniforms, sampler, textures[1]],\n        texture2: [uniforms, sampler, textures[2]],\n    },\n})\n\n// 用户控制\ndocument.getElementById('btn1').onclick = () => {\n    renderer.switchBindGroupSet('renderer', 'texture0')\n}\ndocument.getElementById('btn2').onclick = () => {\n    renderer.switchBindGroupSet('renderer', 'texture1')\n}\ndocument.getElementById('btn3').onclick = () => {\n    renderer.switchBindGroupSet('renderer', 'texture2')\n}\n```\n\n#### renderer.updateBindGroupSetResources(passName, setName, resources)\n\n动态增、改设置的绑定组。这可以让你在运行时修改绑定组。\n\n```typescript\n// 添加新纹理到已有绑定组（假设textureSet绑定组已经添加到了main通道）\nconst newTexture = renderer.createTexture({ /* options */ })\nrenderer.updateBindGroupSetResources('main', 'textureSet', [\n    uniforms,\n    sampler,\n    newTexture,\n])\n\n// 即时创建一个新的绑定组\nrenderer.updateBindGroupSetResources('main', 'newSet', [\n    newUniforms,\n    newSampler,\n    anotherTexture,\n])\nrenderer.switchBindGroupSet('main', 'newSet')\n```\n\n可用于：\n\n- 实时流式传输纹理\n- 动态更新着色器参数\n- 运行时创建编程式内容\n- 高效内存资源管理\n\n### 渲染通道管理\n\n渲染器提供了灵活的渲染通道管理功能，你可以动态的开启、关闭、移除渲染通道。\n\n#### renderer.enablePass(passName)\n\n开启渲染通道。\n\n```typescript\nrenderer.enablePass('background-effect')\n```\n\n#### renderer.disablePass(passName)\n\n禁用渲染通道（在渲染过程中将跳过该通道的渲染）。\n\n```typescript\nrenderer.disablePass('post-process')\n```\n\n#### renderer.isPassEnabled(passName)\n\n检查通道当前是否开启。\n\n```typescript\nif (renderer.isPassEnabled('main-effect')) {\n    console.log('Main effect is active')\n}\n```\n\n\n\n#### renderer.removePass(passName)\n\n从渲染管线中永久删除渲染通道。\n\n```typescript\nconst removed = renderer.removePass('debug-pass')\nif (removed) {\n    console.log('Pass successfully removed')\n}\n```\n\n#### renderer.getEnabledPasses()\n\n获取所有开启的渲染通道。\n\n```typescript\nconst activePasses = renderer.getEnabledPasses()\nconsole.log(`Active passes: ${activePasses.length}`)\n```\n\n\n\n#### renderer.getAllPasses()\n\n获取所有渲染通道（包括开启和禁用的）。\n\n```typescript\nconst allPasses = renderer.getAllPasses()\nallPasses.forEach(pass => {\n    console.log(`Pass: ${pass.name}, Enabled: ${pass.enabled}`)\n})\n```\n\n#### 通道管理示例\n\n**开发调试**\n\n```typescript\n// Isolate a specific pass for debugging\nrenderer.disablePass('post-process')\nrenderer.disablePass('effects')\n\n// Only background will render\n\n// Re-enable all passes\nconst allPasses = renderer.getAllPasses()\nallPasses.forEach(pass => renderer.enablePass(pass.name))\n```\n\n**性能优化**\n\n```typescript\n// Disable expensive effects on low-end devices\nif (isLowEndDevice) {\n    renderer.disablePass('bloom')\n    renderer.disablePass('ssao')\n}\n```\n\n**动态功能切换**\n\n```typescript\n// UI controls for enabling/disabling effects\ndocument.getElementById('toggle-bloom').onclick = () => {\n    if (renderer.isPassEnabled('bloom')) {\n        renderer.disablePass('bloom')\n    }\n    else {\n        renderer.enablePass('bloom')\n    }\n}\n```\n\n\n\n### renderer.createSampler(options?)\n\n创建采样器，默认参数：\n\n```typescript\nconst options = {\n    magFilter: 'linear',\n    minFilter: 'linear',\n    addressModeU: 'clamp-to-edge',\n    addressModeV: 'clamp-to-edge',\n}\n\nconst sampler = renderer.createSampler(options)\n```\n\n## 🎯 Pass流程\n\n渲染器提供以下管理功能：\n\n1. **用户定义所有Pass**\n   - 用户完全控制所有资源的绑定\n   - 可以通过`getPassTexture(passName)`获取任意pass的输出纹理\n   - 可以通过`getPassByName(passName)`获取pass对象\n\n2. **纹理管理**\n   - 每个pass自动创建输出纹理（格式：`{passName}_output`）\n   - 用户可以手动将这些纹理绑定到其他pass\n   - 最后一个pass自动渲染到canvas\n\n3. **完全灵活性**\n   - 用户决定绑定顺序和方式\n   - 支持任意复杂的pass连接关系\n   - 可以创建循环依赖（如果需要的话）\n\n**示例用法：**\n```typescript\n// 方法1: 简单的链式引用\nrenderer.addPass({\n    name: 'background',\n    resources: [bgTexture, sampler1],\n})\n\nrenderer.addPass({\n    name: 'main_effect',\n    resources: [renderer.getPassTexture('background'), sampler2], // 引用background的输出\n})\n\nrenderer.addPass({\n    name: 'post_process',\n    resources: [renderer.getPassTexture('main_effect'), sampler3], // 引用main_effect的输出\n})\n\n// 方法2: 复杂的多pass混合\nrenderer.addPass({ name: 'layer1', resources: [textureA, sampler] })\nrenderer.addPass({ name: 'layer2', resources: [textureB, sampler] })\nrenderer.addPass({ name: 'layer3', resources: [textureC, sampler] })\n\n// 创建混合pass，同时引用多个不同的pass\nconst layer1Output = renderer.getPassTexture('layer1')\nconst layer2Output = renderer.getPassTexture('layer2')\nconst layer3Output = renderer.getPassTexture('layer3')\n\nrenderer.addPass({\n    name: 'composite',\n    resources: [layer1Output, layer2Output, layer3Output, finalSampler],\n})\n\n// 方法3: 动态更新绑定\nconst mainPass = renderer.getPassByName('main_effect')\nif (mainPass) {\n\n    // 运行时动态改变引用关系\n    mainPass.updateBindGroup([renderer.getPassTexture('layer1'), newSampler])\n}\n```\n\n**错误处理示例：**\n```typescript\n// 如果引用不存在的pass，会在渲染时抛出详细错误\nconst invalidTexture = renderer.getPassTexture('nonexistent_pass') // 这个pass不存在\nrenderer.addPass({\n    name: 'test',\n    resources: [invalidTexture, sampler], // 渲染时会抛出错误\n})\n\n// 错误信息: Cannot find pass named 'nonexistent_pass'. Available passes: [background, main_effect, ...]\n```\n\n## 🛠️ 开发\n\n```bash\n# 开发模式\npnpm dev\n\n# 构建\npnpm build\n```\n\n## 📝 许可证\n\nMIT License\n\n## 🤝 贡献\n\n欢迎提交Issue和Pull Request！\n","readmeFilename":"README.zh-CN.md"}