@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
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WebglDepthFunction } from "..";
|
|
2
2
|
import { TgdPainter } from "./painter";
|
|
3
3
|
export type TgdPainterDepthOptions = {
|
|
4
4
|
enabled: boolean;
|
|
5
|
-
func:
|
|
5
|
+
func: WebglDepthFunction;
|
|
6
6
|
mask: boolean;
|
|
7
7
|
rangeMin: number;
|
|
8
8
|
rangeMax: number;
|
|
9
9
|
};
|
|
10
10
|
export declare class TgdPainterDepth extends TgdPainter {
|
|
11
|
-
private readonly context;
|
|
12
11
|
enabled: boolean;
|
|
13
|
-
func:
|
|
12
|
+
func: WebglDepthFunction;
|
|
14
13
|
mask: boolean;
|
|
15
14
|
rangeMin: number;
|
|
16
15
|
rangeMax: number;
|
|
17
|
-
|
|
16
|
+
private readonly gl;
|
|
17
|
+
constructor({ gl }: {
|
|
18
|
+
gl: WebGL2RenderingContext;
|
|
19
|
+
}, { enabled, func: function_, mask, rangeMin, rangeMax, }?: Partial<TgdPainterDepthOptions>);
|
|
18
20
|
delete(): void;
|
|
19
21
|
paint(): void;
|
|
20
22
|
update(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depth.d.ts","sourceRoot":"","sources":["../../src/painter/depth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"depth.d.ts","sourceRoot":"","sources":["../../src/painter/depth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,MAAM,MAAM,sBAAsB,GAAG;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,kBAAkB,CAAA;IACxB,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,qBAAa,eAAgB,SAAQ,UAAU;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,kBAAkB,CAAA;IACxB,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAEvB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAwB;gBAGvC,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,sBAAsB,CAAA;KAAE,EACtC,EACI,OAAc,EACd,IAAI,EAAE,SAAkB,EACxB,IAAW,EACX,QAAY,EACZ,QAAY,GACf,GAAE,OAAO,CAAC,sBAAsB,CAAM;IAW3C,MAAM,IAAI,IAAI;IAEd,KAAK,IAAI,IAAI;IAeb,MAAM,IAAI,IAAI;CACjB"}
|
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
import { TgdPainter } from "./painter.js";
|
|
2
2
|
export class TgdPainterDepth extends TgdPainter {
|
|
3
|
-
|
|
4
|
-
enabled;
|
|
5
|
-
func;
|
|
6
|
-
mask;
|
|
7
|
-
rangeMin;
|
|
8
|
-
rangeMax;
|
|
9
|
-
constructor(context, { enabled = true, func = "LESS", mask = true, rangeMin = 0, rangeMax = 1, } = {}) {
|
|
3
|
+
constructor({ gl }, { enabled = true, func: function_ = "LESS", mask = true, rangeMin = 0, rangeMax = 1, } = {}) {
|
|
10
4
|
super();
|
|
11
|
-
this.
|
|
5
|
+
this.gl = gl;
|
|
12
6
|
this.enabled = enabled;
|
|
13
|
-
this.func =
|
|
7
|
+
this.func = function_;
|
|
14
8
|
this.mask = mask;
|
|
15
9
|
this.rangeMin = rangeMin;
|
|
16
10
|
this.rangeMax = rangeMax;
|
|
17
11
|
}
|
|
18
12
|
delete() { }
|
|
19
13
|
paint() {
|
|
20
|
-
const { gl } = this
|
|
14
|
+
const { gl } = this;
|
|
21
15
|
const { enabled } = this;
|
|
22
16
|
if (!enabled) {
|
|
23
17
|
gl.disable(gl.DEPTH_TEST);
|
|
@@ -31,4 +25,4 @@ export class TgdPainterDepth extends TgdPainter {
|
|
|
31
25
|
}
|
|
32
26
|
update() { }
|
|
33
27
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFpbnRlci9kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBVXRDLE1BQU0sT0FBTyxlQUFnQixTQUFRLFVBQVU7SUFTM0MsWUFDSSxFQUFFLEVBQUUsRUFBa0MsRUFDdEMsRUFDSSxPQUFPLEdBQUcsSUFBSSxFQUNkLElBQUksRUFBRSxTQUFTLEdBQUcsTUFBTSxFQUN4QixJQUFJLEdBQUcsSUFBSSxFQUNYLFFBQVEsR0FBRyxDQUFDLEVBQ1osUUFBUSxHQUFHLENBQUMsTUFDcUIsRUFBRTtRQUV2QyxLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFBO1FBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUE7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7SUFDNUIsQ0FBQztJQUVELE1BQU0sS0FBVSxDQUFDO0lBRWpCLEtBQUs7UUFDRCxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ25CLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDeEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1gsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDekIsT0FBTTtRQUNWLENBQUM7UUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQy9DLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3hCLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDdEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNsQixFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsTUFBTSxLQUFVLENBQUM7Q0FDcEIifQ==
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { TgdTexture2D } from "../../types";
|
|
2
1
|
import { TgdContext } from "../../context";
|
|
3
2
|
import { TgdPainter } from "../painter";
|
|
4
3
|
import { TgdFilter } from "../../filter";
|
|
4
|
+
import { TgdTexture2D } from "../../texture";
|
|
5
5
|
export interface TgdPainterFilterOptions {
|
|
6
6
|
filters: TgdFilter[];
|
|
7
|
-
texture
|
|
7
|
+
texture?: TgdTexture2D;
|
|
8
8
|
z?: number;
|
|
9
9
|
name?: string;
|
|
10
10
|
flipY?: boolean;
|
|
11
11
|
}
|
|
12
12
|
export declare class TgdPainterFilter extends TgdPainter {
|
|
13
13
|
private readonly context;
|
|
14
|
-
texture
|
|
14
|
+
texture?: TgdTexture2D;
|
|
15
15
|
z: number;
|
|
16
16
|
private readonly program;
|
|
17
17
|
private readonly filter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/painter/filter/filter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/painter/filter/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAIjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3C,MAAM,WAAW,uBAAuB;IACpC,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,qBAAa,gBAAiB,SAAQ,UAAU;IAgBxC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAfrB,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,CAAC,SAAI;IAEZ,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAK;gBAGN,OAAO,EAAE,UAAU,EACpC,OAAO,EAAE,uBAAuB;IAiEpC,MAAM,IAAI,IAAI;IAWd,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAqDzB,OAAO,CAAC,WAAW;CAyCtB"}
|
|
@@ -1,29 +1,23 @@
|
|
|
1
1
|
import { TgdPainter } from "./../painter.js";
|
|
2
2
|
import { TgdDataset } from "./../../dataset/dataset.js";
|
|
3
|
+
import { TgdVertexArray } from "./../../vao/index.js";
|
|
3
4
|
import { TgdShaderVertex } from "./../../shader/vertex.js";
|
|
4
5
|
import { TgdShaderFragment } from "./../../shader/fragment.js";
|
|
6
|
+
import { TgdProgram } from "./../../program/index.js";
|
|
5
7
|
export class TgdPainterFilter extends TgdPainter {
|
|
6
|
-
context;
|
|
7
|
-
texture;
|
|
8
|
-
z = 0;
|
|
9
|
-
program;
|
|
10
|
-
filter;
|
|
11
|
-
vao;
|
|
12
|
-
programs;
|
|
13
|
-
filters;
|
|
14
|
-
vaos;
|
|
15
|
-
framebuffer;
|
|
16
|
-
textures = null;
|
|
17
|
-
texturesWith = -1;
|
|
18
|
-
texturesHeight = -1;
|
|
19
8
|
constructor(context, options) {
|
|
9
|
+
var _a, _b;
|
|
20
10
|
super();
|
|
21
11
|
this.context = context;
|
|
22
|
-
this.z =
|
|
12
|
+
this.z = 0;
|
|
13
|
+
this.textures = null;
|
|
14
|
+
this.texturesWith = -1;
|
|
15
|
+
this.texturesHeight = -1;
|
|
16
|
+
this.z = (_a = options.z) !== null && _a !== void 0 ? _a : 0.999999;
|
|
23
17
|
this.texture = options.texture;
|
|
24
18
|
const filters = options.filters;
|
|
25
|
-
if (filters.length
|
|
26
|
-
throw Error(`[TgdPainterFilter] filters is expected to have at least one element!`);
|
|
19
|
+
if (filters.length === 0) {
|
|
20
|
+
throw new Error(`[TgdPainterFilter] filters is expected to have at least one element!`);
|
|
27
21
|
}
|
|
28
22
|
const programs = options.filters.map(filter => {
|
|
29
23
|
const vert = new TgdShaderVertex({
|
|
@@ -45,19 +39,14 @@ export class TgdPainterFilter extends TgdPainter {
|
|
|
45
39
|
],
|
|
46
40
|
}).code;
|
|
47
41
|
const frag = new TgdShaderFragment({
|
|
48
|
-
uniforms: {
|
|
49
|
-
uniWidth: "float",
|
|
50
|
-
uniHeight: "float",
|
|
51
|
-
uniTexture: "sampler2D",
|
|
52
|
-
...filter.uniforms,
|
|
53
|
-
},
|
|
42
|
+
uniforms: Object.assign({ uniWidth: "float", uniHeight: "float", uniTexture: "sampler2D" }, filter.uniforms),
|
|
54
43
|
varying: {
|
|
55
44
|
varUV: "vec2",
|
|
56
45
|
},
|
|
57
46
|
mainCode: filter.fragmentShaderCode,
|
|
58
47
|
functions: filter.extraFunctions,
|
|
59
48
|
}).code;
|
|
60
|
-
return context.
|
|
49
|
+
return new TgdProgram(context.gl, { vert, frag });
|
|
61
50
|
});
|
|
62
51
|
const vaos = programs.map(program => createVAO(context, program, options.flipY ? -1 : +1));
|
|
63
52
|
this.program = programs.pop();
|
|
@@ -70,54 +59,63 @@ export class TgdPainterFilter extends TgdPainter {
|
|
|
70
59
|
this.vao = count % 2 === 0 ? vao : createVAO(context, this.program, -1);
|
|
71
60
|
const framebuffer = context.gl.createFramebuffer();
|
|
72
61
|
if (!framebuffer)
|
|
73
|
-
throw Error("Unable to create a WebGL Framebuffer!");
|
|
62
|
+
throw new Error("Unable to create a WebGL Framebuffer!");
|
|
74
63
|
this.framebuffer = framebuffer;
|
|
75
|
-
this.name = options.name
|
|
64
|
+
this.name = (_b = options.name) !== null && _b !== void 0 ? _b : `Filter/${this.name}`;
|
|
76
65
|
}
|
|
77
66
|
delete() {
|
|
78
67
|
const { context, textures, vaos, vao, framebuffer } = this;
|
|
79
68
|
const { gl } = context;
|
|
80
|
-
|
|
69
|
+
for (const vao of vaos)
|
|
70
|
+
vao.delete();
|
|
81
71
|
vao.delete();
|
|
82
72
|
gl.deleteFramebuffer(framebuffer);
|
|
83
73
|
if (textures) {
|
|
84
|
-
|
|
74
|
+
for (const tex of textures)
|
|
75
|
+
gl.deleteTexture(tex);
|
|
85
76
|
}
|
|
86
77
|
}
|
|
87
78
|
paint(time) {
|
|
88
79
|
const { vaos, texture, z, context } = this;
|
|
89
80
|
const { gl } = this.program;
|
|
90
|
-
let
|
|
81
|
+
let inputTexture = texture === null || texture === void 0 ? void 0 : texture.glTexture;
|
|
82
|
+
if (!inputTexture) {
|
|
83
|
+
console.warn("[TgdPainterFilter] Input texture is undefined!");
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
91
86
|
if (vaos.length > 0) {
|
|
92
87
|
const { programs, filters, framebuffer } = this;
|
|
93
88
|
const currentFramebuffer = gl.getParameter(gl.FRAMEBUFFER_BINDING);
|
|
94
89
|
const textures = this.getTextures(gl);
|
|
95
90
|
let texIndex = 0;
|
|
96
|
-
let
|
|
97
|
-
for (
|
|
91
|
+
let outputTexture = textures[texIndex];
|
|
92
|
+
for (const [index, vao] of vaos.entries()) {
|
|
98
93
|
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
|
|
99
|
-
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D,
|
|
100
|
-
paintOneFilter(time,
|
|
94
|
+
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, outputTexture, 0);
|
|
95
|
+
paintOneFilter(time, vao, programs[index], filters[index], inputTexture, z, context);
|
|
101
96
|
texIndex = 1 - texIndex;
|
|
102
|
-
|
|
103
|
-
|
|
97
|
+
inputTexture = outputTexture;
|
|
98
|
+
outputTexture = textures[texIndex];
|
|
104
99
|
}
|
|
105
100
|
gl.bindFramebuffer(gl.FRAMEBUFFER, currentFramebuffer);
|
|
106
101
|
}
|
|
107
|
-
paintOneFilter(time, this.vao, this.program, this.filter,
|
|
102
|
+
paintOneFilter(time, this.vao, this.program, this.filter, inputTexture, z, context);
|
|
108
103
|
gl.bindVertexArray(null);
|
|
109
104
|
}
|
|
110
105
|
getTextures(gl) {
|
|
111
|
-
|
|
106
|
+
var _a;
|
|
107
|
+
const { width, height } = (_a = this.texture) !== null && _a !== void 0 ? _a : { width: 64, height: 64 };
|
|
112
108
|
if (this.textures &&
|
|
113
|
-
this.texturesWith ===
|
|
114
|
-
this.texturesHeight ===
|
|
109
|
+
this.texturesWith === width &&
|
|
110
|
+
this.texturesHeight === height) {
|
|
115
111
|
return [...this.textures];
|
|
116
112
|
}
|
|
117
|
-
if (this.textures)
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
113
|
+
if (this.textures) {
|
|
114
|
+
for (const tex of this.textures)
|
|
115
|
+
gl.deleteTexture(tex);
|
|
116
|
+
}
|
|
117
|
+
this.texturesWith = width;
|
|
118
|
+
this.texturesHeight = height;
|
|
121
119
|
this.textures = [0, 1].map(() => {
|
|
122
120
|
const texture = gl.createTexture();
|
|
123
121
|
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
@@ -125,7 +123,7 @@ export class TgdPainterFilter extends TgdPainter {
|
|
|
125
123
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
|
126
124
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
|
|
127
125
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
|
|
128
|
-
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA,
|
|
126
|
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
|
|
129
127
|
return texture;
|
|
130
128
|
});
|
|
131
129
|
return this.textures;
|
|
@@ -155,9 +153,9 @@ function createVAO(context, program, flipY = +1) {
|
|
|
155
153
|
+1, -1 * flipY,
|
|
156
154
|
]));
|
|
157
155
|
dataset.set("attUV", new Float32Array([0, 0, 1, 0, 0, 1, 1, 1]));
|
|
158
|
-
const vao = context.
|
|
156
|
+
const vao = new TgdVertexArray(context.gl, program, [dataset]);
|
|
159
157
|
if (!vao)
|
|
160
|
-
throw Error("Unable to create WebGL VAO!");
|
|
158
|
+
throw new Error("Unable to create WebGL VAO!");
|
|
161
159
|
return vao;
|
|
162
160
|
}
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhaW50ZXIvZmlsdGVyL2ZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFHekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXhELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFVekMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFVBQVU7SUFlNUMsWUFDcUIsT0FBbUIsRUFDcEMsT0FBZ0M7O1FBRWhDLEtBQUssRUFBRSxDQUFBO1FBSFUsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQWRqQyxNQUFDLEdBQUcsQ0FBQyxDQUFBO1FBU0osYUFBUSxHQUF3QyxJQUFJLENBQUE7UUFDcEQsaUJBQVksR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNqQixtQkFBYyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBT3ZCLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBQSxPQUFPLENBQUMsQ0FBQyxtQ0FBSSxRQUFRLENBQUE7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFBO1FBQzlCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUE7UUFDL0IsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQ1gsc0VBQXNFLENBQ3pFLENBQUE7UUFDTCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENB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
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { TgdPainterFunction } from "../types/painter";
|
|
2
2
|
import { TgdContext } from "../context";
|
|
3
|
-
import { TgdTexture2D, TgdTexture2DOptions } from "../types";
|
|
4
3
|
import { TgdPainterGroup } from "./group";
|
|
5
|
-
|
|
4
|
+
import { TgdPainter } from "./painter";
|
|
5
|
+
import { TgdTexture2D } from "../texture";
|
|
6
|
+
export interface TgdPainterFramebufferOptions {
|
|
6
7
|
/**
|
|
7
8
|
* Do we need a depth buffer?
|
|
8
9
|
* Default to `true`.
|
|
9
10
|
*/
|
|
10
11
|
depthBuffer: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Do we need a stencil buffer?
|
|
14
|
+
* Default to `true`.
|
|
15
|
+
*/
|
|
16
|
+
stencilBuffer: boolean;
|
|
11
17
|
/**
|
|
12
18
|
* If defined, the framebuffer will automatically match the
|
|
13
19
|
* current viewport size multiplied by `viewportMatchingScale`.
|
|
@@ -19,6 +25,11 @@ export interface TgdPainterFramebufferOptions extends TgdTexture2DOptions {
|
|
|
19
25
|
* Default to `1`.
|
|
20
26
|
*/
|
|
21
27
|
viewportMatchingScale?: number;
|
|
28
|
+
textureColor0?: TgdTexture2D;
|
|
29
|
+
textureColor1?: TgdTexture2D;
|
|
30
|
+
textureColor2?: TgdTexture2D;
|
|
31
|
+
textureColor3?: TgdTexture2D;
|
|
32
|
+
textureDepth?: TgdTexture2D;
|
|
22
33
|
/**
|
|
23
34
|
* Function to execute before painting.
|
|
24
35
|
*/
|
|
@@ -27,22 +38,32 @@ export interface TgdPainterFramebufferOptions extends TgdTexture2DOptions {
|
|
|
27
38
|
* Function to execute after painting.
|
|
28
39
|
*/
|
|
29
40
|
onExit?: TgdPainterFunction;
|
|
41
|
+
children?: TgdPainter[];
|
|
30
42
|
}
|
|
31
43
|
export declare class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
32
44
|
private readonly context;
|
|
33
45
|
private readonly options;
|
|
46
|
+
readonly textureColor0: TgdTexture2D | undefined;
|
|
47
|
+
readonly textureColor1: TgdTexture2D | undefined;
|
|
48
|
+
readonly textureColor2: TgdTexture2D | undefined;
|
|
49
|
+
readonly textureColor3: TgdTexture2D | undefined;
|
|
50
|
+
readonly textureDepth: TgdTexture2D | undefined;
|
|
34
51
|
private dirty;
|
|
35
52
|
private _width;
|
|
36
53
|
private _height;
|
|
37
|
-
private _texture;
|
|
38
54
|
private _framebuffer;
|
|
39
55
|
private _depthBuffer;
|
|
56
|
+
private _stencilBuffer;
|
|
57
|
+
private readonly drawBuffers;
|
|
40
58
|
constructor(context: TgdContext, options?: Partial<TgdPainterFramebufferOptions>);
|
|
41
|
-
get texture(): TgdTexture2D;
|
|
42
59
|
get width(): number;
|
|
43
60
|
set width(v: number);
|
|
44
61
|
get height(): number;
|
|
45
62
|
set height(v: number);
|
|
63
|
+
private updateTextureForColor;
|
|
64
|
+
private createTextureForDepth;
|
|
65
|
+
private createDepthBuffer;
|
|
66
|
+
private createStencilBuffer;
|
|
46
67
|
private createFramebufferIfNeeded;
|
|
47
68
|
paint(time: number, delay: number): void;
|
|
48
69
|
delete(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framebuffer.d.ts","sourceRoot":"","sources":["../../src/painter/framebuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"framebuffer.d.ts","sourceRoot":"","sources":["../../src/painter/framebuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,WAAW,4BAA4B;IACzC;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAA;IACtB;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAA;CAC1B;AAED,qBAAa,qBAAsB,SAAQ,eAAe;IAgBlD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAhB5B,SAAgB,aAAa,EAAE,YAAY,GAAG,SAAS,CAAA;IACvD,SAAgB,aAAa,EAAE,YAAY,GAAG,SAAS,CAAA;IACvD,SAAgB,aAAa,EAAE,YAAY,GAAG,SAAS,CAAA;IACvD,SAAgB,aAAa,EAAE,YAAY,GAAG,SAAS,CAAA;IACvD,SAAgB,YAAY,EAAE,YAAY,GAAG,SAAS,CAAA;IAEtD,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAI;IACnB,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;gBAGjB,OAAO,EAAE,UAAU,EACnB,OAAO,GAAE,OAAO,CAAC,4BAA4B,CAAM;IAmBxE,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAKlB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAKnB;IAED,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,yBAAyB;IAwBjC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAaxC,MAAM;CAgBT"}
|
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
import { TgdPainterGroup } from "./group.js";
|
|
2
|
+
import { webglCreateFramebuffer, webglLookup } from "./../utils/index.js";
|
|
2
3
|
export class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
3
|
-
context;
|
|
4
|
-
options;
|
|
5
|
-
dirty = true;
|
|
6
|
-
_width = 0;
|
|
7
|
-
_height = 0;
|
|
8
|
-
_texture = null;
|
|
9
|
-
_framebuffer = null;
|
|
10
|
-
_depthBuffer = null;
|
|
11
4
|
constructor(context, options = {}) {
|
|
12
|
-
super();
|
|
5
|
+
super(options.children);
|
|
13
6
|
this.context = context;
|
|
14
7
|
this.options = options;
|
|
15
|
-
this.
|
|
16
|
-
this.
|
|
8
|
+
this.dirty = true;
|
|
9
|
+
this._width = 0;
|
|
10
|
+
this._height = 0;
|
|
11
|
+
this._framebuffer = null;
|
|
12
|
+
this._depthBuffer = null;
|
|
13
|
+
this._stencilBuffer = null;
|
|
14
|
+
this.textureColor0 = options.textureColor0;
|
|
15
|
+
this.textureColor1 = options.textureColor1;
|
|
16
|
+
this.textureColor2 = options.textureColor2;
|
|
17
|
+
this.textureColor3 = options.textureColor3;
|
|
18
|
+
this.textureDepth = options.textureDepth;
|
|
17
19
|
this.onEnter = options.onEnter;
|
|
18
20
|
this.onExit = options.onExit;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
this.
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
const { gl } = this.context;
|
|
22
|
+
this.drawBuffers = [
|
|
23
|
+
this.textureColor0 ? gl.COLOR_ATTACHMENT0 : gl.NONE,
|
|
24
|
+
this.textureColor1 ? gl.COLOR_ATTACHMENT1 : gl.NONE,
|
|
25
|
+
this.textureColor2 ? gl.COLOR_ATTACHMENT2 : gl.NONE,
|
|
26
|
+
this.textureColor3 ? gl.COLOR_ATTACHMENT3 : gl.NONE,
|
|
27
|
+
];
|
|
25
28
|
}
|
|
26
29
|
get width() {
|
|
27
30
|
return this._width;
|
|
@@ -41,39 +44,68 @@ export class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
|
41
44
|
this._height = v;
|
|
42
45
|
this.dirty = true;
|
|
43
46
|
}
|
|
44
|
-
|
|
45
|
-
if (!
|
|
47
|
+
updateTextureForColor(texture, attachment) {
|
|
48
|
+
if (!texture)
|
|
46
49
|
return;
|
|
47
50
|
const { context, width, height } = this;
|
|
48
51
|
const { gl } = context;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
gl.bindFramebuffer(gl.FRAMEBUFFER, this._framebuffer);
|
|
63
|
-
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this._texture.glTexture, 0);
|
|
52
|
+
texture.resize(width, height);
|
|
53
|
+
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0 + attachment, gl.TEXTURE_2D, texture, 0);
|
|
54
|
+
}
|
|
55
|
+
createTextureForDepth() {
|
|
56
|
+
const texture = this.textureDepth;
|
|
57
|
+
if (!texture)
|
|
58
|
+
return;
|
|
59
|
+
const { context, width, height } = this;
|
|
60
|
+
const { gl } = context;
|
|
61
|
+
texture.resize(width, height);
|
|
62
|
+
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_2D, texture, 0);
|
|
63
|
+
}
|
|
64
|
+
createDepthBuffer(gl) {
|
|
64
65
|
if (this.options.depthBuffer !== false) {
|
|
66
|
+
const { width, height } = this;
|
|
65
67
|
// Create a Depth Buffer, because the default
|
|
66
68
|
// framebuffer has none.
|
|
67
69
|
const depthBuffer = gl.createRenderbuffer();
|
|
68
70
|
if (!depthBuffer)
|
|
69
|
-
throw Error("Unable to create WebGLRenderBuffer!");
|
|
71
|
+
throw new Error("Unable to create WebGLRenderBuffer for depth!");
|
|
70
72
|
this._depthBuffer = depthBuffer;
|
|
71
73
|
gl.bindRenderbuffer(gl.RENDERBUFFER, depthBuffer);
|
|
72
74
|
gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, width, height);
|
|
73
75
|
gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, depthBuffer);
|
|
74
76
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
}
|
|
78
|
+
createStencilBuffer(gl) {
|
|
79
|
+
if (this.options.stencilBuffer !== false) {
|
|
80
|
+
const { width, height } = this;
|
|
81
|
+
const stencilBuffer = gl.createRenderbuffer();
|
|
82
|
+
if (!stencilBuffer)
|
|
83
|
+
throw new Error("Unable to create WebGLRenderBuffer for stencil!");
|
|
84
|
+
this._stencilBuffer = stencilBuffer;
|
|
85
|
+
gl.bindRenderbuffer(gl.RENDERBUFFER, stencilBuffer);
|
|
86
|
+
gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, width, height);
|
|
87
|
+
gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, stencilBuffer);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
createFramebufferIfNeeded() {
|
|
91
|
+
if (!this.dirty)
|
|
92
|
+
return;
|
|
93
|
+
const { context } = this;
|
|
94
|
+
const { gl } = context;
|
|
95
|
+
this.delete();
|
|
96
|
+
this._framebuffer = webglCreateFramebuffer(gl);
|
|
97
|
+
gl.bindFramebuffer(gl.FRAMEBUFFER, this._framebuffer);
|
|
98
|
+
this.updateTextureForColor(this.textureColor0, 0);
|
|
99
|
+
this.updateTextureForColor(this.textureColor1, 1);
|
|
100
|
+
this.updateTextureForColor(this.textureColor2, 2);
|
|
101
|
+
this.updateTextureForColor(this.textureColor3, 3);
|
|
102
|
+
this.createTextureForDepth();
|
|
103
|
+
this.createDepthBuffer(gl);
|
|
104
|
+
this.createStencilBuffer(gl);
|
|
105
|
+
const status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
|
|
106
|
+
if (status !== gl.FRAMEBUFFER_COMPLETE) {
|
|
107
|
+
console.error(`Your Framebuffer is incomplete: ${webglLookup(status)}!`);
|
|
108
|
+
}
|
|
77
109
|
this.dirty = false;
|
|
78
110
|
}
|
|
79
111
|
paint(time, delay) {
|
|
@@ -84,16 +116,13 @@ export class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
|
84
116
|
this.height = Math.round(context.height * viewportMatchingScale);
|
|
85
117
|
this.createFramebufferIfNeeded();
|
|
86
118
|
gl.bindFramebuffer(gl.FRAMEBUFFER, this._framebuffer);
|
|
119
|
+
gl.drawBuffers(this.drawBuffers);
|
|
87
120
|
super.paint(time, delay);
|
|
88
121
|
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
|
|
89
122
|
}
|
|
90
123
|
delete() {
|
|
91
|
-
const { context,
|
|
124
|
+
const { context, _framebuffer, _depthBuffer, _stencilBuffer } = this;
|
|
92
125
|
const { gl } = context;
|
|
93
|
-
if (_texture) {
|
|
94
|
-
gl.deleteTexture(_texture.glTexture);
|
|
95
|
-
this._texture = null;
|
|
96
|
-
}
|
|
97
126
|
if (_framebuffer) {
|
|
98
127
|
gl.deleteFramebuffer(_framebuffer);
|
|
99
128
|
this._framebuffer = null;
|
|
@@ -102,6 +131,10 @@ export class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
|
102
131
|
gl.deleteRenderbuffer(_depthBuffer);
|
|
103
132
|
this._depthBuffer = null;
|
|
104
133
|
}
|
|
134
|
+
if (_stencilBuffer) {
|
|
135
|
+
gl.deleteRenderbuffer(_stencilBuffer);
|
|
136
|
+
this._stencilBuffer = null;
|
|
137
|
+
}
|
|
105
138
|
}
|
|
106
139
|
}
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWVidWZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFpbnRlci9mcmFtZWJ1ZmZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUE7QUEwQ2hFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFlO0lBZXRELFlBQ3FCLE9BQW1CLEVBQ25CLFVBQWlELEVBQUU7UUFFcEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUhOLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBNEM7UUFWaEUsVUFBSyxHQUFHLElBQUksQ0FBQTtRQUNaLFdBQU0sR0FBRyxDQUFDLENBQUE7UUFDVixZQUFPLEdBQUcsQ0FBQyxDQUFBO1FBQ1gsaUJBQVksR0FBNEIsSUFBSSxDQUFBO1FBQzVDLGlCQUFZLEdBQTZCLElBQUksQ0FBQTtRQUM3QyxtQkFBYyxHQUE2QixJQUFJLENBQUE7UUFRbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFBO1FBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQTtRQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUE7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFBO1FBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQTtRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFBO1FBQzVCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMs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
|