{"_id":"gl-sprite-batch","_rev":"30-520cc2669c80c215c8eabb5a3b645dc4","name":"gl-sprite-batch","description":"a high level quad batcher for stackgl","dist-tags":{"latest":"3.1.1"},"versions":{"1.0.1":{"name":"gl-sprite-batch","version":"1.0.1","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"baboon-image":"^1.0.0","gl-aliased-vao":"^1.0.0","gl-buffer":"^2.0.9","lena":"^1.0.0","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"canvas-testbed":"^1.0.2","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","tape":"^3.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"c3685c8f5123145b60c84e4af2a33c5b63ec5646","_id":"gl-sprite-batch@1.0.1","_shasum":"c9787b32ad1618b462c43da994ea47f988ba117c","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"dist":{"shasum":"c9787b32ad1618b462c43da994ea47f988ba117c","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-1.0.1.tgz","integrity":"sha512-aeJwnZCtqi0X5MmZppqpwF9Zldcr9mUrvaes5DxH7qqAKW0JNR+35lBOX7+yyFUIKhoMkZ9JQZeLv96HC+QVtg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9oIQT216kiLVJp7YHsz3pKcATvoEaW8osvg2DFRvjrQIhAOft+c2QnDg8nLVRlUaVzOdVFKo96+FNljauWGmiq2pF"}]}},"1.0.2":{"name":"gl-sprite-batch","version":"1.0.2","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"baboon-image":"^1.0.0","gl-aliased-vao":"^1.0.0","gl-buffer":"^2.0.9","lena":"^1.0.0","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"canvas-testbed":"^1.0.2","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","tape":"^3.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"11b6c3ae092c09ea513f7559dff820531dfb7de2","_id":"gl-sprite-batch@1.0.2","_shasum":"ad40024f64bf81221e60914e6b5bdc4fb1bf0886","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"dist":{"shasum":"ad40024f64bf81221e60914e6b5bdc4fb1bf0886","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-1.0.2.tgz","integrity":"sha512-eZny71P3EjBcnz8TSRrMaPaVEUX5krUmpt+BPnBOSMSu+X2vKeqGds7kx9RLBF9cMCz1uaO6COArp13/x7Jfow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICOLFUjEBIPt1rE123M/t2tM5c1j0Dc2B9d1kuUYzX66AiB4EndYcCHjAoBjwfw3RJH3RuNl1f2/8QGsm9PyQtgEsw=="}]}},"1.0.3":{"name":"gl-sprite-batch","version":"1.0.3","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"gl-aliased-vao":"^1.0.0","gl-buffer":"^2.0.9","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"canvas-testbed":"^1.0.2","lena":"^1.0.0","baboon-image":"^1.0.0","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","tape":"^3.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"cd14554f983b67210f0efa2a9cd2f1349541ba31","_id":"gl-sprite-batch@1.0.3","_shasum":"dc3548644a7aaf3cdb223e2776caad4282475482","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"dist":{"shasum":"dc3548644a7aaf3cdb223e2776caad4282475482","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-1.0.3.tgz","integrity":"sha512-WtTj7wt0QmwxujuZwdrKIFY29pzM8UwoqyW6nO3RAbjDVjyU9EL7/SmI2kZx8JYl+yM9NH+kemUjC3h2oDAxzQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxDrD2JFuiVQWpX8FSIPv+Z3KM+2TowT2LsOxZbtrv4AIgf/1mLIVYjndQDh1PF2V4YIj1bqVCFproWxBSrCNO4PA="}]}},"2.0.0":{"name":"gl-sprite-batch","version":"2.0.0","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"gl-aliased-vao":"^1.0.0","gl-buffer":"^2.0.9","gl-white-texture":"^1.0.0","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"canvas-testbed":"^1.0.2","lena":"^1.0.0","baboon-image":"^1.0.0","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","tape":"^3.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"57cf1a7252b22dcb69cad185f1b97fa772a6e64c","_id":"gl-sprite-batch@2.0.0","_shasum":"1c13889e70e16f48d81e59aba17aa09d333707a3","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.32","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"dist":{"shasum":"1c13889e70e16f48d81e59aba17aa09d333707a3","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-2.0.0.tgz","integrity":"sha512-HNTzBsfsEFukbmhWWJ83jqIYO2/LfrHK7nUiSFAkK7YjP83EgbOzuvEbB2XV9kmuGypd5pOskCSP5cuIZVcRBA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA92CEjMx16spgQWvTieYaTHC0ZKGygMJCJyxDQpEI60AiB+GH490ySKdVmlSAN/WyplglN2gJ0qkPfedNCd4dgPoQ=="}]}},"3.0.0":{"name":"gl-sprite-batch","version":"3.0.0","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"gl-aliased-vao":"^1.0.0","gl-buffer":"^2.0.9","gl-matrix-vec2":"^2.2.1-npm","gl-white-texture":"^1.0.0","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"baboon-image":"^1.0.0","canvas-testbed":"^1.0.2","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","lena":"^1.0.0","tape":"^3.0.0","xtend":"^4.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"90e7640f459784233006013023f0d3437a811384","_id":"gl-sprite-batch@3.0.0","_shasum":"4929b0ff09b97077d0381f7c101cd3e3e1b87176","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.32","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"dist":{"shasum":"4929b0ff09b97077d0381f7c101cd3e3e1b87176","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-3.0.0.tgz","integrity":"sha512-TBCtnUc7ZyNKfhhLHUC0i2XuUtKDZcaDk2KntbNWl5aHYnbjgRB+k56BU+L+8RWZMtFskEMWOYcrWUDRWq35pw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDr/uXbw1VZF5FWTrs2c5e6DpyPUUA0/57kGIYMdIiLfAiBvado4eO9gdKXNsPwqL8ymoKH3HBL8sBfSzfmT6h96zQ=="}]}},"3.0.1":{"name":"gl-sprite-batch","version":"3.0.1","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"gl-aliased-vao":"^1.0.0","gl-buffer":"^2.0.9","gl-matrix-vec2":"^2.2.1-npm","gl-white-texture":"^1.0.0","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"baboon-image":"^1.0.0","canvas-testbed":"^1.0.2","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","lena":"^1.0.0","tape":"^3.0.0","xtend":"^4.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"93f2950e588ae636f14271ccc483c2dfeb1551c2","_id":"gl-sprite-batch@3.0.1","_shasum":"78861ca7f7fdb87a4dfdd9388b6783cf87bba207","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.32","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"dist":{"shasum":"78861ca7f7fdb87a4dfdd9388b6783cf87bba207","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-3.0.1.tgz","integrity":"sha512-dWe+Z9b6yZL3AeeUCKUw1UFVT+tgaAW0Mxfzf7F/Q08NoCMN43ne/BzjuTaLJOSxUP8GLvB7aqFsf/D/gLOXxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD22lbgrtb2d9XtPUscl3GQXiU+nSlhc1kDyzv4ZXKIvQIhAK9Gvn+Zuz/eGszWChicBq+BngI0yUt4cPLLNVos3Hdz"}]}},"3.0.2":{"name":"gl-sprite-batch","version":"3.0.2","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"gl-aliased-vao":"^1.0.0","gl-buffer":"^2.0.9","gl-matrix-vec2":"^2.2.1-npm","gl-white-texture":"^1.0.0","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"baboon-image":"^1.0.0","canvas-testbed":"^1.0.2","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","lena":"^1.0.0","tape":"^3.0.0","xtend":"^4.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"4f73226bddfbdcb1efcf22e22cc7e572d318da68","_id":"gl-sprite-batch@3.0.2","_shasum":"2e807ba9c08bb29d1dd83d5581581d38d53127a2","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.32","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"dist":{"shasum":"2e807ba9c08bb29d1dd83d5581581d38d53127a2","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-3.0.2.tgz","integrity":"sha512-6rwS1pS7BVu1b0D5q0B7/sD64PiVAdJiwnZfAg3q4VW9njqX80kJ5DGeYaqvPmfyuH97bAxkexnMoTk7h27qzw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYDZvmt04m3/i+OB9j++Y3v/gMN9PKoxet3HU+6CP5PAIgRQ+R6jSy87MD7O1t3o9Ye+4qv35WkD+PzqRPZBVUp+o="}]}},"3.0.3":{"name":"gl-sprite-batch","version":"3.0.3","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"gl-aliased-vao":"^1.0.0","gl-buffer":"^2.0.9","gl-matrix-vec2":"^2.2.1-npm","gl-white-texture":"^1.0.0","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"baboon-image":"^1.0.0","canvas-testbed":"^1.0.2","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","lena":"^1.0.0","tape":"^3.0.0","xtend":"^4.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"bb8258378f8709ae5c4fca5771672c7c1870d679","_id":"gl-sprite-batch@3.0.3","_shasum":"8a73297b0c6d1fbc9cd58187e2bede5264c77a76","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.32","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"dist":{"shasum":"8a73297b0c6d1fbc9cd58187e2bede5264c77a76","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-3.0.3.tgz","integrity":"sha512-UjEeCFQa4M9D4KcYpHRjFhmU6W6+4nJ4FNWIn7fqDX4AALWnObvROz1ZMOqvS3BrfaVgM9Ydu1grA6Xw4NkQgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEuYfKxmXPQbhLHQ9lvij7ekPeHuFeaPsMns3PuTdQ5nAiBXkDLGRkCqAgCka2LTlHubrW/5MjQFysCyULrIuD2i0w=="}]}},"3.0.4":{"name":"gl-sprite-batch","version":"3.0.4","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"gl-aliased-vao":"^1.0.0","gl-buffer":"^2.0.9","gl-matrix-vec2":"^2.2.1-npm","gl-white-texture":"^1.0.0","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"baboon-image":"^1.0.0","canvas-testbed":"^1.0.2","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","lena":"^1.0.0","tape":"^3.0.0","xtend":"^4.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"fd9e1cbabefbd7e1821ab287f1a086ea775a57f3","_id":"gl-sprite-batch@3.0.4","_shasum":"2d23a800809c79e8f032c47c2202e04a42c764e2","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.32","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"dist":{"shasum":"2d23a800809c79e8f032c47c2202e04a42c764e2","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-3.0.4.tgz","integrity":"sha512-rkGqxp5mrzOMI3VAPauPTSRk92KkkTeOiQW3bFkuCSto3yAH8dfsjSlgwRBjP5o+kVFN+PYZHTpBl4+1iMwXUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE2kdCrEDpR075vmX0SHUBxlqx0I8C/6nZd2WWhbsUxiAiBK+KoBTvm30MODb9Uu+S/ZzD4bJXHmaX/epG3OvxGXFw=="}]}},"3.0.5":{"name":"gl-sprite-batch","version":"3.0.5","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"gl-aliased-vao":"^1.0.0","gl-white-texture":"^1.0.0","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"baboon-image":"^1.0.0","canvas-testbed":"^1.0.2","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","lena":"^1.0.0","tape":"^3.0.0","xtend":"^4.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"644c3413d9a8d1af66628ade465ff3bcecf92445","_id":"gl-sprite-batch@3.0.5","_shasum":"d68795bb0912f19c149c0e7391d35b8778e7dfea","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.32","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"dist":{"shasum":"d68795bb0912f19c149c0e7391d35b8778e7dfea","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-3.0.5.tgz","integrity":"sha512-CC6aZLz1WVvkpAm70SrqvZRSeuBfbmyFEeFeeGkxDn2ZvnncCI+PCAHmR2QX7Cidx+sNhu9sm1S8mRfF0L1GtA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRVkLRch1cweHEeIbT4XlRF1A9e+rKb+MwwuS5IhlFkwIgZarbmfDmmlWhlR7ndtL6srcHK8NcBG9i1mpDsWp0bkQ="}]}},"3.0.6":{"name":"gl-sprite-batch","version":"3.0.6","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"gl-aliased-vao":"^1.0.0","gl-buffer":"^2.0.9","gl-white-texture":"^1.0.0","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"baboon-image":"^1.0.0","canvas-testbed":"^1.0.2","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","lena":"^1.0.0","tape":"^3.0.0","xtend":"^4.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"d7d95e2c37680ec09261c930b6dd79b23e311190","_id":"gl-sprite-batch@3.0.6","_shasum":"67e7d8326e4e139a02a19b1864fe7978fc773e9e","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.32","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"dist":{"shasum":"67e7d8326e4e139a02a19b1864fe7978fc773e9e","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-3.0.6.tgz","integrity":"sha512-ftFITEJVSdPpikfgB2whwyZfiEJk4GciRLYIBVcMe4EdzhvVFMcURRvJgzQbSLvnkFNRSgZdL1QCWp4AJTRgzQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBu5lsxeVJbeh9v0N4gGTeUc/9Y7VsawI2mAs4DeeSMwIhAL42kuXiixzermxFdmdXfEqXfXws7JotNJc5n9mXAirW"}]}},"3.0.7":{"name":"gl-sprite-batch","version":"3.0.7","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"gl-aliased-vao":"^1.0.1","gl-buffer":"^2.0.9","gl-white-texture":"^1.0.0","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"baboon-image":"^1.0.0","canvas-testbed":"^1.0.2","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","lena":"^1.0.0","tape":"^3.0.0","xtend":"^4.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"f165408c9b8a05df97ea9b236406e09dcfc9266d","_id":"gl-sprite-batch@3.0.7","_shasum":"98fb05fe145a43a8e0f576bb7265d90cad111ded","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.32","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"dist":{"shasum":"98fb05fe145a43a8e0f576bb7265d90cad111ded","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-3.0.7.tgz","integrity":"sha512-p8vIP8qT7815Xdlc9rsPAOqDCJXzTR6XQBwhD2/KmJeWxz9+YuiLuqjY5pTKxiBKzlsOQG5hHgN5H2u7tmR+qw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBBRin5Bd+/QllSB4w/iTe5dHGsns2LStcV0hK2XqhNQIgOFx83FVcna5IZenD6DZS5wKPVEwu3akhwvYY1cjxwk4="}]}},"3.1.0":{"name":"gl-sprite-batch","version":"3.1.0","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"gl-aliased-vao":"^1.0.1","gl-buffer":"^2.0.9","gl-white-texture":"^1.0.0","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"baboon-image":"^1.0.0","canvas-testbed":"^1.0.2","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","lena":"^1.0.0","tape":"^3.0.0","xtend":"^4.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"fef5d63fdf1200217624f0b08a1124f13fd1076e","_id":"gl-sprite-batch@3.1.0","_shasum":"98b75b9664909f32e88f527fedd6fa621ee5d79d","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.32","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"dist":{"shasum":"98b75b9664909f32e88f527fedd6fa621ee5d79d","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-3.1.0.tgz","integrity":"sha512-v3+yLWcTV/d0pqVOe5raz+ub252DEzLR1ZYv8b/jb2oNaAE3wkkEqan5YetGdz091IsuMwbMbmycm8iYDDZ2Vw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHpTBkMQtHJDCi+NFjswkJInMiIOfaZtSNfIX7qgfnzfAiEAzs3IBVkgq6nNSj8/sityTLZP/GOci2U3kxteTyPBMdY="}]}},"3.1.1":{"name":"gl-sprite-batch","version":"3.1.1","description":"a high level quad batcher for stackgl","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{"gl-aliased-vao":"^1.0.1","gl-buffer":"^2.0.9","gl-white-texture":"^1.0.0","mixes":"^1.0.3","number-util":"^1.0.3","premultiplied-rgba":"^1.0.0"},"devDependencies":{"baboon-image":"^1.0.0","canvas-testbed":"^1.0.2","gl-basic-shader":"^1.2.2","gl-mat4":"^1.0.0","gl-texture2d":"^2.0.7","lena":"^1.0.0","tape":"^3.0.0","xtend":"^4.0.0"},"scripts":{"test":"node test.js"},"keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"gitHead":"664a6dc437bab3916968015b4580574335422243","_id":"gl-sprite-batch@3.1.1","_shasum":"9d1a8bfda51df88d210a2d809c700c6eb67f4faf","_from":".","_npmVersion":"2.14.5","_nodeVersion":"0.12.7","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"dist":{"shasum":"9d1a8bfda51df88d210a2d809c700c6eb67f4faf","tarball":"https://registry.npmjs.org/gl-sprite-batch/-/gl-sprite-batch-3.1.1.tgz","integrity":"sha512-m+fcXWz7IS0oYICORkz8NdtnuyBLJWBFzNpWJBDPL3b7vOeRafQqW/+36UzAY5j5te/q4NgEMWKsw3zQETgnLQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEizQMZHPm5fbbqfsTdM9A/kiLnt/6w1vogfKrRAt3/XAiAfDM01diL3fIBDFOiPSWb0Hg+EU7TdMEQLFoiPfCvlPA=="}]},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}]}},"readme":"# gl-sprite-batch\n\n[![experimental](http://badges.github.io/stability-badges/dist/experimental.svg)](http://github.com/badges/stability-badges)\n\nThis is a high level 2D sprite (i.e. textured quad) batcher, ideal for optimized rendering of text glyphs, particles, sprites, rectangles/lines, icons, etc. It tries to push as many sprites into the same draw call as possible, until the capacity is reached or the texture changes. This allows it to take advantage of texture atlases for minimal draw calls.\n\nEach sprite is an indexed quad with its own set of attributes:\n\n- `color` (vec4) - the RGBA color for a sprite\n- `position` (vec2) - the x, y position\n- `texcoord` (vec2) the UV texcoords for this sprite\n- `shape` (vec2) - the width and height of the sprite's quad\n- `texture` (gl-texture2d) - a texture or sprite sheet\n\nNote that `shape` and `texture` are not actual *vertex* attributes, although they may affect each sprite.\n\nTypical Example:\n\n```js\n//during your render loop...\nbatch.bind(shader)\n\n//clear the batch to zero sprites\nbatch.clear()\n\n//add your \"sprites\"\nbatch.push({\n    position: [x, y],           //defaults to [0, 0]\n    shape: [width, height],     //defaults to [0, 0]\n    color: [1, 0, 0, 1],        //defaults to [1, 1, 1, 1]\n    texcoord: [0, 0, 0.5, 0.5], //defaults to [0, 0, 1, 1]\n    texture: myTex              //defaults to 2x2 opaque white tex\n})\n\n//flush any remaining sprites\nbatch.draw()\n\n//unbind it\nbatch.unbind()\n```\n\n## memory efficiency\n\nObject and array literals may be convenient for simple demos, but for larger applications this may lead to GC thrashing. For this you can use the bare `push()` method without any arguments, which will use whatever previous attributes have been set.\n\n```js\n//pushes two sprites with some shared attributes\nbatch.color = red\nbatch.shape = [width, height]\nbatch.texture = tex\nbatch.texcoord = [u, v, u2, v2]\n\nbatch.position = posA\nbatch.push()\n\nbatch.position = posB\nbatch.push()\n```\n\n## default texture\n\nIf you set the texture to `null` or `undefined`, it will use a [2x2 white texture](https://www.npmjs.org/package/gl-white-texture) while drawing. This is useful for drawing filled primitives like rectangles and lines.\n\n## transform\n\nOften games and UIs will need per-sprite transformations, like rotation, scaling and positioning. Instead of changing uniform values for each sprite, this is often better to do on the CPU. The batch exposes a `transform` field, which can be a 4x4 matrix in the form of an array. You can modify this before calling `push()` to perform vertex transformations on the CPU. By default it is `null`, and transformations are ignored. \n\n# Rendering Modes\n\nThe batch can be used for [dynamic](#dynamic) or [static](#static) quads. \n\n## dynamic\n\nDynamic rendering is the easiest and most convenient, and is ideal for particle systems and sprite-based games. In this case, the sprites are pushed after calling `batch.bind(shader)`. This means that it can flush to the GPU when it reaches the max capacity, or when a new texture is being drawn.\n\nTo minimize flushes, you should always aim to use texture atlases. You can also provide a `dynamic` hint to the constructor, which allows the WebGL buffers to be optimized for dynamic updates. \n\nThe default batch capacity is 100, which you may want to alter for your needs.\n\n```js\nvar Batch = require('gl-sprite-batch')\n\n//hint that we're using dynamic buffers\nvar batch = Batch(gl, { dynamic: true })\n\nfunction render(shader) {\n    //bind the batch with your desired shader\n    batch.bind(shader)\n\n    //clear the batch to zero sprites\n    batch.clear()\n\n    //draw a variety of sprites/textures...\n    batch.push({\n        texture: myTex,\n        position: [0, 0],\n        shape: [128, 128]\n    })\n    batch.push({\n        texture: otherTex,\n        position: [0, 0],\n        shape: [64, 64]\n    })\n    \n    //now flush any remaining sprites and unbind the VAO\n    batch.draw()\n    batch.unbind()\n}\n```\n\n## static\n\nA static batch is only suitable for a single texture (or sprite sheet) and a fixed capacity of sprites. This allows you to push a lot of sprites in a single draw call (like text glyphs) and leave them in a static buffer on the GPU.\n\nFor static usage, the sprites should be pushed before calling `bind()`. If you reach the max capacity, it will stop pushing new sprites to the batch. The batch will draw with whatever texture was last set (which means you can swap textures without updating any buffers). \n\nUsually this is only needed if you find that dynamic batching is leading to bottlenecks. \n\n```js\nvar Batch = require('gl-sprite-batch')\n\n//draws max 100 sprites\nvar batch = Batch(gl, { capacity: 100 })\n\n//push all our sprites\nsprites.forEach(function(s) {\n    batch.push(s)\n})\n\n//draw the static batch\nfunction render(shader) {\n    batch.bind(shader)\n    batch.draw()\n    batch.unbind()\n}\n```\n\n## Usage\n\n[![NPM](https://nodei.co/npm/gl-sprite-batch.png)](https://nodei.co/npm/gl-sprite-batch/)\n\n#### `batch = SpriteBatch(gl, [opts])`\n\nCreates a new sprite batch using the OpenGL context `gl`, with the given\noptions.\n\n- `capacity` the max # of sprites that will be issued in a single draw call, default 100\n- `dynamic` a hint for buffer usage; default false\n- `mode` the mode used during rendering, default `gl.TRIANGLES`\n- `premultiplied` whether to premultiply RGB colors by their alpha component before pushing them to buffers, default false\n\n\n#### `batch.create([opt])`\n\nDisposes of the current buffers and re-builds them with the specified options:\n\n- `capacity` the max # of sprites that will be issued in a single draw call, default 100\n- `dynamic` a hint for buffer usage; default false\n\n#### `batch.bind(shader)`\n\nBinds the vertex array and specified shader. If sprites are pushed after this, they may be flushed to the GPU (i.e. if the texture changes or the capacity is reached). \n\n#### `batch.draw()`\n\nDraws any remaining sprites to the screen. \n\n#### `batch.unbind()`\n\nUnbinds the vertex array.\n\n#### `batch.defaults()`\n\nResets the vertex attributes to their default states:\n\n```js\nbatch.texcoord = [0, 0, 1, 1]\nbatch.color = [1, 1, 1, 1]\nbatch.shape = [0, 0]\nbatch.position = [0, 0]\n```\n\n#### `batch.clear()`\n\nSets the buffer index to zero, essentially \"clearing\" the batch. Any subsequent sprites will be added to the start of the buffer.\n\n#### `batch.push([sprite])`\n\nPushes the current vertex attributes onto the stack for rendering. If `sprite` is specified, it will try using those fields, or their respective defaults if they are falsey in the `sprite` object (see [shorthand](#shorthand)). \n\n#### `batch.flush()`\n\nSubmits the current batch contents to the GPU, then calls `clear()`. This is needed during dynamic rendering, i.e. if we've reached the batch capacity, or if we're switching textures. This is also necessary before updating shader uniforms or changing GL state.\n\n#### `batch.dispose()`\n\nDisposes the batch and its buffers/VAO.\n\n#### `batch.premultiplied`\n\nA boolean, default `false`, that described whether to alpha premultiply the current color while pushing it onto the vertex attribute stack.\n\n#### `batch.capacity`\n\nA read-only number representing the maximum number of sprites this batch can draw at once. \n\n#### `batch.texture`\n\nA getter/setter for the batch's texture. If set to `null`, it will default to a [white 2x2 texture](https://www.npmjs.org/package/gl-white-texture).\n\n#### `batch.texcoord` \n#### `batch.color` \n#### `batch.shape` \n#### `batch.position`\n\nArrays for the current vertex attributes. These will not change unless a call to `push()` includes a `sprite` parameter.\n\n#### `batch.transform`\n\nA 4x4 matrix array to transform each 2D point by. Default null (i.e. no transformation).\n\n#### `batch.mode`\n\nThe primitive drawing mode set during initialization; default `gl.TRIANGLES`.\n\n## License\n\nMIT, see [LICENSE.md](http://github.com/mattdesl/gl-sprite-batch/blob/master/LICENSE.md) for details.\n","maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"time":{"modified":"2022-06-18T12:47:09.325Z","created":"2014-10-17T17:31:47.458Z","1.0.1":"2014-10-17T17:31:47.458Z","1.0.2":"2014-10-17T17:37:59.717Z","1.0.3":"2014-10-17T17:38:43.006Z","2.0.0":"2014-10-18T02:13:37.475Z","3.0.0":"2014-10-19T23:50:13.324Z","3.0.1":"2014-10-19T23:54:11.905Z","3.0.2":"2014-10-20T00:01:00.155Z","3.0.3":"2014-10-20T14:43:30.112Z","3.0.4":"2014-10-20T15:31:02.443Z","3.0.5":"2014-10-21T22:00:30.011Z","3.0.6":"2014-10-21T22:01:57.333Z","3.0.7":"2014-10-22T16:52:25.662Z","3.1.0":"2015-01-07T21:12:33.606Z","3.1.1":"2015-11-10T15:39:42.116Z"},"homepage":"https://github.com/mattdesl/gl-sprite-batch","keywords":["sprite","batch","gl","2d","image","draw","texture","tex","img","sprites","batcher","spritebatch","sheet","spritesheet"],"repository":{"type":"git","url":"git://github.com/mattdesl/gl-sprite-batch.git"},"author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"bugs":{"url":"https://github.com/mattdesl/gl-sprite-batch/issues"},"license":"MIT","readmeFilename":"README.md","users":{"rchiniquy":true}}