etro 0.13.0 → 0.14.0
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/.github/workflows/nodejs.yml +4 -0
- package/.github/workflows/shipjs-trigger.yml +2 -1
- package/.husky/pre-commit +1 -1
- package/AGENTS.md +106 -0
- package/CHANGELOG.md +17 -0
- package/CONTRIBUTING.md +5 -5
- package/README.md +7 -12
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/index.html +50 -50
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/custom-array.ts.html +11 -11
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/base.ts.html +57 -9
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/brightness.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/channels.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/chroma-key.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/contrast.ts.html +1 -1
- package/coverage/{Firefox 118.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/elliptical-mask.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/gaussian-blur.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/grayscale.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/index.html +21 -21
- package/coverage/{Firefox 118.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/index.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/pixelate.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/shader.ts.html +3 -3
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/stack.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/transform.ts.html +1 -1
- package/coverage/{Firefox 118.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/effect/visual.ts.html +1 -1
- package/coverage/{Firefox 118.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/etro.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/event.ts.html +29 -29
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/index.html +20 -20
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/index.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/audio-source.ts.html +47 -47
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/audio.ts.html +4 -4
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/base.ts.html +88 -34
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/image.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/index.html +20 -20
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/index.ts.html +1 -1
- package/coverage/{Firefox 121.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/text.ts.html +1 -1
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/video.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/visual-source.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/layer/visual.ts.html +10 -10
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/movie/effects.ts.html +4 -4
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/movie/index.html +19 -19
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/movie/index.ts.html +1 -1
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/movie/layers.ts.html +5 -5
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/movie/movie.ts.html +467 -128
- package/coverage/{Firefox 148.0 (Mac OS 10.15) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/src/util.ts.html +380 -68
- package/coverage/Firefox 151.0 (Mac OS 10.15)/html/index.html +161 -0
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/custom-array.ts.html +34 -34
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/base.ts.html +92 -44
- package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/brightness.ts.html +17 -17
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/channels.ts.html +17 -17
- package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/chroma-key.ts.html +21 -21
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/contrast.ts.html +17 -17
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/elliptical-mask.ts.html +1 -1
- package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/gaussian-blur.ts.html +98 -98
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/grayscale.ts.html +13 -13
- package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/index.html +311 -0
- package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/index.ts.html +1 -1
- package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/pixelate.ts.html +24 -24
- package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/shader.ts.html +369 -369
- package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/stack.ts.html +46 -46
- package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/transform.ts.html +104 -104
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/effect/visual.ts.html +1 -1
- package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/etro.ts.html +1 -1
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/event.ts.html +60 -60
- package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/index.html +42 -42
- package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/index.ts.html +1 -1
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/audio-source.ts.html +50 -50
- package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/audio.ts.html +4 -4
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/base.ts.html +95 -41
- package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/image.ts.html +14 -14
- package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/index.html +51 -51
- package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/index.ts.html +1 -1
- package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/text.ts.html +1 -1
- package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/video.ts.html +1 -1
- package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/visual-source.ts.html +58 -58
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/layer/visual.ts.html +84 -84
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/movie/effects.ts.html +13 -13
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/movie/index.html +28 -28
- package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/movie/index.ts.html +1 -1
- package/coverage/{Firefox 120.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/movie/layers.ts.html +5 -5
- package/coverage/{Firefox 121.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/movie/movie.ts.html +605 -266
- package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/src/util.ts.html +408 -69
- package/dist/custom-array.d.ts +10 -10
- package/dist/effect/base.d.ts +61 -60
- package/dist/effect/brightness.d.ts +16 -16
- package/dist/effect/channels.d.ts +23 -23
- package/dist/effect/chroma-key.d.ts +23 -23
- package/dist/effect/contrast.d.ts +15 -15
- package/dist/effect/elliptical-mask.d.ts +31 -31
- package/dist/effect/gaussian-blur.d.ts +60 -60
- package/dist/effect/grayscale.d.ts +7 -7
- package/dist/effect/index.d.ts +16 -16
- package/dist/effect/pixelate.d.ts +18 -18
- package/dist/effect/shader.d.ts +109 -109
- package/dist/effect/stack.d.ts +27 -27
- package/dist/effect/transform.d.ts +73 -73
- package/dist/effect/visual.d.ts +17 -17
- package/dist/etro-cjs.js +3583 -3553
- package/dist/etro-iife.js +3583 -3553
- package/dist/etro.d.ts +7 -7
- package/dist/event.d.ts +40 -40
- package/dist/index.d.ts +6 -6
- package/dist/layer/audio-source.d.ts +28 -28
- package/dist/layer/audio.d.ts +27 -27
- package/dist/layer/base.d.ts +129 -128
- package/dist/layer/image.d.ts +20 -20
- package/dist/layer/index.d.ts +11 -11
- package/dist/layer/text.d.ts +78 -78
- package/dist/layer/video.d.ts +23 -23
- package/dist/layer/visual-source.d.ts +47 -47
- package/dist/layer/visual.d.ts +62 -62
- package/dist/movie/effects.d.ts +6 -6
- package/dist/movie/index.d.ts +1 -1
- package/dist/movie/layers.d.ts +6 -6
- package/dist/movie/movie.d.ts +280 -278
- package/dist/object.d.ts +19 -19
- package/dist/util.d.ts +128 -123
- package/karma.conf.js +61 -3
- package/package.json +13 -15
- package/ship.config.js +9 -11
- package/src/effect/base.ts +16 -0
- package/src/layer/base.ts +19 -1
- package/src/movie/movie.ts +116 -3
- package/src/util.ts +104 -0
- package/tsconfig.json +3 -2
- package/.husky/commit-msg +0 -4
- package/.husky/prepare-commit-msg +0 -11
- package/commitlint.config.ts +0 -39
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/index.html +0 -176
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/custom-array.ts.html +0 -214
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/base.ts.html +0 -433
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/brightness.ts.html +0 -214
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/channels.ts.html +0 -235
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/contrast.ts.html +0 -211
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/elliptical-mask.ts.html +0 -310
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/grayscale.ts.html +0 -187
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/index.html +0 -311
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/pixelate.ts.html +0 -259
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/shader.ts.html +0 -1774
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/stack.ts.html +0 -358
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/transform.ts.html +0 -685
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/visual.ts.html +0 -148
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/event.ts.html +0 -691
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/index.html +0 -176
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/index.ts.html +0 -109
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/audio-source.ts.html +0 -835
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/base.ts.html +0 -772
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/image.ts.html +0 -181
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/index.html +0 -236
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/video.ts.html +0 -211
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/visual-source.ts.html +0 -721
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/visual.ts.html +0 -760
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/effects.ts.html +0 -163
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/index.html +0 -161
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/index.ts.html +0 -88
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/layers.ts.html +0 -163
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/movie.ts.html +0 -2692
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/util.ts.html +0 -1426
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/index.html +0 -176
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/custom-array.ts.html +0 -214
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/base.ts.html +0 -433
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/channels.ts.html +0 -235
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/chroma-key.ts.html +0 -331
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/contrast.ts.html +0 -211
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/gaussian-blur.ts.html +0 -796
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/grayscale.ts.html +0 -187
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/index.html +0 -311
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/pixelate.ts.html +0 -259
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/shader.ts.html +0 -1948
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/transform.ts.html +0 -685
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/event.ts.html +0 -691
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/audio-source.ts.html +0 -835
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/audio.ts.html +0 -241
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/base.ts.html +0 -772
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/image.ts.html +0 -181
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/index.ts.html +0 -124
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/text.ts.html +0 -658
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/video.ts.html +0 -211
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/visual.ts.html +0 -760
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/effects.ts.html +0 -163
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/index.html +0 -161
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/index.ts.html +0 -88
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/layers.ts.html +0 -163
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/movie.ts.html +0 -2692
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/base.css +0 -224
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/block-navigation.js +0 -87
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/favicon.png +0 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/index.html +0 -176
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/prettify.css +0 -1
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/prettify.js +0 -2
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/sort-arrow-sprite.png +0 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/sorter.js +0 -196
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/brightness.ts.html +0 -214
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/chroma-key.ts.html +0 -331
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/gaussian-blur.ts.html +0 -790
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/index.html +0 -311
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/index.ts.html +0 -154
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/pixelate.ts.html +0 -259
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/shader.ts.html +0 -1948
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/stack.ts.html +0 -358
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/transform.ts.html +0 -685
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/etro.ts.html +0 -163
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/index.html +0 -176
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/image.ts.html +0 -181
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/index.html +0 -236
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/text.ts.html +0 -658
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/visual-source.ts.html +0 -721
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/movie/movie.ts.html +0 -2692
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/util.ts.html +0 -1426
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/base.css +0 -224
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/block-navigation.js +0 -87
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/favicon.png +0 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/index.html +0 -176
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/prettify.css +0 -1
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/prettify.js +0 -2
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/sort-arrow-sprite.png +0 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/sorter.js +0 -196
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/custom-array.ts.html +0 -214
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/base.ts.html +0 -433
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/brightness.ts.html +0 -214
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/channels.ts.html +0 -235
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/chroma-key.ts.html +0 -331
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/contrast.ts.html +0 -211
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/elliptical-mask.ts.html +0 -310
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/gaussian-blur.ts.html +0 -796
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/grayscale.ts.html +0 -187
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/index.html +0 -311
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/index.ts.html +0 -154
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/stack.ts.html +0 -358
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/visual.ts.html +0 -148
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/etro.ts.html +0 -163
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/event.ts.html +0 -691
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/index.html +0 -176
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/index.ts.html +0 -109
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/audio-source.ts.html +0 -835
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/audio.ts.html +0 -241
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/base.ts.html +0 -772
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/index.html +0 -236
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/index.ts.html +0 -124
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/visual-source.ts.html +0 -721
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/visual.ts.html +0 -760
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/movie/effects.ts.html +0 -163
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/movie/index.html +0 -161
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/movie/layers.ts.html +0 -163
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/util.ts.html +0 -1453
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/base.css +0 -224
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/block-navigation.js +0 -87
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/favicon.png +0 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/prettify.css +0 -1
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/prettify.js +0 -2
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/sort-arrow-sprite.png +0 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/sorter.js +0 -196
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/elliptical-mask.ts.html +0 -310
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/index.ts.html +0 -154
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/visual.ts.html +0 -148
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/etro.ts.html +0 -163
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/index.ts.html +0 -109
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/audio.ts.html +0 -241
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/index.ts.html +0 -124
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/text.ts.html +0 -658
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/video.ts.html +0 -211
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/movie/index.ts.html +0 -88
- /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/base.css +0 -0
- /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/block-navigation.js +0 -0
- /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/favicon.png +0 -0
- /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/prettify.css +0 -0
- /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/prettify.js +0 -0
- /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/sort-arrow-sprite.png +0 -0
- /package/coverage/{Chrome Headless 79.0.3945.0 (Mac OS 10.16.0) → Chrome Headless 148.0.0.0 (Mac OS 10.15.7)}/html/sorter.js +0 -0
- /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/base.css +0 -0
- /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/block-navigation.js +0 -0
- /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/favicon.png +0 -0
- /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/prettify.css +0 -0
- /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/prettify.js +0 -0
- /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/sort-arrow-sprite.png +0 -0
- /package/coverage/{Firefox 118.0 (Mac OS 10.15) → Firefox 151.0 (Mac OS 10.15)}/html/sorter.js +0 -0
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">13.2% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>28/212</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>0/93</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">4.76% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>1/21</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">12.98% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>27/208</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line low'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -728,199 +728,199 @@
|
|
|
728
728
|
<span class="cline-any cline-neutral"> </span>
|
|
729
729
|
<span class="cline-any cline-neutral"> </span>
|
|
730
730
|
<span class="cline-any cline-neutral"> </span>
|
|
731
|
-
<span class="cline-any cline-
|
|
732
|
-
<span class="cline-any cline-
|
|
731
|
+
<span class="cline-any cline-no"> </span>
|
|
732
|
+
<span class="cline-any cline-no"> </span>
|
|
733
733
|
<span class="cline-any cline-neutral"> </span>
|
|
734
|
-
<span class="cline-any cline-
|
|
735
|
-
<span class="cline-any cline-
|
|
736
|
-
<span class="cline-any cline-
|
|
737
|
-
<span class="cline-any cline-
|
|
734
|
+
<span class="cline-any cline-no"> </span>
|
|
735
|
+
<span class="cline-any cline-no"> </span>
|
|
736
|
+
<span class="cline-any cline-no"> </span>
|
|
737
|
+
<span class="cline-any cline-no"> </span>
|
|
738
738
|
<span class="cline-any cline-neutral"> </span>
|
|
739
|
-
<span class="cline-any cline-
|
|
740
|
-
<span class="cline-any cline-
|
|
741
|
-
<span class="cline-any cline-
|
|
739
|
+
<span class="cline-any cline-no"> </span>
|
|
740
|
+
<span class="cline-any cline-no"> </span>
|
|
741
|
+
<span class="cline-any cline-no"> </span>
|
|
742
742
|
<span class="cline-any cline-neutral"> </span>
|
|
743
|
-
<span class="cline-any cline-
|
|
744
|
-
<span class="cline-any cline-
|
|
745
|
-
<span class="cline-any cline-
|
|
743
|
+
<span class="cline-any cline-no"> </span>
|
|
744
|
+
<span class="cline-any cline-no"> </span>
|
|
745
|
+
<span class="cline-any cline-no"> </span>
|
|
746
746
|
<span class="cline-any cline-neutral"> </span>
|
|
747
747
|
<span class="cline-any cline-neutral"> </span>
|
|
748
748
|
<span class="cline-any cline-yes">1x</span>
|
|
749
|
-
<span class="cline-any cline-
|
|
750
|
-
<span class="cline-any cline-
|
|
751
|
-
<span class="cline-any cline-
|
|
749
|
+
<span class="cline-any cline-no"> </span>
|
|
750
|
+
<span class="cline-any cline-no"> </span>
|
|
751
|
+
<span class="cline-any cline-no"> </span>
|
|
752
752
|
<span class="cline-any cline-no"> </span>
|
|
753
753
|
<span class="cline-any cline-neutral"> </span>
|
|
754
754
|
<span class="cline-any cline-neutral"> </span>
|
|
755
|
-
<span class="cline-any cline-
|
|
756
|
-
<span class="cline-any cline-
|
|
755
|
+
<span class="cline-any cline-no"> </span>
|
|
756
|
+
<span class="cline-any cline-no"> </span>
|
|
757
757
|
<span class="cline-any cline-neutral"> </span>
|
|
758
758
|
<span class="cline-any cline-neutral"> </span>
|
|
759
759
|
<span class="cline-any cline-yes">1x</span>
|
|
760
|
-
<span class="cline-any cline-
|
|
761
|
-
<span class="cline-any cline-
|
|
762
|
-
<span class="cline-any cline-
|
|
760
|
+
<span class="cline-any cline-no"> </span>
|
|
761
|
+
<span class="cline-any cline-no"> </span>
|
|
762
|
+
<span class="cline-any cline-no"> </span>
|
|
763
763
|
<span class="cline-any cline-no"> </span>
|
|
764
764
|
<span class="cline-any cline-neutral"> </span>
|
|
765
765
|
<span class="cline-any cline-neutral"> </span>
|
|
766
|
-
<span class="cline-any cline-
|
|
767
|
-
<span class="cline-any cline-
|
|
768
|
-
<span class="cline-any cline-
|
|
766
|
+
<span class="cline-any cline-no"> </span>
|
|
767
|
+
<span class="cline-any cline-no"> </span>
|
|
768
|
+
<span class="cline-any cline-no"> </span>
|
|
769
769
|
<span class="cline-any cline-neutral"> </span>
|
|
770
|
-
<span class="cline-any cline-
|
|
770
|
+
<span class="cline-any cline-no"> </span>
|
|
771
771
|
<span class="cline-any cline-neutral"> </span>
|
|
772
|
-
<span class="cline-any cline-
|
|
772
|
+
<span class="cline-any cline-no"> </span>
|
|
773
773
|
<span class="cline-any cline-neutral"> </span>
|
|
774
774
|
<span class="cline-any cline-neutral"> </span>
|
|
775
775
|
<span class="cline-any cline-neutral"> </span>
|
|
776
776
|
<span class="cline-any cline-neutral"> </span>
|
|
777
777
|
<span class="cline-any cline-neutral"> </span>
|
|
778
778
|
<span class="cline-any cline-neutral"> </span>
|
|
779
|
-
<span class="cline-any cline-
|
|
779
|
+
<span class="cline-any cline-no"> </span>
|
|
780
780
|
<span class="cline-any cline-no"> </span>
|
|
781
781
|
<span class="cline-any cline-neutral"> </span>
|
|
782
782
|
<span class="cline-any cline-neutral"> </span>
|
|
783
783
|
<span class="cline-any cline-neutral"> </span>
|
|
784
|
-
<span class="cline-any cline-
|
|
784
|
+
<span class="cline-any cline-no"> </span>
|
|
785
785
|
<span class="cline-any cline-neutral"> </span>
|
|
786
|
-
<span class="cline-any cline-
|
|
786
|
+
<span class="cline-any cline-no"> </span>
|
|
787
787
|
<span class="cline-any cline-neutral"> </span>
|
|
788
|
-
<span class="cline-any cline-
|
|
788
|
+
<span class="cline-any cline-no"> </span>
|
|
789
789
|
<span class="cline-any cline-neutral"> </span>
|
|
790
790
|
<span class="cline-any cline-neutral"> </span>
|
|
791
791
|
<span class="cline-any cline-yes">1x</span>
|
|
792
|
-
<span class="cline-any cline-
|
|
793
|
-
<span class="cline-any cline-
|
|
792
|
+
<span class="cline-any cline-no"> </span>
|
|
793
|
+
<span class="cline-any cline-no"> </span>
|
|
794
794
|
<span class="cline-any cline-neutral"> </span>
|
|
795
795
|
<span class="cline-any cline-neutral"> </span>
|
|
796
796
|
<span class="cline-any cline-neutral"> </span>
|
|
797
797
|
<span class="cline-any cline-neutral"> </span>
|
|
798
798
|
<span class="cline-any cline-neutral"> </span>
|
|
799
799
|
<span class="cline-any cline-yes">1x</span>
|
|
800
|
-
<span class="cline-any cline-
|
|
801
|
-
<span class="cline-any cline-
|
|
800
|
+
<span class="cline-any cline-no"> </span>
|
|
801
|
+
<span class="cline-any cline-no"> </span>
|
|
802
802
|
<span class="cline-any cline-neutral"> </span>
|
|
803
803
|
<span class="cline-any cline-neutral"> </span>
|
|
804
804
|
<span class="cline-any cline-neutral"> </span>
|
|
805
805
|
<span class="cline-any cline-neutral"> </span>
|
|
806
806
|
<span class="cline-any cline-neutral"> </span>
|
|
807
807
|
<span class="cline-any cline-neutral"> </span>
|
|
808
|
-
<span class="cline-any cline-
|
|
809
|
-
<span class="cline-any cline-
|
|
810
|
-
<span class="cline-any cline-
|
|
811
|
-
<span class="cline-any cline-
|
|
808
|
+
<span class="cline-any cline-no"> </span>
|
|
809
|
+
<span class="cline-any cline-no"> </span>
|
|
810
|
+
<span class="cline-any cline-no"> </span>
|
|
811
|
+
<span class="cline-any cline-no"> </span>
|
|
812
812
|
<span class="cline-any cline-neutral"> </span>
|
|
813
|
-
<span class="cline-any cline-
|
|
813
|
+
<span class="cline-any cline-no"> </span>
|
|
814
814
|
<span class="cline-any cline-neutral"> </span>
|
|
815
|
-
<span class="cline-any cline-
|
|
816
|
-
<span class="cline-any cline-
|
|
815
|
+
<span class="cline-any cline-no"> </span>
|
|
816
|
+
<span class="cline-any cline-no"> </span>
|
|
817
817
|
<span class="cline-any cline-neutral"> </span>
|
|
818
818
|
<span class="cline-any cline-neutral"> </span>
|
|
819
819
|
<span class="cline-any cline-neutral"> </span>
|
|
820
820
|
<span class="cline-any cline-yes">1x</span>
|
|
821
|
-
<span class="cline-any cline-
|
|
822
|
-
<span class="cline-any cline-
|
|
821
|
+
<span class="cline-any cline-no"> </span>
|
|
822
|
+
<span class="cline-any cline-no"> </span>
|
|
823
823
|
<span class="cline-any cline-neutral"> </span>
|
|
824
|
-
<span class="cline-any cline-
|
|
825
|
-
<span class="cline-any cline-
|
|
826
|
-
<span class="cline-any cline-
|
|
824
|
+
<span class="cline-any cline-no"> </span>
|
|
825
|
+
<span class="cline-any cline-no"> </span>
|
|
826
|
+
<span class="cline-any cline-no"> </span>
|
|
827
827
|
<span class="cline-any cline-neutral"> </span>
|
|
828
|
-
<span class="cline-any cline-
|
|
828
|
+
<span class="cline-any cline-no"> </span>
|
|
829
829
|
<span class="cline-any cline-neutral"> </span>
|
|
830
|
-
<span class="cline-any cline-
|
|
830
|
+
<span class="cline-any cline-no"> </span>
|
|
831
831
|
<span class="cline-any cline-neutral"> </span>
|
|
832
|
-
<span class="cline-any cline-
|
|
832
|
+
<span class="cline-any cline-no"> </span>
|
|
833
833
|
<span class="cline-any cline-neutral"> </span>
|
|
834
834
|
<span class="cline-any cline-neutral"> </span>
|
|
835
835
|
<span class="cline-any cline-yes">1x</span>
|
|
836
|
-
<span class="cline-any cline-
|
|
836
|
+
<span class="cline-any cline-no"> </span>
|
|
837
837
|
<span class="cline-any cline-neutral"> </span>
|
|
838
838
|
<span class="cline-any cline-neutral"> </span>
|
|
839
|
-
<span class="cline-any cline-
|
|
840
|
-
<span class="cline-any cline-
|
|
841
|
-
<span class="cline-any cline-
|
|
839
|
+
<span class="cline-any cline-no"> </span>
|
|
840
|
+
<span class="cline-any cline-no"> </span>
|
|
841
|
+
<span class="cline-any cline-no"> </span>
|
|
842
842
|
<span class="cline-any cline-neutral"> </span>
|
|
843
|
-
<span class="cline-any cline-
|
|
843
|
+
<span class="cline-any cline-no"> </span>
|
|
844
844
|
<span class="cline-any cline-neutral"> </span>
|
|
845
845
|
<span class="cline-any cline-neutral"> </span>
|
|
846
846
|
<span class="cline-any cline-neutral"> </span>
|
|
847
847
|
<span class="cline-any cline-yes">1x</span>
|
|
848
|
-
<span class="cline-any cline-
|
|
848
|
+
<span class="cline-any cline-no"> </span>
|
|
849
849
|
<span class="cline-any cline-neutral"> </span>
|
|
850
850
|
<span class="cline-any cline-neutral"> </span>
|
|
851
|
-
<span class="cline-any cline-
|
|
851
|
+
<span class="cline-any cline-no"> </span>
|
|
852
852
|
<span class="cline-any cline-neutral"> </span>
|
|
853
853
|
<span class="cline-any cline-neutral"> </span>
|
|
854
|
-
<span class="cline-any cline-
|
|
855
|
-
<span class="cline-any cline-
|
|
856
|
-
<span class="cline-any cline-
|
|
854
|
+
<span class="cline-any cline-no"> </span>
|
|
855
|
+
<span class="cline-any cline-no"> </span>
|
|
856
|
+
<span class="cline-any cline-no"> </span>
|
|
857
857
|
<span class="cline-any cline-neutral"> </span>
|
|
858
858
|
<span class="cline-any cline-neutral"> </span>
|
|
859
|
-
<span class="cline-any cline-
|
|
859
|
+
<span class="cline-any cline-no"> </span>
|
|
860
860
|
<span class="cline-any cline-neutral"> </span>
|
|
861
861
|
<span class="cline-any cline-neutral"> </span>
|
|
862
862
|
<span class="cline-any cline-yes">1x</span>
|
|
863
|
-
<span class="cline-any cline-
|
|
863
|
+
<span class="cline-any cline-no"> </span>
|
|
864
864
|
<span class="cline-any cline-neutral"> </span>
|
|
865
|
-
<span class="cline-any cline-
|
|
865
|
+
<span class="cline-any cline-no"> </span>
|
|
866
866
|
<span class="cline-any cline-neutral"> </span>
|
|
867
|
-
<span class="cline-any cline-
|
|
867
|
+
<span class="cline-any cline-no"> </span>
|
|
868
868
|
<span class="cline-any cline-neutral"> </span>
|
|
869
|
-
<span class="cline-any cline-
|
|
869
|
+
<span class="cline-any cline-no"> </span>
|
|
870
870
|
<span class="cline-any cline-neutral"> </span>
|
|
871
871
|
<span class="cline-any cline-neutral"> </span>
|
|
872
|
-
<span class="cline-any cline-
|
|
872
|
+
<span class="cline-any cline-no"> </span>
|
|
873
873
|
<span class="cline-any cline-neutral"> </span>
|
|
874
|
-
<span class="cline-any cline-
|
|
875
|
-
<span class="cline-any cline-
|
|
876
|
-
<span class="cline-any cline-
|
|
874
|
+
<span class="cline-any cline-no"> </span>
|
|
875
|
+
<span class="cline-any cline-no"> </span>
|
|
876
|
+
<span class="cline-any cline-no"> </span>
|
|
877
877
|
<span class="cline-any cline-neutral"> </span>
|
|
878
878
|
<span class="cline-any cline-neutral"> </span>
|
|
879
879
|
<span class="cline-any cline-neutral"> </span>
|
|
880
880
|
<span class="cline-any cline-neutral"> </span>
|
|
881
881
|
<span class="cline-any cline-neutral"> </span>
|
|
882
882
|
<span class="cline-any cline-neutral"> </span>
|
|
883
|
-
<span class="cline-any cline-
|
|
883
|
+
<span class="cline-any cline-no"> </span>
|
|
884
884
|
<span class="cline-any cline-neutral"> </span>
|
|
885
885
|
<span class="cline-any cline-neutral"> </span>
|
|
886
886
|
<span class="cline-any cline-neutral"> </span>
|
|
887
887
|
<span class="cline-any cline-yes">1x</span>
|
|
888
|
-
<span class="cline-any cline-
|
|
888
|
+
<span class="cline-any cline-no"> </span>
|
|
889
889
|
<span class="cline-any cline-neutral"> </span>
|
|
890
|
-
<span class="cline-any cline-
|
|
891
|
-
<span class="cline-any cline-
|
|
892
|
-
<span class="cline-any cline-
|
|
893
|
-
<span class="cline-any cline-
|
|
894
|
-
<span class="cline-any cline-
|
|
895
|
-
<span class="cline-any cline-
|
|
896
|
-
<span class="cline-any cline-
|
|
897
|
-
<span class="cline-any cline-
|
|
890
|
+
<span class="cline-any cline-no"> </span>
|
|
891
|
+
<span class="cline-any cline-no"> </span>
|
|
892
|
+
<span class="cline-any cline-no"> </span>
|
|
893
|
+
<span class="cline-any cline-no"> </span>
|
|
894
|
+
<span class="cline-any cline-no"> </span>
|
|
895
|
+
<span class="cline-any cline-no"> </span>
|
|
896
|
+
<span class="cline-any cline-no"> </span>
|
|
897
|
+
<span class="cline-any cline-no"> </span>
|
|
898
898
|
<span class="cline-any cline-neutral"> </span>
|
|
899
899
|
<span class="cline-any cline-neutral"> </span>
|
|
900
900
|
<span class="cline-any cline-yes">1x</span>
|
|
901
|
-
<span class="cline-any cline-
|
|
901
|
+
<span class="cline-any cline-no"> </span>
|
|
902
902
|
<span class="cline-any cline-neutral"> </span>
|
|
903
903
|
<span class="cline-any cline-neutral"> </span>
|
|
904
904
|
<span class="cline-any cline-neutral"> </span>
|
|
905
905
|
<span class="cline-any cline-neutral"> </span>
|
|
906
906
|
<span class="cline-any cline-neutral"> </span>
|
|
907
|
-
<span class="cline-any cline-
|
|
908
|
-
<span class="cline-any cline-
|
|
907
|
+
<span class="cline-any cline-no"> </span>
|
|
908
|
+
<span class="cline-any cline-no"> </span>
|
|
909
909
|
<span class="cline-any cline-neutral"> </span>
|
|
910
|
-
<span class="cline-any cline-
|
|
910
|
+
<span class="cline-any cline-no"> </span>
|
|
911
911
|
<span class="cline-any cline-neutral"> </span>
|
|
912
|
-
<span class="cline-any cline-
|
|
913
|
-
<span class="cline-any cline-
|
|
914
|
-
<span class="cline-any cline-
|
|
912
|
+
<span class="cline-any cline-no"> </span>
|
|
913
|
+
<span class="cline-any cline-no"> </span>
|
|
914
|
+
<span class="cline-any cline-no"> </span>
|
|
915
915
|
<span class="cline-any cline-neutral"> </span>
|
|
916
916
|
<span class="cline-any cline-neutral"> </span>
|
|
917
917
|
<span class="cline-any cline-neutral"> </span>
|
|
918
918
|
<span class="cline-any cline-neutral"> </span>
|
|
919
919
|
<span class="cline-any cline-neutral"> </span>
|
|
920
|
-
<span class="cline-any cline-
|
|
921
|
-
<span class="cline-any cline-
|
|
922
|
-
<span class="cline-any cline-
|
|
923
|
-
<span class="cline-any cline-
|
|
920
|
+
<span class="cline-any cline-no"> </span>
|
|
921
|
+
<span class="cline-any cline-no"> </span>
|
|
922
|
+
<span class="cline-any cline-no"> </span>
|
|
923
|
+
<span class="cline-any cline-no"> </span>
|
|
924
924
|
<span class="cline-any cline-neutral"> </span>
|
|
925
925
|
<span class="cline-any cline-neutral"> </span>
|
|
926
926
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -930,41 +930,41 @@
|
|
|
930
930
|
<span class="cline-any cline-neutral"> </span>
|
|
931
931
|
<span class="cline-any cline-neutral"> </span>
|
|
932
932
|
<span class="cline-any cline-yes">1x</span>
|
|
933
|
-
<span class="cline-any cline-
|
|
933
|
+
<span class="cline-any cline-no"> </span>
|
|
934
934
|
<span class="cline-any cline-neutral"> </span>
|
|
935
935
|
<span class="cline-any cline-neutral"> </span>
|
|
936
936
|
<span class="cline-any cline-neutral"> </span>
|
|
937
|
-
<span class="cline-any cline-
|
|
938
|
-
<span class="cline-any cline-
|
|
937
|
+
<span class="cline-any cline-no"> </span>
|
|
938
|
+
<span class="cline-any cline-no"> </span>
|
|
939
939
|
<span class="cline-any cline-neutral"> </span>
|
|
940
940
|
<span class="cline-any cline-neutral"> </span>
|
|
941
941
|
<span class="cline-any cline-neutral"> </span>
|
|
942
|
-
<span class="cline-any cline-
|
|
943
|
-
<span class="cline-any cline-
|
|
942
|
+
<span class="cline-any cline-no"> </span>
|
|
943
|
+
<span class="cline-any cline-no"> </span>
|
|
944
944
|
<span class="cline-any cline-neutral"> </span>
|
|
945
945
|
<span class="cline-any cline-neutral"> </span>
|
|
946
|
-
<span class="cline-any cline-
|
|
947
|
-
<span class="cline-any cline-
|
|
948
|
-
<span class="cline-any cline-
|
|
949
|
-
<span class="cline-any cline-
|
|
950
|
-
<span class="cline-any cline-
|
|
946
|
+
<span class="cline-any cline-no"> </span>
|
|
947
|
+
<span class="cline-any cline-no"> </span>
|
|
948
|
+
<span class="cline-any cline-no"> </span>
|
|
949
|
+
<span class="cline-any cline-no"> </span>
|
|
950
|
+
<span class="cline-any cline-no"> </span>
|
|
951
951
|
<span class="cline-any cline-neutral"> </span>
|
|
952
|
-
<span class="cline-any cline-
|
|
952
|
+
<span class="cline-any cline-no"> </span>
|
|
953
953
|
<span class="cline-any cline-neutral"> </span>
|
|
954
|
-
<span class="cline-any cline-
|
|
954
|
+
<span class="cline-any cline-no"> </span>
|
|
955
955
|
<span class="cline-any cline-neutral"> </span>
|
|
956
956
|
<span class="cline-any cline-neutral"> </span>
|
|
957
957
|
<span class="cline-any cline-yes">1x</span>
|
|
958
|
-
<span class="cline-any cline-
|
|
958
|
+
<span class="cline-any cline-no"> </span>
|
|
959
959
|
<span class="cline-any cline-neutral"> </span>
|
|
960
|
-
<span class="cline-any cline-
|
|
961
|
-
<span class="cline-any cline-
|
|
962
|
-
<span class="cline-any cline-
|
|
960
|
+
<span class="cline-any cline-no"> </span>
|
|
961
|
+
<span class="cline-any cline-no"> </span>
|
|
962
|
+
<span class="cline-any cline-no"> </span>
|
|
963
963
|
<span class="cline-any cline-neutral"> </span>
|
|
964
964
|
<span class="cline-any cline-neutral"> </span>
|
|
965
|
-
<span class="cline-any cline-
|
|
965
|
+
<span class="cline-any cline-no"> </span>
|
|
966
966
|
<span class="cline-any cline-neutral"> </span>
|
|
967
|
-
<span class="cline-any cline-
|
|
967
|
+
<span class="cline-any cline-no"> </span>
|
|
968
968
|
<span class="cline-any cline-neutral"> </span>
|
|
969
969
|
<span class="cline-any cline-neutral"> </span>
|
|
970
970
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -978,9 +978,9 @@
|
|
|
978
978
|
<span class="cline-any cline-neutral"> </span>
|
|
979
979
|
<span class="cline-any cline-neutral"> </span>
|
|
980
980
|
<span class="cline-any cline-neutral"> </span>
|
|
981
|
-
<span class="cline-any cline-yes">
|
|
982
|
-
<span class="cline-any cline-
|
|
983
|
-
<span class="cline-any cline-
|
|
981
|
+
<span class="cline-any cline-yes">1x</span>
|
|
982
|
+
<span class="cline-any cline-no"> </span>
|
|
983
|
+
<span class="cline-any cline-no"> </span>
|
|
984
984
|
<span class="cline-any cline-neutral"> </span>
|
|
985
985
|
<span class="cline-any cline-neutral"> </span>
|
|
986
986
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -995,26 +995,26 @@
|
|
|
995
995
|
<span class="cline-any cline-neutral"> </span>
|
|
996
996
|
<span class="cline-any cline-neutral"> </span>
|
|
997
997
|
<span class="cline-any cline-neutral"> </span>
|
|
998
|
-
<span class="cline-any cline-
|
|
999
|
-
<span class="cline-any cline-
|
|
1000
|
-
<span class="cline-any cline-
|
|
1001
|
-
<span class="cline-any cline-
|
|
1002
|
-
<span class="cline-any cline-
|
|
998
|
+
<span class="cline-any cline-no"> </span>
|
|
999
|
+
<span class="cline-any cline-no"> </span>
|
|
1000
|
+
<span class="cline-any cline-no"> </span>
|
|
1001
|
+
<span class="cline-any cline-no"> </span>
|
|
1002
|
+
<span class="cline-any cline-no"> </span>
|
|
1003
1003
|
<span class="cline-any cline-neutral"> </span>
|
|
1004
1004
|
<span class="cline-any cline-neutral"> </span>
|
|
1005
|
-
<span class="cline-any cline-
|
|
1005
|
+
<span class="cline-any cline-no"> </span>
|
|
1006
1006
|
<span class="cline-any cline-neutral"> </span>
|
|
1007
1007
|
<span class="cline-any cline-neutral"> </span>
|
|
1008
1008
|
<span class="cline-any cline-neutral"> </span>
|
|
1009
|
-
<span class="cline-any cline-
|
|
1009
|
+
<span class="cline-any cline-no"> </span>
|
|
1010
1010
|
<span class="cline-any cline-neutral"> </span>
|
|
1011
|
-
<span class="cline-any cline-
|
|
1011
|
+
<span class="cline-any cline-no"> </span>
|
|
1012
1012
|
<span class="cline-any cline-no"> </span>
|
|
1013
1013
|
<span class="cline-any cline-neutral"> </span>
|
|
1014
1014
|
<span class="cline-any cline-neutral"> </span>
|
|
1015
1015
|
<span class="cline-any cline-neutral"> </span>
|
|
1016
|
-
<span class="cline-any cline-
|
|
1017
|
-
<span class="cline-any cline-
|
|
1016
|
+
<span class="cline-any cline-no"> </span>
|
|
1017
|
+
<span class="cline-any cline-no"> </span>
|
|
1018
1018
|
<span class="cline-any cline-neutral"> </span>
|
|
1019
1019
|
<span class="cline-any cline-neutral"> </span>
|
|
1020
1020
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1024,14 +1024,14 @@
|
|
|
1024
1024
|
<span class="cline-any cline-no"> </span>
|
|
1025
1025
|
<span class="cline-any cline-neutral"> </span>
|
|
1026
1026
|
<span class="cline-any cline-neutral"> </span>
|
|
1027
|
-
<span class="cline-any cline-
|
|
1028
|
-
<span class="cline-any cline-
|
|
1027
|
+
<span class="cline-any cline-no"> </span>
|
|
1028
|
+
<span class="cline-any cline-no"> </span>
|
|
1029
1029
|
<span class="cline-any cline-no"> </span>
|
|
1030
1030
|
<span class="cline-any cline-neutral"> </span>
|
|
1031
1031
|
<span class="cline-any cline-neutral"> </span>
|
|
1032
1032
|
<span class="cline-any cline-neutral"> </span>
|
|
1033
|
-
<span class="cline-any cline-
|
|
1034
|
-
<span class="cline-any cline-
|
|
1033
|
+
<span class="cline-any cline-no"> </span>
|
|
1034
|
+
<span class="cline-any cline-no"> </span>
|
|
1035
1035
|
<span class="cline-any cline-neutral"> </span>
|
|
1036
1036
|
<span class="cline-any cline-neutral"> </span>
|
|
1037
1037
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1042,18 +1042,18 @@
|
|
|
1042
1042
|
<span class="cline-any cline-no"> </span>
|
|
1043
1043
|
<span class="cline-any cline-neutral"> </span>
|
|
1044
1044
|
<span class="cline-any cline-neutral"> </span>
|
|
1045
|
-
<span class="cline-any cline-
|
|
1045
|
+
<span class="cline-any cline-no"> </span>
|
|
1046
1046
|
<span class="cline-any cline-neutral"> </span>
|
|
1047
1047
|
<span class="cline-any cline-neutral"> </span>
|
|
1048
1048
|
<span class="cline-any cline-yes">1x</span>
|
|
1049
|
-
<span class="cline-any cline-
|
|
1049
|
+
<span class="cline-any cline-no"> </span>
|
|
1050
1050
|
<span class="cline-any cline-neutral"> </span>
|
|
1051
1051
|
<span class="cline-any cline-neutral"> </span>
|
|
1052
1052
|
<span class="cline-any cline-neutral"> </span>
|
|
1053
1053
|
<span class="cline-any cline-neutral"> </span>
|
|
1054
1054
|
<span class="cline-any cline-neutral"> </span>
|
|
1055
1055
|
<span class="cline-any cline-neutral"> </span>
|
|
1056
|
-
<span class="cline-any cline-
|
|
1056
|
+
<span class="cline-any cline-no"> </span>
|
|
1057
1057
|
<span class="cline-any cline-neutral"> </span>
|
|
1058
1058
|
<span class="cline-any cline-neutral"> </span>
|
|
1059
1059
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1061,7 +1061,7 @@
|
|
|
1061
1061
|
<span class="cline-any cline-neutral"> </span>
|
|
1062
1062
|
<span class="cline-any cline-neutral"> </span>
|
|
1063
1063
|
<span class="cline-any cline-neutral"> </span>
|
|
1064
|
-
<span class="cline-any cline-
|
|
1064
|
+
<span class="cline-any cline-no"> </span>
|
|
1065
1065
|
<span class="cline-any cline-neutral"> </span>
|
|
1066
1066
|
<span class="cline-any cline-neutral"> </span>
|
|
1067
1067
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1071,14 +1071,14 @@
|
|
|
1071
1071
|
<span class="cline-any cline-neutral"> </span>
|
|
1072
1072
|
<span class="cline-any cline-neutral"> </span>
|
|
1073
1073
|
<span class="cline-any cline-yes">1x</span>
|
|
1074
|
-
<span class="cline-any cline-
|
|
1074
|
+
<span class="cline-any cline-no"> </span>
|
|
1075
1075
|
<span class="cline-any cline-neutral"> </span>
|
|
1076
1076
|
<span class="cline-any cline-neutral"> </span>
|
|
1077
|
-
<span class="cline-any cline-
|
|
1077
|
+
<span class="cline-any cline-no"> </span>
|
|
1078
1078
|
<span class="cline-any cline-neutral"> </span>
|
|
1079
|
-
<span class="cline-any cline-
|
|
1079
|
+
<span class="cline-any cline-no"> </span>
|
|
1080
1080
|
<span class="cline-any cline-neutral"> </span>
|
|
1081
|
-
<span class="cline-any cline-
|
|
1081
|
+
<span class="cline-any cline-no"> </span>
|
|
1082
1082
|
<span class="cline-any cline-neutral"> </span>
|
|
1083
1083
|
<span class="cline-any cline-neutral"> </span>
|
|
1084
1084
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1094,26 +1094,26 @@
|
|
|
1094
1094
|
<span class="cline-any cline-neutral"> </span>
|
|
1095
1095
|
<span class="cline-any cline-neutral"> </span>
|
|
1096
1096
|
<span class="cline-any cline-neutral"> </span>
|
|
1097
|
-
<span class="cline-any cline-yes">
|
|
1097
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1098
1098
|
<span class="cline-any cline-neutral"> </span>
|
|
1099
|
-
<span class="cline-any cline-
|
|
1099
|
+
<span class="cline-any cline-no"> </span>
|
|
1100
1100
|
<span class="cline-any cline-neutral"> </span>
|
|
1101
|
-
<span class="cline-any cline-
|
|
1102
|
-
<span class="cline-any cline-
|
|
1103
|
-
<span class="cline-any cline-
|
|
1104
|
-
<span class="cline-any cline-
|
|
1105
|
-
<span class="cline-any cline-
|
|
1106
|
-
<span class="cline-any cline-
|
|
1107
|
-
<span class="cline-any cline-
|
|
1108
|
-
<span class="cline-any cline-
|
|
1109
|
-
<span class="cline-any cline-
|
|
1101
|
+
<span class="cline-any cline-no"> </span>
|
|
1102
|
+
<span class="cline-any cline-no"> </span>
|
|
1103
|
+
<span class="cline-any cline-no"> </span>
|
|
1104
|
+
<span class="cline-any cline-no"> </span>
|
|
1105
|
+
<span class="cline-any cline-no"> </span>
|
|
1106
|
+
<span class="cline-any cline-no"> </span>
|
|
1107
|
+
<span class="cline-any cline-no"> </span>
|
|
1108
|
+
<span class="cline-any cline-no"> </span>
|
|
1109
|
+
<span class="cline-any cline-no"> </span>
|
|
1110
1110
|
<span class="cline-any cline-neutral"> </span>
|
|
1111
1111
|
<span class="cline-any cline-neutral"> </span>
|
|
1112
1112
|
<span class="cline-any cline-neutral"> </span>
|
|
1113
1113
|
<span class="cline-any cline-neutral"> </span>
|
|
1114
1114
|
<span class="cline-any cline-neutral"> </span>
|
|
1115
|
-
<span class="cline-any cline-
|
|
1116
|
-
<span class="cline-any cline-
|
|
1115
|
+
<span class="cline-any cline-no"> </span>
|
|
1116
|
+
<span class="cline-any cline-no"> </span>
|
|
1117
1117
|
<span class="cline-any cline-neutral"> </span>
|
|
1118
1118
|
<span class="cline-any cline-neutral"> </span>
|
|
1119
1119
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1121,7 +1121,7 @@
|
|
|
1121
1121
|
<span class="cline-any cline-neutral"> </span>
|
|
1122
1122
|
<span class="cline-any cline-neutral"> </span>
|
|
1123
1123
|
<span class="cline-any cline-neutral"> </span>
|
|
1124
|
-
<span class="cline-any cline-
|
|
1124
|
+
<span class="cline-any cline-no"> </span>
|
|
1125
1125
|
<span class="cline-any cline-neutral"> </span>
|
|
1126
1126
|
<span class="cline-any cline-neutral"> </span>
|
|
1127
1127
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1131,11 +1131,11 @@
|
|
|
1131
1131
|
<span class="cline-any cline-neutral"> </span>
|
|
1132
1132
|
<span class="cline-any cline-neutral"> </span>
|
|
1133
1133
|
<span class="cline-any cline-neutral"> </span>
|
|
1134
|
-
<span class="cline-any cline-
|
|
1135
|
-
<span class="cline-any cline-
|
|
1136
|
-
<span class="cline-any cline-
|
|
1137
|
-
<span class="cline-any cline-
|
|
1138
|
-
<span class="cline-any cline-
|
|
1134
|
+
<span class="cline-any cline-no"> </span>
|
|
1135
|
+
<span class="cline-any cline-no"> </span>
|
|
1136
|
+
<span class="cline-any cline-no"> </span>
|
|
1137
|
+
<span class="cline-any cline-no"> </span>
|
|
1138
|
+
<span class="cline-any cline-no"> </span>
|
|
1139
1139
|
<span class="cline-any cline-neutral"> </span>
|
|
1140
1140
|
<span class="cline-any cline-no"> </span>
|
|
1141
1141
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1143,48 +1143,48 @@
|
|
|
1143
1143
|
<span class="cline-any cline-neutral"> </span>
|
|
1144
1144
|
<span class="cline-any cline-neutral"> </span>
|
|
1145
1145
|
<span class="cline-any cline-neutral"> </span>
|
|
1146
|
-
<span class="cline-any cline-
|
|
1146
|
+
<span class="cline-any cline-no"> </span>
|
|
1147
1147
|
<span class="cline-any cline-no"> </span>
|
|
1148
1148
|
<span class="cline-any cline-neutral"> </span>
|
|
1149
1149
|
<span class="cline-any cline-neutral"> </span>
|
|
1150
|
-
<span class="cline-any cline-
|
|
1151
|
-
<span class="cline-any cline-
|
|
1150
|
+
<span class="cline-any cline-no"> </span>
|
|
1151
|
+
<span class="cline-any cline-no"> </span>
|
|
1152
1152
|
<span class="cline-any cline-neutral"> </span>
|
|
1153
1153
|
<span class="cline-any cline-neutral"> </span>
|
|
1154
|
-
<span class="cline-any cline-
|
|
1154
|
+
<span class="cline-any cline-no"> </span>
|
|
1155
1155
|
<span class="cline-any cline-neutral"> </span>
|
|
1156
1156
|
<span class="cline-any cline-neutral"> </span>
|
|
1157
1157
|
<span class="cline-any cline-yes">1x</span>
|
|
1158
|
-
<span class="cline-any cline-
|
|
1159
|
-
<span class="cline-any cline-
|
|
1158
|
+
<span class="cline-any cline-no"> </span>
|
|
1159
|
+
<span class="cline-any cline-no"> </span>
|
|
1160
1160
|
<span class="cline-any cline-neutral"> </span>
|
|
1161
|
-
<span class="cline-any cline-
|
|
1162
|
-
<span class="cline-any cline-
|
|
1163
|
-
<span class="cline-any cline-
|
|
1164
|
-
<span class="cline-any cline-
|
|
1161
|
+
<span class="cline-any cline-no"> </span>
|
|
1162
|
+
<span class="cline-any cline-no"> </span>
|
|
1163
|
+
<span class="cline-any cline-no"> </span>
|
|
1164
|
+
<span class="cline-any cline-no"> </span>
|
|
1165
1165
|
<span class="cline-any cline-neutral"> </span>
|
|
1166
1166
|
<span class="cline-any cline-neutral"> </span>
|
|
1167
|
-
<span class="cline-any cline-
|
|
1167
|
+
<span class="cline-any cline-no"> </span>
|
|
1168
1168
|
<span class="cline-any cline-no"> </span>
|
|
1169
1169
|
<span class="cline-any cline-no"> </span>
|
|
1170
1170
|
<span class="cline-any cline-neutral"> </span>
|
|
1171
1171
|
<span class="cline-any cline-neutral"> </span>
|
|
1172
|
-
<span class="cline-any cline-
|
|
1172
|
+
<span class="cline-any cline-no"> </span>
|
|
1173
1173
|
<span class="cline-any cline-neutral"> </span>
|
|
1174
1174
|
<span class="cline-any cline-neutral"> </span>
|
|
1175
1175
|
<span class="cline-any cline-yes">1x</span>
|
|
1176
|
-
<span class="cline-any cline-
|
|
1177
|
-
<span class="cline-any cline-
|
|
1178
|
-
<span class="cline-any cline-
|
|
1176
|
+
<span class="cline-any cline-no"> </span>
|
|
1177
|
+
<span class="cline-any cline-no"> </span>
|
|
1178
|
+
<span class="cline-any cline-no"> </span>
|
|
1179
1179
|
<span class="cline-any cline-neutral"> </span>
|
|
1180
1180
|
<span class="cline-any cline-neutral"> </span>
|
|
1181
|
-
<span class="cline-any cline-
|
|
1181
|
+
<span class="cline-any cline-no"> </span>
|
|
1182
1182
|
<span class="cline-any cline-no"> </span>
|
|
1183
1183
|
<span class="cline-any cline-no"> </span>
|
|
1184
1184
|
<span class="cline-any cline-no"> </span>
|
|
1185
1185
|
<span class="cline-any cline-neutral"> </span>
|
|
1186
1186
|
<span class="cline-any cline-neutral"> </span>
|
|
1187
|
-
<span class="cline-any cline-
|
|
1187
|
+
<span class="cline-any cline-no"> </span>
|
|
1188
1188
|
<span class="cline-any cline-neutral"> </span>
|
|
1189
1189
|
<span class="cline-any cline-yes">1x</span>
|
|
1190
1190
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1291,199 +1291,199 @@ export class Shader extends Visual {
|
|
|
1291
1291
|
* @param [userTextures=[]]
|
|
1292
1292
|
* @param [sourceTextureOptions={}]
|
|
1293
1293
|
*/
|
|
1294
|
-
constructor (
|
|
1295
|
-
|
|
1294
|
+
<span class="fstat-no" title="function not covered" > constructor (<span class="cstat-no" title="statement not covered" >o</span>ptions: ShaderOptions = {}) {</span>
|
|
1295
|
+
<span class="cstat-no" title="statement not covered" > super()</span>
|
|
1296
1296
|
// TODO: split up into multiple methods
|
|
1297
|
-
const fragmentSrc = options.fragmentSource || Shader._IDENTITY_FRAGMENT_SOURCE
|
|
1298
|
-
const userUniforms = options.uniforms || {}
|
|
1299
|
-
const userTextures = options.textures || {}
|
|
1300
|
-
const sourceTextureOptions = options.sourceTextureOptions || {}
|
|
1301
|
-
|
|
1302
|
-
const gl = this._initGl()
|
|
1303
|
-
this._program = Shader._initShaderProgram(gl, Shader._VERTEX_SOURCE, fragmentSrc)
|
|
1304
|
-
this._buffers = Shader._initRectBuffers(gl)
|
|
1305
|
-
|
|
1306
|
-
this._initTextures(userUniforms, userTextures, sourceTextureOptions)
|
|
1307
|
-
this._initAttribs()
|
|
1308
|
-
this._initUniforms(userUniforms)
|
|
1297
|
+
const fragmentSrc = <span class="cstat-no" title="statement not covered" >options.fragmentSource || Shader._IDENTITY_FRAGMENT_SOURCE</span>
|
|
1298
|
+
const userUniforms = <span class="cstat-no" title="statement not covered" >options.uniforms || {}</span>
|
|
1299
|
+
const userTextures = <span class="cstat-no" title="statement not covered" >options.textures || {}</span>
|
|
1300
|
+
const sourceTextureOptions = <span class="cstat-no" title="statement not covered" >options.sourceTextureOptions || {}</span>
|
|
1301
|
+
|
|
1302
|
+
const gl = <span class="cstat-no" title="statement not covered" >this._initGl()</span>
|
|
1303
|
+
<span class="cstat-no" title="statement not covered" > this._program = Shader._initShaderProgram(gl, Shader._VERTEX_SOURCE, fragmentSrc)</span>
|
|
1304
|
+
<span class="cstat-no" title="statement not covered" > this._buffers = Shader._initRectBuffers(gl)</span>
|
|
1305
|
+
|
|
1306
|
+
<span class="cstat-no" title="statement not covered" > this._initTextures(userUniforms, userTextures, sourceTextureOptions)</span>
|
|
1307
|
+
<span class="cstat-no" title="statement not covered" > this._initAttribs()</span>
|
|
1308
|
+
<span class="cstat-no" title="statement not covered" > this._initUniforms(userUniforms)</span>
|
|
1309
1309
|
}
|
|
1310
1310
|
|
|
1311
|
-
private
|
|
1312
|
-
this._canvas = document.createElement('canvas')
|
|
1313
|
-
const gl = this._canvas.getContext('webgl')
|
|
1314
|
-
|
|
1311
|
+
<span class="fstat-no" title="function not covered" > private _</span>initGl () {
|
|
1312
|
+
<span class="cstat-no" title="statement not covered" > this._canvas = document.createElement('canvas')</span>
|
|
1313
|
+
const gl = <span class="cstat-no" title="statement not covered" >this._canvas.getContext('webgl')</span>
|
|
1314
|
+
<span class="cstat-no" title="statement not covered" > if (gl === null) {</span>
|
|
1315
1315
|
<span class="cstat-no" title="statement not covered" > throw new Error('Unable to initialize WebGL. Your browser or machine may not support it.')</span>
|
|
1316
1316
|
}
|
|
1317
1317
|
|
|
1318
|
-
this._gl = gl
|
|
1319
|
-
return gl
|
|
1318
|
+
<span class="cstat-no" title="statement not covered" > this._gl = gl</span>
|
|
1319
|
+
<span class="cstat-no" title="statement not covered" > return gl</span>
|
|
1320
1320
|
}
|
|
1321
1321
|
|
|
1322
|
-
private
|
|
1323
|
-
const gl = this._gl
|
|
1324
|
-
const maxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS)
|
|
1325
|
-
|
|
1322
|
+
<span class="fstat-no" title="function not covered" > private _</span>initTextures (userUniforms, userTextures, sourceTextureOptions) {
|
|
1323
|
+
const gl = <span class="cstat-no" title="statement not covered" >this._gl</span>
|
|
1324
|
+
const maxTextures = <span class="cstat-no" title="statement not covered" >gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS)</span>
|
|
1325
|
+
<span class="cstat-no" title="statement not covered" > if (userTextures.length > maxTextures) {</span>
|
|
1326
1326
|
<span class="cstat-no" title="statement not covered" > console.warn('Too many textures!')</span>
|
|
1327
1327
|
}
|
|
1328
1328
|
|
|
1329
|
-
this._userTextures = {}
|
|
1330
|
-
for (const name in userTextures) {
|
|
1331
|
-
const userOptions: TextureOptions = userTextures[name]
|
|
1329
|
+
<span class="cstat-no" title="statement not covered" > this._userTextures = {}</span>
|
|
1330
|
+
<span class="cstat-no" title="statement not covered" > for (const name in userTextures) {</span>
|
|
1331
|
+
const userOptions: TextureOptions = <span class="cstat-no" title="statement not covered" >userTextures[name]</span>
|
|
1332
1332
|
// Apply default options.
|
|
1333
|
-
const options = { ...Shader._DEFAULT_TEXTURE_OPTIONS, ...userOptions }
|
|
1333
|
+
const options<span class="cstat-no" title="statement not covered" > = { ...Shader._DEFAULT_TEXTURE_OPTIONS, ...userOptions }</span>
|
|
1334
1334
|
|
|
1335
|
-
|
|
1335
|
+
<span class="cstat-no" title="statement not covered" > if (options.createUniform) {</span>
|
|
1336
1336
|
/*
|
|
1337
1337
|
* Automatically, create a uniform with the same name as this texture,
|
|
1338
1338
|
* that points to it. This is an easy way for the user to use custom
|
|
1339
1339
|
* textures, without having to define multiple properties in the effect
|
|
1340
1340
|
* object.
|
|
1341
1341
|
*/
|
|
1342
|
-
|
|
1342
|
+
<span class="cstat-no" title="statement not covered" > if (userUniforms[name]) {</span>
|
|
1343
1343
|
<span class="cstat-no" title="statement not covered" > throw new Error(`Texture - uniform naming conflict: ${name}!`)</span>
|
|
1344
1344
|
}
|
|
1345
1345
|
|
|
1346
1346
|
// Add this as a "user uniform".
|
|
1347
|
-
userUniforms[name] = '1i'
|
|
1347
|
+
<span class="cstat-no" title="statement not covered" > userUniforms[name] = '1i' /</span>/ texture pointer
|
|
1348
1348
|
}
|
|
1349
|
-
this._userTextures[name] = options
|
|
1349
|
+
<span class="cstat-no" title="statement not covered" > this._userTextures[name] = options</span>
|
|
1350
1350
|
}
|
|
1351
|
-
this._sourceTextureOptions = { ...Shader._DEFAULT_TEXTURE_OPTIONS, ...sourceTextureOptions }
|
|
1351
|
+
<span class="cstat-no" title="statement not covered" > this._sourceTextureOptions = { ...Shader._DEFAULT_TEXTURE_OPTIONS, ...sourceTextureOptions }</span>
|
|
1352
1352
|
}
|
|
1353
1353
|
|
|
1354
|
-
private
|
|
1355
|
-
const gl = this._gl
|
|
1356
|
-
this._attribLocations = {
|
|
1354
|
+
<span class="fstat-no" title="function not covered" > private _</span>initAttribs () {
|
|
1355
|
+
const gl = <span class="cstat-no" title="statement not covered" >this._gl</span>
|
|
1356
|
+
<span class="cstat-no" title="statement not covered" > this._attribLocations = {</span>
|
|
1357
1357
|
vertexPosition: gl.getAttribLocation(this._program, 'a_VertexPosition'),
|
|
1358
1358
|
textureCoord: gl.getAttribLocation(this._program, 'a_TextureCoord')
|
|
1359
1359
|
}
|
|
1360
1360
|
}
|
|
1361
1361
|
|
|
1362
|
-
private
|
|
1363
|
-
const gl = this._gl
|
|
1364
|
-
this._uniformLocations = {
|
|
1362
|
+
<span class="fstat-no" title="function not covered" > private _</span>initUniforms (userUniforms) {
|
|
1363
|
+
const gl = <span class="cstat-no" title="statement not covered" >this._gl</span>
|
|
1364
|
+
<span class="cstat-no" title="statement not covered" > this._uniformLocations = {</span>
|
|
1365
1365
|
source: gl.getUniformLocation(this._program, 'u_Source'),
|
|
1366
1366
|
size: gl.getUniformLocation(this._program, 'u_Size')
|
|
1367
1367
|
}
|
|
1368
1368
|
// The options value can just be a string equal to the type of the variable,
|
|
1369
1369
|
// for syntactic sugar. If this is the case, convert it to a real options
|
|
1370
1370
|
// object.
|
|
1371
|
-
this._userUniforms = {}
|
|
1372
|
-
for (const name in userUniforms) {
|
|
1373
|
-
const val = userUniforms[name]
|
|
1374
|
-
this._userUniforms[name] = typeof val === 'string' ? { type: val } : val
|
|
1371
|
+
<span class="cstat-no" title="statement not covered" > this._userUniforms = {}</span>
|
|
1372
|
+
<span class="cstat-no" title="statement not covered" > for (const name in userUniforms) {</span>
|
|
1373
|
+
const val = <span class="cstat-no" title="statement not covered" >userUniforms[name]</span>
|
|
1374
|
+
<span class="cstat-no" title="statement not covered" > this._userUniforms[name] = typeof val === 'string' ? { type: val } : val</span>
|
|
1375
1375
|
}
|
|
1376
|
-
for (const unprefixed in userUniforms) {
|
|
1376
|
+
<span class="cstat-no" title="statement not covered" > for (const unprefixed in userUniforms) {</span>
|
|
1377
1377
|
// property => u_Property
|
|
1378
|
-
const prefixed = 'u_' + unprefixed.charAt(0).toUpperCase() + (unprefixed.length > 1 ? unprefixed.slice(1) :
|
|
1379
|
-
this._uniformLocations[unprefixed] = gl.getUniformLocation(this._program, prefixed)
|
|
1378
|
+
const prefixed = <span class="cstat-no" title="statement not covered" >'u_' + unprefixed.charAt(0).toUpperCase() + (unprefixed.length > 1 ? unprefixed.slice(1) : '')</span>
|
|
1379
|
+
<span class="cstat-no" title="statement not covered" > this._uniformLocations[unprefixed] = gl.getUniformLocation(this._program, prefixed)</span>
|
|
1380
1380
|
}
|
|
1381
1381
|
}
|
|
1382
1382
|
|
|
1383
|
-
apply (target: Movie | VisualLayer, reltime: number): void {
|
|
1384
|
-
this._checkDimensions(target)
|
|
1385
|
-
this._refreshGl()
|
|
1383
|
+
<span class="fstat-no" title="function not covered" > apply </span>(target: Movie | VisualLayer, reltime: number): void {
|
|
1384
|
+
<span class="cstat-no" title="statement not covered" > this._checkDimensions(target)</span>
|
|
1385
|
+
<span class="cstat-no" title="statement not covered" > this._refreshGl()</span>
|
|
1386
1386
|
|
|
1387
|
-
this._enablePositionAttrib()
|
|
1388
|
-
this._enableTexCoordAttrib()
|
|
1389
|
-
this._prepareTextures(target, reltime)
|
|
1387
|
+
<span class="cstat-no" title="statement not covered" > this._enablePositionAttrib()</span>
|
|
1388
|
+
<span class="cstat-no" title="statement not covered" > this._enableTexCoordAttrib()</span>
|
|
1389
|
+
<span class="cstat-no" title="statement not covered" > this._prepareTextures(target, reltime)</span>
|
|
1390
1390
|
|
|
1391
|
-
this._gl.useProgram(this._program)
|
|
1391
|
+
<span class="cstat-no" title="statement not covered" > this._gl.useProgram(this._program)</span>
|
|
1392
1392
|
|
|
1393
|
-
this._prepareUniforms(target, reltime)
|
|
1393
|
+
<span class="cstat-no" title="statement not covered" > this._prepareUniforms(target, reltime)</span>
|
|
1394
1394
|
|
|
1395
|
-
this._draw(target)
|
|
1395
|
+
<span class="cstat-no" title="statement not covered" > this._draw(target)</span>
|
|
1396
1396
|
}
|
|
1397
1397
|
|
|
1398
|
-
private
|
|
1399
|
-
const gl = this._gl
|
|
1398
|
+
<span class="fstat-no" title="function not covered" > private _</span>checkDimensions (target) {
|
|
1399
|
+
const gl = <span class="cstat-no" title="statement not covered" >this._gl</span>
|
|
1400
1400
|
// TODO: Change target.canvas.width => target.width and see if it breaks
|
|
1401
1401
|
// anything.
|
|
1402
|
-
if (this._canvas.width !== target.canvas.width || this._canvas.height !== target.canvas.height) { // (optimization)
|
|
1403
|
-
this._canvas.width = target.canvas.width
|
|
1404
|
-
this._canvas.height = target.canvas.height
|
|
1402
|
+
<span class="cstat-no" title="statement not covered" > if (this._canvas.width !== target.canvas.width || this._canvas.height !== target.canvas.height) { // (optimization)</span>
|
|
1403
|
+
<span class="cstat-no" title="statement not covered" > this._canvas.width = target.canvas.width</span>
|
|
1404
|
+
<span class="cstat-no" title="statement not covered" > this._canvas.height = target.canvas.height</span>
|
|
1405
1405
|
|
|
1406
|
-
gl.viewport(0, 0, target.canvas.width, target.canvas.height)
|
|
1406
|
+
<span class="cstat-no" title="statement not covered" > gl.viewport(0, 0, target.canvas.width, target.canvas.height)</span>
|
|
1407
1407
|
}
|
|
1408
1408
|
}
|
|
1409
1409
|
|
|
1410
|
-
private
|
|
1411
|
-
const gl = this._gl
|
|
1410
|
+
<span class="fstat-no" title="function not covered" > private _</span>refreshGl () {
|
|
1411
|
+
const gl = <span class="cstat-no" title="statement not covered" >this._gl</span>
|
|
1412
1412
|
// Clear to black; fragments can be made transparent with the blendfunc
|
|
1413
1413
|
// below.
|
|
1414
|
-
gl.clearColor(0, 0, 0, 1)
|
|
1414
|
+
<span class="cstat-no" title="statement not covered" > gl.clearColor(0, 0, 0, 1)</span>
|
|
1415
1415
|
// gl.clearDepth(1.0); // clear everything
|
|
1416
1416
|
// not sure why I can't multiply rgb by zero
|
|
1417
|
-
gl.blendFuncSeparate(gl.SRC_ALPHA, gl.SRC_ALPHA, gl.ONE, gl.ZERO)
|
|
1418
|
-
gl.enable(gl.BLEND)
|
|
1419
|
-
gl.disable(gl.DEPTH_TEST)
|
|
1417
|
+
<span class="cstat-no" title="statement not covered" > gl.blendFuncSeparate(gl.SRC_ALPHA, gl.SRC_ALPHA, gl.ONE, gl.ZERO)</span>
|
|
1418
|
+
<span class="cstat-no" title="statement not covered" > gl.enable(gl.BLEND)</span>
|
|
1419
|
+
<span class="cstat-no" title="statement not covered" > gl.disable(gl.DEPTH_TEST)</span>
|
|
1420
1420
|
// gl.depthFunc(gl.LEQUAL);
|
|
1421
1421
|
|
|
1422
|
-
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
|
|
1422
|
+
<span class="cstat-no" title="statement not covered" > gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)</span>
|
|
1423
1423
|
}
|
|
1424
1424
|
|
|
1425
|
-
private
|
|
1426
|
-
const gl = this._gl
|
|
1425
|
+
<span class="fstat-no" title="function not covered" > private _</span>enablePositionAttrib () {
|
|
1426
|
+
const gl = <span class="cstat-no" title="statement not covered" >this._gl</span>
|
|
1427
1427
|
// Tell WebGL how to pull out the positions from buffer
|
|
1428
|
-
const numComponents = 2
|
|
1428
|
+
const numComponents = <span class="cstat-no" title="statement not covered" >2</span>
|
|
1429
1429
|
// The data in the buffer is 32bit floats
|
|
1430
|
-
const type = gl.FLOAT
|
|
1430
|
+
const type = <span class="cstat-no" title="statement not covered" >gl.FLOAT</span>
|
|
1431
1431
|
// Don't normalize
|
|
1432
|
-
const normalize = false
|
|
1432
|
+
const normalize = <span class="cstat-no" title="statement not covered" >false</span>
|
|
1433
1433
|
// How many bytes to get from one set of values to the next
|
|
1434
1434
|
// 0 = use type and numComponents above
|
|
1435
|
-
const stride = 0
|
|
1435
|
+
const stride = <span class="cstat-no" title="statement not covered" >0</span>
|
|
1436
1436
|
// How many bytes inside the buffer to start from
|
|
1437
|
-
const offset = 0
|
|
1438
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, this._buffers.position)
|
|
1439
|
-
gl.vertexAttribPointer(
|
|
1437
|
+
const offset = <span class="cstat-no" title="statement not covered" >0</span>
|
|
1438
|
+
<span class="cstat-no" title="statement not covered" > gl.bindBuffer(gl.ARRAY_BUFFER, this._buffers.position)</span>
|
|
1439
|
+
<span class="cstat-no" title="statement not covered" > gl.vertexAttribPointer(</span>
|
|
1440
1440
|
this._attribLocations.vertexPosition,
|
|
1441
1441
|
numComponents,
|
|
1442
1442
|
type,
|
|
1443
1443
|
normalize,
|
|
1444
1444
|
stride,
|
|
1445
1445
|
offset)
|
|
1446
|
-
gl.enableVertexAttribArray(
|
|
1446
|
+
<span class="cstat-no" title="statement not covered" > gl.enableVertexAttribArray(</span>
|
|
1447
1447
|
this._attribLocations.vertexPosition)
|
|
1448
1448
|
}
|
|
1449
1449
|
|
|
1450
|
-
private
|
|
1451
|
-
const gl = this._gl
|
|
1450
|
+
<span class="fstat-no" title="function not covered" > private _</span>enableTexCoordAttrib () {
|
|
1451
|
+
const gl = <span class="cstat-no" title="statement not covered" >this._gl</span>
|
|
1452
1452
|
// tell webgl how to pull out the texture coordinates from buffer
|
|
1453
|
-
const numComponents = 2
|
|
1454
|
-
const type = gl.FLOAT
|
|
1455
|
-
const normalize = false
|
|
1456
|
-
const stride = 0
|
|
1457
|
-
const offset = 0
|
|
1458
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, this._buffers.textureCoord)
|
|
1459
|
-
gl.vertexAttribPointer(this._attribLocations.textureCoord, numComponents, type, normalize, stride, offset)
|
|
1460
|
-
gl.enableVertexAttribArray(this._attribLocations.textureCoord)
|
|
1453
|
+
const numComponents = <span class="cstat-no" title="statement not covered" >2 </span>// every coordinate composed of 2 values (uv)
|
|
1454
|
+
const type = <span class="cstat-no" title="statement not covered" >gl.FLOAT </span>// the data in the buffer is 32 bit float
|
|
1455
|
+
const normalize = <span class="cstat-no" title="statement not covered" >false </span>// don't normalize
|
|
1456
|
+
const stride = <span class="cstat-no" title="statement not covered" >0 </span>// how many bytes to get from one set to the next
|
|
1457
|
+
const offset = <span class="cstat-no" title="statement not covered" >0 </span>// how many bytes inside the buffer to start from
|
|
1458
|
+
<span class="cstat-no" title="statement not covered" > gl.bindBuffer(gl.ARRAY_BUFFER, this._buffers.textureCoord)</span>
|
|
1459
|
+
<span class="cstat-no" title="statement not covered" > gl.vertexAttribPointer(this._attribLocations.textureCoord, numComponents, type, normalize, stride, offset)</span>
|
|
1460
|
+
<span class="cstat-no" title="statement not covered" > gl.enableVertexAttribArray(this._attribLocations.textureCoord)</span>
|
|
1461
1461
|
}
|
|
1462
1462
|
|
|
1463
|
-
private
|
|
1464
|
-
const gl = this._gl
|
|
1463
|
+
<span class="fstat-no" title="function not covered" > private _</span>prepareTextures (target, reltime) {
|
|
1464
|
+
const gl = <span class="cstat-no" title="statement not covered" >this._gl</span>
|
|
1465
1465
|
// TODO: figure out which properties should be private / public
|
|
1466
1466
|
|
|
1467
1467
|
// Tell WebGL we want to affect texture unit 0
|
|
1468
1468
|
// Call `activeTexture` before `_loadTexture` so it won't be bound to the
|
|
1469
1469
|
// last active texture.
|
|
1470
|
-
gl.activeTexture(gl.TEXTURE0)
|
|
1471
|
-
this._inputTexture = Shader._loadTexture(gl, target.canvas, this._sourceTextureOptions)
|
|
1470
|
+
<span class="cstat-no" title="statement not covered" > gl.activeTexture(gl.TEXTURE0)</span>
|
|
1471
|
+
<span class="cstat-no" title="statement not covered" > this._inputTexture = Shader._loadTexture(gl, target.canvas, this._sourceTextureOptions)</span>
|
|
1472
1472
|
// Bind the texture to texture unit 0
|
|
1473
|
-
gl.bindTexture(gl.TEXTURE_2D, this._inputTexture)
|
|
1473
|
+
<span class="cstat-no" title="statement not covered" > gl.bindTexture(gl.TEXTURE_2D, this._inputTexture)</span>
|
|
1474
1474
|
|
|
1475
|
-
let i = 0
|
|
1476
|
-
for (const name in this._userTextures) {
|
|
1477
|
-
const options = this._userTextures[name]
|
|
1475
|
+
let i = <span class="cstat-no" title="statement not covered" >0</span>
|
|
1476
|
+
<span class="cstat-no" title="statement not covered" > for (const name in this._userTextures) {</span>
|
|
1477
|
+
const options = <span class="cstat-no" title="statement not covered" >this._userTextures[name]</span>
|
|
1478
1478
|
/*
|
|
1479
1479
|
* Call `activeTexture` before `_loadTexture` so it won't be bound to the
|
|
1480
1480
|
* last active texture.
|
|
1481
1481
|
* TODO: investigate better implementation of `_loadTexture`
|
|
1482
1482
|
*/
|
|
1483
|
-
gl.activeTexture(gl.TEXTURE0 + (Shader.INTERNAL_TEXTURE_UNITS + i))
|
|
1484
|
-
const preparedTex = Shader._loadTexture(gl, val(this, name, reltime), options)
|
|
1485
|
-
gl.bindTexture(gl[options.target], preparedTex)
|
|
1486
|
-
i
|
|
1483
|
+
<span class="cstat-no" title="statement not covered" > gl.activeTexture(gl.TEXTURE0 + (Shader.INTERNAL_TEXTURE_UNITS + i)) /</span>/ use the fact that TEXTURE0, TEXTURE1, ... are continuous
|
|
1484
|
+
const preparedTex = <span class="cstat-no" title="statement not covered" >Shader._loadTexture(gl, val(this, name, reltime), options) </span>// do it every frame to keep updated (I think you need to)
|
|
1485
|
+
<span class="cstat-no" title="statement not covered" > gl.bindTexture(gl[options.target], preparedTex)</span>
|
|
1486
|
+
<span class="cstat-no" title="statement not covered" > i++</span>
|
|
1487
1487
|
}
|
|
1488
1488
|
}
|
|
1489
1489
|
|
|
@@ -1492,42 +1492,42 @@ export class Shader extends Visual {
|
|
|
1492
1492
|
* @param target The movie or layer to apply the shader to.
|
|
1493
1493
|
* @param reltime The relative time of the movie or layer.
|
|
1494
1494
|
*/
|
|
1495
|
-
private
|
|
1496
|
-
const gl = this._gl
|
|
1495
|
+
<span class="fstat-no" title="function not covered" > private _</span>prepareUniforms (target, reltime) {
|
|
1496
|
+
const gl = <span class="cstat-no" title="statement not covered" >this._gl</span>
|
|
1497
1497
|
|
|
1498
1498
|
// Tell the shader we bound the texture to texture unit 0.
|
|
1499
1499
|
// All base (Shader class) uniforms are optional.
|
|
1500
|
-
|
|
1501
|
-
gl.uniform1i(this._uniformLocations.source, 0)
|
|
1500
|
+
<span class="cstat-no" title="statement not covered" > if (this._uniformLocations.source) {</span>
|
|
1501
|
+
<span class="cstat-no" title="statement not covered" > gl.uniform1i(this._uniformLocations.source, 0)</span>
|
|
1502
1502
|
}
|
|
1503
1503
|
|
|
1504
1504
|
// All base (Shader class) uniforms are optional.
|
|
1505
|
-
if (this._uniformLocations.size) {
|
|
1506
|
-
gl.uniform2iv(this._uniformLocations.size, [target.canvas.width, target.canvas.height])
|
|
1505
|
+
<span class="cstat-no" title="statement not covered" > if (this._uniformLocations.size) {</span>
|
|
1506
|
+
<span class="cstat-no" title="statement not covered" > gl.uniform2iv(this._uniformLocations.size, [target.canvas.width, target.canvas.height])</span>
|
|
1507
1507
|
}
|
|
1508
1508
|
|
|
1509
|
-
for (const unprefixed in this._userUniforms) {
|
|
1510
|
-
const options = this._userUniforms[unprefixed] as UniformOptions
|
|
1511
|
-
const value = val(this, unprefixed, reltime)
|
|
1512
|
-
const preparedValue = this._prepareValue(value, options.type, reltime, options)
|
|
1513
|
-
const location = this._uniformLocations[unprefixed]
|
|
1509
|
+
<span class="cstat-no" title="statement not covered" > for (const unprefixed in this._userUniforms) {</span>
|
|
1510
|
+
const options = <span class="cstat-no" title="statement not covered" >this._userUniforms[unprefixed] as UniformOptions</span>
|
|
1511
|
+
const value = <span class="cstat-no" title="statement not covered" >val(this, unprefixed, reltime)</span>
|
|
1512
|
+
const preparedValue = <span class="cstat-no" title="statement not covered" >this._prepareValue(value, options.type, reltime, options)</span>
|
|
1513
|
+
const location = <span class="cstat-no" title="statement not covered" >this._uniformLocations[unprefixed]</span>
|
|
1514
1514
|
// haHA JavaScript (`options.type` is "1f", for instance)
|
|
1515
|
-
gl['uniform' + options.type](location, preparedValue)
|
|
1515
|
+
<span class="cstat-no" title="statement not covered" > gl['uniform' + options.type](location, preparedValue)</span>
|
|
1516
1516
|
}
|
|
1517
|
-
gl.uniform1i(this._uniformLocations.test, 0)
|
|
1517
|
+
<span class="cstat-no" title="statement not covered" > gl.uniform1i(this._uniformLocations.test, 0)</span>
|
|
1518
1518
|
}
|
|
1519
1519
|
|
|
1520
|
-
private
|
|
1521
|
-
const gl = this._gl
|
|
1520
|
+
<span class="fstat-no" title="function not covered" > private _</span>draw (target) {
|
|
1521
|
+
const gl = <span class="cstat-no" title="statement not covered" >this._gl</span>
|
|
1522
1522
|
|
|
1523
|
-
const offset = 0
|
|
1524
|
-
const vertexCount = 4
|
|
1525
|
-
gl.drawArrays(gl.TRIANGLE_STRIP, offset, vertexCount)
|
|
1523
|
+
const offset = <span class="cstat-no" title="statement not covered" >0</span>
|
|
1524
|
+
const vertexCount = <span class="cstat-no" title="statement not covered" >4</span>
|
|
1525
|
+
<span class="cstat-no" title="statement not covered" > gl.drawArrays(gl.TRIANGLE_STRIP, offset, vertexCount)</span>
|
|
1526
1526
|
|
|
1527
1527
|
// clear the target, in case the effect outputs transparent pixels
|
|
1528
|
-
target.cctx.clearRect(0, 0, target.canvas.width, target.canvas.height)
|
|
1528
|
+
<span class="cstat-no" title="statement not covered" > target.cctx.clearRect(0, 0, target.canvas.width, target.canvas.height)</span>
|
|
1529
1529
|
// copy internal image state onto target
|
|
1530
|
-
target.cctx.drawImage(this._canvas, 0, 0)
|
|
1530
|
+
<span class="cstat-no" title="statement not covered" > target.cctx.drawImage(this._canvas, 0, 0)</span>
|
|
1531
1531
|
}
|
|
1532
1532
|
|
|
1533
1533
|
/**
|
|
@@ -1541,9 +1541,9 @@ export class Shader extends Visual {
|
|
|
1541
1541
|
* @param [options]
|
|
1542
1542
|
* @returns the prepared value
|
|
1543
1543
|
*/
|
|
1544
|
-
private
|
|
1545
|
-
const def = options.defaultFloatComponent || 0
|
|
1546
|
-
if (outputType === '1i') {
|
|
1544
|
+
<span class="fstat-no" title="function not covered" > private _</span>prepareValue (value, outputType, reltime, <span class="cstat-no" title="statement not covered" >options: UniformOptions = {}) {</span>
|
|
1545
|
+
const def = <span class="cstat-no" title="statement not covered" >options.defaultFloatComponent || 0</span>
|
|
1546
|
+
<span class="cstat-no" title="statement not covered" > if (outputType === '1i') {</span>
|
|
1547
1547
|
/*
|
|
1548
1548
|
* Textures are passed to the shader by both providing the texture (with
|
|
1549
1549
|
* texImage2D) and setting the |sampler| uniform equal to the index of
|
|
@@ -1558,65 +1558,65 @@ export class Shader extends Visual {
|
|
|
1558
1558
|
* To do this, test if |value| is identical to a texture. If so, set it
|
|
1559
1559
|
* to the texture's index, so the shader can use it.
|
|
1560
1560
|
*/
|
|
1561
|
-
let i = 0
|
|
1562
|
-
for (const name in this._userTextures) {
|
|
1563
|
-
const testValue = val(this, name, reltime)
|
|
1564
|
-
if (value === testValue) {
|
|
1565
|
-
value = Shader.INTERNAL_TEXTURE_UNITS + i
|
|
1561
|
+
let i = <span class="cstat-no" title="statement not covered" >0</span>
|
|
1562
|
+
<span class="cstat-no" title="statement not covered" > for (const name in this._userTextures) {</span>
|
|
1563
|
+
const testValue = <span class="cstat-no" title="statement not covered" >val(this, name, reltime)</span>
|
|
1564
|
+
<span class="cstat-no" title="statement not covered" > if (value === testValue) {</span>
|
|
1565
|
+
<span class="cstat-no" title="statement not covered" > value = Shader.INTERNAL_TEXTURE_UNITS + i /</span>/ after the internal texture units
|
|
1566
1566
|
}
|
|
1567
1567
|
|
|
1568
|
-
i
|
|
1568
|
+
<span class="cstat-no" title="statement not covered" > i++</span>
|
|
1569
1569
|
}
|
|
1570
1570
|
}
|
|
1571
1571
|
|
|
1572
|
-
if (outputType === '3fv') {
|
|
1572
|
+
<span class="cstat-no" title="statement not covered" > if (outputType === '3fv') {</span>
|
|
1573
1573
|
// allow 4-component vectors; TODO: why?
|
|
1574
|
-
|
|
1574
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(value) && (value.length === 3 || value.length === 4)) {</span>
|
|
1575
1575
|
<span class="cstat-no" title="statement not covered" > return value</span>
|
|
1576
1576
|
}
|
|
1577
1577
|
|
|
1578
1578
|
// kind of loose so this can be changed if needed
|
|
1579
|
-
|
|
1580
|
-
return [
|
|
1581
|
-
value.r !== undefined ? value.r :
|
|
1582
|
-
value.g !== undefined ? value.g :
|
|
1583
|
-
value.b !== undefined ? value.b :
|
|
1579
|
+
<span class="cstat-no" title="statement not covered" > if (typeof value === 'object') {</span>
|
|
1580
|
+
<span class="cstat-no" title="statement not covered" > return [</span>
|
|
1581
|
+
value.r !== undefined ? value.r : def,
|
|
1582
|
+
value.g !== undefined ? value.g : def,
|
|
1583
|
+
value.b !== undefined ? value.b : def
|
|
1584
1584
|
]
|
|
1585
1585
|
}
|
|
1586
1586
|
|
|
1587
1587
|
<span class="cstat-no" title="statement not covered" > throw new Error(`Invalid type: ${outputType} or value: ${value}`)</span>
|
|
1588
1588
|
}
|
|
1589
1589
|
|
|
1590
|
-
if (outputType === '4fv') {
|
|
1591
|
-
|
|
1590
|
+
<span class="cstat-no" title="statement not covered" > if (outputType === '4fv') {</span>
|
|
1591
|
+
<span class="cstat-no" title="statement not covered" > if (Array.isArray(value) && value.length === 4) {</span>
|
|
1592
1592
|
<span class="cstat-no" title="statement not covered" > return value</span>
|
|
1593
1593
|
}
|
|
1594
1594
|
|
|
1595
1595
|
// kind of loose so this can be changed if needed
|
|
1596
|
-
|
|
1597
|
-
return [
|
|
1598
|
-
value.r !== undefined ? value.r :
|
|
1599
|
-
value.g !== undefined ? value.g :
|
|
1600
|
-
value.b !== undefined ? value.b :
|
|
1601
|
-
value.a !== undefined ?
|
|
1596
|
+
<span class="cstat-no" title="statement not covered" > if (typeof value === 'object') {</span>
|
|
1597
|
+
<span class="cstat-no" title="statement not covered" > return [</span>
|
|
1598
|
+
value.r !== undefined ? value.r : def,
|
|
1599
|
+
value.g !== undefined ? value.g : def,
|
|
1600
|
+
value.b !== undefined ? value.b : def,
|
|
1601
|
+
value.a !== undefined ? value.a : def
|
|
1602
1602
|
]
|
|
1603
1603
|
}
|
|
1604
1604
|
|
|
1605
1605
|
<span class="cstat-no" title="statement not covered" > throw new Error(`Invalid type: ${outputType} or value: ${value}`)</span>
|
|
1606
1606
|
}
|
|
1607
1607
|
|
|
1608
|
-
return value
|
|
1608
|
+
<span class="cstat-no" title="statement not covered" > return value</span>
|
|
1609
1609
|
}
|
|
1610
1610
|
|
|
1611
|
-
private static
|
|
1612
|
-
const position = [
|
|
1611
|
+
<span class="fstat-no" title="function not covered" > private static _</span>initRectBuffers (gl) {
|
|
1612
|
+
const position = <span class="cstat-no" title="statement not covered" >[</span>
|
|
1613
1613
|
// the screen/canvas (output)
|
|
1614
1614
|
-1.0, 1.0,
|
|
1615
1615
|
1.0, 1.0,
|
|
1616
1616
|
-1.0, -1.0,
|
|
1617
1617
|
1.0, -1.0
|
|
1618
1618
|
]
|
|
1619
|
-
const textureCoord = [
|
|
1619
|
+
const textureCoord = <span class="cstat-no" title="statement not covered" >[</span>
|
|
1620
1620
|
// the texture/canvas (input)
|
|
1621
1621
|
0.0, 0.0,
|
|
1622
1622
|
1.0, 0.0,
|
|
@@ -1624,7 +1624,7 @@ export class Shader extends Visual {
|
|
|
1624
1624
|
1.0, 1.0
|
|
1625
1625
|
]
|
|
1626
1626
|
|
|
1627
|
-
return {
|
|
1627
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
1628
1628
|
position: Shader._initBuffer(gl, position),
|
|
1629
1629
|
textureCoord: Shader._initBuffer(gl, textureCoord)
|
|
1630
1630
|
}
|
|
@@ -1633,15 +1633,15 @@ export class Shader extends Visual {
|
|
|
1633
1633
|
/**
|
|
1634
1634
|
* Creates the quad covering the screen
|
|
1635
1635
|
*/
|
|
1636
|
-
private static
|
|
1637
|
-
const buffer = gl.createBuffer()
|
|
1636
|
+
<span class="fstat-no" title="function not covered" > private static _</span>initBuffer (gl, data) {
|
|
1637
|
+
const buffer = <span class="cstat-no" title="statement not covered" >gl.createBuffer()</span>
|
|
1638
1638
|
|
|
1639
1639
|
// Select the buffer as the one to apply buffer operations to from here out.
|
|
1640
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, buffer)
|
|
1640
|
+
<span class="cstat-no" title="statement not covered" > gl.bindBuffer(gl.ARRAY_BUFFER, buffer)</span>
|
|
1641
1641
|
|
|
1642
|
-
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.STATIC_DRAW)
|
|
1642
|
+
<span class="cstat-no" title="statement not covered" > gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.STATIC_DRAW)</span>
|
|
1643
1643
|
|
|
1644
|
-
return buffer
|
|
1644
|
+
<span class="cstat-no" title="statement not covered" > return buffer</span>
|
|
1645
1645
|
}
|
|
1646
1646
|
|
|
1647
1647
|
/**
|
|
@@ -1657,26 +1657,26 @@ export class Shader extends Visual {
|
|
|
1657
1657
|
* @param [options.minFilter=gl.LINEAR]
|
|
1658
1658
|
* @param [options.magFilter=gl.LINEAR]
|
|
1659
1659
|
*/
|
|
1660
|
-
private static
|
|
1660
|
+
<span class="fstat-no" title="function not covered" > private static _</span>loadTexture (gl, source, <span class="cstat-no" title="statement not covered" >options: TextureOptions = {}) {</span>
|
|
1661
1661
|
// Apply default options, just in case.
|
|
1662
|
-
options = { ...Shader._DEFAULT_TEXTURE_OPTIONS, ...options }
|
|
1662
|
+
<span class="cstat-no" title="statement not covered" > options = { ...Shader._DEFAULT_TEXTURE_OPTIONS, ...options }</span>
|
|
1663
1663
|
// When creating the option, the user can't access `gl` so access it here.
|
|
1664
|
-
const target = gl[options.target]
|
|
1665
|
-
const level = options.level
|
|
1666
|
-
const internalFormat = gl[options.internalFormat]
|
|
1667
|
-
const srcFormat = gl[options.srcFormat]
|
|
1668
|
-
const srcType = gl[options.srcType]
|
|
1669
|
-
const wrapS = gl[options.wrapS]
|
|
1670
|
-
const wrapT = gl[options.wrapT]
|
|
1671
|
-
const minFilter = gl[options.minFilter]
|
|
1672
|
-
const magFilter = gl[options.magFilter]
|
|
1664
|
+
const target = <span class="cstat-no" title="statement not covered" >gl[options.target]</span>
|
|
1665
|
+
const level = <span class="cstat-no" title="statement not covered" >options.level</span>
|
|
1666
|
+
const internalFormat = <span class="cstat-no" title="statement not covered" >gl[options.internalFormat]</span>
|
|
1667
|
+
const srcFormat = <span class="cstat-no" title="statement not covered" >gl[options.srcFormat]</span>
|
|
1668
|
+
const srcType = <span class="cstat-no" title="statement not covered" >gl[options.srcType]</span>
|
|
1669
|
+
const wrapS = <span class="cstat-no" title="statement not covered" >gl[options.wrapS]</span>
|
|
1670
|
+
const wrapT = <span class="cstat-no" title="statement not covered" >gl[options.wrapT]</span>
|
|
1671
|
+
const minFilter = <span class="cstat-no" title="statement not covered" >gl[options.minFilter]</span>
|
|
1672
|
+
const magFilter = <span class="cstat-no" title="statement not covered" >gl[options.magFilter]</span>
|
|
1673
1673
|
// TODO: figure out how wrap-s and wrap-t interact with mipmaps
|
|
1674
1674
|
// (for legacy support)
|
|
1675
1675
|
// let wrapS = options.wrapS ? options.wrapS : gl.CLAMP_TO_EDGE,
|
|
1676
1676
|
// wrapT = options.wrapT ? options.wrapT : gl.CLAMP_TO_EDGE;
|
|
1677
1677
|
|
|
1678
|
-
const tex = gl.createTexture()
|
|
1679
|
-
gl.bindTexture(target, tex)
|
|
1678
|
+
const tex = <span class="cstat-no" title="statement not covered" >gl.createTexture()</span>
|
|
1679
|
+
<span class="cstat-no" title="statement not covered" > gl.bindTexture(target, tex)</span>
|
|
1680
1680
|
|
|
1681
1681
|
// gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true) // premultiply alpha
|
|
1682
1682
|
|
|
@@ -1684,7 +1684,7 @@ export class Shader extends Visual {
|
|
|
1684
1684
|
|
|
1685
1685
|
// TODO: support 3d textures (change texImage2D)
|
|
1686
1686
|
// set to `source`
|
|
1687
|
-
gl.texImage2D(target, level, internalFormat, srcFormat, srcType, source)
|
|
1687
|
+
<span class="cstat-no" title="statement not covered" > gl.texImage2D(target, level, internalFormat, srcFormat, srcType, source)</span>
|
|
1688
1688
|
|
|
1689
1689
|
/*
|
|
1690
1690
|
* WebGL1 has different requirements for power of 2 images vs non power of 2
|
|
@@ -1694,11 +1694,11 @@ export class Shader extends Visual {
|
|
|
1694
1694
|
* `videoHeight` instead and `ArrayBufferView`, which is one dimensional (so
|
|
1695
1695
|
* don't worry about mipmaps)
|
|
1696
1696
|
*/
|
|
1697
|
-
const w =
|
|
1698
|
-
const h =
|
|
1699
|
-
gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, minFilter)
|
|
1700
|
-
gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, magFilter)
|
|
1701
|
-
|
|
1697
|
+
const w = <span class="cstat-no" title="statement not covered" >target instanceof HTMLVideoElement ? target.videoWidth : target.width</span>
|
|
1698
|
+
const h = <span class="cstat-no" title="statement not covered" >target instanceof HTMLVideoElement ? target.videoHeight : target.height</span>
|
|
1699
|
+
<span class="cstat-no" title="statement not covered" > gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, minFilter)</span>
|
|
1700
|
+
<span class="cstat-no" title="statement not covered" > gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, magFilter)</span>
|
|
1701
|
+
<span class="cstat-no" title="statement not covered" > if ((w && isPowerOf2(w)) && (h && isPowerOf2(h))) {</span>
|
|
1702
1702
|
// Yes, it's a power of 2. All wrap modes are valid. Generate mips.
|
|
1703
1703
|
<span class="cstat-no" title="statement not covered" > gl.texParameteri(target, gl.TEXTURE_WRAP_S, wrapS)</span>
|
|
1704
1704
|
<span class="cstat-no" title="statement not covered" > gl.texParameteri(target, gl.TEXTURE_WRAP_T, wrapT)</span>
|
|
@@ -1706,48 +1706,48 @@ export class Shader extends Visual {
|
|
|
1706
1706
|
} else {
|
|
1707
1707
|
// No, it's not a power of 2. Turn off mips and set
|
|
1708
1708
|
// wrapping to clamp to edge
|
|
1709
|
-
|
|
1709
|
+
<span class="cstat-no" title="statement not covered" > if (wrapS !== gl.CLAMP_TO_EDGE || wrapT !== gl.CLAMP_TO_EDGE) {</span>
|
|
1710
1710
|
<span class="cstat-no" title="statement not covered" > console.warn('Wrap mode is not CLAMP_TO_EDGE for a non-power-of-two texture. Defaulting to CLAMP_TO_EDGE')</span>
|
|
1711
1711
|
}
|
|
1712
1712
|
|
|
1713
|
-
gl.texParameteri(target, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE)
|
|
1714
|
-
gl.texParameteri(target, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE)
|
|
1713
|
+
<span class="cstat-no" title="statement not covered" > gl.texParameteri(target, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE)</span>
|
|
1714
|
+
<span class="cstat-no" title="statement not covered" > gl.texParameteri(target, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE)</span>
|
|
1715
1715
|
}
|
|
1716
1716
|
|
|
1717
|
-
return tex
|
|
1717
|
+
<span class="cstat-no" title="statement not covered" > return tex</span>
|
|
1718
1718
|
}
|
|
1719
1719
|
|
|
1720
|
-
private static
|
|
1721
|
-
const vertexShader = Shader._loadShader(gl, gl.VERTEX_SHADER, vertexSrc)
|
|
1722
|
-
const fragmentShader = Shader._loadShader(gl, gl.FRAGMENT_SHADER, fragmentSrc)
|
|
1720
|
+
<span class="fstat-no" title="function not covered" > private static _</span>initShaderProgram (gl, vertexSrc, fragmentSrc) {
|
|
1721
|
+
const vertexShader = <span class="cstat-no" title="statement not covered" >Shader._loadShader(gl, gl.VERTEX_SHADER, vertexSrc)</span>
|
|
1722
|
+
const fragmentShader = <span class="cstat-no" title="statement not covered" >Shader._loadShader(gl, gl.FRAGMENT_SHADER, fragmentSrc)</span>
|
|
1723
1723
|
|
|
1724
|
-
const shaderProgram = gl.createProgram()
|
|
1725
|
-
gl.attachShader(shaderProgram, vertexShader)
|
|
1726
|
-
gl.attachShader(shaderProgram, fragmentShader)
|
|
1727
|
-
gl.linkProgram(shaderProgram)
|
|
1724
|
+
const shaderProgram = <span class="cstat-no" title="statement not covered" >gl.createProgram()</span>
|
|
1725
|
+
<span class="cstat-no" title="statement not covered" > gl.attachShader(shaderProgram, vertexShader)</span>
|
|
1726
|
+
<span class="cstat-no" title="statement not covered" > gl.attachShader(shaderProgram, fragmentShader)</span>
|
|
1727
|
+
<span class="cstat-no" title="statement not covered" > gl.linkProgram(shaderProgram)</span>
|
|
1728
1728
|
|
|
1729
1729
|
// Check program creation status
|
|
1730
|
-
|
|
1730
|
+
<span class="cstat-no" title="statement not covered" > if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {</span>
|
|
1731
1731
|
<span class="cstat-no" title="statement not covered" > console.warn('Unable to link shader program: ' + gl.getProgramInfoLog(shaderProgram))</span>
|
|
1732
1732
|
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1733
1733
|
}
|
|
1734
1734
|
|
|
1735
|
-
return shaderProgram
|
|
1735
|
+
<span class="cstat-no" title="statement not covered" > return shaderProgram</span>
|
|
1736
1736
|
}
|
|
1737
1737
|
|
|
1738
|
-
private static
|
|
1739
|
-
const shader = gl.createShader(type)
|
|
1740
|
-
gl.shaderSource(shader, source)
|
|
1741
|
-
gl.compileShader(shader)
|
|
1738
|
+
<span class="fstat-no" title="function not covered" > private static _</span>loadShader (gl, type, source) {
|
|
1739
|
+
const shader = <span class="cstat-no" title="statement not covered" >gl.createShader(type)</span>
|
|
1740
|
+
<span class="cstat-no" title="statement not covered" > gl.shaderSource(shader, source)</span>
|
|
1741
|
+
<span class="cstat-no" title="statement not covered" > gl.compileShader(shader)</span>
|
|
1742
1742
|
|
|
1743
1743
|
// Check compile status
|
|
1744
|
-
|
|
1744
|
+
<span class="cstat-no" title="statement not covered" > if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {</span>
|
|
1745
1745
|
<span class="cstat-no" title="statement not covered" > console.warn('An error occured compiling shader: ' + gl.getShaderInfoLog(shader))</span>
|
|
1746
1746
|
<span class="cstat-no" title="statement not covered" > gl.deleteShader(shader)</span>
|
|
1747
1747
|
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1748
1748
|
}
|
|
1749
1749
|
|
|
1750
|
-
return shader
|
|
1750
|
+
<span class="cstat-no" title="statement not covered" > return shader</span>
|
|
1751
1751
|
}
|
|
1752
1752
|
}
|
|
1753
1753
|
|
|
@@ -1759,7 +1759,7 @@ const isPowerOf2 = <span class="fstat-no" title="function not covered" >value </
|
|
|
1759
1759
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1760
1760
|
Code coverage generated by
|
|
1761
1761
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1762
|
-
at 2026-
|
|
1762
|
+
at 2026-06-06T05:34:26.449Z
|
|
1763
1763
|
</div>
|
|
1764
1764
|
<script src="../../prettify.js"></script>
|
|
1765
1765
|
<script>
|