@swf2es/render 0.1.19 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/filter-plan.d.ts +5 -2
- package/dist/filter-plan.d.ts.map +1 -1
- package/dist/filter-plan.js +9 -6
- package/dist/filter-plan.js.map +1 -1
- package/dist/filter-shaders.d.ts +1 -1
- package/dist/filter-shaders.d.ts.map +1 -1
- package/dist/filter-shaders.js +3 -3
- package/dist/webgl/atlas.d.ts +8 -1
- package/dist/webgl/atlas.d.ts.map +1 -1
- package/dist/webgl/atlas.js +17 -2
- package/dist/webgl/atlas.js.map +1 -1
- package/dist/webgl/batches.d.ts +68 -18
- package/dist/webgl/batches.d.ts.map +1 -1
- package/dist/webgl/batches.js +252 -63
- package/dist/webgl/batches.js.map +1 -1
- package/dist/webgl/draws.d.ts +32 -11
- package/dist/webgl/draws.d.ts.map +1 -1
- package/dist/webgl/draws.js +114 -43
- package/dist/webgl/draws.js.map +1 -1
- package/dist/webgl/filters.d.ts +10 -0
- package/dist/webgl/filters.d.ts.map +1 -1
- package/dist/webgl/filters.js +50 -1
- package/dist/webgl/filters.js.map +1 -1
- package/dist/webgl/glyph-tables.d.ts +44 -0
- package/dist/webgl/glyph-tables.d.ts.map +1 -0
- package/dist/webgl/glyph-tables.js +148 -0
- package/dist/webgl/glyph-tables.js.map +1 -0
- package/dist/webgl/programs.d.ts +27 -8
- package/dist/webgl/programs.d.ts.map +1 -1
- package/dist/webgl/programs.js +49 -22
- package/dist/webgl/programs.js.map +1 -1
- package/package.json +2 -2
- package/src/filter-plan.ts +9 -6
- package/src/filter-shaders.ts +3 -3
- package/src/webgl/atlas.ts +23 -4
- package/src/webgl/batches.ts +316 -68
- package/src/webgl/draws.ts +129 -47
- package/src/webgl/filters.ts +55 -0
- package/src/webgl/glyph-tables.ts +179 -0
- package/src/webgl/programs.ts +49 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/webgl/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACL,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,MAAM,EACN,SAAS,EACT,aAAa,EACb,MAAM,EACN,WAAW,EAEX,WAAW,EACX,OAAO,EACP,OAAO,EACP,SAAS,EACT,cAAc,EACd,OAAO,EACP,WAAW,EACX,KAAK,GACN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA8B5C;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB;;;;GAIG;AACH,MAAM,MAAM,GAAG;;;;;;;;CAQd,CAAC;AAEF,MAAM,MAAM,GAAG,2CAA2C,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,KAAK,GAAG;;;;;;CAMb,CAAC;AAEF,iGAAiG;AACjG,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,KAAK,GAAG,QAAQ;SACnB,UAAU,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;SACjE,UAAU,CAAC,mBAAmB,EAAE,gCAAgC,CAAC,CAAC;IACrE,0FAA0F;IAC1F,IAAI,0DAA0D,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IAED,kEAAkE;IAClE,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,oGAAoG;AACpG,MAAM,IAAI,GAAG;;;;;EAKX,CAAC;AASH;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IAqBJ,OAAO;IApBT,EAAE,CAAyB;IAC3B,KAAK,CAAU;IACf,IAAI,CAAgB;IACpB,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;IAClD,+DAA+D;IACvD,QAAQ,GAAG,CAAC,CAAC;IACrB,iGAAiG;IACxF,KAAK,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IACtE,oGAAoG;IACnF,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;IACxB,OAAO,GAAiB,EAAE,CAAC;IAC3B,OAAO,GAAa,EAAE,CAAC;IACvB,UAAU,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACxF,oEAAoE;IAC5D,UAAU,GAAG,CAAC,CAAC;IAEvB,YACE,EAA0B,EAC1B,KAAc,EACd,IAAmB,EACF,OAAuB;uBAAvB,OAAO;QAExB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CACD,OAAgB,EAChB,KAAa,EACb,KAAQ,EACR,KAAa,EACb,MAAc,EACd,UAAkB,EAClB,MAAM,GAAwB,IAAI;QAElC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAQ,EAAE,KAAa,EAAE,MAAc;QAC3C,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACpF,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACK,OAAO,CAAC,IAAgB,EAAE,KAAQ;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACd,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAC7B,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACtC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;oBACvD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACvB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAM,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,QAAQ,CACN,IAAgB,EAChB,CAAS,EACT,OAAyC,EACzC,KAAc;QAEd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAiB,CAAC;QACjD,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAC;QAChD,6EAA6E;QAC7E,MAAM,OAAO,GACX,IAAI,CAAC,OAAO,KAAK,WAAW;YAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAgB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAChE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC7B,gFAAgF;YAChF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;YACnF,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,CACN,OAAO,EACP,eAAe,EACf,CAAC,EACD,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAC1C,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAC3C,CAAC;YACF,IAAI,CAAC,GAAG,CACN,OAAO,EACP,cAAc,EACd,CAAC,EACD,OAAO,CAAC,CAAC,IAAI,CAAC,EACd,OAAO,CAAC,CAAC,IAAI,CAAC,EACd,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,CACf,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChG,CAAC;IAED;;;;OAIG;IACK,GAAG,CAAC,IAAU,EAAE,IAAY,EAAE,KAAa,EAAE,CAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;QACjF,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,4CAA4C;QAC5C,IACE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAC1B,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACZ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,CAAC;gBACJ,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,CAAC;gBACJ,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,CAAC;gBACJ,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChC,MAAM;YACR;gBACE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,mDAAmD;IAC3C,UAAU,CAAC,IAAU,EAAE,IAAgB,EAAE,CAAS;QACxD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,KAAK,OAAO;gBACV,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,KAAK;gBACR,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,OAAO;gBACV,8DAA8D;gBAC9D,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzE,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,GAAG,CACN,IAAI,EACJ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EACnB,KAAK,EACL,MAAM,CAAC,EAAE,CAAC,EACV,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC9B,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC9B,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/B,CAAC;QACN,CAAC;IACH,CAAC;IAED,yDAAyD;IACjD,OAAO,CAAC,EAAU;QACxB,QAAQ,EAAE,EAAE,CAAC;YACX,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YACtC,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5C,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACjD,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1C,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAChD,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACjD,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YACtD,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACK,IAAI,CACV,IAAU,EACV,KAAmB,EACnB,SAAiB,EACjB,UAAkB,EAClB,MAAoB,EACpB,KAAa,EACb,MAAc,EACd,KAAK,GAAG,IAAI;QAEZ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1C,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACpB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,IAAI,CAAC,GAAG,CACN,IAAI,EACJ,YAAY,EACZ,CAAC,EACD,KAAK,CAAC,KAAK,GAAG,GAAG,EACjB,KAAK,CAAC,MAAM,GAAG,GAAG,EAClB,GAAG,GAAG,KAAK,CAAC,KAAK,EACjB,GAAG,GAAG,KAAK,CAAC,MAAM,CACnB,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/F,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAChF,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACzF,iDAAiD;QACjD,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,4DAA4D;IACpD,GAAG,CAAC,IAAY,EAAE,QAAgB;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxE,IAAI,GAAG;gBACL,OAAO;gBACP,QAAQ,EAAE,IAAI,GAAG,EAAE;gBACnB,IAAI,EAAE,IAAI,GAAG,EAAE;aAChB,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC/B,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;YACrE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;YACvE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;YACtE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qGAAqG;IAC7F,MAAM,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;YACpD,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qDAAqD;IAC7C,EAAE,CAAC,IAAU,EAAE,IAAY;QACjC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO;QACL,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/webgl/filters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { GlState } from "@swf2es/context3d/device";
|
|
2
|
+
/**
|
|
3
|
+
* Advanced text's modes and CSM cutoff tables (GeometryData.glyphs), each
|
|
4
|
+
* distinct one in a slot of a float texture the glyph program reads by
|
|
5
|
+
* texelFetch: the mode in a slot's first texel, its table's entries after
|
|
6
|
+
* it. They were a uniform array the shader indexed by each glyph's table
|
|
7
|
+
* start, the access that hung Intel's GPUs in the fill program's run table
|
|
8
|
+
* (#717), and uploaded whole for every text drawn. Texts alike share a slot; slots are only
|
|
9
|
+
* added, between the glyph atlas' repacks, which take them all afresh
|
|
10
|
+
* (reset), or once the texture is as large as it may be (full). Slot 0 is
|
|
11
|
+
* left for a text past the room (scratch), uploaded as it is drawn.
|
|
12
|
+
*/
|
|
13
|
+
export declare class GlyphTables {
|
|
14
|
+
private readonly gl;
|
|
15
|
+
private readonly state;
|
|
16
|
+
texture: WebGLTexture | null;
|
|
17
|
+
/** The slots' floats as uploaded and to upload, and the texture's lines. */
|
|
18
|
+
private data;
|
|
19
|
+
private words;
|
|
20
|
+
private lines;
|
|
21
|
+
private lineMost;
|
|
22
|
+
/** Slots taken, the first not yet uploaded, and whether the texture's lines are all taken. */
|
|
23
|
+
private count;
|
|
24
|
+
private uploaded;
|
|
25
|
+
full: boolean;
|
|
26
|
+
/** The first slot by its contents' hash, then the next of that hash, -1 for none. */
|
|
27
|
+
private readonly byHash;
|
|
28
|
+
private next;
|
|
29
|
+
constructor(gl: WebGL2RenderingContext, state: GlState);
|
|
30
|
+
/** No texture yet, nor slots, as the context comes or comes back. */
|
|
31
|
+
setUp(): void;
|
|
32
|
+
/** Every slot but the scratch let go of, for the texts to take theirs again. */
|
|
33
|
+
reset(): void;
|
|
34
|
+
/** The slot holding `mode` and `table`, taken if none does; -1 where the room is full. */
|
|
35
|
+
slot(mode: Float32Array, table: Float32Array): number;
|
|
36
|
+
/** The slots taken since uploaded: into a texture grown to hold them, all of them if grown. */
|
|
37
|
+
upload(): void;
|
|
38
|
+
/** The scratch slot made to hold `mode` and `table` now, for a text drawn next past the room. */
|
|
39
|
+
scratch(mode: Float32Array, table: Float32Array): number;
|
|
40
|
+
private write;
|
|
41
|
+
/** The texture made on the context, deleted. */
|
|
42
|
+
destroy(): void;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=glyph-tables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glyph-tables.d.ts","sourceRoot":"","sources":["../../src/webgl/glyph-tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAUxD;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAyB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAQ;IACpC,4EAA4E;IAC5E,OAAO,CAAC,IAAI,CAAgD;IAC5D,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAK;IACrB,8FAA8F;IAC9F,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAK;IACrB,IAAI,UAAS;IACb,qFAAqF;IACrF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,IAAI,CAAgC;IAE5C,YAAY,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAGrD;IAED,qEAAqE;IACrE,KAAK,IAAI,IAAI,CAKZ;IAED,gFAAgF;IAChF,KAAK,IAAI,IAAI,CAKZ;IAED,0FAA0F;IAC1F,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAkDpD;IAED,+FAA+F;IAC/F,MAAM,IAAI,IAAI,CAuCb;IAED,iGAAiG;IACjG,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAOvD;IAED,OAAO,CAAC,KAAK;IAMb,gDAAgD;IAChD,OAAO,IAAI,IAAI,CAMd;CACF"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { TABLE_ENTRIES, TABLE_LINE, TABLE_SLOT, TABLE_UNIT } from "./programs.js";
|
|
2
|
+
/** Floats a slot: its texels' four each. */
|
|
3
|
+
const SLOT_FLOATS = TABLE_SLOT * 4;
|
|
4
|
+
/** Slots a line of the texture. */
|
|
5
|
+
const SLOTS_A_LINE = TABLE_LINE / TABLE_SLOT;
|
|
6
|
+
/** Floats a text's mode and table take of a slot, compared and hashed. */
|
|
7
|
+
const USED_FLOATS = 4 + TABLE_ENTRIES * 4;
|
|
8
|
+
/**
|
|
9
|
+
* Advanced text's modes and CSM cutoff tables (GeometryData.glyphs), each
|
|
10
|
+
* distinct one in a slot of a float texture the glyph program reads by
|
|
11
|
+
* texelFetch: the mode in a slot's first texel, its table's entries after
|
|
12
|
+
* it. They were a uniform array the shader indexed by each glyph's table
|
|
13
|
+
* start, the access that hung Intel's GPUs in the fill program's run table
|
|
14
|
+
* (#717), and uploaded whole for every text drawn. Texts alike share a slot; slots are only
|
|
15
|
+
* added, between the glyph atlas' repacks, which take them all afresh
|
|
16
|
+
* (reset), or once the texture is as large as it may be (full). Slot 0 is
|
|
17
|
+
* left for a text past the room (scratch), uploaded as it is drawn.
|
|
18
|
+
*/
|
|
19
|
+
export class GlyphTables {
|
|
20
|
+
gl;
|
|
21
|
+
state;
|
|
22
|
+
texture = null;
|
|
23
|
+
/** The slots' floats as uploaded and to upload, and the texture's lines. */
|
|
24
|
+
data = new Float32Array(SLOT_FLOATS * SLOTS_A_LINE);
|
|
25
|
+
words = new Uint32Array(this.data.buffer);
|
|
26
|
+
lines = 0;
|
|
27
|
+
lineMost = 1;
|
|
28
|
+
/** Slots taken, the first not yet uploaded, and whether the texture's lines are all taken. */
|
|
29
|
+
count = 1;
|
|
30
|
+
uploaded = 1;
|
|
31
|
+
full = false;
|
|
32
|
+
/** The first slot by its contents' hash, then the next of that hash, -1 for none. */
|
|
33
|
+
byHash = new Map();
|
|
34
|
+
next = new Int32Array(SLOTS_A_LINE);
|
|
35
|
+
constructor(gl, state) {
|
|
36
|
+
this.gl = gl;
|
|
37
|
+
this.state = state;
|
|
38
|
+
}
|
|
39
|
+
/** No texture yet, nor slots, as the context comes or comes back. */
|
|
40
|
+
setUp() {
|
|
41
|
+
this.texture = null;
|
|
42
|
+
this.lines = 0;
|
|
43
|
+
this.lineMost = this.gl.getParameter(this.gl.MAX_TEXTURE_SIZE);
|
|
44
|
+
this.reset();
|
|
45
|
+
}
|
|
46
|
+
/** Every slot but the scratch let go of, for the texts to take theirs again. */
|
|
47
|
+
reset() {
|
|
48
|
+
this.count = 1;
|
|
49
|
+
this.uploaded = 1;
|
|
50
|
+
this.full = false;
|
|
51
|
+
this.byHash.clear();
|
|
52
|
+
}
|
|
53
|
+
/** The slot holding `mode` and `table`, taken if none does; -1 where the room is full. */
|
|
54
|
+
slot(mode, table) {
|
|
55
|
+
let hash = 0x811c9dc5;
|
|
56
|
+
const modeWords = new Uint32Array(mode.buffer, mode.byteOffset, 4);
|
|
57
|
+
const tableWords = new Uint32Array(table.buffer, table.byteOffset, TABLE_ENTRIES * 4);
|
|
58
|
+
for (let i = 0; i < 4; i++) {
|
|
59
|
+
hash = Math.imul(hash ^ modeWords[i], 0x01000193);
|
|
60
|
+
}
|
|
61
|
+
for (let i = 0; i < tableWords.length; i++) {
|
|
62
|
+
hash = Math.imul(hash ^ tableWords[i], 0x01000193);
|
|
63
|
+
}
|
|
64
|
+
const words = this.words;
|
|
65
|
+
let s = this.byHash.get(hash) ?? -1;
|
|
66
|
+
for (; s >= 0; s = this.next[s]) {
|
|
67
|
+
const at = s * SLOT_FLOATS;
|
|
68
|
+
let k = 0;
|
|
69
|
+
while (k < 4 && words[at + k] === modeWords[k]) {
|
|
70
|
+
k++;
|
|
71
|
+
}
|
|
72
|
+
while (k < USED_FLOATS && words[at + k] === tableWords[k - 4]) {
|
|
73
|
+
k++;
|
|
74
|
+
}
|
|
75
|
+
if (k === USED_FLOATS) {
|
|
76
|
+
return s;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (this.count >= this.lineMost * SLOTS_A_LINE) {
|
|
80
|
+
this.full = true;
|
|
81
|
+
return -1;
|
|
82
|
+
}
|
|
83
|
+
s = this.count++;
|
|
84
|
+
if (this.count * SLOT_FLOATS > this.data.length) {
|
|
85
|
+
const grown = new Float32Array(this.data.length * 2);
|
|
86
|
+
grown.set(this.data);
|
|
87
|
+
this.data = grown;
|
|
88
|
+
this.words = new Uint32Array(grown.buffer);
|
|
89
|
+
const next = new Int32Array(this.next.length * 2);
|
|
90
|
+
next.set(this.next);
|
|
91
|
+
this.next = next;
|
|
92
|
+
}
|
|
93
|
+
this.write(s, mode, table);
|
|
94
|
+
this.next[s] = this.byHash.get(hash) ?? -1;
|
|
95
|
+
this.byHash.set(hash, s);
|
|
96
|
+
return s;
|
|
97
|
+
}
|
|
98
|
+
/** The slots taken since uploaded: into a texture grown to hold them, all of them if grown. */
|
|
99
|
+
upload() {
|
|
100
|
+
const gl = this.gl;
|
|
101
|
+
if (this.uploaded === this.count || gl.isContextLost()) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const lines = Math.ceil(this.count / SLOTS_A_LINE);
|
|
105
|
+
let from = Math.floor(this.uploaded / SLOTS_A_LINE);
|
|
106
|
+
if (!this.texture || lines > this.lines) {
|
|
107
|
+
if (this.texture) {
|
|
108
|
+
this.state.dropTexture(this.texture);
|
|
109
|
+
gl.deleteTexture(this.texture);
|
|
110
|
+
}
|
|
111
|
+
this.lines = Math.min(this.lineMost, Math.max(lines, this.lines * 2));
|
|
112
|
+
this.texture = gl.createTexture();
|
|
113
|
+
this.state.bindTexture(TABLE_UNIT, this.texture);
|
|
114
|
+
this.state.activeTexture(TABLE_UNIT);
|
|
115
|
+
gl.texStorage2D(gl.TEXTURE_2D, 1, gl.RGBA32F, TABLE_LINE, this.lines);
|
|
116
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
|
117
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
|
|
118
|
+
from = 0;
|
|
119
|
+
}
|
|
120
|
+
this.state.bindTexture(TABLE_UNIT, this.texture);
|
|
121
|
+
this.state.activeTexture(TABLE_UNIT);
|
|
122
|
+
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, from, TABLE_LINE, lines - from, gl.RGBA, gl.FLOAT, this.data, from * TABLE_LINE * 4);
|
|
123
|
+
this.uploaded = this.count;
|
|
124
|
+
}
|
|
125
|
+
/** The scratch slot made to hold `mode` and `table` now, for a text drawn next past the room. */
|
|
126
|
+
scratch(mode, table) {
|
|
127
|
+
this.write(0, mode, table);
|
|
128
|
+
const gl = this.gl;
|
|
129
|
+
this.state.bindTexture(TABLE_UNIT, this.texture);
|
|
130
|
+
this.state.activeTexture(TABLE_UNIT);
|
|
131
|
+
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, TABLE_SLOT, 1, gl.RGBA, gl.FLOAT, this.data, 0);
|
|
132
|
+
return 0;
|
|
133
|
+
}
|
|
134
|
+
write(s, mode, table) {
|
|
135
|
+
const at = s * SLOT_FLOATS;
|
|
136
|
+
this.data.set(mode.subarray(0, 4), at);
|
|
137
|
+
this.data.set(table.subarray(0, TABLE_ENTRIES * 4), at + 4);
|
|
138
|
+
}
|
|
139
|
+
/** The texture made on the context, deleted. */
|
|
140
|
+
destroy() {
|
|
141
|
+
if (this.texture) {
|
|
142
|
+
this.state.dropTexture(this.texture);
|
|
143
|
+
this.gl.deleteTexture(this.texture);
|
|
144
|
+
this.texture = null;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=glyph-tables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glyph-tables.js","sourceRoot":"","sources":["../../src/webgl/glyph-tables.ts"],"names":[],"mappings":"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"}
|
package/dist/webgl/programs.d.ts
CHANGED
|
@@ -17,6 +17,13 @@ export declare const TINT_AT = 7;
|
|
|
17
17
|
export declare const DRAW_AT = 8;
|
|
18
18
|
/** The most cutoff table entries a text's draw takes, as the player's text/saffron.ts builds them. */
|
|
19
19
|
export declare const TABLE_ENTRIES = 48;
|
|
20
|
+
/**
|
|
21
|
+
* Texels a text's slot in the glyph tables' texture (GlyphTables): its mode,
|
|
22
|
+
* then its table's entries; and texels a line of it. Powers of two, which
|
|
23
|
+
* the vertex shader splits a slot's texel into column and line with.
|
|
24
|
+
*/
|
|
25
|
+
export declare const TABLE_SLOT = 64;
|
|
26
|
+
export declare const TABLE_LINE = 1024;
|
|
20
27
|
/** Segments a row of the outlines' texture, as the player's text/saffron.ts stores them. */
|
|
21
28
|
export declare const OUTLINE_ROW = 1024;
|
|
22
29
|
/**
|
|
@@ -46,6 +53,12 @@ export declare const OUTLINE_UNIT = 7;
|
|
|
46
53
|
export declare const FILL_UNIT = 8;
|
|
47
54
|
/** The multi-draw row table's unit, past the fill textures. */
|
|
48
55
|
export declare const RUN_UNIT: number;
|
|
56
|
+
/** The merged fills' rows' unit (FillBatches), past the run table. */
|
|
57
|
+
export declare const MERGED_UNIT: number;
|
|
58
|
+
/** The merged fills' rows a line of their integer texture: a power of two, as for RUN_MOST. */
|
|
59
|
+
export declare const MERGED_LINE = 1024;
|
|
60
|
+
/** The glyph tables' unit (GlyphTables), past the merged fills' rows. */
|
|
61
|
+
export declare const TABLE_UNIT: number;
|
|
49
62
|
/**
|
|
50
63
|
* Places a vertex by its row's transform, on a quarter of a pixel of
|
|
51
64
|
* Flash's (uUnit of them a stage pixel, from the stage's origin) where it
|
|
@@ -53,10 +66,13 @@ export declare const RUN_UNIT: number;
|
|
|
53
66
|
* space), and passes on its straight colour, the row's colour transform
|
|
54
67
|
* and the texture it samples. uRow names the draw's row (FILL_SLOT); with
|
|
55
68
|
* `multi` (WEBGL_multi_draw), uRunTable names each draw's of a multi-draw by
|
|
56
|
-
* gl_DrawID, which is 0 in a draw of its own.
|
|
57
|
-
*
|
|
69
|
+
* gl_DrawID, which is 0 in a draw of its own. With `merged`, as with
|
|
70
|
+
* `multi`, a merged fill's vertices carry as aDraw where its packed row is
|
|
71
|
+
* in uMergedRows, which the stream keeps for its copy, so that the row
|
|
72
|
+
* changes from frame to frame where the vertices need not; the atlas leaves
|
|
73
|
+
* that attribute disabled and negative.
|
|
58
74
|
*/
|
|
59
|
-
export declare const fillVertex: (multi: boolean) => string;
|
|
75
|
+
export declare const fillVertex: (multi: boolean, merged?: boolean) => string;
|
|
60
76
|
/**
|
|
61
77
|
* Flash's colour transform on the straight colour, clamped, then
|
|
62
78
|
* premultiplied for blending: the vertex' colour, or with a texture the
|
|
@@ -88,11 +104,14 @@ export declare const meshFragment = "#version 300 es\nprecision highp float;\nin
|
|
|
88
104
|
* pixels to Flash's, uUnit of them a stage pixel, on their grid from the
|
|
89
105
|
* stage's origin, a BitmapData's in a draw. A glyph's pen stands where its
|
|
90
106
|
* text's origin, at a whole pixel, puts it, snapped as its grid fits it
|
|
91
|
-
* (
|
|
92
|
-
* and its quad reaches out past its outline by the furthest
|
|
93
|
-
* colour is drawn under the row's colour transform, light or
|
|
94
|
-
* chooses its table.
|
|
95
|
-
*
|
|
107
|
+
* (its mode: gridFitType 0 none, 1 pixel, 2 subpixel, thickness,
|
|
108
|
+
* sharpness), and its quad reaches out past its outline by the furthest
|
|
109
|
+
* cutoff. Its colour is drawn under the row's colour transform, light or
|
|
110
|
+
* dark as adl chooses its table. The text's mode and tables are in its slot
|
|
111
|
+
* of uTables (uTable; GlyphTables), read by texelFetch: not a uniform array
|
|
112
|
+
* indexed by each glyph's table start, the access that hung Intel's GPUs
|
|
113
|
+
* in the fill program's run table. aOrigin: the pen, and its light and dark tables,
|
|
114
|
+
* each its first entry plus 64 times its entries; aGlyph: a corner of its
|
|
96
115
|
* outline's bounds and the way out from it; aRun: its segments, first and
|
|
97
116
|
* count, the pixels of a unit of its outline, and its size.
|
|
98
117
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"programs.d.ts","sourceRoot":"","sources":["../../src/webgl/programs.ts"],"names":[],"mappings":"AAkBA,2CAA2C;AAC3C,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B;;;GAGG;AACH,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,oGAAoG;AACpG,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,kEAAkE;AAClE,eAAO,MAAM,OAAO,IAAI,CAAC;AAEzB,sGAAsG;AACtG,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,4FAA4F;AAC5F,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,MAAM,CAAC;AAE5B,qFAAqF;AACrF,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,QAAQ,QAAU,CAAC;AAEhC,sGAAsG;AACtG,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,oEAAoE;AACpE,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,0FAA0F;AAC1F,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,uFAAuF;AACvF,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,+DAA+D;AAC/D,eAAO,MAAM,QAAQ,QAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"programs.d.ts","sourceRoot":"","sources":["../../src/webgl/programs.ts"],"names":[],"mappings":"AAkBA,2CAA2C;AAC3C,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B;;;GAGG;AACH,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,oGAAoG;AACpG,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,kEAAkE;AAClE,eAAO,MAAM,OAAO,IAAI,CAAC;AAEzB,sGAAsG;AACtG,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC;;;;GAIG;AACH,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,UAAU,OAAO,CAAC;AAC/B,4FAA4F;AAC5F,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,MAAM,CAAC;AAE5B,qFAAqF;AACrF,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,QAAQ,QAAU,CAAC;AAEhC,sGAAsG;AACtG,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,oEAAoE;AACpE,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,0FAA0F;AAC1F,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,uFAAuF;AACvF,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,+DAA+D;AAC/D,eAAO,MAAM,QAAQ,QAA4B,CAAC;AAClD,sEAAsE;AACtE,eAAO,MAAM,WAAW,QAAe,CAAC;AACxC,+FAA+F;AAC/F,eAAO,MAAM,WAAW,OAAO,CAAC;AAChC,yEAAyE;AACzE,eAAO,MAAM,UAAU,QAAkB,CAAC;AAE1C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,UAAW,OAAO,6BAmCxC,CAAC;AAiBF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,QAkCxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAsBtB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,0qEAqExB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,YAAY,QA0GxB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,QAwD1B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,wPAO3B,CAAC;AAeF,kHAAkH;AAClH,eAAO,MAAM,WAAW,QAAqB,CAAC;AAuD9C;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,QAmB7B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QA0C7B,CAAC"}
|
package/dist/webgl/programs.js
CHANGED
|
@@ -19,6 +19,13 @@ export const TINT_AT = 7;
|
|
|
19
19
|
export const DRAW_AT = 8;
|
|
20
20
|
/** The most cutoff table entries a text's draw takes, as the player's text/saffron.ts builds them. */
|
|
21
21
|
export const TABLE_ENTRIES = 48;
|
|
22
|
+
/**
|
|
23
|
+
* Texels a text's slot in the glyph tables' texture (GlyphTables): its mode,
|
|
24
|
+
* then its table's entries; and texels a line of it. Powers of two, which
|
|
25
|
+
* the vertex shader splits a slot's texel into column and line with.
|
|
26
|
+
*/
|
|
27
|
+
export const TABLE_SLOT = 64;
|
|
28
|
+
export const TABLE_LINE = 1024;
|
|
22
29
|
/** Segments a row of the outlines' texture, as the player's text/saffron.ts stores them. */
|
|
23
30
|
export const OUTLINE_ROW = 1024;
|
|
24
31
|
/**
|
|
@@ -48,6 +55,12 @@ export const OUTLINE_UNIT = 7;
|
|
|
48
55
|
export const FILL_UNIT = 8;
|
|
49
56
|
/** The multi-draw row table's unit, past the fill textures. */
|
|
50
57
|
export const RUN_UNIT = FILL_UNIT + FILL_TEXTURES;
|
|
58
|
+
/** The merged fills' rows' unit (FillBatches), past the run table. */
|
|
59
|
+
export const MERGED_UNIT = RUN_UNIT + 1;
|
|
60
|
+
/** The merged fills' rows a line of their integer texture: a power of two, as for RUN_MOST. */
|
|
61
|
+
export const MERGED_LINE = 1024;
|
|
62
|
+
/** The glyph tables' unit (GlyphTables), past the merged fills' rows. */
|
|
63
|
+
export const TABLE_UNIT = MERGED_UNIT + 1;
|
|
51
64
|
/**
|
|
52
65
|
* Places a vertex by its row's transform, on a quarter of a pixel of
|
|
53
66
|
* Flash's (uUnit of them a stage pixel, from the stage's origin) where it
|
|
@@ -55,17 +68,21 @@ export const RUN_UNIT = FILL_UNIT + FILL_TEXTURES;
|
|
|
55
68
|
* space), and passes on its straight colour, the row's colour transform
|
|
56
69
|
* and the texture it samples. uRow names the draw's row (FILL_SLOT); with
|
|
57
70
|
* `multi` (WEBGL_multi_draw), uRunTable names each draw's of a multi-draw by
|
|
58
|
-
* gl_DrawID, which is 0 in a draw of its own.
|
|
59
|
-
*
|
|
71
|
+
* gl_DrawID, which is 0 in a draw of its own. With `merged`, as with
|
|
72
|
+
* `multi`, a merged fill's vertices carry as aDraw where its packed row is
|
|
73
|
+
* in uMergedRows, which the stream keeps for its copy, so that the row
|
|
74
|
+
* changes from frame to frame where the vertices need not; the atlas leaves
|
|
75
|
+
* that attribute disabled and negative.
|
|
60
76
|
*/
|
|
61
|
-
export const fillVertex = (multi) => `#version 300 es
|
|
77
|
+
export const fillVertex = (multi, merged = multi) => `#version 300 es
|
|
62
78
|
${multi ? "#extension GL_ANGLE_multi_draw : require" : ""}
|
|
63
79
|
precision highp float;
|
|
64
80
|
layout(location = ${POSITION_AT}) in vec2 aPosition;
|
|
65
81
|
layout(location = ${TEXEL_AT}) in vec2 aTexel;
|
|
66
82
|
layout(location = ${COLOR_AT}) in vec4 aColor;
|
|
67
83
|
uniform highp sampler2D uRows;
|
|
68
|
-
${
|
|
84
|
+
${merged ? `layout(location = ${DRAW_AT}) in int aDraw;\nuniform highp isampler2D uMergedRows;` : ""}
|
|
85
|
+
${multi ? "uniform highp isampler2D uRunTable;\nuniform int uRunBase;" : "uniform int uRow;"}
|
|
69
86
|
uniform vec4 uView;
|
|
70
87
|
uniform float uUnit;
|
|
71
88
|
out vec4 vColor;
|
|
@@ -75,7 +92,7 @@ flat out vec4 vAdd;
|
|
|
75
92
|
flat out int vSlot;
|
|
76
93
|
|
|
77
94
|
void main(void) {
|
|
78
|
-
int draw = ${
|
|
95
|
+
int draw = ${merged ? `aDraw >= 0 ? texelFetch(uMergedRows, ivec2(aDraw & ${MERGED_LINE - 1}, aDraw >> ${Math.log2(MERGED_LINE)}), 0).r : ` : ""}${multi ? `texelFetch(uRunTable, ivec2((uRunBase + gl_DrawID) & ${RUN_MOST - 1}, (uRunBase + gl_DrawID) >> ${Math.log2(RUN_MOST)}), 0).r` : "uRow"};
|
|
79
96
|
int row = draw & ${(1 << FILL_SLOT) - 1};
|
|
80
97
|
vSlot = (draw >> ${FILL_SLOT}) & 15;
|
|
81
98
|
ivec2 at = ivec2((row & ${ROWS_A_LINE - 1}) * ${ROW_TEXELS}, row >> ${Math.log2(ROWS_A_LINE)});
|
|
@@ -260,11 +277,14 @@ void main(void) {
|
|
|
260
277
|
* pixels to Flash's, uUnit of them a stage pixel, on their grid from the
|
|
261
278
|
* stage's origin, a BitmapData's in a draw. A glyph's pen stands where its
|
|
262
279
|
* text's origin, at a whole pixel, puts it, snapped as its grid fits it
|
|
263
|
-
* (
|
|
264
|
-
* and its quad reaches out past its outline by the furthest
|
|
265
|
-
* colour is drawn under the row's colour transform, light or
|
|
266
|
-
* chooses its table.
|
|
267
|
-
*
|
|
280
|
+
* (its mode: gridFitType 0 none, 1 pixel, 2 subpixel, thickness,
|
|
281
|
+
* sharpness), and its quad reaches out past its outline by the furthest
|
|
282
|
+
* cutoff. Its colour is drawn under the row's colour transform, light or
|
|
283
|
+
* dark as adl chooses its table. The text's mode and tables are in its slot
|
|
284
|
+
* of uTables (uTable; GlyphTables), read by texelFetch: not a uniform array
|
|
285
|
+
* indexed by each glyph's table start, the access that hung Intel's GPUs
|
|
286
|
+
* in the fill program's run table. aOrigin: the pen, and its light and dark tables,
|
|
287
|
+
* each its first entry plus 64 times its entries; aGlyph: a corner of its
|
|
268
288
|
* outline's bounds and the way out from it; aRun: its segments, first and
|
|
269
289
|
* count, the pixels of a unit of its outline, and its size.
|
|
270
290
|
*/
|
|
@@ -279,8 +299,8 @@ uniform highp sampler2D uRows;
|
|
|
279
299
|
uniform int uRow;
|
|
280
300
|
uniform vec4 uView;
|
|
281
301
|
uniform float uUnit;
|
|
282
|
-
uniform
|
|
283
|
-
uniform
|
|
302
|
+
uniform highp sampler2D uTables;
|
|
303
|
+
uniform int uTable;
|
|
284
304
|
out vec2 vPixel;
|
|
285
305
|
flat out vec2 vPen;
|
|
286
306
|
flat out vec4 vToGlyph;
|
|
@@ -288,10 +308,16 @@ flat out vec4 vToPixel;
|
|
|
288
308
|
flat out vec4 vCut;
|
|
289
309
|
flat out vec4 vShown;
|
|
290
310
|
|
|
311
|
+
// Texel i of the text's slot: its mode, then its tables' entries.
|
|
312
|
+
vec4 slot(int i) {
|
|
313
|
+
int at = uTable * ${TABLE_SLOT} + i;
|
|
314
|
+
return texelFetch(uTables, ivec2(at & ${TABLE_LINE - 1}, at >> ${Math.log2(TABLE_LINE)}), 0);
|
|
315
|
+
}
|
|
316
|
+
|
|
291
317
|
// The cutoffs at ppem by the table of entries start to start + count, as text/csm.ts' cutoffs.
|
|
292
|
-
vec2 cutoffs(int start, int count, float ppem) {
|
|
293
|
-
vec4 first =
|
|
294
|
-
vec4 last =
|
|
318
|
+
vec2 cutoffs(vec4 mode, int start, int count, float ppem) {
|
|
319
|
+
vec4 first = slot(1 + start);
|
|
320
|
+
vec4 last = slot(start + count);
|
|
295
321
|
vec2 c = first.yz;
|
|
296
322
|
if (ppem >= last.x) {
|
|
297
323
|
c = last.yz;
|
|
@@ -301,9 +327,9 @@ vec2 cutoffs(int start, int count, float ppem) {
|
|
|
301
327
|
break;
|
|
302
328
|
}
|
|
303
329
|
|
|
304
|
-
vec4 b =
|
|
330
|
+
vec4 b = slot(1 + start + i);
|
|
305
331
|
if (ppem <= b.x) {
|
|
306
|
-
vec4 a =
|
|
332
|
+
vec4 a = slot(start + i);
|
|
307
333
|
c = mix(a.yz, b.yz, (ppem - a.x) / (b.x - a.x));
|
|
308
334
|
break;
|
|
309
335
|
}
|
|
@@ -311,8 +337,8 @@ vec2 cutoffs(int start, int count, float ppem) {
|
|
|
311
337
|
}
|
|
312
338
|
|
|
313
339
|
float unit = 0.0001 * ppem;
|
|
314
|
-
float t = clamp(
|
|
315
|
-
float s = clamp(
|
|
340
|
+
float t = clamp(mode.y, -200.0, 200.0);
|
|
341
|
+
float s = clamp(mode.z, -400.0, 400.0);
|
|
316
342
|
c -= unit * vec2(t + s * 0.5, t - s * 0.5);
|
|
317
343
|
if (c.x < c.y) {
|
|
318
344
|
c = vec2((c.x + c.y) * 0.5);
|
|
@@ -327,6 +353,7 @@ void main(void) {
|
|
|
327
353
|
vec4 t = texelFetch(uRows, at + ivec2(1, 0), 0);
|
|
328
354
|
vec4 mul = texelFetch(uRows, at + ivec2(2, 0), 0);
|
|
329
355
|
vec4 add = texelFetch(uRows, at + ivec2(3, 0), 0);
|
|
356
|
+
vec4 mode = slot(0);
|
|
330
357
|
// The text's pixels to Flash's.
|
|
331
358
|
mat2 linear = mat2(m.xy, m.zw) * uUnit;
|
|
332
359
|
vec2 origin = t.xy * uUnit;
|
|
@@ -334,9 +361,9 @@ void main(void) {
|
|
|
334
361
|
float across = max(abs(linear[0][1]), abs(linear[1][0]));
|
|
335
362
|
if (across > max(abs(linear[0][0]), abs(linear[1][1])) / 65536.0) {
|
|
336
363
|
// Turned or skewed: no grid.
|
|
337
|
-
} else if (
|
|
364
|
+
} else if (mode.x == 1.0) {
|
|
338
365
|
pen = vec2(roundEven(pen.x * 8.0) / 8.0 + 0.5, roundEven(pen.y));
|
|
339
|
-
} else if (
|
|
366
|
+
} else if (mode.x == 2.0) {
|
|
340
367
|
pen = vec2(roundEven(pen.x * 4.0) / 4.0 + 0.5, roundEven(pen.y));
|
|
341
368
|
} else {
|
|
342
369
|
pen = roundEven(pen * 4.0) / 4.0 + vec2(0.5, 0.0);
|
|
@@ -347,7 +374,7 @@ void main(void) {
|
|
|
347
374
|
vec4 shown = clamp(aColor * mul + add, 0.0, 1.0);
|
|
348
375
|
bool light = dot(floor(shown.rgb * 255.0 + 0.5), vec3(30.0, 59.0, 11.0)) > 20000.0;
|
|
349
376
|
int table = int(light ? aOrigin.z : aOrigin.w);
|
|
350
|
-
vec2 cut = cutoffs(table & 63, table >> 6, ppem);
|
|
377
|
+
vec2 cut = cutoffs(mode, table & 63, table >> 6, ppem);
|
|
351
378
|
mat2 toPixel = linear * aRun.z;
|
|
352
379
|
float margin = max(abs(cut.x), abs(cut.y)) + 1.0;
|
|
353
380
|
float det = determinant(toPixel);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"programs.js","sourceRoot":"","sources":["../../src/webgl/programs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EACL,GAAG,EACH,KAAK,EACL,MAAM,EACN,UAAU,EACV,KAAK,EACL,SAAS,EACT,MAAM,EACN,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,GACT,MAAM,aAAa,CAAC;AAErB,2CAA2C;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAE5B;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAC1B,oGAAoG;AACpG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAC3B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC;AACxB,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AACzB,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AAEzB,sGAAsG;AACtG,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,4FAA4F;AAC5F,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC;AAEhC;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAE5B,qFAAqF;AACrF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC5B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;AAEhC,sGAAsG;AACtG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,oEAAoE;AACpE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAC3B,0FAA0F;AAC1F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,uFAAuF;AACvF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAC3B,+DAA+D;AAC/D,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"programs.js","sourceRoot":"","sources":["../../src/webgl/programs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@swf2es/render",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.21",
|
|
4
4
|
"description": "swf2es's own renderer: a scene list, a planner and a WebGL 2 backend (docs/renderer.md)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"swf",
|
|
@@ -33,6 +33,6 @@
|
|
|
33
33
|
"src"
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@swf2es/context3d": "0.1.
|
|
36
|
+
"@swf2es/context3d": "0.1.21"
|
|
37
37
|
}
|
|
38
38
|
}
|
package/src/filter-plan.ts
CHANGED
|
@@ -38,21 +38,24 @@ export const KERNEL_PASS = 10;
|
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
40
|
* How a uniform's values are set: one to four floats, an array of vec4s, a
|
|
41
|
-
* 4 by 4 matrix, an array of ivec4s,
|
|
42
|
-
* the frame's it reads
|
|
41
|
+
* 4 by 4 matrix, an array of ivec4s, a sampler, its value the texture of
|
|
42
|
+
* the frame's it reads, or a sampler of a line of floats, its values, for a
|
|
43
|
+
* shader that reads them at a varying index (as a uniform array read so
|
|
44
|
+
* hangs some GPUs).
|
|
43
45
|
*/
|
|
44
46
|
export const FLOATS = 1;
|
|
45
47
|
export const VEC4S = 2;
|
|
46
48
|
export const MATRIX4 = 3;
|
|
47
49
|
export const IVEC4S = 4;
|
|
48
50
|
export const SAMPLER = 5;
|
|
51
|
+
export const FLOAT_LINE = 6;
|
|
49
52
|
|
|
50
53
|
/** A pass's blurred input (FilterPass.blurred): none read, or the pass's input itself. */
|
|
51
54
|
export const NO_BLUR = -2;
|
|
52
55
|
export const INPUT_BLUR = -1;
|
|
53
56
|
|
|
54
|
-
/** The most floats a convolution's matrix takes in its shader:
|
|
55
|
-
const CONVOLUTION_FLOATS =
|
|
57
|
+
/** The most floats a convolution's matrix takes in its shader: 15 by 15. */
|
|
58
|
+
const CONVOLUTION_FLOATS = 15 * 15;
|
|
56
59
|
|
|
57
60
|
/** One pass: a program drawn from slot `input` into slot `output`, its uniforms in its plan's. */
|
|
58
61
|
export interface FilterPass {
|
|
@@ -468,7 +471,7 @@ function colorMatrix(
|
|
|
468
471
|
return out;
|
|
469
472
|
}
|
|
470
473
|
|
|
471
|
-
/** A convolution's weights, its matrix by rows padded to the shader's
|
|
474
|
+
/** A convolution's weights, its matrix by rows padded to the shader's line. */
|
|
472
475
|
const weights = new Float32Array(CONVOLUTION_FLOATS);
|
|
473
476
|
|
|
474
477
|
function convolution(
|
|
@@ -485,7 +488,7 @@ function convolution(
|
|
|
485
488
|
weights.set(v.subarray(at + 12, at + 12 + Math.min(columns * rows, weights.length)));
|
|
486
489
|
const out = plan.slot(width, height);
|
|
487
490
|
plan.pass(CONVOLUTION_PASS, input, width, height, out, width, height);
|
|
488
|
-
plan.uniformFrom("
|
|
491
|
+
plan.uniformFrom("uWeights", FLOAT_LINE, weights, 0, weights.length);
|
|
489
492
|
plan.uniform("uSize", 2, columns, rows);
|
|
490
493
|
plan.uniformFrom("uEdge", FLOATS, v, at + 2, 4);
|
|
491
494
|
plan.uniform("uDivisor", 1, v[at + 6]);
|
package/src/filter-shaders.ts
CHANGED
|
@@ -312,7 +312,7 @@ export const CONVOLUTION = `in vec2 vTextureCoord;
|
|
|
312
312
|
out vec4 finalColor;
|
|
313
313
|
uniform sampler2D uTexture;
|
|
314
314
|
uniform highp vec4 uInputSize;
|
|
315
|
-
uniform
|
|
315
|
+
uniform highp sampler2D uWeights;
|
|
316
316
|
uniform vec2 uSize;
|
|
317
317
|
uniform vec4 uBox;
|
|
318
318
|
uniform vec4 uEdge;
|
|
@@ -342,10 +342,10 @@ void main(void) {
|
|
|
342
342
|
int cols = int(uSize.x);
|
|
343
343
|
int count = cols * int(uSize.y);
|
|
344
344
|
vec4 sum = vec4(0.0);
|
|
345
|
-
// One loop, its index alone indexing the weights, as GLSL ES 1 allows.
|
|
346
345
|
for (int k = 0; k < 225; k++) {
|
|
347
346
|
if (k >= count) { break; }
|
|
348
|
-
|
|
347
|
+
// From a texture: a uniform array indexed so is what hung Intel's GPUs in other programs.
|
|
348
|
+
float w = texelFetch(uWeights, ivec2(k, 0), 0).r;
|
|
349
349
|
if (w != 0.0) {
|
|
350
350
|
int j = k / cols;
|
|
351
351
|
vec2 at = vec2(float(k - j * cols), float(j)) - reach;
|