@oidoid/void 0.1.0-8 → 0.1.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/dist/public/index.js +19 -15
- package/dist/public/index.js.map +4 -4
- package/dist/public/preload-atlas.webp +0 -0
- package/dist/public/void-v0.1.0+20251227.1060661.html +115 -0
- package/dist/schema/config-file.v0.json +86 -15
- package/dist/schema/level-file.v0.json +423 -0
- package/dist/src/audio.d.ts +1 -0
- package/dist/src/audio.d.ts.map +1 -0
- package/dist/src/demo/assets/manifest.json +2 -2
- package/dist/src/demo/assets/void.game.json +202 -0
- package/dist/src/demo/ents/cam.d.ts +6 -0
- package/dist/src/demo/ents/cam.d.ts.map +1 -0
- package/dist/src/demo/ents/cam.js +21 -0
- package/dist/src/demo/ents/cam.js.map +1 -0
- package/dist/src/demo/ents/clock.d.ts +10 -0
- package/dist/src/demo/ents/clock.d.ts.map +1 -0
- package/dist/src/demo/ents/clock.js +16 -0
- package/dist/src/demo/ents/clock.js.map +1 -0
- package/dist/src/demo/ents/draw.d.ts +6 -0
- package/dist/src/demo/ents/draw.d.ts.map +1 -0
- package/dist/src/demo/ents/draw.js +14 -0
- package/dist/src/demo/ents/draw.js.map +1 -0
- package/dist/src/demo/ents/ent.d.ts +6 -0
- package/dist/src/demo/ents/ent.d.ts.map +1 -0
- package/dist/src/demo/ents/ent.js +2 -0
- package/dist/src/demo/ents/ent.js.map +1 -0
- package/dist/src/demo/ents/loader.d.ts +6 -0
- package/dist/src/demo/ents/loader.d.ts.map +1 -0
- package/dist/src/demo/ents/loader.js +45 -0
- package/dist/src/demo/ents/loader.js.map +1 -0
- package/dist/src/demo/ents/render-toggle.d.ts +7 -0
- package/dist/src/demo/ents/render-toggle.d.ts.map +1 -0
- package/dist/src/demo/ents/render-toggle.js +8 -0
- package/dist/src/demo/ents/render-toggle.js.map +1 -0
- package/dist/src/demo/ents/tally.d.ts +8 -0
- package/dist/src/demo/ents/tally.d.ts.map +1 -0
- package/dist/src/demo/ents/tally.js +14 -0
- package/dist/src/demo/ents/tally.js.map +1 -0
- package/dist/src/demo/index.d.ts +1 -0
- package/dist/src/demo/index.d.ts.map +1 -0
- package/dist/src/demo/index.js +12 -3
- package/dist/src/demo/index.js.map +1 -1
- package/dist/src/demo/level/level-file.json +50 -0
- package/dist/src/demo/level/level-parser.d.ts +5 -0
- package/dist/src/demo/level/level-parser.d.ts.map +1 -0
- package/dist/src/demo/level/level-parser.js +21 -0
- package/dist/src/demo/level/level-parser.js.map +1 -0
- package/dist/src/demo/level/level-schema.d.ts +4 -0
- package/dist/src/demo/level/level-schema.d.ts.map +1 -0
- package/dist/src/demo/level/level-schema.js +2 -0
- package/dist/src/demo/level/level-schema.js.map +1 -0
- package/dist/src/demo/types/decl.d.ts +30 -0
- package/dist/src/demo/types/decl.d.ts.map +1 -0
- package/dist/src/demo/types/decl.js +2 -0
- package/dist/src/demo/types/decl.js.map +1 -0
- package/dist/src/demo/void.json +8 -4
- package/dist/src/ents/button.d.ts +14 -0
- package/dist/src/ents/button.d.ts.map +1 -0
- package/dist/src/ents/button.js +59 -0
- package/dist/src/ents/button.js.map +1 -0
- package/dist/src/ents/cam.d.ts +3 -0
- package/dist/src/ents/cam.d.ts.map +1 -0
- package/dist/src/ents/cam.js +2 -0
- package/dist/src/ents/cam.js.map +1 -0
- package/dist/src/ents/cursor.d.ts +20 -0
- package/dist/src/ents/cursor.d.ts.map +1 -0
- package/dist/src/ents/cursor.js +49 -0
- package/dist/src/ents/cursor.js.map +1 -0
- package/dist/src/ents/debug-input.d.ts +8 -0
- package/dist/src/ents/debug-input.d.ts.map +1 -0
- package/dist/src/ents/debug-input.js +25 -0
- package/dist/src/ents/debug-input.js.map +1 -0
- package/dist/src/ents/draw.d.ts +3 -0
- package/dist/src/ents/draw.d.ts.map +1 -0
- package/dist/src/ents/draw.js +2 -0
- package/dist/src/ents/draw.js.map +1 -0
- package/dist/src/ents/ent-query.d.ts +26 -0
- package/dist/src/ents/ent-query.d.ts.map +1 -0
- package/dist/src/ents/ent-query.js +10 -0
- package/dist/src/ents/ent-query.js.map +1 -0
- package/dist/src/ents/ent.d.ts +92 -6
- package/dist/src/ents/ent.d.ts.map +1 -0
- package/dist/src/ents/fps.d.ts +7 -0
- package/dist/src/ents/fps.d.ts.map +1 -0
- package/dist/src/ents/fps.js +14 -0
- package/dist/src/ents/fps.js.map +1 -0
- package/dist/src/ents/hud.d.ts +14 -0
- package/dist/src/ents/hud.d.ts.map +1 -0
- package/dist/src/ents/hud.js +38 -0
- package/dist/src/ents/hud.js.map +1 -0
- package/dist/src/ents/loader.d.ts +3 -0
- package/dist/src/ents/loader.d.ts.map +1 -0
- package/dist/src/ents/loader.js +2 -0
- package/dist/src/ents/loader.js.map +1 -0
- package/dist/src/ents/nine-patch.d.ts +17 -0
- package/dist/src/ents/nine-patch.d.ts.map +1 -0
- package/dist/src/ents/nine-patch.js +99 -0
- package/dist/src/ents/nine-patch.js.map +1 -0
- package/dist/src/ents/override.d.ts +8 -0
- package/dist/src/ents/override.d.ts.map +1 -0
- package/dist/src/ents/override.js +8 -0
- package/dist/src/ents/override.js.map +1 -0
- package/dist/src/ents/sprite.d.ts +8 -0
- package/dist/src/ents/sprite.d.ts.map +1 -0
- package/dist/src/ents/sprite.js +10 -0
- package/dist/src/ents/sprite.js.map +1 -0
- package/dist/src/ents/sys.d.ts +14 -0
- package/dist/src/ents/sys.d.ts.map +1 -0
- package/dist/src/ents/sys.js +2 -0
- package/dist/src/ents/sys.js.map +1 -0
- package/dist/src/ents/text.d.ts +21 -0
- package/dist/src/ents/text.d.ts.map +1 -0
- package/dist/src/ents/text.js +118 -0
- package/dist/src/ents/text.js.map +1 -0
- package/dist/src/ents/zoo.d.ts +18 -11
- package/dist/src/ents/zoo.d.ts.map +1 -0
- package/dist/src/ents/zoo.js +75 -15
- package/dist/src/ents/zoo.js.map +1 -1
- package/dist/src/graphics/atlas-parser.d.ts +3 -1
- package/dist/src/graphics/atlas-parser.d.ts.map +1 -0
- package/dist/src/graphics/atlas-parser.js.map +1 -1
- package/dist/src/graphics/atlas.d.ts +9 -15
- package/dist/src/graphics/atlas.d.ts.map +1 -0
- package/dist/src/graphics/cam.d.ts +13 -10
- package/dist/src/graphics/cam.d.ts.map +1 -0
- package/dist/src/graphics/cam.js +23 -17
- package/dist/src/graphics/cam.js.map +1 -1
- package/dist/src/graphics/gl.d.ts +1 -8
- package/dist/src/graphics/gl.d.ts.map +1 -0
- package/dist/src/graphics/gl.js +0 -1
- package/dist/src/graphics/gl.js.map +1 -1
- package/dist/src/graphics/layer.d.ts +21 -17
- package/dist/src/graphics/layer.d.ts.map +1 -0
- package/dist/src/graphics/layer.js +23 -18
- package/dist/src/graphics/layer.js.map +1 -1
- package/dist/src/graphics/pixel-ratio-observer.d.ts +8 -0
- package/dist/src/graphics/pixel-ratio-observer.d.ts.map +1 -0
- package/dist/src/graphics/pixel-ratio-observer.js +23 -0
- package/dist/src/graphics/pixel-ratio-observer.js.map +1 -0
- package/dist/src/graphics/render-mode.d.ts +2 -0
- package/dist/src/graphics/render-mode.d.ts.map +1 -0
- package/dist/src/graphics/render-mode.js +2 -0
- package/dist/src/graphics/render-mode.js.map +1 -0
- package/dist/src/graphics/renderer.d.ts +9 -4
- package/dist/src/graphics/renderer.d.ts.map +1 -0
- package/dist/src/graphics/renderer.js +30 -13
- package/dist/src/graphics/renderer.js.map +1 -1
- package/dist/src/graphics/sprite-frag.glsl.d.ts +1 -0
- package/dist/src/graphics/sprite-frag.glsl.d.ts.map +1 -0
- package/dist/src/graphics/sprite-frag.glsl.js +3 -4
- package/dist/src/graphics/sprite-frag.glsl.js.map +1 -1
- package/dist/src/graphics/sprite-vert.glsl.d.ts +1 -0
- package/dist/src/graphics/sprite-vert.glsl.d.ts.map +1 -0
- package/dist/src/graphics/sprite-vert.glsl.js +9 -7
- package/dist/src/graphics/sprite-vert.glsl.js.map +1 -1
- package/dist/src/graphics/sprite.d.ts +54 -16
- package/dist/src/graphics/sprite.d.ts.map +1 -0
- package/dist/src/graphics/sprite.js +109 -32
- package/dist/src/graphics/sprite.js.map +1 -1
- package/dist/src/index.d.ts +31 -6
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +33 -9
- package/dist/src/index.js.map +1 -1
- package/dist/src/input/context-menu.d.ts +1 -1
- package/dist/src/input/context-menu.d.ts.map +1 -0
- package/dist/src/input/context-menu.js +0 -1
- package/dist/src/input/context-menu.js.map +1 -1
- package/dist/src/input/gamepad.d.ts +1 -1
- package/dist/src/input/gamepad.d.ts.map +1 -0
- package/dist/src/input/gamepad.js +0 -1
- package/dist/src/input/gamepad.js.map +1 -1
- package/dist/src/input/input.d.ts +30 -23
- package/dist/src/input/input.d.ts.map +1 -0
- package/dist/src/input/input.js +53 -31
- package/dist/src/input/input.js.map +1 -1
- package/dist/src/input/keyboard.d.ts +1 -0
- package/dist/src/input/keyboard.d.ts.map +1 -0
- package/dist/src/input/pointer.d.ts +1 -0
- package/dist/src/input/pointer.d.ts.map +1 -0
- package/dist/src/input/pointer.js +11 -8
- package/dist/src/input/pointer.js.map +1 -1
- package/dist/src/input/wheel.d.ts +6 -1
- package/dist/src/input/wheel.d.ts.map +1 -0
- package/dist/src/input/wheel.js +5 -1
- package/dist/src/input/wheel.js.map +1 -1
- package/dist/src/level/level-parser.d.ts +26 -0
- package/dist/src/level/level-parser.d.ts.map +1 -0
- package/dist/src/level/level-parser.js +258 -0
- package/dist/src/level/level-parser.js.map +1 -0
- package/dist/src/level/level-schema-json.d.ts +5 -0
- package/dist/src/level/level-schema-json.d.ts.map +1 -0
- package/dist/src/level/level-schema-json.js +2 -0
- package/dist/src/level/level-schema-json.js.map +1 -0
- package/dist/src/level/level-schema.d.ts +87 -0
- package/dist/src/level/level-schema.d.ts.map +1 -0
- package/dist/src/level/level-schema.js +2 -0
- package/dist/src/level/level-schema.js.map +1 -0
- package/dist/src/level/level.d.ts +8 -0
- package/dist/src/level/level.d.ts.map +1 -0
- package/dist/src/level/level.js +2 -0
- package/dist/src/level/level.js.map +1 -0
- package/dist/src/looper.d.ts +1 -0
- package/dist/src/looper.d.ts.map +1 -0
- package/dist/src/looper.js +5 -2
- package/dist/src/looper.js.map +1 -1
- package/dist/src/mem/pool-map.d.ts +6 -0
- package/dist/src/mem/pool-map.d.ts.map +1 -0
- package/dist/src/mem/pool-map.js +2 -0
- package/dist/src/mem/pool-map.js.map +1 -0
- package/dist/src/mem/pool.d.ts +5 -1
- package/dist/src/mem/pool.d.ts.map +1 -0
- package/dist/src/mem/pool.js +22 -21
- package/dist/src/mem/pool.js.map +1 -1
- package/dist/src/mem/sprite-pool.d.ts +12 -0
- package/dist/src/mem/sprite-pool.d.ts.map +1 -0
- package/dist/src/mem/sprite-pool.js +11 -0
- package/dist/src/mem/sprite-pool.js.map +1 -0
- package/dist/src/random/random.d.ts +1 -0
- package/dist/src/random/random.d.ts.map +1 -0
- package/dist/src/storage/local-storage.d.ts +2 -1
- package/dist/src/storage/local-storage.d.ts.map +1 -0
- package/dist/src/storage/local-storage.js.map +1 -1
- package/dist/src/text/font.d.ts +5 -3
- package/dist/src/text/font.d.ts.map +1 -0
- package/dist/src/text/font.js +8 -5
- package/dist/src/text/font.js.map +1 -1
- package/dist/src/text/mem-prop-5x6.json +20 -5
- package/dist/src/text/text-layout.d.ts +16 -5
- package/dist/src/text/text-layout.d.ts.map +1 -0
- package/dist/src/text/text-layout.js +46 -28
- package/dist/src/text/text-layout.js.map +1 -1
- package/dist/src/types/bundle.d.ts +10 -0
- package/dist/src/types/bundle.d.ts.map +1 -0
- package/dist/src/types/bundle.js +2 -0
- package/dist/src/types/bundle.js.map +1 -0
- package/dist/src/types/game-config.d.ts +27 -0
- package/dist/src/types/game-config.d.ts.map +1 -0
- package/dist/src/types/game-config.js +2 -0
- package/dist/src/types/game-config.js.map +1 -0
- package/dist/src/types/geo.d.ts +9 -2
- package/dist/src/types/geo.d.ts.map +1 -0
- package/dist/src/types/geo.js +16 -0
- package/dist/src/types/geo.js.map +1 -1
- package/dist/src/types/json.d.ts +1 -0
- package/dist/src/types/json.d.ts.map +1 -0
- package/dist/src/types/time.d.ts +13 -2
- package/dist/src/types/time.d.ts.map +1 -0
- package/dist/src/types/time.js +10 -0
- package/dist/src/types/time.js.map +1 -1
- package/dist/src/utils/async-util.d.ts +1 -0
- package/dist/src/utils/async-util.d.ts.map +1 -0
- package/dist/src/utils/async-util.js +2 -0
- package/dist/src/utils/async-util.js.map +1 -1
- package/dist/src/utils/canvas-util.d.ts +3 -1
- package/dist/src/utils/canvas-util.d.ts.map +1 -0
- package/dist/src/utils/canvas-util.js +7 -3
- package/dist/src/utils/canvas-util.js.map +1 -1
- package/dist/src/utils/color-util.d.ts +6 -0
- package/dist/src/utils/color-util.d.ts.map +1 -0
- package/dist/src/utils/color-util.js +12 -0
- package/dist/src/utils/color-util.js.map +1 -1
- package/dist/src/utils/debug.d.ts +1 -0
- package/dist/src/utils/debug.d.ts.map +1 -0
- package/dist/src/utils/debug.js +4 -4
- package/dist/src/utils/debug.js.map +1 -1
- package/dist/src/utils/delay-interval.d.ts +1 -0
- package/dist/src/utils/delay-interval.d.ts.map +1 -0
- package/dist/src/utils/dom-util.d.ts +3 -2
- package/dist/src/utils/dom-util.d.ts.map +1 -0
- package/dist/src/utils/dom-util.js +16 -12
- package/dist/src/utils/dom-util.js.map +1 -1
- package/dist/src/utils/fetch-util.d.ts +2 -1
- package/dist/src/utils/fetch-util.d.ts.map +1 -0
- package/dist/src/utils/fetch-util.js +2 -2
- package/dist/src/utils/math.d.ts +1 -0
- package/dist/src/utils/math.d.ts.map +1 -0
- package/dist/src/utils/math.js +1 -1
- package/dist/src/utils/math.js.map +1 -1
- package/dist/src/utils/obj-util.d.ts +7 -0
- package/dist/src/utils/obj-util.d.ts.map +1 -0
- package/dist/src/utils/obj-util.js +8 -0
- package/dist/src/utils/obj-util.js.map +1 -0
- package/dist/src/utils/str-util.d.ts +2 -0
- package/dist/src/utils/str-util.d.ts.map +1 -0
- package/dist/src/utils/str-util.js +6 -0
- package/dist/src/utils/str-util.js.map +1 -0
- package/dist/src/utils/vibrate.d.ts +1 -0
- package/dist/src/utils/vibrate.d.ts.map +1 -0
- package/dist/src/void.d.ts +42 -30
- package/dist/src/void.d.ts.map +1 -0
- package/dist/src/void.js +78 -34
- package/dist/src/void.js.map +1 -1
- package/dist/tools/atlas-pack/aseprite-json.d.ts +5 -0
- package/dist/tools/atlas-pack/aseprite-json.d.ts.map +1 -0
- package/dist/tools/atlas-pack/aseprite-json.js +2 -0
- package/dist/tools/atlas-pack/aseprite-json.js.map +1 -0
- package/dist/tools/atlas-pack/aseprite.d.ts +58 -31
- package/dist/tools/atlas-pack/aseprite.d.ts.map +1 -0
- package/dist/tools/atlas-pack/aseprite.js +1 -1
- package/dist/tools/atlas-pack/aseprite.js.map +1 -1
- package/dist/tools/atlas-pack/atlas-json-parser.d.ts +11 -10
- package/dist/tools/atlas-pack/atlas-json-parser.d.ts.map +1 -0
- package/dist/tools/atlas-pack/atlas-json-parser.js +14 -14
- package/dist/tools/atlas-pack/atlas-json-parser.js.map +1 -1
- package/dist/tools/atlas-pack/atlas-pack.d.ts +4 -2
- package/dist/tools/atlas-pack/atlas-pack.d.ts.map +1 -0
- package/dist/tools/atlas-pack/atlas-pack.js +1 -6
- package/dist/tools/atlas-pack/atlas-pack.js.map +1 -1
- package/dist/tools/bundle/bundle.d.ts +3 -3
- package/dist/tools/bundle/bundle.d.ts.map +1 -0
- package/dist/tools/bundle/bundle.js +32 -7
- package/dist/tools/bundle/bundle.js.map +1 -1
- package/dist/tools/bundle/html-plugin.d.ts +1 -0
- package/dist/tools/bundle/html-plugin.d.ts.map +1 -0
- package/dist/tools/bundle/html-plugin.js +5 -20
- package/dist/tools/bundle/html-plugin.js.map +1 -1
- package/dist/tools/tsconfig-base.json +1 -1
- package/dist/tools/tsconfig.json +1 -2
- package/dist/{schema → tools/types}/config-file.d.ts +21 -9
- package/dist/tools/types/config-file.d.ts.map +1 -0
- package/dist/{schema → tools/types}/config-file.js +18 -5
- package/dist/tools/types/config-file.js.map +1 -0
- package/dist/tools/types/config.d.ts +10 -9
- package/dist/tools/types/config.d.ts.map +1 -0
- package/dist/tools/types/config.js +23 -5
- package/dist/tools/types/config.js.map +1 -1
- package/dist/tools/types/package-json.d.ts +3 -2
- package/dist/tools/types/package-json.d.ts.map +1 -0
- package/dist/tools/utils/argv.d.ts +3 -0
- package/dist/tools/utils/argv.d.ts.map +1 -0
- package/dist/tools/utils/argv.js +1 -1
- package/dist/tools/utils/argv.js.map +1 -1
- package/dist/tools/utils/exec.d.ts +2 -1
- package/dist/tools/utils/exec.d.ts.map +1 -0
- package/dist/tools/utils/exec.js.map +1 -1
- package/dist/tools/utils/file-util.d.ts +1 -0
- package/dist/tools/utils/file-util.d.ts.map +1 -0
- package/dist/tools/utils/html-parser.d.ts +1 -0
- package/dist/tools/utils/html-parser.d.ts.map +1 -0
- package/dist/tools/void.d.ts +1 -0
- package/dist/tools/void.d.ts.map +1 -0
- package/dist/tools/void.js +3 -16
- package/dist/tools/void.js.map +1 -1
- package/package.json +13 -14
- package/readme.md +63 -1
- package/dist/package.json +0 -65
- package/dist/public/void-v0.1.0-8+20251022.b364155.html +0 -111
- package/dist/schema/config-file.js.map +0 -1
- package/dist/src/demo/assets/preload-atlas.json +0 -193
- package/dist/src/demo/ents/clock-ent.d.ts +0 -11
- package/dist/src/demo/ents/clock-ent.js +0 -26
- package/dist/src/demo/ents/clock-ent.js.map +0 -1
- package/dist/src/demo/ents/render-toggle-ent.d.ts +0 -12
- package/dist/src/demo/ents/render-toggle-ent.js +0 -41
- package/dist/src/demo/ents/render-toggle-ent.js.map +0 -1
- package/dist/src/demo/ents/work-counter-ent.d.ts +0 -10
- package/dist/src/demo/ents/work-counter-ent.js +0 -20
- package/dist/src/demo/ents/work-counter-ent.js.map +0 -1
- package/dist/src/demo/game.d.ts +0 -12
- package/dist/src/demo/game.js +0 -135
- package/dist/src/demo/game.js.map +0 -1
- package/dist/src/demo/types/tag.d.ts +0 -2
- package/dist/src/demo/types/tag.js +0 -2
- package/dist/src/demo/types/tag.js.map +0 -1
- package/dist/src/ents/button-ent.d.ts +0 -39
- package/dist/src/ents/button-ent.js +0 -128
- package/dist/src/ents/button-ent.js.map +0 -1
- package/dist/src/ents/cursor-ent.d.ts +0 -18
- package/dist/src/ents/cursor-ent.js +0 -63
- package/dist/src/ents/cursor-ent.js.map +0 -1
- package/dist/src/ents/follow-cam-ent.d.ts +0 -25
- package/dist/src/ents/follow-cam-ent.js +0 -87
- package/dist/src/ents/follow-cam-ent.js.map +0 -1
- package/dist/src/ents/nine-patch-ent.d.ts +0 -43
- package/dist/src/ents/nine-patch-ent.js +0 -143
- package/dist/src/ents/nine-patch-ent.js.map +0 -1
- package/dist/src/ents/text-ent.d.ts +0 -23
- package/dist/src/ents/text-ent.js +0 -109
- package/dist/src/ents/text-ent.js.map +0 -1
- package/dist/src/types/void-version.d.ts +0 -7
- package/dist/src/types/void-version.js +0 -2
- package/dist/src/types/void-version.js.map +0 -1
|
@@ -1,21 +1,25 @@
|
|
|
1
|
+
/** [0 (bottom), 15 (top)]; greater is above. */
|
|
1
2
|
export declare const Layer: {
|
|
2
|
-
readonly
|
|
3
|
-
readonly
|
|
4
|
-
readonly
|
|
5
|
-
readonly
|
|
6
|
-
readonly
|
|
7
|
-
readonly
|
|
8
|
-
readonly
|
|
9
|
-
readonly
|
|
10
|
-
readonly
|
|
11
|
-
readonly
|
|
12
|
-
readonly
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
17
|
-
readonly
|
|
3
|
+
readonly Bottom: 0;
|
|
4
|
+
readonly A: 1;
|
|
5
|
+
readonly B: 2;
|
|
6
|
+
readonly C: 3;
|
|
7
|
+
readonly D: 4;
|
|
8
|
+
readonly E: 5;
|
|
9
|
+
readonly F: 6;
|
|
10
|
+
readonly G: 7;
|
|
11
|
+
readonly UIA: 8;
|
|
12
|
+
readonly UIB: 9;
|
|
13
|
+
readonly UIC: 10;
|
|
14
|
+
readonly UID: 11;
|
|
15
|
+
readonly UIE: 12;
|
|
16
|
+
readonly UIF: 13;
|
|
17
|
+
readonly UIG: 14;
|
|
18
|
+
readonly Top: 15;
|
|
18
19
|
};
|
|
19
20
|
export type Layer = (typeof Layer)[keyof typeof Layer];
|
|
20
|
-
/**
|
|
21
|
+
/** positive is above. returns [bottom, top]. */
|
|
21
22
|
export declare function layerOffset(layer: Layer, offset: number): Layer;
|
|
23
|
+
/** true if UI or top layer. */
|
|
24
|
+
export declare function isUILayer(layer: Layer): boolean;
|
|
25
|
+
//# sourceMappingURL=layer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../../../src/graphics/layer.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;CAiBR,CAAA;AACV,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,CAAA;AAEtD,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAE/D;AAED,+BAA+B;AAC/B,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAE/C"}
|
|
@@ -1,23 +1,28 @@
|
|
|
1
|
+
/** [0 (bottom), 15 (top)]; greater is above. */
|
|
1
2
|
export const Layer = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
3
|
+
Bottom: 0,
|
|
4
|
+
A: 1,
|
|
5
|
+
B: 2,
|
|
6
|
+
C: 3,
|
|
7
|
+
D: 4,
|
|
8
|
+
E: 5,
|
|
9
|
+
F: 6,
|
|
10
|
+
G: 7,
|
|
11
|
+
UIA: 8,
|
|
12
|
+
UIB: 9,
|
|
13
|
+
UIC: 10,
|
|
14
|
+
UID: 11,
|
|
15
|
+
UIE: 12,
|
|
16
|
+
UIF: 13,
|
|
17
|
+
UIG: 14,
|
|
18
|
+
Top: 15
|
|
18
19
|
};
|
|
19
|
-
/**
|
|
20
|
+
/** positive is above. returns [bottom, top]. */
|
|
20
21
|
export function layerOffset(layer, offset) {
|
|
21
|
-
return Math.max(Layer.
|
|
22
|
+
return Math.max(Layer.Bottom, Math.min(Layer.Top, layer + offset));
|
|
23
|
+
}
|
|
24
|
+
/** true if UI or top layer. */
|
|
25
|
+
export function isUILayer(layer) {
|
|
26
|
+
return layer >= Layer.UIA;
|
|
22
27
|
}
|
|
23
28
|
//# sourceMappingURL=layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layer.js","sourceRoot":"","sources":["../../../src/graphics/layer.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,
|
|
1
|
+
{"version":3,"file":"layer.js","sourceRoot":"","sources":["../../../src/graphics/layer.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM,EAAE,CAAC;IACT,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;CACC,CAAA;AAGV,gDAAgD;AAChD,MAAM,UAAU,WAAW,CAAC,KAAY,EAAE,MAAc;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,CAAC,CAAU,CAAA;AAC7E,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,OAAO,KAAK,IAAI,KAAK,CAAC,GAAG,CAAA;AAC3B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** resolution changes may not trigger a resize. observe density changes. */
|
|
2
|
+
export declare class PixelRatioObserver {
|
|
3
|
+
#private;
|
|
4
|
+
onChange: () => void;
|
|
5
|
+
register(op: 'add' | 'remove'): this;
|
|
6
|
+
[Symbol.dispose](): void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=pixel-ratio-observer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pixel-ratio-observer.d.ts","sourceRoot":"","sources":["../../../src/graphics/pixel-ratio-observer.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,qBAAa,kBAAkB;;IAC7B,QAAQ,EAAE,MAAM,IAAI,CAAW;IAG/B,QAAQ,CAAC,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI;IAWpC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAQzB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** resolution changes may not trigger a resize. observe density changes. */
|
|
2
|
+
export class PixelRatioObserver {
|
|
3
|
+
onChange = () => { };
|
|
4
|
+
#mediaQuery;
|
|
5
|
+
register(op) {
|
|
6
|
+
this.#mediaQuery?.removeEventListener('change', this.#onChange);
|
|
7
|
+
if (op === 'add') {
|
|
8
|
+
this.#mediaQuery = matchMedia(`not (resolution: ${devicePixelRatio}dppx)`);
|
|
9
|
+
this.#mediaQuery.addEventListener('change', this.#onChange);
|
|
10
|
+
}
|
|
11
|
+
else
|
|
12
|
+
this.#mediaQuery = undefined;
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
[Symbol.dispose]() {
|
|
16
|
+
this.register('remove');
|
|
17
|
+
}
|
|
18
|
+
#onChange = () => {
|
|
19
|
+
this.register('add');
|
|
20
|
+
this.onChange();
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=pixel-ratio-observer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pixel-ratio-observer.js","sourceRoot":"","sources":["../../../src/graphics/pixel-ratio-observer.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,OAAO,kBAAkB;IAC7B,QAAQ,GAAe,GAAG,EAAE,GAAE,CAAC,CAAA;IAC/B,WAAW,CAA4B;IAEvC,QAAQ,CAAC,EAAoB;QAC3B,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAE/D,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,oBAAoB,gBAAgB,OAAO,CAAC,CAAA;YAC1E,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC7D,CAAC;;YAAM,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;QAEnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACzB,CAAC;IAED,SAAS,GAAG,GAAS,EAAE;QACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACpB,IAAI,CAAC,QAAQ,EAAE,CAAA;IACjB,CAAC,CAAA;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-mode.d.ts","sourceRoot":"","sources":["../../../src/graphics/render-mode.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-mode.js","sourceRoot":"","sources":["../../../src/graphics/render-mode.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Pool } from '../mem/pool.ts';
|
|
2
2
|
import { type WH } from '../types/geo.ts';
|
|
3
3
|
import type { Millis } from '../types/time.ts';
|
|
4
|
-
import type { Atlas
|
|
4
|
+
import type { Atlas } from './atlas.ts';
|
|
5
5
|
import type { Cam } from './cam.ts';
|
|
6
6
|
import { type GL2, Shader } from './gl.ts';
|
|
7
7
|
import { type Sprite } from './sprite.ts';
|
|
@@ -15,15 +15,19 @@ export declare class Renderer {
|
|
|
15
15
|
#private;
|
|
16
16
|
/** when off, ents should avoid requesting renders. */
|
|
17
17
|
always: boolean;
|
|
18
|
+
/** number of clears performed. often used to count render passes. */
|
|
18
19
|
clears: number;
|
|
19
|
-
invalid: boolean;
|
|
20
20
|
loseContext: WEBGL_lose_context | undefined;
|
|
21
21
|
constructor(preloadAtlas: Readonly<Atlas>, canvas: HTMLCanvasElement, looper: {
|
|
22
22
|
readonly age: Millis;
|
|
23
23
|
});
|
|
24
24
|
clear(rgba: number): void;
|
|
25
|
-
draw(pool: Readonly<Pool<Sprite
|
|
25
|
+
draw(pool: Readonly<Pool<Sprite>>): void;
|
|
26
26
|
get hasContext(): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* true when context has changed since last draw and screen should be redrawn.
|
|
29
|
+
*/
|
|
30
|
+
get invalid(): boolean;
|
|
27
31
|
load(preloadAtlas: Readonly<HTMLImageElement> | undefined): void;
|
|
28
32
|
predraw(cam: Readonly<Cam>): void;
|
|
29
33
|
register(op: 'add' | 'remove'): this;
|
|
@@ -32,5 +36,6 @@ export declare class Renderer {
|
|
|
32
36
|
/** @internal */
|
|
33
37
|
_Context(): Context | undefined;
|
|
34
38
|
}
|
|
35
|
-
declare function GL2(canvas: HTMLCanvasElement): GL2 | undefined;
|
|
39
|
+
declare function GL2(canvas: HTMLCanvasElement, always: boolean): GL2 | undefined;
|
|
36
40
|
export {};
|
|
41
|
+
//# sourceMappingURL=renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../src/graphics/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAC,KAAK,EAAE,EAAO,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAE5C,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AACjC,OAAO,EAAC,KAAK,GAAG,EAAE,MAAM,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAgB,KAAK,MAAM,EAAC,MAAM,aAAa,CAAA;AAItD,gBAAgB;AAChB,MAAM,MAAM,OAAO,GAAG;IAAC,EAAE,EAAE,GAAG,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,EAAE,CAAA;CAAC,CAAA;AAInE,qBAAa,QAAQ;;IACnB,sDAAsD;IACtD,MAAM,EAAE,OAAO,CAA6B;IAC5C,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAI;IAClB,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAA;gBAWzC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,EAC7B,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAC;IAOhC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgBzB,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI;IAgCxC,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SAAS,GAAG,IAAI;IAKhE,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI;IA2BjC,QAAQ,CAAC,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI;IASpC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAO/B,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIxB,gBAAgB;IAChB,QAAQ,IAAI,OAAO,GAAG,SAAS;CA8GhC;AAED,iBAAS,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,GAAG,GAAG,GAAG,SAAS,CAqBxE"}
|
|
@@ -8,13 +8,14 @@ const uv = new Int8Array([1, 1, 0, 1, 1, 0, 0, 0]);
|
|
|
8
8
|
export class Renderer {
|
|
9
9
|
/** when off, ents should avoid requesting renders. */
|
|
10
10
|
always = debug?.render === 'always';
|
|
11
|
+
/** number of clears performed. often used to count render passes. */
|
|
11
12
|
clears = 0;
|
|
12
|
-
invalid = false;
|
|
13
13
|
loseContext;
|
|
14
14
|
#canvas;
|
|
15
15
|
#clearRGBA = 0;
|
|
16
16
|
#depth = true;
|
|
17
17
|
#ctx;
|
|
18
|
+
#invalid = false;
|
|
18
19
|
#looper;
|
|
19
20
|
#preloadAtlas;
|
|
20
21
|
#preloadAtlasImage;
|
|
@@ -45,11 +46,22 @@ export class Renderer {
|
|
|
45
46
|
gl.drawArraysInstanced(gl.TRIANGLE_STRIP, 0, uv.length / 2, // d
|
|
46
47
|
pool.size);
|
|
47
48
|
gl.bindVertexArray(null);
|
|
48
|
-
|
|
49
|
+
if (debug?.render) {
|
|
50
|
+
const err = gl.getError();
|
|
51
|
+
if (err !== gl.NO_ERROR)
|
|
52
|
+
console.error(`[render] GL error x${err.toString(16)}`);
|
|
53
|
+
}
|
|
54
|
+
this.#invalid = false;
|
|
49
55
|
}
|
|
50
56
|
get hasContext() {
|
|
51
57
|
return this.#ctx != null;
|
|
52
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* true when context has changed since last draw and screen should be redrawn.
|
|
61
|
+
*/
|
|
62
|
+
get invalid() {
|
|
63
|
+
return this.#invalid || this.always;
|
|
64
|
+
}
|
|
53
65
|
load(preloadAtlas) {
|
|
54
66
|
this.#preloadAtlasImage = preloadAtlas;
|
|
55
67
|
this.#ctx = this._Context();
|
|
@@ -64,7 +76,7 @@ export class Renderer {
|
|
|
64
76
|
viewport.h = cam.h;
|
|
65
77
|
}
|
|
66
78
|
gl.useProgram(spriteShader.program);
|
|
67
|
-
gl.uniform4i(spriteShader.uniform.uCam, cam.x, cam.y, cam.w, cam.h);
|
|
79
|
+
gl.uniform4i(spriteShader.uniform.uCam, Math.floor(cam.x), Math.floor(cam.y), cam.w, cam.h);
|
|
68
80
|
gl.uniform1f(spriteShader.uniform.uAge, this.#looper.age);
|
|
69
81
|
for (const [i, tex] of spriteShader.textures.entries()) {
|
|
70
82
|
gl.activeTexture(gl.TEXTURE0 + i);
|
|
@@ -90,7 +102,7 @@ export class Renderer {
|
|
|
90
102
|
}
|
|
91
103
|
/** @internal */
|
|
92
104
|
_Context() {
|
|
93
|
-
const gl = this.#ctx?.gl ?? GL2(this.#canvas);
|
|
105
|
+
const gl = this.#ctx?.gl ?? GL2(this.#canvas, this.always);
|
|
94
106
|
if (!gl)
|
|
95
107
|
return;
|
|
96
108
|
const shader = Shader(gl, spriteVertGLSL, spriteFragGLSL, [
|
|
@@ -123,6 +135,9 @@ export class Renderer {
|
|
|
123
135
|
gl.enableVertexAttribArray(3);
|
|
124
136
|
gl.vertexAttribIPointer(3, 1, gl.UNSIGNED_INT, drawableBytes, 8);
|
|
125
137
|
gl.vertexAttribDivisor(3, 1);
|
|
138
|
+
gl.enableVertexAttribArray(4);
|
|
139
|
+
gl.vertexAttribIPointer(4, 1, gl.UNSIGNED_INT, drawableBytes, 12);
|
|
140
|
+
gl.vertexAttribDivisor(4, 1);
|
|
126
141
|
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
127
142
|
gl.bindTexture(gl.TEXTURE_2D, shader.textures[0]);
|
|
128
143
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
|
@@ -142,39 +157,41 @@ export class Renderer {
|
|
|
142
157
|
gl.uniform1i(shader.uniform.uCels, 1);
|
|
143
158
|
if (this.#preloadAtlasImage)
|
|
144
159
|
gl.uniform2ui(shader.uniform.uTexWH, this.#preloadAtlasImage.naturalWidth, this.#preloadAtlasImage.naturalHeight);
|
|
145
|
-
if (!this
|
|
146
|
-
console.debug('renderer invalid');
|
|
147
|
-
this
|
|
160
|
+
if (!this.#invalid && debug?.invalid)
|
|
161
|
+
console.debug('[invalid] renderer invalid');
|
|
162
|
+
this.#invalid = true;
|
|
148
163
|
// keep outside of #context so it can be restored.
|
|
149
164
|
this.loseContext = gl.getExtension('WEBGL_lose_context') ?? undefined;
|
|
150
165
|
return (this.#ctx = { gl, spriteShader: shader, viewport: { w: 0, h: 0 } });
|
|
151
166
|
}
|
|
152
167
|
#onContextLost = (ev) => {
|
|
153
168
|
ev.preventDefault(); // required.
|
|
154
|
-
console.debug('[render]
|
|
169
|
+
console.debug('[render] GL context lost');
|
|
155
170
|
this.#ctx = undefined;
|
|
156
171
|
};
|
|
157
172
|
#onContextRestored = () => {
|
|
158
|
-
console.debug('[render]
|
|
173
|
+
console.debug('[render] GL context restored');
|
|
159
174
|
this.#ctx = this._Context();
|
|
160
175
|
};
|
|
161
176
|
}
|
|
162
|
-
function GL2(canvas) {
|
|
177
|
+
function GL2(canvas, always) {
|
|
163
178
|
const gl = canvas.getContext('webgl2', {
|
|
164
|
-
// to-do: expose.
|
|
179
|
+
// to-do: expose with Int / Frac mode.
|
|
165
180
|
antialias: false,
|
|
166
181
|
powerPreference: 'low-power',
|
|
167
182
|
// avoid flicker caused by clearing the drawing buffer. see
|
|
168
183
|
// https://developer.chrome.com/blog/desynchronized/.
|
|
169
184
|
preserveDrawingBuffer: true,
|
|
170
|
-
|
|
185
|
+
// disable desync in debug since it breaks FPS meter. only enable
|
|
186
|
+
// when canvas is known to draw next frame.
|
|
187
|
+
...(!debug?.render && { desynchronized: always })
|
|
171
188
|
});
|
|
172
189
|
if (!gl) {
|
|
173
190
|
console.debug('[render] no GL context');
|
|
174
191
|
return;
|
|
175
192
|
}
|
|
176
193
|
if (debug?.render && !gl.getContextAttributes()?.desynchronized)
|
|
177
|
-
console.debug('[render] no
|
|
194
|
+
console.debug('[render] no GL DOM desynchronization');
|
|
178
195
|
return gl;
|
|
179
196
|
}
|
|
180
197
|
//# sourceMappingURL=renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/graphics/renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,IAAI,EAAC,MAAM,iBAAiB,CAAA;AAE7C,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAA;AAGvC,OAAO,EAAW,MAAM,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAC,aAAa,EAAc,MAAM,aAAa,CAAA;AACtD,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAA;AAKpD,MAAM,EAAE,GAAwB,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAEvE,MAAM,OAAO,QAAQ;IACnB,sDAAsD;IACtD,MAAM,GAAY,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAA;IAC5C,MAAM,GAAW,CAAC,CAAA;IAClB,
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/graphics/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprite-frag.glsl.d.ts","sourceRoot":"","sources":["../../../src/graphics/sprite-frag.glsl.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,EAAE,MA+B5B,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const spriteFragGLSL = `#version 300 es
|
|
2
|
-
#pragma debug(${debug?.render ? 'on' : 'off'})
|
|
2
|
+
#pragma debug(${debug?.render ? 'on' : 'off'})
|
|
3
3
|
#pragma optimize(${debug?.render ? 'off' : 'on'})
|
|
4
4
|
|
|
5
5
|
precision highp int;
|
|
@@ -11,14 +11,14 @@ uniform uvec2 uTexWH;
|
|
|
11
11
|
|
|
12
12
|
flat in uint vStretch;
|
|
13
13
|
flat in ivec4 vTexXYWH;
|
|
14
|
-
flat in
|
|
14
|
+
flat in uint vVisible;
|
|
15
15
|
in vec2 vDstWH;
|
|
16
16
|
flat in ivec2 vDstWHFixed;
|
|
17
17
|
|
|
18
18
|
out vec4 oRGBA;
|
|
19
19
|
|
|
20
20
|
void main() {
|
|
21
|
-
if (
|
|
21
|
+
if (vVisible == 0u || vDstWHFixed.x == 0 || vDstWHFixed.y == 0)
|
|
22
22
|
discard;
|
|
23
23
|
|
|
24
24
|
vec2 px = vec2(vTexXYWH.xy) + (
|
|
@@ -31,5 +31,4 @@ void main() {
|
|
|
31
31
|
}
|
|
32
32
|
`;
|
|
33
33
|
import { debug } from "../utils/debug.js";
|
|
34
|
-
import { Layer } from "./layer.js";
|
|
35
34
|
//# sourceMappingURL=sprite-frag.glsl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sprite-frag.glsl.js","sourceRoot":"","sources":["../../../src/graphics/sprite-frag.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAW;gBACtB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;mBACzB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI
|
|
1
|
+
{"version":3,"file":"sprite-frag.glsl.js","sourceRoot":"","sources":["../../../src/graphics/sprite-frag.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAW;gBACtB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;mBACzB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B9C,CAAA;AAED,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprite-vert.glsl.d.ts","sourceRoot":"","sources":["../../../src/graphics/sprite-vert.glsl.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,EAAE,MAiE5B,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const spriteVertGLSL = `#version 300 es
|
|
2
|
-
#pragma debug(${debug?.render ? 'on' : 'off'})
|
|
2
|
+
#pragma debug(${debug?.render ? 'on' : 'off'})
|
|
3
3
|
#pragma optimize(${debug?.render ? 'off' : 'on'})
|
|
4
4
|
|
|
5
5
|
// https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices#essl300_minimum_requirements_webgl_2
|
|
@@ -15,6 +15,7 @@ layout (location=0) in ivec2 iUV;
|
|
|
15
15
|
layout (location=1) in uint iy8_x24;
|
|
16
16
|
layout (location=2) in uint iw8_sxyz_llll_y16;
|
|
17
17
|
layout (location=3) in uint ii11_c5_h12_w4;
|
|
18
|
+
layout (location=4) in uint r31_v;
|
|
18
19
|
|
|
19
20
|
const int maxY = 0x20000;
|
|
20
21
|
const int layers = 16;
|
|
@@ -22,13 +23,13 @@ const int maxDepth = maxY * layers;
|
|
|
22
23
|
|
|
23
24
|
flat out uint vStretch;
|
|
24
25
|
flat out ivec4 vTexXYWH;
|
|
25
|
-
flat out
|
|
26
|
+
flat out uint vVisible;
|
|
26
27
|
out vec2 vDstWH;
|
|
27
28
|
flat out ivec2 vDstWHFixed;
|
|
28
29
|
|
|
29
30
|
void main() {
|
|
30
|
-
int x = (int((iy8_x24 & 0xffffffu) << 8) >> 8) / 64;
|
|
31
|
-
int y = (int(iy8_x24 >> 24) | (int(iw8_sxyz_llll_y16 & 0xffffu) << 16 >> 8)) / 64;
|
|
31
|
+
int x = int(floor(float(int((iy8_x24 & 0xffffffu) << 8) >> 8) / 64.));
|
|
32
|
+
int y = int(floor(float(int(iy8_x24 >> 24) | (int(iw8_sxyz_llll_y16 & 0xffffu) << 16 >> 8)) / 64.));
|
|
32
33
|
int z = int((iw8_sxyz_llll_y16 >> 16) & 0xfu);
|
|
33
34
|
bool zend = bool(iw8_sxyz_llll_y16 & 0x100000u);
|
|
34
35
|
bool flipY = bool(iw8_sxyz_llll_y16 & 0x200000u);
|
|
@@ -38,23 +39,24 @@ void main() {
|
|
|
38
39
|
int cel = int((ii11_c5_h12_w4 >> 16) & 0xfu); // ignore the MSB.
|
|
39
40
|
int w = int(((ii11_c5_h12_w4 & 0xfu) << 8) | (iw8_sxyz_llll_y16 >> 24));
|
|
40
41
|
int h = int((ii11_c5_h12_w4 >> 4) & 0xfffu);
|
|
42
|
+
bool visible = bool(r31_v & 0x1u);
|
|
41
43
|
|
|
42
44
|
// https://www.patternsgameprog.com/opengl-2d-facade-25-get-the-z-of-a-pixel
|
|
43
|
-
float depth = float((z + 1) * maxY - (y + (zend ? 0 : h))) / float(maxDepth);
|
|
45
|
+
float depth = float((${Layer.Top} - z + 1) * maxY - (y + (zend ? 0 : h))) / float(maxDepth);
|
|
44
46
|
|
|
45
47
|
ivec2 targetWH = iUV * ivec2(w, h);
|
|
46
48
|
|
|
47
49
|
vec2 end = vec2(x + targetWH.x, y + targetWH.y);
|
|
48
50
|
// UI layers are always given in screen coordinates.
|
|
49
51
|
// to-do: how to handle non-int mode?
|
|
50
|
-
vec2 camXY = z
|
|
52
|
+
vec2 camXY = z >= ${Layer.UIA} ? vec2(0, 0) : vec2(uCam.xy);
|
|
51
53
|
vec2 clip = ((-2. * camXY + 2. * end) / vec2(uCam.zw) - 1.) * vec2(1, -1);
|
|
52
54
|
gl_Position = vec4(clip, depth, 1);
|
|
53
55
|
|
|
54
56
|
int frame = (((int(uAge / ${celMillis}) & 0x1f) - cel) + ${animCels}) & 0xf;
|
|
55
57
|
uvec4 texXYWH = texelFetch(uCels, ivec2(0, id + frame), 0);
|
|
56
58
|
vTexXYWH = ivec4(texXYWH);
|
|
57
|
-
|
|
59
|
+
vVisible = uint(visible);
|
|
58
60
|
|
|
59
61
|
vDstWH = vec2(targetWH * ivec2(flipX ? -1 : 1, flipY ? -1 : 1));
|
|
60
62
|
vDstWHFixed = ivec2(w, h) * ivec2(flipX ? -1 : 1, flipY ? -1 : 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sprite-vert.glsl.js","sourceRoot":"","sources":["../../../src/graphics/sprite-vert.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAW;gBACtB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;mBACzB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI
|
|
1
|
+
{"version":3,"file":"sprite-vert.glsl.js","sourceRoot":"","sources":["../../../src/graphics/sprite-vert.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAW;gBACtB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;mBACzB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA0CtB,KAAK,CAAC,GAAG;;;;;;;sBAOZ,KAAK,CAAC,GAAG;;;;8BAID,SAAS,sBAAsB,QAAQ;;;;;;;;;;CAUpE,CAAA;AAED,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAA;AACvC,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import { type Anim, type Atlas, type
|
|
1
|
+
import { type Anim, type Atlas, type Tag } from '../graphics/atlas.ts';
|
|
2
2
|
import type { Block } from '../mem/pool.ts';
|
|
3
3
|
import { type Box, type WH, type XY } from '../types/geo.ts';
|
|
4
4
|
import type { Millis } from '../types/time.ts';
|
|
5
|
-
import
|
|
5
|
+
import { Layer } from './layer.ts';
|
|
6
|
+
export type DrawablePool = {
|
|
7
|
+
free(block: Block): void;
|
|
8
|
+
view: DataView<ArrayBuffer>;
|
|
9
|
+
};
|
|
10
|
+
/** must be a multiple of 4 (`UNSIGNED_INT`). */
|
|
6
11
|
export declare const drawableBytes: number;
|
|
7
|
-
/** granularity (0.015625) of
|
|
12
|
+
/** granularity (0.015625) of drawable coords. */
|
|
8
13
|
export declare const drawableEpsilon: number;
|
|
9
|
-
export declare const drawableMaxWH: WH
|
|
14
|
+
export declare const drawableMaxWH: Readonly<WH>;
|
|
10
15
|
/**
|
|
11
16
|
* everything not requiring an atlas. the box is the drawn region. assume little
|
|
12
17
|
* endian.
|
|
@@ -23,6 +28,10 @@ export declare const drawableMaxWH: WH;
|
|
|
23
28
|
* 9 hhhh hhhh
|
|
24
29
|
* a iiic cccc animation ID [0, 2047], animation cel [0, 31].
|
|
25
30
|
* b iiii iiii
|
|
31
|
+
* c rrrr rrrv reserved, visible.
|
|
32
|
+
* d rrrr rrrr
|
|
33
|
+
* e rrrr rrrr
|
|
34
|
+
* f rrrr rrrr
|
|
26
35
|
*
|
|
27
36
|
* animations default to looping without CPU interaction.
|
|
28
37
|
* @internal
|
|
@@ -30,69 +39,89 @@ export declare const drawableMaxWH: WH;
|
|
|
30
39
|
export declare abstract class Drawable implements Block, Box {
|
|
31
40
|
#private;
|
|
32
41
|
i: number;
|
|
33
|
-
constructor(pool:
|
|
34
|
-
readonly view: DataView<ArrayBuffer>;
|
|
35
|
-
}, i: number);
|
|
42
|
+
constructor(pool: Readonly<DrawablePool>, i: number);
|
|
36
43
|
above(draw: Readonly<Drawable>): boolean;
|
|
37
44
|
get cel(): number;
|
|
38
45
|
/**
|
|
39
46
|
* [0, 31]. rendered cel offset. call reset() to play animation from start.
|
|
40
47
|
*/
|
|
41
48
|
set cel(cel: number);
|
|
49
|
+
/**
|
|
50
|
+
* `this` is a clipbox but sometimes a copy or non-Sprite instance is needed.
|
|
51
|
+
*/
|
|
52
|
+
get clipbox(): Box;
|
|
42
53
|
/** test if render area overlaps box or sprite render area. */
|
|
43
54
|
clips(box: Readonly<XY & Partial<WH>>): boolean;
|
|
55
|
+
/** like `clips()` but can supports different world and UI layers. */
|
|
56
|
+
clipsZ(draw: Readonly<Drawable>, cam: Readonly<XY>): boolean;
|
|
44
57
|
get flipX(): boolean;
|
|
45
58
|
set flipX(flip: boolean);
|
|
46
59
|
get flipY(): boolean;
|
|
47
60
|
set flipY(flip: boolean);
|
|
61
|
+
free(): void;
|
|
48
62
|
get h(): number;
|
|
49
63
|
/** [0, 4095]. */
|
|
50
64
|
set h(h: number);
|
|
51
65
|
get id(): number;
|
|
52
66
|
/** [0, 2047]. */
|
|
53
67
|
set id(id: number);
|
|
68
|
+
/**
|
|
69
|
+
* reset most values that wouldn't be configured when setting the tag. used
|
|
70
|
+
* for reinitialization on pool allocation.
|
|
71
|
+
*/
|
|
72
|
+
init(): void;
|
|
54
73
|
get stretch(): boolean;
|
|
55
74
|
/** wrap texture (default) or stretch to width and height. */
|
|
56
75
|
set stretch(stretch: boolean);
|
|
76
|
+
get ui(): boolean;
|
|
77
|
+
get visible(): boolean;
|
|
78
|
+
set visible(visible: boolean);
|
|
57
79
|
get w(): number;
|
|
58
80
|
/** [0, 4095]. */
|
|
59
81
|
set w(w: number);
|
|
60
82
|
get x(): number;
|
|
61
83
|
/** [-131072, 131071.984375] with 1/64th (0.015625) granularity. */
|
|
62
84
|
set x(x: number);
|
|
63
|
-
get xy(): XY;
|
|
64
|
-
set xy(xy: Readonly<XY>);
|
|
65
85
|
get y(): number;
|
|
66
86
|
/** [-131072, 131071.984375] with 1/64th (0.015625) granularity. */
|
|
67
87
|
set y(y: number);
|
|
68
88
|
get z(): Layer;
|
|
69
|
-
/** layer [0 (
|
|
89
|
+
/** layer [0 (bottom), 15 (top)]. */
|
|
70
90
|
set z(z: Layer);
|
|
71
91
|
get zend(): boolean;
|
|
72
92
|
/** z-order by top (default) or bottom of box. */
|
|
73
93
|
set zend(end: boolean);
|
|
74
94
|
}
|
|
75
|
-
export declare class Sprite
|
|
95
|
+
export declare class Sprite extends Drawable {
|
|
76
96
|
#private;
|
|
77
|
-
constructor(pool: {
|
|
78
|
-
readonly view: DataView<ArrayBuffer>;
|
|
79
|
-
}, i: number, atlas: Readonly<Atlas>, looper: {
|
|
97
|
+
constructor(pool: Readonly<DrawablePool>, i: number, atlas: Readonly<Atlas>, looper: {
|
|
80
98
|
readonly age: Millis;
|
|
81
99
|
});
|
|
82
100
|
get anim(): Anim;
|
|
101
|
+
diagonalize(dir: Readonly<XY>): void;
|
|
83
102
|
get flipX(): boolean;
|
|
84
103
|
set flipX(flip: boolean);
|
|
85
104
|
get flipY(): boolean;
|
|
86
105
|
set flipY(flip: boolean);
|
|
87
106
|
get h(): number;
|
|
88
107
|
set h(h: number);
|
|
89
|
-
|
|
108
|
+
/** floored hitbox. */
|
|
109
|
+
get hitbox(): Readonly<Box> | undefined;
|
|
110
|
+
/**
|
|
111
|
+
* use `clips()` to test only clipbox of this and box. hitbox and hurtbox
|
|
112
|
+
* default to clipbox.
|
|
113
|
+
*/
|
|
90
114
|
hits(box: Readonly<XY | Box>): boolean;
|
|
91
|
-
|
|
115
|
+
/** like `hits()` but can supports different world and UI layers. */
|
|
116
|
+
hitsZ(sprite: Readonly<Sprite>, cam: Readonly<XY>): boolean;
|
|
117
|
+
/** floored hurtbox. */
|
|
118
|
+
get hurtbox(): Readonly<Box> | undefined;
|
|
92
119
|
get id(): number;
|
|
93
120
|
set id(id: number);
|
|
94
121
|
/** true if animation has played once. */
|
|
95
122
|
get looped(): boolean;
|
|
123
|
+
/** current fractional cel in [0, 2 * anim.cels). */
|
|
124
|
+
get looperCel(): number;
|
|
96
125
|
/** sets cel to animation start. */
|
|
97
126
|
reset(): void;
|
|
98
127
|
get tag(): Tag;
|
|
@@ -106,3 +135,12 @@ export declare class Sprite<out Tag extends TagFormat> extends Drawable {
|
|
|
106
135
|
get y(): number;
|
|
107
136
|
set y(y: number);
|
|
108
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* center component fractions for synchronized 45 degree diagonal movement.
|
|
140
|
+
* @arg dir positive if x and y are both increasing or decreasing, negative if
|
|
141
|
+
* opposing, zero if either are static.
|
|
142
|
+
*/
|
|
143
|
+
export declare function diagonalize(xy: XY, dir: number): void;
|
|
144
|
+
/** truncate to nearest drawable quantum. */
|
|
145
|
+
export declare function truncDrawableEpsilon(x: number): number;
|
|
146
|
+
//# sourceMappingURL=sprite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprite.d.ts","sourceRoot":"","sources":["../../../src/graphics/sprite.ts"],"names":[],"mappings":"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"}
|