@tolokoban/tgd 2.0.18 → 2.0.22
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/lib/dist/buffer/buffer.d.ts +5 -2
- package/lib/dist/buffer/buffer.d.ts.map +1 -1
- package/lib/dist/buffer/buffer.js +14 -14
- package/lib/dist/camera/camera-node.d.ts +2 -2
- package/lib/dist/camera/camera-node.d.ts.map +1 -1
- package/lib/dist/camera/camera-node.js +4 -5
- package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
- package/lib/dist/camera/camera-orthographic.js +14 -12
- package/lib/dist/camera/camera-perspective.d.ts.map +1 -1
- package/lib/dist/camera/camera-perspective.js +20 -38
- package/lib/dist/camera/camera.d.ts +9 -56
- package/lib/dist/camera/camera.d.ts.map +1 -1
- package/lib/dist/camera/camera.js +50 -279
- package/lib/dist/camera/index.d.ts +0 -1
- package/lib/dist/camera/index.d.ts.map +1 -1
- package/lib/dist/camera/index.js +1 -2
- package/lib/dist/canvas/gizmo/gizmo.d.ts.map +1 -1
- package/lib/dist/canvas/gizmo/gizmo.js +72 -78
- package/lib/dist/canvas/gizmo/painter/tips.d.ts +0 -1
- package/lib/dist/canvas/gizmo/painter/tips.d.ts.map +1 -1
- package/lib/dist/canvas/gizmo/painter/tips.js +38 -36
- package/lib/dist/canvas/landscape/landscape.js +4 -11
- package/lib/dist/code/color.d.ts +12 -0
- package/lib/dist/code/color.d.ts.map +1 -0
- package/lib/dist/code/color.js +26 -0
- package/lib/dist/code/consts.d.ts +16 -0
- package/lib/dist/code/consts.d.ts.map +1 -0
- package/lib/dist/code/consts.js +20 -0
- package/lib/dist/code/coords.d.ts +46 -0
- package/lib/dist/code/coords.d.ts.map +1 -0
- package/lib/dist/code/coords.js +95 -0
- package/lib/dist/code/index.d.ts +6 -0
- package/lib/dist/code/index.d.ts.map +1 -0
- package/lib/dist/code/index.js +6 -0
- package/lib/dist/code/random.d.ts +8 -0
- package/lib/dist/code/random.d.ts.map +1 -0
- package/lib/dist/code/random.js +13 -0
- package/lib/dist/code/transfo.d.ts +8 -0
- package/lib/dist/code/transfo.d.ts.map +1 -0
- package/lib/dist/code/transfo.js +19 -0
- package/lib/dist/color/color.js +24 -24
- package/lib/dist/context/animation/animation-manager.js +9 -6
- package/lib/dist/context/context.d.ts +11 -18
- package/lib/dist/context/context.d.ts.map +1 -1
- package/lib/dist/context/context.js +71 -96
- package/lib/dist/controller/camera/orbit.d.ts +33 -4
- package/lib/dist/controller/camera/orbit.d.ts.map +1 -1
- package/lib/dist/controller/camera/orbit.js +163 -117
- package/lib/dist/dataset/dataset.d.ts +1 -1
- package/lib/dist/dataset/dataset.d.ts.map +1 -1
- package/lib/dist/dataset/dataset.js +72 -72
- package/lib/dist/debug/debug.d.ts +1 -1
- package/lib/dist/debug/debug.d.ts.map +1 -1
- package/lib/dist/debug/debug.js +8 -7
- package/lib/dist/debug/tools.js +3 -3
- package/lib/dist/event/event.js +6 -3
- package/lib/dist/filter/blur.d.ts.map +1 -1
- package/lib/dist/filter/blur.js +9 -8
- package/lib/dist/filter/chromatic-aberration.js +10 -10
- package/lib/dist/filter/filter.d.ts +2 -1
- package/lib/dist/filter/filter.d.ts.map +1 -1
- package/lib/dist/filter/filter.js +22 -22
- package/lib/dist/filter/hue-rotation.d.ts +1 -1
- package/lib/dist/filter/hue-rotation.d.ts.map +1 -1
- package/lib/dist/filter/hue-rotation.js +5 -5
- package/lib/dist/filter/index.d.ts +1 -0
- package/lib/dist/filter/index.d.ts.map +1 -1
- package/lib/dist/filter/index.js +2 -1
- package/lib/dist/filter/verbatim.d.ts +8 -0
- package/lib/dist/filter/verbatim.d.ts.map +1 -0
- package/lib/dist/filter/verbatim.js +20 -0
- package/lib/dist/filter/zoom.d.ts +3 -1
- package/lib/dist/filter/zoom.d.ts.map +1 -1
- package/lib/dist/filter/zoom.js +10 -6
- package/lib/dist/geometry/box.d.ts +2 -1
- package/lib/dist/geometry/box.d.ts.map +1 -1
- package/lib/dist/geometry/box.js +103 -115
- package/lib/dist/geometry/geometry.d.ts.map +1 -1
- package/lib/dist/geometry/geometry.js +38 -48
- package/lib/dist/geometry/index.d.ts +1 -0
- package/lib/dist/geometry/index.d.ts.map +1 -1
- package/lib/dist/geometry/index.js +2 -1
- package/lib/dist/geometry/plane.d.ts +12 -0
- package/lib/dist/geometry/plane.d.ts.map +1 -0
- package/lib/dist/geometry/plane.js +51 -0
- package/lib/dist/index.d.ts +6 -1
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +7 -2
- package/lib/dist/input/inputs.js +3 -4
- package/lib/dist/input/keyboard.js +14 -14
- package/lib/dist/input/pointer.d.ts.map +1 -1
- package/lib/dist/input/pointer.js +85 -112
- package/lib/dist/interface/transformable.d.ts +3 -1
- package/lib/dist/interface/transformable.d.ts.map +1 -1
- package/lib/dist/light/light.js +5 -8
- package/lib/dist/loader/asset.js +15 -12
- package/lib/dist/loader/binary.js +29 -24
- package/lib/dist/loader/image.js +31 -24
- package/lib/dist/loader/index.d.ts +1 -0
- package/lib/dist/loader/index.d.ts.map +1 -1
- package/lib/dist/loader/index.js +2 -1
- package/lib/dist/loader/video.d.ts +6 -0
- package/lib/dist/loader/video.d.ts.map +1 -0
- package/lib/dist/loader/video.js +23 -0
- package/lib/dist/log.d.ts +1 -1
- package/lib/dist/log.d.ts.map +1 -1
- package/lib/dist/log.js +19 -16
- package/lib/dist/material/diffuse.d.ts +3 -1
- package/lib/dist/material/diffuse.d.ts.map +1 -1
- package/lib/dist/material/diffuse.js +17 -20
- package/lib/dist/material/ghost.d.ts +2 -1
- package/lib/dist/material/ghost.d.ts.map +1 -1
- package/lib/dist/material/ghost.js +1 -4
- package/lib/dist/material/hull.d.ts +2 -1
- package/lib/dist/material/hull.d.ts.map +1 -1
- package/lib/dist/material/hull.js +10 -13
- package/lib/dist/material/material.d.ts +2 -1
- package/lib/dist/material/material.d.ts.map +1 -1
- package/lib/dist/material/material.js +14 -20
- package/lib/dist/material/normals.d.ts +2 -1
- package/lib/dist/material/normals.d.ts.map +1 -1
- package/lib/dist/material/normals.js +1 -4
- package/lib/dist/material/solid.d.ts +2 -1
- package/lib/dist/material/solid.d.ts.map +1 -1
- package/lib/dist/material/solid.js +6 -9
- package/lib/dist/math/common.test.d.ts +2 -0
- package/lib/dist/math/common.test.d.ts.map +1 -0
- package/lib/dist/math/common.test.js +22 -0
- package/lib/dist/math/index.d.ts +0 -1
- package/lib/dist/math/index.d.ts.map +1 -1
- package/lib/dist/math/index.js +1 -2
- package/lib/dist/math/mat3.d.ts +44 -16
- package/lib/dist/math/mat3.d.ts.map +1 -1
- package/lib/dist/math/mat3.js +140 -74
- package/lib/dist/math/mat3.test.d.ts +2 -0
- package/lib/dist/math/mat3.test.d.ts.map +1 -0
- package/lib/dist/math/mat3.test.js +32 -0
- package/lib/dist/math/mat4.d.ts +54 -121
- package/lib/dist/math/mat4.d.ts.map +1 -1
- package/lib/dist/math/mat4.js +167 -288
- package/lib/dist/math/quat.d.ts +9 -4
- package/lib/dist/math/quat.d.ts.map +1 -1
- package/lib/dist/math/quat.js +57 -70
- package/lib/dist/math/quat.test.d.ts +1 -0
- package/lib/dist/math/quat.test.d.ts.map +1 -1
- package/lib/dist/math/quat.test.js +81 -27
- package/lib/dist/math/transfo.d.ts +32 -5
- package/lib/dist/math/transfo.d.ts.map +1 -1
- package/lib/dist/math/transfo.js +135 -46
- package/lib/dist/math/vec2.js +6 -6
- package/lib/dist/math/vec3.d.ts +11 -3
- package/lib/dist/math/vec3.d.ts.map +1 -1
- package/lib/dist/math/vec3.js +30 -17
- package/lib/dist/math/vec3.test.js +20 -1
- package/lib/dist/math/vec4.d.ts +12 -3
- package/lib/dist/math/vec4.d.ts.map +1 -1
- package/lib/dist/math/vec4.js +36 -18
- package/lib/dist/painter/{axis/axis.d.ts → axes/axes.d.ts} +4 -4
- package/lib/dist/painter/{axis/axis.d.ts.map → axes/axes.d.ts.map} +1 -1
- package/lib/dist/painter/{axis/axis.frag → axes/axes.frag} +0 -0
- package/lib/dist/painter/axes/axes.js +82 -0
- package/lib/dist/painter/{axis/axis.vert → axes/axes.vert} +0 -0
- package/lib/dist/painter/axes/index.d.ts +2 -0
- package/lib/dist/painter/axes/index.d.ts.map +1 -0
- package/lib/dist/painter/axes/index.js +2 -0
- package/lib/dist/painter/background/background.d.ts +4 -3
- package/lib/dist/painter/background/background.d.ts.map +1 -1
- package/lib/dist/painter/background/background.js +15 -17
- package/lib/dist/painter/clear.d.ts +4 -3
- package/lib/dist/painter/clear.d.ts.map +1 -1
- package/lib/dist/painter/clear.js +18 -22
- package/lib/dist/painter/debug/index.d.ts +2 -0
- package/lib/dist/painter/debug/index.d.ts.map +1 -0
- package/lib/dist/painter/debug/index.js +2 -0
- package/lib/dist/painter/debug/stencil/index.d.ts +2 -0
- package/lib/dist/painter/debug/stencil/index.d.ts.map +1 -0
- package/lib/dist/painter/debug/stencil/index.js +2 -0
- package/lib/dist/painter/debug/stencil/stencil.d.ts +11 -0
- package/lib/dist/painter/debug/stencil/stencil.d.ts.map +1 -0
- package/lib/dist/painter/debug/stencil/stencil.frag +10 -0
- package/lib/dist/painter/debug/stencil/stencil.js +53 -0
- package/lib/dist/painter/debug/stencil/stencil.vert +7 -0
- package/lib/dist/painter/depth.d.ts +7 -5
- package/lib/dist/painter/depth.d.ts.map +1 -1
- package/lib/dist/painter/depth.js +5 -11
- package/lib/dist/painter/filter/filter.d.ts +3 -3
- package/lib/dist/painter/filter/filter.d.ts.map +1 -1
- package/lib/dist/painter/filter/filter.js +44 -46
- package/lib/dist/painter/framebuffer.d.ts +25 -4
- package/lib/dist/painter/framebuffer.d.ts.map +1 -1
- package/lib/dist/painter/framebuffer.js +76 -43
- package/lib/dist/painter/group.js +11 -12
- package/lib/dist/painter/index.d.ts +2 -1
- package/lib/dist/painter/index.d.ts.map +1 -1
- package/lib/dist/painter/index.js +3 -2
- package/lib/dist/painter/logic.js +3 -3
- package/lib/dist/painter/mesh/gltf/gltf.d.ts +1 -1
- package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/painter/mesh/gltf/gltf.js +9 -10
- package/lib/dist/painter/mesh/mesh/mesh.d.ts +2 -2
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.js +45 -43
- package/lib/dist/painter/mesh/normals/normals.d.ts.map +1 -1
- package/lib/dist/painter/mesh/normals/normals.js +19 -22
- package/lib/dist/painter/node/node.d.ts +12 -12
- package/lib/dist/painter/node/node.d.ts.map +1 -1
- package/lib/dist/painter/node/node.js +32 -43
- package/lib/dist/painter/painter.js +11 -9
- package/lib/dist/painter/segments/segments.d.ts +11 -3
- package/lib/dist/painter/segments/segments.d.ts.map +1 -1
- package/lib/dist/painter/segments/segments.js +38 -38
- package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
- package/lib/dist/painter/skybox/skybox.js +13 -14
- package/lib/dist/painter/state/state.d.ts +4 -6
- package/lib/dist/painter/state/state.d.ts.map +1 -1
- package/lib/dist/painter/state/state.js +83 -65
- package/lib/dist/parser/for-each-line.d.ts.map +1 -1
- package/lib/dist/parser/for-each-line.js +5 -5
- package/lib/dist/parser/gltf/gltf.d.ts +5 -2
- package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/parser/gltf/gltf.js +114 -83
- package/lib/dist/parser/gltf/parser.js +10 -11
- package/lib/dist/parser/mesh/wavefront.d.ts.map +1 -1
- package/lib/dist/parser/mesh/wavefront.js +106 -111
- package/lib/dist/program/program.d.ts +2 -2
- package/lib/dist/program/program.d.ts.map +1 -1
- package/lib/dist/program/program.js +27 -33
- package/lib/dist/{ref-map.d.ts → reference-map.d.ts} +4 -4
- package/lib/dist/reference-map.d.ts.map +1 -0
- package/lib/dist/reference-map.js +52 -0
- package/lib/dist/shader/code.d.ts +2 -2
- package/lib/dist/shader/code.d.ts.map +1 -1
- package/lib/dist/shader/code.js +12 -12
- package/lib/dist/shader/fragment.js +7 -19
- package/lib/dist/shader/vertex.js +7 -12
- package/lib/dist/table/index.d.ts +2 -0
- package/lib/dist/table/index.d.ts.map +1 -0
- package/lib/dist/table/index.js +2 -0
- package/lib/dist/table/table.d.ts +41 -0
- package/lib/dist/table/table.d.ts.map +1 -0
- package/lib/dist/table/table.js +104 -0
- package/lib/dist/texture/index.d.ts +1 -1
- package/lib/dist/texture/index.d.ts.map +1 -1
- package/lib/dist/texture/index.js +2 -2
- package/lib/dist/texture/texture-cube.d.ts +24 -0
- package/lib/dist/texture/texture-cube.d.ts.map +1 -0
- package/lib/dist/texture/texture-cube.js +69 -0
- package/lib/dist/texture/texture2d.d.ts +47 -21
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +178 -133
- package/lib/dist/types/elements.js +2 -2
- package/lib/dist/types/gltf.js +3 -9
- package/lib/dist/types/guards.d.ts.map +1 -1
- package/lib/dist/types/guards.js +36 -37
- package/lib/dist/types/index.d.ts +1 -3
- package/lib/dist/types/index.d.ts.map +1 -1
- package/lib/dist/types/index.js +2 -4
- package/lib/dist/types/program.d.ts +0 -37
- package/lib/dist/types/program.d.ts.map +1 -1
- package/lib/dist/types/{textureCube.d.ts → texture-cube.d.ts} +7 -16
- package/lib/dist/types/texture-cube.d.ts.map +1 -0
- package/lib/dist/types/texture-cube.js +2 -0
- package/lib/dist/types/webgl.d.ts +15 -5
- package/lib/dist/types/webgl.d.ts.map +1 -1
- package/lib/dist/types/webgl.js +37 -30
- package/lib/dist/utils/action/camera.d.ts.map +1 -1
- package/lib/dist/utils/action/camera.js +15 -25
- package/lib/dist/utils/action/transfo.d.ts +3 -0
- package/lib/dist/utils/action/transfo.d.ts.map +1 -0
- package/lib/dist/utils/action/transfo.js +18 -0
- package/lib/dist/utils/action/vector.d.ts.map +1 -1
- package/lib/dist/utils/action/vector.js +11 -11
- package/lib/dist/utils/assert.d.ts.map +1 -1
- package/lib/dist/utils/assert.js +2 -2
- package/lib/dist/utils/bbox.js +3 -3
- package/lib/dist/utils/bbox.test.js +18 -19
- package/lib/dist/utils/canvas.d.ts +28 -0
- package/lib/dist/utils/canvas.d.ts.map +1 -1
- package/lib/dist/utils/canvas.js +59 -5
- package/lib/dist/utils/{ease-func/ease-func.d.ts → easing-function/easing-function.d.ts} +1 -1
- package/lib/dist/utils/easing-function/easing-function.d.ts.map +1 -0
- package/lib/dist/utils/easing-function/easing-function.js +142 -0
- package/lib/dist/utils/easing-function/index.d.ts +2 -0
- package/lib/dist/utils/easing-function/index.d.ts.map +1 -0
- package/lib/dist/utils/easing-function/index.js +2 -0
- package/lib/dist/utils/framebuffer.d.ts +2 -0
- package/lib/dist/utils/framebuffer.d.ts.map +1 -0
- package/lib/dist/utils/framebuffer.js +7 -0
- package/lib/dist/utils/fullscreen.d.ts +1 -1
- package/lib/dist/utils/fullscreen.d.ts.map +1 -1
- package/lib/dist/utils/fullscreen.js +44 -37
- package/lib/dist/utils/index.d.ts +4 -1
- package/lib/dist/utils/index.d.ts.map +1 -1
- package/lib/dist/utils/index.js +5 -2
- package/lib/dist/utils/math.d.ts +4 -2
- package/lib/dist/utils/math.d.ts.map +1 -1
- package/lib/dist/utils/math.js +12 -4
- package/lib/dist/utils/pbo.d.ts +9 -0
- package/lib/dist/utils/pbo.d.ts.map +1 -0
- package/lib/dist/utils/pbo.js +32 -0
- package/lib/dist/utils/{ref-map.d.ts → reference-map.d.ts} +4 -4
- package/lib/dist/utils/reference-map.d.ts.map +1 -0
- package/lib/dist/utils/reference-map.js +52 -0
- package/lib/dist/utils/state/blend.d.ts +5 -5
- package/lib/dist/utils/state/blend.d.ts.map +1 -1
- package/lib/dist/utils/state/blend.js +10 -10
- package/lib/dist/utils/state/depth.d.ts +2 -2
- package/lib/dist/utils/state/depth.d.ts.map +1 -1
- package/lib/dist/utils/state/depth.js +5 -5
- package/lib/dist/utils/state/stencil.d.ts +55 -1
- package/lib/dist/utils/state/stencil.d.ts.map +1 -1
- package/lib/dist/utils/state/stencil.js +28 -46
- package/lib/dist/utils/template.js +3 -3
- package/lib/dist/utils/webgl.d.ts +1 -1
- package/lib/dist/utils/webgl.d.ts.map +1 -1
- package/lib/dist/utils/webgl.js +5 -5
- package/lib/dist/vao/vao.d.ts +2 -1
- package/lib/dist/vao/vao.d.ts.map +1 -1
- package/lib/dist/vao/vao.js +19 -19
- package/lib/dist/webgl/index.d.ts +2 -0
- package/lib/dist/webgl/index.d.ts.map +1 -0
- package/lib/dist/webgl/index.js +2 -0
- package/lib/dist/webgl/texture/index.d.ts +3 -0
- package/lib/dist/webgl/texture/index.d.ts.map +1 -0
- package/lib/dist/webgl/texture/index.js +3 -0
- package/lib/dist/webgl/texture/texture2d.d.ts +38 -0
- package/lib/dist/webgl/texture/texture2d.d.ts.map +1 -0
- package/lib/dist/webgl/texture/texture2d.js +35 -0
- package/lib/dist/webgl/texture/types.d.ts +4 -0
- package/lib/dist/webgl/texture/types.d.ts.map +1 -0
- package/lib/dist/webgl/texture/types.js +2 -0
- package/package.json +1 -1
- package/lib/dist/math/math.d.ts +0 -9
- package/lib/dist/math/math.d.ts.map +0 -1
- package/lib/dist/math/math.js +0 -13
- package/lib/dist/painter/axis/axis.js +0 -84
- package/lib/dist/painter/axis/index.d.ts +0 -2
- package/lib/dist/painter/axis/index.d.ts.map +0 -1
- package/lib/dist/painter/axis/index.js +0 -2
- package/lib/dist/painter/framebuffer-old.d.ts +0 -38
- package/lib/dist/painter/framebuffer-old.d.ts.map +0 -1
- package/lib/dist/painter/framebuffer-old.js +0 -102
- package/lib/dist/painter/framebuffer.backup.d.ts +0 -39
- package/lib/dist/painter/framebuffer.backup.d.ts.map +0 -1
- package/lib/dist/painter/framebuffer.backup.js +0 -125
- package/lib/dist/painter/mesh/hull/hull.d.ts +0 -12
- package/lib/dist/painter/mesh/hull/hull.d.ts.map +0 -1
- package/lib/dist/painter/mesh/hull/hull.js +0 -11
- package/lib/dist/painter/node.d.ts +0 -32
- package/lib/dist/painter/node.d.ts.map +0 -1
- package/lib/dist/painter/node.js +0 -73
- package/lib/dist/ref-map.d.ts.map +0 -1
- package/lib/dist/ref-map.js +0 -48
- package/lib/dist/resource/index.d.ts +0 -5
- package/lib/dist/resource/index.d.ts.map +0 -1
- package/lib/dist/resource/index.js +0 -5
- package/lib/dist/resource/program.d.ts +0 -10
- package/lib/dist/resource/program.d.ts.map +0 -1
- package/lib/dist/resource/program.js +0 -20
- package/lib/dist/resource/resource.d.ts +0 -17
- package/lib/dist/resource/resource.d.ts.map +0 -1
- package/lib/dist/resource/resource.js +0 -48
- package/lib/dist/resource/texture2d.d.ts +0 -10
- package/lib/dist/resource/texture2d.d.ts.map +0 -1
- package/lib/dist/resource/texture2d.js +0 -20
- package/lib/dist/resource/textureCube.d.ts +0 -9
- package/lib/dist/resource/textureCube.d.ts.map +0 -1
- package/lib/dist/resource/textureCube.js +0 -17
- package/lib/dist/scene/scene-node.d.ts +0 -8
- package/lib/dist/scene/scene-node.d.ts.map +0 -1
- package/lib/dist/scene/scene-node.js +0 -13
- package/lib/dist/texture/textureCube.d.ts +0 -17
- package/lib/dist/texture/textureCube.d.ts.map +0 -1
- package/lib/dist/texture/textureCube.js +0 -87
- package/lib/dist/types/context.d.ts +0 -27
- package/lib/dist/types/context.d.ts.map +0 -1
- package/lib/dist/types/context.js +0 -2
- package/lib/dist/types/texture2d.d.ts +0 -36
- package/lib/dist/types/texture2d.d.ts.map +0 -1
- package/lib/dist/types/texture2d.js +0 -2
- package/lib/dist/types/textureCube.d.ts.map +0 -1
- package/lib/dist/types/textureCube.js +0 -2
- package/lib/dist/utils/ease-func/ease-func.d.ts.map +0 -1
- package/lib/dist/utils/ease-func/ease-func.js +0 -142
- package/lib/dist/utils/ease-func/index.d.ts +0 -2
- package/lib/dist/utils/ease-func/index.d.ts.map +0 -1
- package/lib/dist/utils/ease-func/index.js +0 -2
- package/lib/dist/utils/fetch/fetch.d.ts +0 -2
- package/lib/dist/utils/fetch/fetch.d.ts.map +0 -1
- package/lib/dist/utils/fetch/fetch.js +0 -5
- package/lib/dist/utils/fetch/index.d.ts +0 -2
- package/lib/dist/utils/fetch/index.d.ts.map +0 -1
- package/lib/dist/utils/fetch/index.js +0 -2
- package/lib/dist/utils/ref-map.d.ts.map +0 -1
- package/lib/dist/utils/ref-map.js +0 -48
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A Reference Map counts how many time you want to insert the same key.
|
|
3
|
+
* And it tells you when you delete it as many times.
|
|
4
|
+
*/
|
|
5
|
+
export default class ReferenceMap {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.map = new Map();
|
|
8
|
+
this.count = new Map();
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* If `key` is already stored in the map,
|
|
12
|
+
* we add a reference to the mapped value and return it.
|
|
13
|
+
* If not, we create the mapped value by calling `factory()`.
|
|
14
|
+
*/
|
|
15
|
+
add(key, factory) {
|
|
16
|
+
var _a;
|
|
17
|
+
const { map, count } = this;
|
|
18
|
+
if (count.has(key)) {
|
|
19
|
+
count.set(key, 1 + ((_a = count.get(key)) !== null && _a !== void 0 ? _a : 0));
|
|
20
|
+
const currentValue = map.get(key);
|
|
21
|
+
if (!currentValue)
|
|
22
|
+
throw new Error("[CountMap] Map should not be empty!");
|
|
23
|
+
return currentValue;
|
|
24
|
+
}
|
|
25
|
+
const newValue = factory();
|
|
26
|
+
map.set(key, newValue);
|
|
27
|
+
count.set(key, 1);
|
|
28
|
+
return newValue;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Delete a reference to `key`.
|
|
32
|
+
* If the last reference has been removed,
|
|
33
|
+
* then return the mapped value, otherwise
|
|
34
|
+
* return `undefined`.
|
|
35
|
+
*/
|
|
36
|
+
delete(key) {
|
|
37
|
+
var _a;
|
|
38
|
+
const { map, count } = this;
|
|
39
|
+
if (!map.has(key))
|
|
40
|
+
return;
|
|
41
|
+
const newCount = ((_a = count.get(key)) !== null && _a !== void 0 ? _a : 0) - 1;
|
|
42
|
+
if (newCount > 0) {
|
|
43
|
+
count.set(key, newCount);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const value = map.get(key);
|
|
47
|
+
map.delete(key);
|
|
48
|
+
count.delete(key);
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWZlcmVuY2UtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sWUFBWTtJQUFqQztRQUNxQixRQUFHLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUE7UUFDbkMsVUFBSyxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFBO0lBMkN2RCxDQUFDO0lBekNHOzs7O09BSUc7SUFDSCxHQUFHLENBQUMsR0FBWSxFQUFFLE9BQXdCOztRQUN0QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQTtRQUMzQixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFBLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLG1DQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDekMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNqQyxJQUFJLENBQUMsWUFBWTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUE7WUFDekUsT0FBTyxZQUFZLENBQUE7UUFDdkIsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLE9BQU8sRUFBRSxDQUFBO1FBQzFCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQ3RCLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ2pCLE9BQU8sUUFBUSxDQUFBO0lBQ25CLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxHQUFZOztRQUNmLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU07UUFFekIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFBLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLG1DQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMxQyxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQ3hCLE9BQU07UUFDVixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMxQixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2YsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNqQixPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0NBQ0oifQ==
|
|
@@ -8,6 +8,6 @@ export interface TgdCodeFunctions {
|
|
|
8
8
|
export type TgdCodeBloc = string | null | TgdCodeBloc[];
|
|
9
9
|
export declare function isCodeBloc(v: unknown): v is TgdCodeBloc;
|
|
10
10
|
export declare function tgdCodeStringify(code: TgdCodeBloc, indent?: string): string;
|
|
11
|
-
export declare function
|
|
12
|
-
export declare function
|
|
11
|
+
export declare function expandVariables<Type extends WebglAttributeType | WebglUniformType>(definition: TgdCodeVariables<Type>, prefix: string, comment?: string): TgdCodeBloc[];
|
|
12
|
+
export declare function expandFunctions(definition: TgdCodeFunctions | TgdCodeBloc, comment?: string): TgdCodeBloc[];
|
|
13
13
|
//# sourceMappingURL=code.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/shader/code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAA;AAEzD,MAAM,WAAW,gBAAgB,CAC7B,IAAI,SAAS,kBAAkB,GAAG,gBAAgB;IAElD,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;CAC9B;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,WAAW,EAAE,CAAA;AAEvD,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CASvD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,SAAK,GAAG,MAAM,CAWvE;AAED,wBAAgB,
|
|
1
|
+
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/shader/code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAA;AAEzD,MAAM,WAAW,gBAAgB,CAC7B,IAAI,SAAS,kBAAkB,GAAG,gBAAgB;IAElD,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;CAC9B;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,WAAW,EAAE,CAAA;AAEvD,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CASvD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,SAAK,GAAG,MAAM,CAWvE;AAED,wBAAgB,eAAe,CAC3B,IAAI,SAAS,kBAAkB,GAAG,gBAAgB,EAElD,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAClC,MAAM,EAAE,MAAM,EACd,OAAO,SAA6C,GACrD,WAAW,EAAE,CAQf;AAED,wBAAgB,eAAe,CAC3B,UAAU,EAAE,gBAAgB,GAAG,WAAW,EAC1C,OAAO,CAAC,EAAE,MAAM,GACjB,WAAW,EAAE,CAWf"}
|
package/lib/dist/shader/code.js
CHANGED
|
@@ -21,25 +21,25 @@ export function tgdCodeStringify(code, indent = "") {
|
|
|
21
21
|
.map(line => tgdCodeStringify(line, subIndent))
|
|
22
22
|
.join("\n");
|
|
23
23
|
}
|
|
24
|
-
export function
|
|
25
|
-
const names = Object.keys(
|
|
24
|
+
export function expandVariables(definition, prefix, comment = "----------------------------------------") {
|
|
25
|
+
const names = Object.keys(definition);
|
|
26
26
|
if (names.length === 0)
|
|
27
27
|
return [];
|
|
28
28
|
return [
|
|
29
29
|
`// ${comment}`,
|
|
30
|
-
...names.map(name => `${prefix} ${
|
|
30
|
+
...names.map(name => `${prefix} ${definition[name]} ${name};`),
|
|
31
31
|
];
|
|
32
32
|
}
|
|
33
|
-
export function
|
|
34
|
-
if (isCodeBloc(
|
|
35
|
-
return [
|
|
36
|
-
const names = Object.keys(
|
|
33
|
+
export function expandFunctions(definition, comment) {
|
|
34
|
+
if (isCodeBloc(definition))
|
|
35
|
+
return [definition];
|
|
36
|
+
const names = Object.keys(definition);
|
|
37
37
|
if (names.length === 0)
|
|
38
38
|
return [];
|
|
39
|
-
const result = [`// ${comment}`];
|
|
40
|
-
|
|
41
|
-
result.push(
|
|
42
|
-
}
|
|
39
|
+
const result = comment ? [`// ${comment}`] : [];
|
|
40
|
+
for (const name of names) {
|
|
41
|
+
result.push(definition[name], "");
|
|
42
|
+
}
|
|
43
43
|
return result;
|
|
44
44
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaGFkZXIvY29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQSxNQUFNLFVBQVUsVUFBVSxDQUFDLENBQVU7SUFDakMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFFdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUE7SUFFbkMsS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFBO0lBQ3ZDLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBaUIsRUFBRSxNQUFNLEdBQUcsRUFBRTtJQUMzRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFBRSxPQUFPLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFBO0lBRXZELElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxFQUFFLENBQUE7SUFFcEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQTtJQUNqQyxPQUFPLElBQUk7U0FDTixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUN2RCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUczQixVQUFrQyxFQUNsQyxNQUFjLEVBQ2QsT0FBTyxHQUFHLDBDQUEwQztJQUVwRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3JDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUE7SUFFakMsT0FBTztRQUNILE1BQU0sT0FBTyxFQUFFO1FBQ2YsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDO0tBQ2pFLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FDM0IsVUFBMEMsRUFDMUMsT0FBZ0I7SUFFaEIsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDO1FBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRS9DLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDckMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLEVBQUUsQ0FBQTtJQUVqQyxNQUFNLE1BQU0sR0FBa0IsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQzlELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFBO0FBQ2pCLENBQUMifQ==
|
|
@@ -1,25 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { expandFunctions, tgdCodeStringify, expandVariables, } from "./code.js";
|
|
2
2
|
/**
|
|
3
3
|
* Helper to wirte the code of a fragment Shader.
|
|
4
4
|
* @see https://registry.khronos.org/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf
|
|
5
5
|
*/
|
|
6
6
|
export class TgdShaderFragment {
|
|
7
|
-
precision = "mediump";
|
|
8
|
-
uniforms;
|
|
9
|
-
varying;
|
|
10
|
-
outputs;
|
|
11
|
-
/**
|
|
12
|
-
* The key should be the signatureof a function
|
|
13
|
-
* (like `vec2 scale(vec2 v, float s)`)
|
|
14
|
-
* and the value to code of this function (like `return v * s;`).
|
|
15
|
-
*
|
|
16
|
-
* But if the key starts with a `_`, then the content of the value is uses verbatim.
|
|
17
|
-
*/
|
|
18
|
-
functions;
|
|
19
|
-
mainCode;
|
|
20
7
|
constructor({ precision = "mediump", uniforms = {}, outputs = {
|
|
21
8
|
FragColor: "vec4",
|
|
22
9
|
}, varying = {}, functions = {}, mainCode = ["FragColor = vec4(1, 0.667, 0, 1);"], } = {}) {
|
|
10
|
+
this.precision = "mediump";
|
|
23
11
|
this.precision = precision;
|
|
24
12
|
this.uniforms = uniforms;
|
|
25
13
|
this.outputs = outputs;
|
|
@@ -31,10 +19,10 @@ export class TgdShaderFragment {
|
|
|
31
19
|
return tgdCodeStringify([
|
|
32
20
|
`#version 300 es`,
|
|
33
21
|
`precision ${this.precision} float;`,
|
|
34
|
-
...
|
|
35
|
-
...
|
|
36
|
-
...
|
|
37
|
-
...
|
|
22
|
+
...expandVariables(this.uniforms, "uniform"),
|
|
23
|
+
...expandVariables(this.varying, "in"),
|
|
24
|
+
...expandVariables(this.outputs, "out"),
|
|
25
|
+
...expandFunctions(this.functions),
|
|
38
26
|
"",
|
|
39
27
|
`void main() {`,
|
|
40
28
|
this.mainCode,
|
|
@@ -42,4 +30,4 @@ export class TgdShaderFragment {
|
|
|
42
30
|
]);
|
|
43
31
|
}
|
|
44
32
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2hhZGVyL2ZyYWdtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFJSCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDbEIsTUFBTSxRQUFRLENBQUE7QUFFZjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBZTFCLFlBQVksRUFDUixTQUFTLEdBQUcsU0FBUyxFQUNyQixRQUFRLEdBQUcsRUFBRSxFQUNiLE9BQU8sR0FBRztRQUNOLFNBQVMsRUFBRSxNQUFNO0tBQ3BCLEVBQ0QsT0FBTyxHQUFHLEVBQUUsRUFDWixTQUFTLEdBQUcsRUFBRSxFQUNkLFFBQVEsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLE1BUS9DLEVBQUU7UUE5QkEsY0FBUyxHQUFpQyxTQUFTLENBQUE7UUErQnRELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO0lBQzVCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDSixPQUFPLGdCQUFnQixDQUFDO1lBQ3BCLGlCQUFpQjtZQUNqQixhQUFhLElBQUksQ0FBQyxTQUFTLFNBQVM7WUFDcEMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7WUFDNUMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7WUFDdEMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7WUFDdkMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNsQyxFQUFFO1lBQ0YsZUFBZTtZQUNmLElBQUksQ0FBQyxRQUFRO1lBQ2IsR0FBRztTQUNOLENBQUMsQ0FBQTtJQUNOLENBQUM7Q0FDSiJ9
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { expandFunctions, tgdCodeStringify as tgdCodeToString, expandVariables, } from "./code.js";
|
|
2
2
|
/**
|
|
3
3
|
* Helper to create a Vertex Shader.
|
|
4
4
|
*
|
|
@@ -9,13 +9,8 @@ import { funcs, tgdCodeStringify as tgdCodeToString, vars, } from "./code.js";
|
|
|
9
9
|
* @see https://registry.khronos.org/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf
|
|
10
10
|
*/
|
|
11
11
|
export class TgdShaderVertex {
|
|
12
|
-
precision = "mediump";
|
|
13
|
-
uniforms;
|
|
14
|
-
attributes;
|
|
15
|
-
varying;
|
|
16
|
-
functions;
|
|
17
|
-
mainCode;
|
|
18
12
|
constructor({ precision = "mediump", uniforms = {}, attributes = {}, varying = {}, functions = {}, mainCode = [], } = {}) {
|
|
13
|
+
this.precision = "mediump";
|
|
19
14
|
this.precision = precision;
|
|
20
15
|
this.uniforms = uniforms;
|
|
21
16
|
this.attributes = attributes;
|
|
@@ -27,10 +22,10 @@ export class TgdShaderVertex {
|
|
|
27
22
|
return tgdCodeToString([
|
|
28
23
|
`#version 300 es`,
|
|
29
24
|
`precision ${this.precision} float;`,
|
|
30
|
-
...
|
|
31
|
-
...
|
|
32
|
-
...
|
|
33
|
-
...
|
|
25
|
+
...expandVariables(this.uniforms, "uniform"),
|
|
26
|
+
...expandVariables(this.attributes, "in"),
|
|
27
|
+
...expandVariables(this.varying, "out"),
|
|
28
|
+
...expandFunctions(this.functions),
|
|
34
29
|
"",
|
|
35
30
|
`void main() {`,
|
|
36
31
|
this.mainCode,
|
|
@@ -38,4 +33,4 @@ export class TgdShaderVertex {
|
|
|
38
33
|
]);
|
|
39
34
|
}
|
|
40
35
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NoYWRlci92ZXJ0ZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUlILGVBQWUsRUFDZixnQkFBZ0IsSUFBSSxlQUFlLEVBQ25DLGVBQWUsR0FDbEIsTUFBTSxRQUFRLENBQUE7QUFFZjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBUXhCLFlBQVksRUFDUixTQUFTLEdBQUcsU0FBUyxFQUNyQixRQUFRLEdBQUcsRUFBRSxFQUNiLFVBQVUsR0FBRyxFQUFFLEVBQ2YsT0FBTyxHQUFHLEVBQUUsRUFDWixTQUFTLEdBQUcsRUFBRSxFQUNkLFFBQVEsR0FBRyxFQUFFLE1BUVosRUFBRTtRQXJCQSxjQUFTLEdBQWlDLFNBQVMsQ0FBQTtRQXNCdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUE7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7SUFDNUIsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sZUFBZSxDQUFDO1lBQ25CLGlCQUFpQjtZQUNqQixhQUFhLElBQUksQ0FBQyxTQUFTLFNBQVM7WUFDcEMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7WUFDNUMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7WUFDekMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7WUFDdkMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNsQyxFQUFFO1lBQ0YsZUFBZTtZQUNmLElBQUksQ0FBQyxRQUFRO1lBQ2IsR0FBRztTQUNOLENBQUMsQ0FBQTtJQUNOLENBQUM7Q0FDSiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/table/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export declare class TgdTable {
|
|
2
|
+
readonly buffer: ArrayBuffer;
|
|
3
|
+
readonly cols: number;
|
|
4
|
+
readonly rows: number;
|
|
5
|
+
readonly dimensions: number;
|
|
6
|
+
readonly bytesPerElement: number;
|
|
7
|
+
static computeByteLength(cols: number, rows: number, dimensions: number, bytesPerElement: number): number;
|
|
8
|
+
readonly bytePadding: number;
|
|
9
|
+
private readonly bytesPerRow;
|
|
10
|
+
private readonly bytesPerVector;
|
|
11
|
+
private readonly view;
|
|
12
|
+
constructor(buffer: ArrayBuffer, cols: number, rows: number, dimensions: number, bytesPerElement: number);
|
|
13
|
+
private offset;
|
|
14
|
+
setFloat32(value: number, col: number, row: number, dimension: number): void;
|
|
15
|
+
getFloat32(col: number, row: number, dimension: number): number;
|
|
16
|
+
setUint8(value: number, col: number, row: number, dimension: number): void;
|
|
17
|
+
getUint8(col: number, row: number, dimension: number): number;
|
|
18
|
+
}
|
|
19
|
+
export declare class TgdTableUint8 {
|
|
20
|
+
readonly cols: number;
|
|
21
|
+
readonly rows: number;
|
|
22
|
+
readonly dimensions: number;
|
|
23
|
+
private readonly table;
|
|
24
|
+
constructor(cols: number, rows: number, dimensions: number);
|
|
25
|
+
get buffer(): ArrayBuffer;
|
|
26
|
+
set(value: number, col: number, row: number, dimension: number): void;
|
|
27
|
+
setVec(values: number[], col: number, row: number): void;
|
|
28
|
+
get(col: number, row: number, dimension: number): number;
|
|
29
|
+
}
|
|
30
|
+
export declare class TgdTableFloat32 {
|
|
31
|
+
readonly cols: number;
|
|
32
|
+
readonly rows: number;
|
|
33
|
+
readonly dimensions: number;
|
|
34
|
+
private readonly table;
|
|
35
|
+
constructor(cols: number, rows: number, dimensions: number);
|
|
36
|
+
get buffer(): ArrayBuffer;
|
|
37
|
+
set(value: number, col: number, row: number, dimension: number): void;
|
|
38
|
+
setVec(values: number[], col: number, row: number): void;
|
|
39
|
+
get(col: number, row: number, dimension: number): number;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/table/table.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ;aAqBG,MAAM,EAAE,WAAW;aACnB,IAAI,EAAE,MAAM;aACZ,IAAI,EAAE,MAAM;aACZ,UAAU,EAAE,MAAM;aAClB,eAAe,EAAE,MAAM;WAxB7B,iBAAiB,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM;IAS3B,SAAgB,WAAW,EAAE,MAAM,CAAA;IAEnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;gBAGX,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM;IA4B3C,OAAO,CAAC,MAAM;IAQd,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKrE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKtD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKnE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAIvD;AAED,qBAAa,aAAa;aAIF,IAAI,EAAE,MAAM;aACZ,IAAI,EAAE,MAAM;aACZ,UAAU,EAAE,MAAM;IALtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;gBAGZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM;IAkBtC,IAAI,MAAM,gBAET;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI9D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAMjD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAGlD;AAED,qBAAa,eAAe;aAIJ,IAAI,EAAE,MAAM;aACZ,IAAI,EAAE,MAAM;aACZ,UAAU,EAAE,MAAM;IALtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;gBAGZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM;IAkBtC,IAAI,MAAM,gBAET;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI9D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAKjD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAGlD"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
export class TgdTable {
|
|
2
|
+
static computeByteLength(cols, rows, dimensions, bytesPerElement) {
|
|
3
|
+
let bytesPerRow = cols * dimensions * bytesPerElement;
|
|
4
|
+
while ((bytesPerRow & 3) !== 0) {
|
|
5
|
+
bytesPerRow++;
|
|
6
|
+
}
|
|
7
|
+
return rows * bytesPerRow;
|
|
8
|
+
}
|
|
9
|
+
constructor(buffer, cols, rows, dimensions, bytesPerElement) {
|
|
10
|
+
this.buffer = buffer;
|
|
11
|
+
this.cols = cols;
|
|
12
|
+
this.rows = rows;
|
|
13
|
+
this.dimensions = dimensions;
|
|
14
|
+
this.bytesPerElement = bytesPerElement;
|
|
15
|
+
const expectedByteLength = TgdTable.computeByteLength(cols, rows, dimensions, bytesPerElement);
|
|
16
|
+
if (buffer.byteLength < expectedByteLength) {
|
|
17
|
+
throw new Error(`Your data is ${buffer.byteLength} bytes long.
|
|
18
|
+
But for a ${cols}x${rows} table we need at least ${expectedByteLength} bytes!
|
|
19
|
+
Please use TgdTable.computeByteLength() to get the correct length (with all needed paddings).`);
|
|
20
|
+
}
|
|
21
|
+
const bytesPerVector = dimensions * bytesPerElement;
|
|
22
|
+
this.bytesPerVector = bytesPerVector;
|
|
23
|
+
let bytesPerRow = cols * bytesPerVector;
|
|
24
|
+
let bytePadding = 0;
|
|
25
|
+
while ((bytesPerRow & 3) !== 0) {
|
|
26
|
+
bytePadding++;
|
|
27
|
+
bytesPerRow++;
|
|
28
|
+
}
|
|
29
|
+
this.bytePadding = bytePadding;
|
|
30
|
+
this.bytesPerRow = bytesPerRow;
|
|
31
|
+
this.bytesPerElement = bytesPerElement;
|
|
32
|
+
this.view = new DataView(buffer);
|
|
33
|
+
}
|
|
34
|
+
offset(col, row, dimension = 0) {
|
|
35
|
+
const byteOffset = row * this.bytesPerRow +
|
|
36
|
+
col * this.bytesPerVector +
|
|
37
|
+
this.bytesPerElement * dimension;
|
|
38
|
+
return byteOffset;
|
|
39
|
+
}
|
|
40
|
+
setFloat32(value, col, row, dimension) {
|
|
41
|
+
const byteOffset = this.offset(col, row, dimension);
|
|
42
|
+
this.view.setFloat32(byteOffset, value);
|
|
43
|
+
}
|
|
44
|
+
getFloat32(col, row, dimension) {
|
|
45
|
+
const byteOffset = this.offset(col, row, dimension);
|
|
46
|
+
return this.view.getFloat32(byteOffset);
|
|
47
|
+
}
|
|
48
|
+
setUint8(value, col, row, dimension) {
|
|
49
|
+
const byteOffset = this.offset(col, row, dimension);
|
|
50
|
+
this.view.setUint8(byteOffset, value);
|
|
51
|
+
}
|
|
52
|
+
getUint8(col, row, dimension) {
|
|
53
|
+
const byteOffset = this.offset(col, row, dimension);
|
|
54
|
+
return this.view.getUint8(byteOffset);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export class TgdTableUint8 {
|
|
58
|
+
constructor(cols, rows, dimensions) {
|
|
59
|
+
this.cols = cols;
|
|
60
|
+
this.rows = rows;
|
|
61
|
+
this.dimensions = dimensions;
|
|
62
|
+
const byteLength = TgdTable.computeByteLength(cols, rows, dimensions, Uint8Array.BYTES_PER_ELEMENT);
|
|
63
|
+
const buffer = new ArrayBuffer(byteLength);
|
|
64
|
+
this.table = new TgdTable(buffer, cols, rows, dimensions, Uint8Array.BYTES_PER_ELEMENT);
|
|
65
|
+
}
|
|
66
|
+
get buffer() {
|
|
67
|
+
return this.table.buffer;
|
|
68
|
+
}
|
|
69
|
+
set(value, col, row, dimension) {
|
|
70
|
+
this.table.setUint8(value, col, row, dimension);
|
|
71
|
+
}
|
|
72
|
+
setVec(values, col, row) {
|
|
73
|
+
for (const [dimension, value] of values.entries()) {
|
|
74
|
+
this.table.setUint8(value, col, row, dimension);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
get(col, row, dimension) {
|
|
78
|
+
return this.table.getUint8(col, row, dimension);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export class TgdTableFloat32 {
|
|
82
|
+
constructor(cols, rows, dimensions) {
|
|
83
|
+
this.cols = cols;
|
|
84
|
+
this.rows = rows;
|
|
85
|
+
this.dimensions = dimensions;
|
|
86
|
+
const byteLength = TgdTable.computeByteLength(cols, rows, dimensions, Float32Array.BYTES_PER_ELEMENT);
|
|
87
|
+
const buffer = new ArrayBuffer(byteLength);
|
|
88
|
+
this.table = new TgdTable(buffer, cols, rows, dimensions, Float32Array.BYTES_PER_ELEMENT);
|
|
89
|
+
}
|
|
90
|
+
get buffer() {
|
|
91
|
+
return this.table.buffer;
|
|
92
|
+
}
|
|
93
|
+
set(value, col, row, dimension) {
|
|
94
|
+
this.table.setFloat32(value, col, row, dimension);
|
|
95
|
+
}
|
|
96
|
+
setVec(values, col, row) {
|
|
97
|
+
for (const [dimension, value] of values.entries())
|
|
98
|
+
this.table.setFloat32(value, col, row, dimension);
|
|
99
|
+
}
|
|
100
|
+
get(col, row, dimension) {
|
|
101
|
+
return this.table.getFloat32(col, row, dimension);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFibGUvdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFFBQVE7SUFDVixNQUFNLENBQUMsaUJBQWlCLENBQzNCLElBQVksRUFDWixJQUFZLEVBQ1osVUFBa0IsRUFDbEIsZUFBdUI7UUFFdkIsSUFBSSxXQUFXLEdBQUcsSUFBSSxHQUFHLFVBQVUsR0FBRyxlQUFlLENBQUE7UUFDckQsT0FBTyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixXQUFXLEVBQUUsQ0FBQTtRQUNqQixDQUFDO1FBQ0QsT0FBTyxJQUFJLEdBQUcsV0FBVyxDQUFBO0lBQzdCLENBQUM7SUFRRCxZQUNvQixNQUFtQixFQUNuQixJQUFZLEVBQ1osSUFBWSxFQUNaLFVBQWtCLEVBQ2xCLGVBQXVCO1FBSnZCLFdBQU0sR0FBTixNQUFNLENBQWE7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLG9CQUFlLEdBQWYsZUFBZSxDQUFRO1FBRXZDLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUNqRCxJQUFJLEVBQ0osSUFBSSxFQUNKLFVBQVUsRUFDVixlQUFlLENBQ2xCLENBQUE7UUFFRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztZQUN6QyxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixNQUFNLENBQUMsVUFBVTtZQUNqRCxJQUFJLElBQUksSUFBSSwyQkFBMkIsa0JBQWtCOzhGQUN5QixDQUFDLENBQUE7UUFDdkYsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLFVBQVUsR0FBRyxlQUFlLENBQUE7UUFDbkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUE7UUFDcEMsSUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/texture/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/texture/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from "./texture2d.js";
|
|
2
|
-
export * from "./
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export * from "./texture-cube.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGV4dHVyZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLGdCQUFnQixDQUFBIn0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TgdProgram } from "../program";
|
|
2
|
+
import { TgdTextureCubeOptions } from "../types";
|
|
3
|
+
export declare class TgdTextureCubeImpl {
|
|
4
|
+
readonly context: {
|
|
5
|
+
gl: WebGL2RenderingContext;
|
|
6
|
+
paint: () => void;
|
|
7
|
+
};
|
|
8
|
+
readonly texture: WebGLTexture;
|
|
9
|
+
private _width;
|
|
10
|
+
private _height;
|
|
11
|
+
private numberOfImagesToLoad;
|
|
12
|
+
constructor(context: {
|
|
13
|
+
gl: WebGL2RenderingContext;
|
|
14
|
+
paint: () => void;
|
|
15
|
+
}, options: TgdTextureCubeOptions);
|
|
16
|
+
delete(): void;
|
|
17
|
+
get ready(): boolean;
|
|
18
|
+
get width(): number;
|
|
19
|
+
get height(): number;
|
|
20
|
+
bind(): void;
|
|
21
|
+
activate(unit: number, program: TgdProgram, uniformName: string): void;
|
|
22
|
+
private loadImage;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=texture-cube.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-cube.d.ts","sourceRoot":"","sources":["../../src/texture/texture-cube.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,qBAAqB,EAAc,MAAM,YAAY,CAAA;AAE9D,qBAAa,kBAAkB;aAQP,OAAO,EAAE;QACrB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,KAAK,EAAE,MAAM,IAAI,CAAA;KACpB;IAVL,SAAgB,OAAO,EAAE,YAAY,CAAA;IAErC,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,oBAAoB,CAAI;gBAGZ,OAAO,EAAE;QACrB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,KAAK,EAAE,MAAM,IAAI,CAAA;KACpB,EACD,OAAO,EAAE,qBAAqB;IAelC,MAAM;IAIN,IAAI,KAAK,YAER;IAED,IAAI,KAAK,WAER;IAED,IAAI,MAAM,WAET;IAED,IAAI;IAKJ,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM;IAU/D,OAAO,CAAC,SAAS;CA+BpB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export class TgdTextureCubeImpl {
|
|
2
|
+
constructor(context, options) {
|
|
3
|
+
this.context = context;
|
|
4
|
+
this._width = 0;
|
|
5
|
+
this._height = 0;
|
|
6
|
+
this.numberOfImagesToLoad = 6;
|
|
7
|
+
const { gl } = context;
|
|
8
|
+
const texture = gl.createTexture();
|
|
9
|
+
if (!texture)
|
|
10
|
+
throw new Error("Unable to create a WebGLTexture!");
|
|
11
|
+
this.texture = texture;
|
|
12
|
+
this.loadImage(gl.TEXTURE_CUBE_MAP_POSITIVE_X, options.imagePosX);
|
|
13
|
+
this.loadImage(gl.TEXTURE_CUBE_MAP_NEGATIVE_X, options.imageNegX);
|
|
14
|
+
this.loadImage(gl.TEXTURE_CUBE_MAP_POSITIVE_Y, options.imagePosY);
|
|
15
|
+
this.loadImage(gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, options.imageNegY);
|
|
16
|
+
this.loadImage(gl.TEXTURE_CUBE_MAP_POSITIVE_Z, options.imagePosZ);
|
|
17
|
+
this.loadImage(gl.TEXTURE_CUBE_MAP_NEGATIVE_Z, options.imageNegZ);
|
|
18
|
+
}
|
|
19
|
+
delete() {
|
|
20
|
+
this.context.gl.deleteTexture(this.texture);
|
|
21
|
+
}
|
|
22
|
+
get ready() {
|
|
23
|
+
return this.numberOfImagesToLoad === 0;
|
|
24
|
+
}
|
|
25
|
+
get width() {
|
|
26
|
+
return this._width;
|
|
27
|
+
}
|
|
28
|
+
get height() {
|
|
29
|
+
return this._height;
|
|
30
|
+
}
|
|
31
|
+
bind() {
|
|
32
|
+
const { gl } = this.context;
|
|
33
|
+
gl.bindTexture(gl.TEXTURE_CUBE_MAP, this.texture);
|
|
34
|
+
}
|
|
35
|
+
activate(unit, program, uniformName) {
|
|
36
|
+
if (!this.ready)
|
|
37
|
+
return;
|
|
38
|
+
const { context, texture } = this;
|
|
39
|
+
const { gl } = context;
|
|
40
|
+
gl.activeTexture(gl.TEXTURE0 + unit);
|
|
41
|
+
gl.bindTexture(gl.TEXTURE_CUBE_MAP, texture);
|
|
42
|
+
program.uniform1i(uniformName, unit);
|
|
43
|
+
}
|
|
44
|
+
loadImage(target, image) {
|
|
45
|
+
const { width, height } = image;
|
|
46
|
+
if (width !== height) {
|
|
47
|
+
throw new Error(`Images in a CubeMap must be squares, but we got ${width}×${height}!`);
|
|
48
|
+
}
|
|
49
|
+
if (this._width === 0) {
|
|
50
|
+
this._width = width;
|
|
51
|
+
this._height = height;
|
|
52
|
+
}
|
|
53
|
+
else if (this._width !== width || this._height !== height) {
|
|
54
|
+
throw new Error(`Images in a CubeMap must all have the same size, but we got ${this._width}×${this._height} and ${width}×${height}!`);
|
|
55
|
+
}
|
|
56
|
+
const { context, texture } = this;
|
|
57
|
+
const { gl } = context;
|
|
58
|
+
gl.bindTexture(gl.TEXTURE_CUBE_MAP, texture);
|
|
59
|
+
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, image instanceof Image);
|
|
60
|
+
gl.texImage2D(target, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
|
|
61
|
+
this.numberOfImagesToLoad--;
|
|
62
|
+
if (this.numberOfImagesToLoad === 0) {
|
|
63
|
+
gl.generateMipmap(gl.TEXTURE_CUBE_MAP);
|
|
64
|
+
gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR);
|
|
65
|
+
context.paint();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZS1jdWJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RleHR1cmUvdGV4dHVyZS1jdWJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxrQkFBa0I7SUFPM0IsWUFDb0IsT0FHZixFQUNELE9BQThCO1FBSmQsWUFBTyxHQUFQLE9BQU8sQ0FHdEI7UUFSRyxXQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ1YsWUFBTyxHQUFHLENBQUMsQ0FBQTtRQUNYLHlCQUFvQixHQUFHLENBQUMsQ0FBQTtRQVM1QixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUNsQyxJQUFJLENBQUMsT0FBTztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQTtRQUVqRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDakUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ2pFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLDJCQUEyQixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNqRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDakUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ2pFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLDJCQUEyQixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FB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
|
|
@@ -1,31 +1,57 @@
|
|
|
1
|
-
import { TgdEvent } from "../event
|
|
2
|
-
import { TgdProgram
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { TgdEvent } from "../event";
|
|
2
|
+
import { TgdProgram } from "../program";
|
|
3
|
+
import { WebglImage, WebglTexParameter } from "../types";
|
|
4
|
+
import { WebglTextureInternalFormat, WebglTextureParameters } from "../webgl";
|
|
5
|
+
interface TgdTexture2DStorage {
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
levels: number;
|
|
9
|
+
flipY: boolean;
|
|
10
|
+
internalFormat: "R8" | "R16F" | "R32F" | "R8UI" | "RG8" | "RG16F" | "RG32F" | "RG8UI" | "RGB8" | "SRGB8" | "RGB565" | "R11F_G11F_B10F" | "RGB9_E5" | "RGB16F" | "RGB32F" | "RGB8UI" | "RGBA8" | "SRGB8_ALPHA8" | "RGB5_A1" | "RGBA4" | "RGBA16F" | "RGBA32F" | "RGBA8UI" | "COMPRESSED_R11_EAC" | "COMPRESSED_SIGNED_R11_EAC" | "COMPRESSED_RG11_EAC" | "COMPRESSED_SIGNED_RG11_EAC" | "COMPRESSED_RGB8_ETC2" | "COMPRESSED_RGBA8_ETC2_EAC" | "COMPRESSED_SRGB8_ETC2" | "COMPRESSED_SRGB8_ALPHA8_ETC2_EAC" | "COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2" | "COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2";
|
|
11
|
+
}
|
|
12
|
+
export declare class TgdTexture2D {
|
|
6
13
|
readonly name: string;
|
|
7
|
-
readonly
|
|
8
|
-
readonly
|
|
9
|
-
private readonly
|
|
14
|
+
readonly gl: WebGL2RenderingContext;
|
|
15
|
+
readonly eventChange: TgdEvent<TgdTexture2D>;
|
|
16
|
+
private readonly _texture;
|
|
10
17
|
private _width;
|
|
11
18
|
private _height;
|
|
12
|
-
private
|
|
19
|
+
private readonly storage;
|
|
13
20
|
private static counter;
|
|
14
|
-
constructor(context:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
getParameter(param: WebglTexParameter): number | boolean | null;
|
|
18
|
-
makePalette(colors: string[], colums?: number): void;
|
|
19
|
-
fillHorizontalGradient(size: number, ...colors: string[]): void;
|
|
20
|
-
fillverticalGradient(size: number, ...colors: string[]): void;
|
|
21
|
+
constructor(context: {
|
|
22
|
+
gl: WebGL2RenderingContext;
|
|
23
|
+
}, storage?: Partial<TgdTexture2DStorage>);
|
|
21
24
|
delete(): void;
|
|
22
|
-
get image(): WebglImage | null;
|
|
23
25
|
get width(): number;
|
|
24
26
|
get height(): number;
|
|
27
|
+
resize(width: number, height: number): void;
|
|
28
|
+
get glTexture(): WebGLTexture;
|
|
25
29
|
bind(): void;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
loadBitmap(bmp: WebglImage | null | Promise<WebglImage | null>, options?: {
|
|
31
|
+
level?: number;
|
|
32
|
+
}): this;
|
|
33
|
+
loadData(data: Uint8Array | Uint8ClampedArray, options: {
|
|
34
|
+
width: number;
|
|
35
|
+
height: number;
|
|
36
|
+
internalFormat: WebglTextureInternalFormat;
|
|
37
|
+
format: "RED" | "RG" | "RGB" | "RGBA" | "RED_INTEGER" | "RG_INTEGER" | "RGB_INTEGER" | "RGBA_INTEGER";
|
|
38
|
+
level?: number;
|
|
39
|
+
offset?: number;
|
|
40
|
+
}): this;
|
|
41
|
+
/**
|
|
42
|
+
*
|
|
43
|
+
* @param unit Unit to link the texture to
|
|
44
|
+
* @param program The program that owns the uniform to update
|
|
45
|
+
* @param uniformName The uniform that hold the texture
|
|
46
|
+
*/
|
|
47
|
+
activate(unit: number, program?: TgdProgram, uniformName?: string): this;
|
|
48
|
+
generateMipmap(): this;
|
|
49
|
+
setParams(parameters: WebglTextureParameters): this;
|
|
50
|
+
set textureBaseLevel(value: number);
|
|
51
|
+
get textureBaseLevel(): number;
|
|
52
|
+
set textureMaxLevel(value: number);
|
|
53
|
+
get textureMaxLevel(): number;
|
|
54
|
+
getParameter(parameter: WebglTexParameter): number | boolean | null;
|
|
30
55
|
}
|
|
56
|
+
export {};
|
|
31
57
|
//# sourceMappingURL=texture2d.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texture2d.d.ts","sourceRoot":"","sources":["../../src/texture/texture2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"texture2d.d.ts","sourceRoot":"","sources":["../../src/texture/texture2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAgB,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,EACH,0BAA0B,EAC1B,sBAAsB,EAEzB,MAAM,YAAY,CAAA;AAEnB,UAAU,mBAAmB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EACR,IAAI,GACJ,MAAM,GACN,MAAM,GACN,MAAM,GACN,KAAK,GACL,OAAO,GACP,OAAO,GACP,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,GACR,gBAAgB,GAChB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,cAAc,GACd,SAAS,GACT,OAAO,GACP,SAAS,GACT,SAAS,GACT,SAAS,GACT,oBAAoB,GACpB,2BAA2B,GAC3B,qBAAqB,GACrB,4BAA4B,GAC5B,sBAAsB,GACtB,2BAA2B,GAC3B,uBAAuB,GACvB,kCAAkC,GAClC,0CAA0C,GAC1C,2CAA2C,CAAA;CACpD;AAED,qBAAa,YAAY;IACrB,SAAgB,IAAI,EAAE,MAAM,CAAA;IAC5B,SAAgB,EAAE,EAAE,sBAAsB,CAAA;IAC1C,SAAgB,WAAW,yBAA+B;IAE1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAI;gBAGtB,OAAO,EAAE;QAAE,EAAE,EAAE,sBAAsB,CAAA;KAAE,EACvC,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAiC1C,MAAM;IAIN,IAAI,KAAK,WAER;IAED,IAAI,MAAM,WAET;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAyBpC,IAAI,SAAS,IAAI,YAAY,CAI5B;IAED,IAAI;IAIJ,UAAU,CACN,GAAG,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,EACnD,OAAO,GAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAA;KACZ,GACP,IAAI;IA2BP,QAAQ,CACJ,IAAI,EAAE,UAAU,GAAG,iBAAiB,EACpC,OAAO,EAAE;QACL,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;QACd,cAAc,EAAE,0BAA0B,CAAA;QAC1C,MAAM,EACA,KAAK,GACL,IAAI,GACJ,KAAK,GACL,MAAM,GACN,aAAa,GACb,YAAY,GACZ,aAAa,GACb,cAAc,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;KAClB;IA4BL;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM;IAUjE,cAAc;IAOd,SAAS,CAAC,UAAU,EAAE,sBAAsB;IAM5C,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAIjC;IAED,IAAI,gBAAgB,IAAI,MAAM,CAO7B;IAED,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,EAIhC;IAED,IAAI,eAAe,IAAI,MAAM,CAI5B;IAED,YAAY,CAAC,SAAS,EAAE,iBAAiB,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI;CAStE"}
|