{"_id":"@canvas-tile-engine/renderer-webgl","_rev":"8-81a7c4c61c815d438d14b39377e4128c","name":"@canvas-tile-engine/renderer-webgl","dist-tags":{"latest":"0.7.0"},"versions":{"0.1.0":{"name":"@canvas-tile-engine/renderer-webgl","version":"0.1.0","keywords":["canvas","webgl","tile","engine","2d","map","game","grid","visualization","interactive","pan","zoom","gpu"],"author":{"name":"Enes Yüksel"},"license":"MIT","_id":"@canvas-tile-engine/renderer-webgl@0.1.0","maintainers":[{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"}],"homepage":"https://canvastileengine.dev","bugs":{"url":"https://github.com/enesyukselx/canvas-tile-engine/issues"},"dist":{"shasum":"079a0d2473795989072beef418898aeebcb29519","tarball":"https://registry.npmjs.org/@canvas-tile-engine/renderer-webgl/-/renderer-webgl-0.1.0.tgz","fileCount":9,"integrity":"sha512-6K8BtmCLljzhX24/Hv2kl+dQgZDr5dLPyTYJihALm00zkSODQGDqY9fyrV88D8kyhRHdgf8c+QWhipyT5xo/hQ==","signatures":[{"sig":"MEYCIQCGSrIh4nqNbb/EPC8BVgI/HM5QUOdQC3X4GdAnGmRt+QIhAKous54qR3mKCqtg8R56x266qrKvnKym2OwvKvJo4dPr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":396923},"main":"dist/index.cjs","_from":"file:canvas-tile-engine-renderer-webgl-0.1.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"oxlint","test":"vitest","build":"tsup","format":"oxfmt","typecheck":"tsc --noEmit","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"},"_resolved":"/tmp/fb1c2954609b9032ef698ef84f2feadc/canvas-tile-engine-renderer-webgl-0.1.0.tgz","_integrity":"sha512-6K8BtmCLljzhX24/Hv2kl+dQgZDr5dLPyTYJihALm00zkSODQGDqY9fyrV88D8kyhRHdgf8c+QWhipyT5xo/hQ==","repository":{"url":"git+https://github.com/enesyukselx/canvas-tile-engine.git","type":"git","directory":"packages/renderer-webgl"},"_npmVersion":"10.9.8","description":"Lightweight library for building interactive 2D grid-based maps and visualizations with WebGL","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@canvas-tile-engine/core":"^0.4.0"},"_hasShrinkwrap":false,"peerDependencies":{"@canvas-tile-engine/core":">=0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/renderer-webgl_0.1.0_1783598115898_0.7717449457521417","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@canvas-tile-engine/renderer-webgl","version":"0.1.1","keywords":["canvas","webgl","tile","engine","2d","map","game","grid","visualization","interactive","pan","zoom","gpu"],"author":{"name":"Enes Yüksel"},"license":"MIT","_id":"@canvas-tile-engine/renderer-webgl@0.1.1","maintainers":[{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"}],"homepage":"https://canvastileengine.dev","bugs":{"url":"https://github.com/enesyukselx/canvas-tile-engine/issues"},"dist":{"shasum":"e587d65f2d46e1ff1ca43061db46e4ce64be748f","tarball":"https://registry.npmjs.org/@canvas-tile-engine/renderer-webgl/-/renderer-webgl-0.1.1.tgz","fileCount":9,"integrity":"sha512-OM/B2k4VhylW8MKFU7HBKdQAFzfIaI3O4Q4aWooutIWH+FmxduB7fyUCab+F3974KoxJh6Q/jvsjeNKLqqPCGg==","signatures":[{"sig":"MEUCICq3lZUMQYryqy5wG17qjJ7yf+VAg1vzN1D/jBnqKWj3AiEAnVJkrnn/pEjoajH8Py6sa3Gidjw0Symj5/tPvOI2TMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":396923},"main":"dist/index.cjs","_from":"file:canvas-tile-engine-renderer-webgl-0.1.1.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"oxlint","test":"vitest","build":"tsup","format":"oxfmt","typecheck":"tsc --noEmit","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"},"_resolved":"/tmp/ea5c5e435c21bf050558acbcb9104edd/canvas-tile-engine-renderer-webgl-0.1.1.tgz","_integrity":"sha512-OM/B2k4VhylW8MKFU7HBKdQAFzfIaI3O4Q4aWooutIWH+FmxduB7fyUCab+F3974KoxJh6Q/jvsjeNKLqqPCGg==","repository":{"url":"git+https://github.com/enesyukselx/canvas-tile-engine.git","type":"git","directory":"packages/renderer-webgl"},"_npmVersion":"10.9.8","description":"Lightweight library for building interactive 2D grid-based maps and visualizations with WebGL","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@canvas-tile-engine/core":"^0.5.0"},"_hasShrinkwrap":false,"peerDependencies":{"@canvas-tile-engine/core":">=0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/renderer-webgl_0.1.1_1783686378085_0.34337270510315965","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@canvas-tile-engine/renderer-webgl","version":"0.2.0","keywords":["canvas","webgl","tile","engine","2d","map","game","grid","visualization","interactive","pan","zoom","gpu"],"author":{"name":"Enes Yüksel"},"license":"MIT","_id":"@canvas-tile-engine/renderer-webgl@0.2.0","maintainers":[{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"}],"homepage":"https://canvastileengine.dev","bugs":{"url":"https://github.com/enesyukselx/canvas-tile-engine/issues"},"dist":{"shasum":"cc259ed4e17f7f71f6b62be0753f8576f8d76d83","tarball":"https://registry.npmjs.org/@canvas-tile-engine/renderer-webgl/-/renderer-webgl-0.2.0.tgz","fileCount":9,"integrity":"sha512-DMqXjPd6WKorva/H9ofhOX51KEvVvR4u8kBxtUNXw7DMiuB095rJ09lMk/keQP+4/bx+bdsKV4eBzWSE8JxmDA==","signatures":[{"sig":"MEQCIE7u+PxIAEF1xfoG6A6P/IDZRz84KdycQzxogoTWgSWwAiBWDs1MY0rG8vgGHlkPUKVsIGh5XOeQsI0Zss4lHpoI2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":404197},"main":"dist/index.cjs","_from":"file:canvas-tile-engine-renderer-webgl-0.2.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"oxlint","test":"vitest","build":"tsup","format":"oxfmt","typecheck":"tsc --noEmit","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"},"_resolved":"/tmp/9bc247b98cf8f181a1cbe18b70b93d16/canvas-tile-engine-renderer-webgl-0.2.0.tgz","_integrity":"sha512-DMqXjPd6WKorva/H9ofhOX51KEvVvR4u8kBxtUNXw7DMiuB095rJ09lMk/keQP+4/bx+bdsKV4eBzWSE8JxmDA==","repository":{"url":"git+https://github.com/enesyukselx/canvas-tile-engine.git","type":"git","directory":"packages/renderer-webgl"},"_npmVersion":"10.9.8","description":"Lightweight library for building interactive 2D grid-based maps and visualizations with WebGL","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@canvas-tile-engine/core":"^0.6.0"},"_hasShrinkwrap":false,"peerDependencies":{"@canvas-tile-engine/core":">=0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/renderer-webgl_0.2.0_1783816564758_0.8881541611947497","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@canvas-tile-engine/renderer-webgl","version":"0.3.0","keywords":["canvas","webgl","tile","engine","2d","map","game","grid","visualization","interactive","pan","zoom","gpu"],"author":{"name":"Enes Yüksel"},"license":"MIT","_id":"@canvas-tile-engine/renderer-webgl@0.3.0","maintainers":[{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"}],"homepage":"https://canvastileengine.dev","bugs":{"url":"https://github.com/enesyukselx/canvas-tile-engine/issues"},"dist":{"shasum":"2a2b44f65d1a8020dc22f13068db025b7904214b","tarball":"https://registry.npmjs.org/@canvas-tile-engine/renderer-webgl/-/renderer-webgl-0.3.0.tgz","fileCount":9,"integrity":"sha512-2uz7ZO6trF59O3fPfqTK9St/qhWUQdqoNr1othqcpIOtq2u+o2WRZWiCDJpa3WG1ZX4nGjJz4Z+kZYMjOxy+oQ==","signatures":[{"sig":"MEYCIQCnKSmjXscxcJkczjp3lpwKzzkw3vrhM//0JnjWhRuyKwIhALbqnpjRFdgw6p3S0PFw5TD1VCqNSO+936aoD3+beYJt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":405705},"main":"dist/index.cjs","_from":"file:canvas-tile-engine-renderer-webgl-0.3.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"oxlint","test":"vitest","build":"tsup","format":"oxfmt","typecheck":"tsc --noEmit","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"},"_resolved":"/tmp/4149f5f784ab6a503d9579f0bd2d2551/canvas-tile-engine-renderer-webgl-0.3.0.tgz","_integrity":"sha512-2uz7ZO6trF59O3fPfqTK9St/qhWUQdqoNr1othqcpIOtq2u+o2WRZWiCDJpa3WG1ZX4nGjJz4Z+kZYMjOxy+oQ==","repository":{"url":"git+https://github.com/enesyukselx/canvas-tile-engine.git","type":"git","directory":"packages/renderer-webgl"},"_npmVersion":"10.9.8","description":"Lightweight library for building interactive 2D grid-based maps and visualizations with WebGL","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@canvas-tile-engine/core":"^0.7.0"},"_hasShrinkwrap":false,"peerDependencies":{"@canvas-tile-engine/core":">=0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/renderer-webgl_0.3.0_1783937943090_0.88156531019038","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@canvas-tile-engine/renderer-webgl","version":"0.4.0","keywords":["canvas","webgl","tile","engine","2d","map","game","grid","visualization","interactive","pan","zoom","gpu"],"author":{"name":"Enes Yüksel"},"license":"MIT","_id":"@canvas-tile-engine/renderer-webgl@0.4.0","maintainers":[{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"}],"homepage":"https://canvastileengine.dev","bugs":{"url":"https://github.com/enesyukselx/canvas-tile-engine/issues"},"dist":{"shasum":"e8e01a5fa133de737add3649a50dc110f85b211d","tarball":"https://registry.npmjs.org/@canvas-tile-engine/renderer-webgl/-/renderer-webgl-0.4.0.tgz","fileCount":9,"integrity":"sha512-Gw0uonBGBglscJ0YDQvki3jF7EZucncwxk5N8PA8ztzd/af/oi0fIW9zvDK+wJRsf0IDU81r9b4UXlHPM27yJA==","signatures":[{"sig":"MEUCIDZ22yjYowDqVVEkyLY0VDAYJOdVRQ5B8CnFS3zwxhAwAiEA6GWFZk7PXDH56FQN8v7sfy1UPShHAQNKsd/s8kBS2pQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":425467},"main":"dist/index.cjs","_from":"file:canvas-tile-engine-renderer-webgl-0.4.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"oxlint","test":"vitest","build":"tsup","format":"oxfmt","typecheck":"tsc --noEmit","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"},"_resolved":"/tmp/709664ff36fe5e6f2fd1d906166bfec1/canvas-tile-engine-renderer-webgl-0.4.0.tgz","_integrity":"sha512-Gw0uonBGBglscJ0YDQvki3jF7EZucncwxk5N8PA8ztzd/af/oi0fIW9zvDK+wJRsf0IDU81r9b4UXlHPM27yJA==","repository":{"url":"git+https://github.com/enesyukselx/canvas-tile-engine.git","type":"git","directory":"packages/renderer-webgl"},"_npmVersion":"10.9.8","description":"Lightweight library for building interactive 2D grid-based maps and visualizations with WebGL","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@canvas-tile-engine/core":"^0.8.0"},"_hasShrinkwrap":false,"peerDependencies":{"@canvas-tile-engine/core":">=0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/renderer-webgl_0.4.0_1784273894941_0.4217363696005716","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@canvas-tile-engine/renderer-webgl","version":"0.5.0","keywords":["canvas","webgl","tile","engine","2d","map","game","grid","visualization","interactive","pan","zoom","gpu"],"author":{"name":"Enes Yüksel"},"license":"MIT","_id":"@canvas-tile-engine/renderer-webgl@0.5.0","maintainers":[{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"}],"homepage":"https://canvastileengine.dev","bugs":{"url":"https://github.com/enesyukselx/canvas-tile-engine/issues"},"dist":{"shasum":"5f04f6810169d6d842a2f3af5e554513b0bc9a81","tarball":"https://registry.npmjs.org/@canvas-tile-engine/renderer-webgl/-/renderer-webgl-0.5.0.tgz","fileCount":9,"integrity":"sha512-/8qt0ZcrEcQbxWnM3VbEYRAhko0SfA7pOljrQdulf3IEtBwYmgDBn01cBELXm4clwGQQ0fnYmpc3BCJwvTPN5g==","signatures":[{"sig":"MEUCIQCYztsFuZK2u2rVbP63Pvwio44oaeyHcjRqt2bQfsWYGQIgcfnA8TOln9+BONqJkhQPuulK6ozHsOydsLbWbu3cbFM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":464016},"main":"dist/index.cjs","_from":"file:canvas-tile-engine-renderer-webgl-0.5.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"oxlint","test":"vitest","build":"tsup","format":"oxfmt","typecheck":"tsc --noEmit","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"},"_resolved":"/tmp/7751d666cda6f3df23a1757e1fb79b30/canvas-tile-engine-renderer-webgl-0.5.0.tgz","_integrity":"sha512-/8qt0ZcrEcQbxWnM3VbEYRAhko0SfA7pOljrQdulf3IEtBwYmgDBn01cBELXm4clwGQQ0fnYmpc3BCJwvTPN5g==","repository":{"url":"git+https://github.com/enesyukselx/canvas-tile-engine.git","type":"git","directory":"packages/renderer-webgl"},"_npmVersion":"10.9.8","description":"Lightweight library for building interactive 2D grid-based maps and visualizations with WebGL","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@canvas-tile-engine/core":"^0.9.0"},"_hasShrinkwrap":false,"peerDependencies":{"@canvas-tile-engine/core":">=0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/renderer-webgl_0.5.0_1784417569264_0.6164117544025842","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@canvas-tile-engine/renderer-webgl","version":"0.6.0","keywords":["canvas","webgl","tile","engine","2d","map","game","grid","visualization","interactive","pan","zoom","gpu"],"author":{"name":"Enes Yüksel"},"license":"MIT","_id":"@canvas-tile-engine/renderer-webgl@0.6.0","maintainers":[{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"}],"homepage":"https://canvastileengine.dev","bugs":{"url":"https://github.com/enesyukselx/canvas-tile-engine/issues"},"dist":{"shasum":"803280d5acb224e7bd4625595a851dc146fbaefd","tarball":"https://registry.npmjs.org/@canvas-tile-engine/renderer-webgl/-/renderer-webgl-0.6.0.tgz","fileCount":9,"integrity":"sha512-Jvjh1ZOd5G/Eqnq9uJuzWFfquHf5Ia/xGL62/hb9bqNY/jYJ35wvi4n9vTXMcO0oiqFZ97FBTa+02sGUK8mlmw==","signatures":[{"sig":"MEUCIQDV2W3KheSpB5Wwt0WrNzOeq+V0T++vGB7S1YxCmzr38gIgNtTSsrpL326qkrJZ5CSyaMI6XNSEAUKT2PV0Rh5sbb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469149},"main":"dist/index.cjs","_from":"file:canvas-tile-engine-renderer-webgl-0.6.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","lint":"oxlint","test":"vitest","build":"tsup","format":"oxfmt","typecheck":"tsc --noEmit","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"},"_resolved":"/tmp/fd85981477989d3f4fa8388c0a1bdb4b/canvas-tile-engine-renderer-webgl-0.6.0.tgz","_integrity":"sha512-Jvjh1ZOd5G/Eqnq9uJuzWFfquHf5Ia/xGL62/hb9bqNY/jYJ35wvi4n9vTXMcO0oiqFZ97FBTa+02sGUK8mlmw==","repository":{"url":"git+https://github.com/enesyukselx/canvas-tile-engine.git","type":"git","directory":"packages/renderer-webgl"},"_npmVersion":"10.9.8","description":"Lightweight library for building interactive 2D grid-based maps and visualizations with WebGL","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@canvas-tile-engine/core":"^0.10.0"},"_hasShrinkwrap":false,"peerDependencies":{"@canvas-tile-engine/core":">=0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/renderer-webgl_0.6.0_1784709462248_0.6948695299622905","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@canvas-tile-engine/renderer-webgl","version":"0.7.0","description":"Lightweight library for building interactive 2D grid-based maps and visualizations with WebGL","author":{"name":"Enes Yüksel"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/enesyukselx/canvas-tile-engine.git","directory":"packages/renderer-webgl"},"homepage":"https://canvastileengine.dev","bugs":{"url":"https://github.com/enesyukselx/canvas-tile-engine/issues"},"keywords":["canvas","webgl","tile","engine","2d","map","game","grid","visualization","interactive","pan","zoom","gpu"],"sideEffects":false,"main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"peerDependencies":{"@canvas-tile-engine/core":">=0.11.0"},"dependencies":{"@canvas-tile-engine/core":"^0.11.0"},"devDependencies":{"@canvas-tile-engine/renderer-shared":"^0.0.0"},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","lint":"oxlint","test":"vitest","test:coverage":"vitest run --coverage","format":"oxfmt","format:check":"oxfmt --check"},"_id":"@canvas-tile-engine/renderer-webgl@0.7.0","_integrity":"sha512-wV6QDf+Ql7CZwz/FjiYyLZcWOmMChsNIGQpWl/astCTOAUiitgSaGK7hOFdIdAFj5GEyxFATA4ppDJcbdDlAKg==","_resolved":"/tmp/001ac2574db00286d382e0adb4dcac24/canvas-tile-engine-renderer-webgl-0.7.0.tgz","_from":"file:canvas-tile-engine-renderer-webgl-0.7.0.tgz","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-wV6QDf+Ql7CZwz/FjiYyLZcWOmMChsNIGQpWl/astCTOAUiitgSaGK7hOFdIdAFj5GEyxFATA4ppDJcbdDlAKg==","shasum":"eefd704abea043e26d1cd90d1832b5858140f9b9","tarball":"https://registry.npmjs.org/@canvas-tile-engine/renderer-webgl/-/renderer-webgl-0.7.0.tgz","fileCount":9,"unpackedSize":488447,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDfXYQ/Z6QC5JIaCCcq4A7we549w3tRcWrV65XkENoHsAIhALEbrfKZziJ4nI1H0ObYNAGHpwZf7CnjQYniyhcxhez/"}]},"_npmUser":{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"},"directories":{},"maintainers":[{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/renderer-webgl_0.7.0_1786084307085_0.6578299856550387"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-09T11:55:15.665Z","modified":"2026-08-07T06:31:47.404Z","0.1.0":"2026-07-09T11:55:16.049Z","0.1.1":"2026-07-10T12:26:18.245Z","0.2.0":"2026-07-12T00:36:04.906Z","0.3.0":"2026-07-13T10:19:03.237Z","0.4.0":"2026-07-17T07:38:15.098Z","0.5.0":"2026-07-18T23:32:49.436Z","0.6.0":"2026-07-22T08:37:42.407Z","0.7.0":"2026-08-07T06:31:47.231Z"},"bugs":{"url":"https://github.com/enesyukselx/canvas-tile-engine/issues"},"author":{"name":"Enes Yüksel"},"license":"MIT","homepage":"https://canvastileengine.dev","keywords":["canvas","webgl","tile","engine","2d","map","game","grid","visualization","interactive","pan","zoom","gpu"],"repository":{"type":"git","url":"git+https://github.com/enesyukselx/canvas-tile-engine.git","directory":"packages/renderer-webgl"},"description":"Lightweight library for building interactive 2D grid-based maps and visualizations with WebGL","maintainers":[{"name":"enesyukselx","email":"enesyuksel9903@gmail.com"}],"readme":"# @canvas-tile-engine/renderer-webgl\n\n[![npm version](https://img.shields.io/npm/v/@canvas-tile-engine/renderer-webgl)](https://www.npmjs.com/package/@canvas-tile-engine/renderer-webgl)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@canvas-tile-engine/renderer-webgl)](https://bundlephobia.com/package/@canvas-tile-engine/renderer-webgl)\n[![license](https://img.shields.io/npm/l/@canvas-tile-engine/renderer-webgl)](../../LICENSE)\n\nGPU-accelerated WebGL renderer for Canvas Tile Engine. It implements the same renderer contract as `@canvas-tile-engine/renderer-canvas`, so most apps switch by changing only the renderer instance.\n\nUse it when your scene has many dynamic primitives and you want batched GPU drawing while keeping the same core engine, config, event callbacks, layers, and draw helpers.\n\n## Install\n\n```bash\nnpm install @canvas-tile-engine/core @canvas-tile-engine/renderer-webgl\n```\n\nWith React:\n\n```bash\nnpm install @canvas-tile-engine/core @canvas-tile-engine/react @canvas-tile-engine/renderer-webgl\n```\n\n## Quick Start\n\n```html\n<div id=\"map\">\n    <canvas></canvas>\n</div>\n```\n\n```ts\nimport { CanvasTileEngine, type CanvasTileEngineConfig } from \"@canvas-tile-engine/core\";\nimport { RendererWebGL } from \"@canvas-tile-engine/renderer-webgl\";\n\nconst wrapper = document.getElementById(\"map\") as HTMLDivElement;\n\nconst config: CanvasTileEngineConfig = {\n    scale: 48,\n    size: { width: 800, height: 500 },\n    backgroundColor: \"#0f172a\",\n    eventHandlers: { drag: true, zoom: true, hover: true, click: true },\n};\n\nconst engine = new CanvasTileEngine(wrapper, config, new RendererWebGL(), { x: 0, y: 0 });\n\nengine.drawGridLines(1, 1, \"#1e293b\", 0);\nengine.drawRect({ x: 0, y: 0, size: 1, radius: 4, style: { fillStyle: \"#22c55e\" } }, 1);\nengine.drawCircle({ x: 2, y: 1, size: 0.8, style: { fillStyle: \"#38bdf8\" } }, 1);\nengine.render();\n```\n\n## With React\n\n```tsx\nimport { CanvasTileEngine, useCanvasTileEngine } from \"@canvas-tile-engine/react\";\nimport { RendererWebGL } from \"@canvas-tile-engine/renderer-webgl\";\n\nexport function Map() {\n    const engine = useCanvasTileEngine();\n\n    return (\n        <CanvasTileEngine engine={engine} config={config} renderer={new RendererWebGL()}>\n            <CanvasTileEngine.GridLines cellSize={1} layer={0} />\n            <CanvasTileEngine.Rect items={tiles} layer={1} />\n        </CanvasTileEngine>\n    );\n}\n```\n\n## How It Works\n\n`RendererWebGL` creates two stacked canvases inside the wrapper:\n\n| Surface           | Draws                                                                        |\n| ----------------- | ---------------------------------------------------------------------------- |\n| WebGL canvas      | Rects, circles, images, lines, paths, grid lines, and shape strokes.         |\n| 2D overlay canvas | Text, coordinate overlay, debug HUD, `addDrawFunction`, and `engine.onDraw`. |\n\nGeometry is batched by layer. Filled rects, rounded rects, and circles use shader-based rendering; lines and paths are expanded into triangles; images are uploaded as cached GPU textures.\n\n## Differences From Canvas2D\n\n- Text and user custom draw functions live on the upper 2D overlay, so they composite above every WebGL primitive even if their layer number is lower. Ordering within each surface is preserved.\n- `drawStaticRect`, `drawStaticCircle`, and `drawStaticImage` delegate to dynamic drawing. A WebGL layer is already batched, so the Canvas2D offscreen static cache is usually unnecessary.\n- Image sources are uploaded to the GPU and cached. Dimension changes are detected automatically, but if you mutate pixels at the same size, call `renderer.invalidateTexture(source)`.\n- The renderer prefers WebGL 2 and falls back to WebGL 1. If neither is available, `init()` throws.\n\n## Canvas Fallback\n\n```ts\nimport { CanvasTileEngine } from \"@canvas-tile-engine/core\";\nimport { RendererCanvas } from \"@canvas-tile-engine/renderer-canvas\";\nimport { RendererWebGL } from \"@canvas-tile-engine/renderer-webgl\";\n\nlet engine;\n\ntry {\n    engine = new CanvasTileEngine(wrapper, config, new RendererWebGL(), center);\n} catch {\n    engine = new CanvasTileEngine(wrapper, config, new RendererCanvas(), center);\n}\n```\n\n## Texture Invalidation\n\n```ts\nconst renderer = new RendererWebGL();\nconst engine = new CanvasTileEngine(wrapper, config, renderer);\n\n// Later, after mutating an image/canvas source without changing dimensions:\nrenderer.invalidateTexture(source);\nengine.render();\n```\n\n## Documentation\n\n- Canvas2D renderer: [`@canvas-tile-engine/renderer-canvas`](../renderer-canvas)\n- Core engine: [`@canvas-tile-engine/core`](../core)\n- Full docs: [canvastileengine.dev](https://canvastileengine.dev)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}