@bloopjs/toodle 0.0.100
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/LICENSE +21 -0
- package/README.md +44 -0
- package/dist/Toodle.d.ts +304 -0
- package/dist/Toodle.d.ts.map +1 -0
- package/dist/colors/mod.d.ts +872 -0
- package/dist/colors/mod.d.ts.map +1 -0
- package/dist/coreTypes/Color.d.ts +7 -0
- package/dist/coreTypes/Color.d.ts.map +1 -0
- package/dist/coreTypes/Point.d.ts +8 -0
- package/dist/coreTypes/Point.d.ts.map +1 -0
- package/dist/coreTypes/Size.d.ts +5 -0
- package/dist/coreTypes/Size.d.ts.map +1 -0
- package/dist/coreTypes/Transform.d.ts +16 -0
- package/dist/coreTypes/Transform.d.ts.map +1 -0
- package/dist/coreTypes/Vec2.d.ts +8 -0
- package/dist/coreTypes/Vec2.d.ts.map +1 -0
- package/dist/coreTypes/mod.d.ts +6 -0
- package/dist/coreTypes/mod.d.ts.map +1 -0
- package/dist/docs/snippets/add-remove-children.d.ts +1 -0
- package/dist/docs/snippets/basic-quad.d.ts +1 -0
- package/dist/docs/snippets/filter-linear.d.ts +1 -0
- package/dist/docs/snippets/filter-nearest.d.ts +1 -0
- package/dist/docs/snippets/flipxy.d.ts +1 -0
- package/dist/docs/snippets/hello-text.d.ts +1 -0
- package/dist/docs/snippets/jumbo-textures.d.ts +1 -0
- package/dist/docs/snippets/layer.d.ts +1 -0
- package/dist/docs/snippets/layout-edges.d.ts +1 -0
- package/dist/docs/snippets/layout-screen-and-world-space.d.ts +1 -0
- package/dist/docs/snippets/postprocess.d.ts +1 -0
- package/dist/docs/snippets/quad-size-scale.d.ts +1 -0
- package/dist/docs/snippets/quickstart.d.ts +1 -0
- package/dist/docs/snippets/repeat-texture-loading.d.ts +1 -0
- package/dist/docs/snippets/screen-shaders.d.ts +1 -0
- package/dist/docs/snippets/shader-color-flash.d.ts +1 -0
- package/dist/docs/snippets/shader-default.d.ts +1 -0
- package/dist/docs/snippets/shader-fill.d.ts +1 -0
- package/dist/docs/snippets/shapes-line.d.ts +1 -0
- package/dist/docs/snippets/sprite-region.d.ts +1 -0
- package/dist/docs/snippets/text-alignment.d.ts +1 -0
- package/dist/docs/snippets/text-shrink-to-fit.d.ts +1 -0
- package/dist/docs/snippets/text-word-wrap.d.ts +1 -0
- package/dist/docs/snippets/texture-bundles-prebaked.d.ts +1 -0
- package/dist/docs/snippets/texture-bundles.d.ts +1 -0
- package/dist/docs/snippets/transforms.d.ts +1 -0
- package/dist/docs/snippets/transparent-cropping.d.ts +1 -0
- package/dist/examples/0-hello.d.ts +1 -0
- package/dist/examples/1-hello.d.ts +1 -0
- package/dist/examples/1-hello.d.ts.map +1 -0
- package/dist/examples/1-quad.d.ts +1 -0
- package/dist/examples/10-resize.d.ts +1 -0
- package/dist/examples/10-resize.d.ts.map +1 -0
- package/dist/examples/11-bundle-test.d.ts +1 -0
- package/dist/examples/11-bundle-test.d.ts.map +1 -0
- package/dist/examples/12-transparent-pixel-cropping.d.ts +1 -0
- package/dist/examples/12-transparent-pixel-cropping.d.ts.map +1 -0
- package/dist/examples/13-crop.d.ts +1 -0
- package/dist/examples/13-crop.d.ts.map +1 -0
- package/dist/examples/14-bundle-bench.d.ts +1 -0
- package/dist/examples/14-bundle-bench.d.ts.map +1 -0
- package/dist/examples/15-text-layer.d.ts +1 -0
- package/dist/examples/15-text-layer.d.ts.map +1 -0
- package/dist/examples/16-jumbo-texture.d.ts +1 -0
- package/dist/examples/16-jumbo-textures.d.ts +1 -0
- package/dist/examples/16-screen-shader.d.ts +1 -0
- package/dist/examples/16-screen-shader.d.ts.map +1 -0
- package/dist/examples/17-lighting.d.ts +1 -0
- package/dist/examples/17-lighting.d.ts.map +1 -0
- package/dist/examples/17-translations.d.ts +1 -0
- package/dist/examples/18-blur.d.ts +1 -0
- package/dist/examples/19-postprocess.d.ts +1 -0
- package/dist/examples/19-screenshader.d.ts +1 -0
- package/dist/examples/2-shapes.d.ts +1 -0
- package/dist/examples/2-shapes.d.ts.map +1 -0
- package/dist/examples/3-shader.d.ts +1 -0
- package/dist/examples/3-shader.d.ts.map +1 -0
- package/dist/examples/4-shader-bench.d.ts +1 -0
- package/dist/examples/4-shader-bench.d.ts.map +1 -0
- package/dist/examples/5-z.d.ts +1 -0
- package/dist/examples/5-z.d.ts.map +1 -0
- package/dist/examples/6-atlas.d.ts +1 -0
- package/dist/examples/6-atlas.d.ts.map +1 -0
- package/dist/examples/7-text.d.ts +1 -0
- package/dist/examples/7-text.d.ts.map +1 -0
- package/dist/examples/8-text-bench.d.ts +1 -0
- package/dist/examples/8-text-bench.d.ts.map +1 -0
- package/dist/examples/9-alignment.d.ts +1 -0
- package/dist/examples/9-alignment.d.ts.map +1 -0
- package/dist/examples/main.d.ts +1 -0
- package/dist/examples/main.d.ts.map +1 -0
- package/dist/examples/util.d.ts +82 -0
- package/dist/examples/util.d.ts.map +1 -0
- package/dist/limits.d.ts +23 -0
- package/dist/limits.d.ts.map +1 -0
- package/dist/math/angle.d.ts +13 -0
- package/dist/math/angle.d.ts.map +1 -0
- package/dist/math/matrix.d.ts +26 -0
- package/dist/math/matrix.d.ts.map +1 -0
- package/dist/math/mod.d.ts +3 -0
- package/dist/math/mod.d.ts.map +1 -0
- package/dist/mod.d.ts +17 -0
- package/dist/mod.d.ts.map +1 -0
- package/dist/mod.js +19665 -0
- package/dist/mod.js.map +41 -0
- package/dist/postprocess.d.ts +10 -0
- package/dist/postprocess.d.ts.map +1 -0
- package/dist/scene/Batcher.d.ts +20 -0
- package/dist/scene/Batcher.d.ts.map +1 -0
- package/dist/scene/Camera.d.ts +16 -0
- package/dist/scene/Camera.d.ts.map +1 -0
- package/dist/scene/JumboQuadNode.d.ts +29 -0
- package/dist/scene/JumboQuadNode.d.ts.map +1 -0
- package/dist/scene/QuadNode.d.ts +159 -0
- package/dist/scene/QuadNode.d.ts.map +1 -0
- package/dist/scene/RenderComponent.d.ts +11 -0
- package/dist/scene/RenderComponent.d.ts.map +1 -0
- package/dist/scene/SceneNode.d.ts +300 -0
- package/dist/scene/SceneNode.d.ts.map +1 -0
- package/dist/scene/mod.d.ts +5 -0
- package/dist/scene/mod.d.ts.map +1 -0
- package/dist/screen/mod.d.ts +2 -0
- package/dist/screen/mod.d.ts.map +1 -0
- package/dist/screen/resolution.d.ts +5 -0
- package/dist/screen/resolution.d.ts.map +1 -0
- package/dist/shaders/EngineUniform.d.ts +9 -0
- package/dist/shaders/EngineUniform.d.ts.map +1 -0
- package/dist/shaders/IShader.d.ts +15 -0
- package/dist/shaders/IShader.d.ts.map +1 -0
- package/dist/shaders/QuadShader.d.ts +18 -0
- package/dist/shaders/QuadShader.d.ts.map +1 -0
- package/dist/shaders/ShaderDescriptor.d.ts +7 -0
- package/dist/shaders/ShaderDescriptor.d.ts.map +1 -0
- package/dist/shaders/mod.d.ts +6 -0
- package/dist/shaders/mod.d.ts.map +1 -0
- package/dist/shaders/parser.d.ts +8 -0
- package/dist/shaders/parser.d.ts.map +1 -0
- package/dist/shaders/postprocess/blur.d.ts +3 -0
- package/dist/shaders/postprocess/blur.d.ts.map +1 -0
- package/dist/shaders/postprocess/mod.d.ts +17 -0
- package/dist/shaders/postprocess/mod.d.ts.map +1 -0
- package/dist/shaders/samplers.d.ts +3 -0
- package/dist/shaders/samplers.d.ts.map +1 -0
- package/dist/shaders/wgsl/example.wgsl.d.ts +3 -0
- package/dist/shaders/wgsl/example.wgsl.d.ts.map +1 -0
- package/dist/shaders/wgsl/hello.wgsl.d.ts +3 -0
- package/dist/shaders/wgsl/hello.wgsl.d.ts.map +1 -0
- package/dist/shaders/wgsl/helloInstanced.wgsl.d.ts +3 -0
- package/dist/shaders/wgsl/helloInstanced.wgsl.d.ts.map +1 -0
- package/dist/shaders/wgsl/quad.wgsl.d.ts +3 -0
- package/dist/shaders/wgsl/quad.wgsl.d.ts.map +1 -0
- package/dist/src/Toodle.d.ts +303 -0
- package/dist/src/Toodle.d.ts.map +1 -0
- package/dist/src/colors/mod.d.ts +871 -0
- package/dist/src/coreTypes/Color.d.ts +6 -0
- package/dist/src/coreTypes/Color.d.ts.map +1 -0
- package/dist/src/coreTypes/Point.d.ts +7 -0
- package/dist/src/coreTypes/Point.d.ts.map +1 -0
- package/dist/src/coreTypes/Size.d.ts +4 -0
- package/dist/src/coreTypes/Size.d.ts.map +1 -0
- package/dist/src/coreTypes/Transform.d.ts +15 -0
- package/dist/src/coreTypes/Transform.d.ts.map +1 -0
- package/dist/src/coreTypes/Vec2.d.ts +7 -0
- package/dist/src/coreTypes/Vec2.d.ts.map +1 -0
- package/dist/src/coreTypes/mod.d.ts +5 -0
- package/dist/src/coreTypes/mod.d.ts.map +1 -0
- package/dist/src/limits.d.ts +22 -0
- package/dist/src/limits.d.ts.map +1 -0
- package/dist/src/math/angle.d.ts +12 -0
- package/dist/src/math/angle.d.ts.map +1 -0
- package/dist/src/math/matrix.d.ts +25 -0
- package/dist/src/math/matrix.d.ts.map +1 -0
- package/dist/src/math/mod.d.ts +2 -0
- package/dist/src/math/mod.d.ts.map +1 -0
- package/dist/src/mod.d.ts +16 -0
- package/dist/src/mod.d.ts.map +1 -0
- package/dist/src/postprocess.d.ts +10 -0
- package/dist/src/postprocess.d.ts.map +1 -0
- package/dist/src/scene/Batcher.d.ts +19 -0
- package/dist/src/scene/Batcher.d.ts.map +1 -0
- package/dist/src/scene/Camera.d.ts +15 -0
- package/dist/src/scene/Camera.d.ts.map +1 -0
- package/dist/src/scene/JumboQuadNode.d.ts +28 -0
- package/dist/src/scene/QuadNode.d.ts +158 -0
- package/dist/src/scene/QuadNode.d.ts.map +1 -0
- package/dist/src/scene/RenderComponent.d.ts +10 -0
- package/dist/src/scene/RenderComponent.d.ts.map +1 -0
- package/dist/src/scene/SceneNode.d.ts +299 -0
- package/dist/src/scene/SceneNode.d.ts.map +1 -0
- package/dist/src/scene/mod.d.ts +4 -0
- package/dist/src/scene/mod.d.ts.map +1 -0
- package/dist/src/screen/mod.d.ts +1 -0
- package/dist/src/screen/mod.d.ts.map +1 -0
- package/dist/src/screen/resolution.d.ts +4 -0
- package/dist/src/screen/resolution.d.ts.map +1 -0
- package/dist/src/shaders/EngineUniform.d.ts +8 -0
- package/dist/src/shaders/EngineUniform.d.ts.map +1 -0
- package/dist/src/shaders/IShader.d.ts +14 -0
- package/dist/src/shaders/IShader.d.ts.map +1 -0
- package/dist/src/shaders/QuadShader.d.ts +17 -0
- package/dist/src/shaders/QuadShader.d.ts.map +1 -0
- package/dist/src/shaders/ShaderDescriptor.d.ts +6 -0
- package/dist/src/shaders/ShaderDescriptor.d.ts.map +1 -0
- package/dist/src/shaders/mod.d.ts +5 -0
- package/dist/src/shaders/mod.d.ts.map +1 -0
- package/dist/src/shaders/parser.d.ts +7 -0
- package/dist/src/shaders/parser.d.ts.map +1 -0
- package/dist/src/shaders/postprocess/blur.d.ts +2 -0
- package/dist/src/shaders/postprocess/mod.d.ts +16 -0
- package/dist/src/shaders/postprocess/postprocess.d.ts +8 -0
- package/dist/src/shaders/postprocess/util.d.ts +2 -0
- package/dist/src/shaders/samplers.d.ts +2 -0
- package/dist/src/shaders/samplers.d.ts.map +1 -0
- package/dist/src/shaders/wgsl/example.wgsl.d.ts +2 -0
- package/dist/src/shaders/wgsl/example.wgsl.d.ts.map +1 -0
- package/dist/src/shaders/wgsl/hello.wgsl.d.ts +2 -0
- package/dist/src/shaders/wgsl/hello.wgsl.d.ts.map +1 -0
- package/dist/src/shaders/wgsl/helloInstanced.wgsl.d.ts +2 -0
- package/dist/src/shaders/wgsl/helloInstanced.wgsl.d.ts.map +1 -0
- package/dist/src/shaders/wgsl/quad.wgsl.d.ts +2 -0
- package/dist/src/shaders/wgsl/quad.wgsl.d.ts.map +1 -0
- package/dist/src/text/FontPipeline.d.ts +13 -0
- package/dist/src/text/FontPipeline.d.ts.map +1 -0
- package/dist/src/text/MsdfFont.d.ts +81 -0
- package/dist/src/text/MsdfFont.d.ts.map +1 -0
- package/dist/src/text/TextFormatting.d.ts +18 -0
- package/dist/src/text/TextFormatting.d.ts.map +1 -0
- package/dist/src/text/TextNode.d.ts +18 -0
- package/dist/src/text/TextNode.d.ts.map +1 -0
- package/dist/src/text/TextShader.d.ts +14 -0
- package/dist/src/text/TextShader.d.ts.map +1 -0
- package/dist/src/text/mod.d.ts +3 -0
- package/dist/src/text/mod.d.ts.map +1 -0
- package/dist/src/text/shaping.d.ts +38 -0
- package/dist/src/text/shaping.d.ts.map +1 -0
- package/dist/src/text/text.wgsl.d.ts +2 -0
- package/dist/src/text/text.wgsl.d.ts.map +1 -0
- package/dist/src/textures/AssetManager.d.ts +181 -0
- package/dist/src/textures/AssetManager.d.ts.map +1 -0
- package/dist/src/textures/NewTextureComputeShader.d.ts +28 -0
- package/dist/src/textures/TextureComputeShader.d.ts +20 -0
- package/dist/src/textures/TextureComputeShader.d.ts.map +1 -0
- package/dist/src/textures/crop.wgsl.d.ts +2 -0
- package/dist/src/textures/mod.d.ts +1 -0
- package/dist/src/textures/mod.d.ts.map +1 -0
- package/dist/src/textures/pixel-scraping.wgsl.d.ts +2 -0
- package/dist/src/textures/pixel-scraping.wgsl.d.ts.map +1 -0
- package/dist/src/textures/texture-processing.wgsl.d.ts +2 -0
- package/dist/src/textures/types.d.ts +176 -0
- package/dist/src/textures/types.d.ts.map +1 -0
- package/dist/src/textures/util.d.ts +7 -0
- package/dist/src/textures/util.d.ts.map +1 -0
- package/dist/src/utils/assert.d.ts +1 -0
- package/dist/src/utils/assert.d.ts.map +1 -0
- package/dist/src/utils/boilerplate.d.ts +10 -0
- package/dist/src/utils/boilerplate.d.ts.map +1 -0
- package/dist/src/utils/error.d.ts +7 -0
- package/dist/src/utils/error.d.ts.map +1 -0
- package/dist/src/utils/mod.d.ts +2 -0
- package/dist/src/utils/mod.d.ts.map +1 -0
- package/dist/src/utils/pool.d.ts +22 -0
- package/dist/src/utils/pool.d.ts.map +1 -0
- package/dist/test/math/matrix.test.d.ts +1 -0
- package/dist/test/scene/Batcher.test.d.ts +1 -0
- package/dist/test/scene/SceneNode.test.d.ts +1 -0
- package/dist/test/shader/parser.test.d.ts +1 -0
- package/dist/text/FontPipeline.d.ts +14 -0
- package/dist/text/FontPipeline.d.ts.map +1 -0
- package/dist/text/MsdfFont.d.ts +82 -0
- package/dist/text/MsdfFont.d.ts.map +1 -0
- package/dist/text/TextFormatting.d.ts +19 -0
- package/dist/text/TextFormatting.d.ts.map +1 -0
- package/dist/text/TextNode.d.ts +19 -0
- package/dist/text/TextNode.d.ts.map +1 -0
- package/dist/text/TextShader.d.ts +15 -0
- package/dist/text/TextShader.d.ts.map +1 -0
- package/dist/text/mod.d.ts +4 -0
- package/dist/text/mod.d.ts.map +1 -0
- package/dist/text/shaping.d.ts +39 -0
- package/dist/text/shaping.d.ts.map +1 -0
- package/dist/text/text.wgsl.d.ts +3 -0
- package/dist/text/text.wgsl.d.ts.map +1 -0
- package/dist/textures/AssetManager.d.ts +182 -0
- package/dist/textures/AssetManager.d.ts.map +1 -0
- package/dist/textures/TextureComputeShader.d.ts +21 -0
- package/dist/textures/TextureComputeShader.d.ts.map +1 -0
- package/dist/textures/mod.d.ts +2 -0
- package/dist/textures/mod.d.ts.map +1 -0
- package/dist/textures/pixel-scraping.wgsl.d.ts +3 -0
- package/dist/textures/pixel-scraping.wgsl.d.ts.map +1 -0
- package/dist/textures/types.d.ts +177 -0
- package/dist/textures/types.d.ts.map +1 -0
- package/dist/textures/util.d.ts +8 -0
- package/dist/textures/util.d.ts.map +1 -0
- package/dist/utils/assert.d.ts +2 -0
- package/dist/utils/assert.d.ts.map +1 -0
- package/dist/utils/boilerplate.d.ts +11 -0
- package/dist/utils/boilerplate.d.ts.map +1 -0
- package/dist/utils/error.d.ts +8 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/mod.d.ts +3 -0
- package/dist/utils/mod.d.ts.map +1 -0
- package/dist/utils/pool.d.ts +23 -0
- package/dist/utils/pool.d.ts.map +1 -0
- package/package.json +47 -0
- package/src/Toodle.ts +853 -0
- package/src/colors/mod.ts +151 -0
- package/src/coreTypes/Color.ts +1 -0
- package/src/coreTypes/Point.ts +7 -0
- package/src/coreTypes/Size.ts +4 -0
- package/src/coreTypes/Transform.ts +16 -0
- package/src/coreTypes/Vec2.ts +7 -0
- package/src/coreTypes/mod.ts +5 -0
- package/src/globals.d.ts +4 -0
- package/src/limits.ts +23 -0
- package/src/math/angle.ts +17 -0
- package/src/math/matrix.ts +99 -0
- package/src/math/mod.ts +2 -0
- package/src/mod.ts +22 -0
- package/src/scene/Batcher.ts +61 -0
- package/src/scene/Camera.ts +69 -0
- package/src/scene/JumboQuadNode.ts +219 -0
- package/src/scene/QuadNode.ts +403 -0
- package/src/scene/RenderComponent.ts +12 -0
- package/src/scene/SceneNode.ts +668 -0
- package/src/scene/mod.ts +4 -0
- package/src/screen/mod.ts +1 -0
- package/src/screen/resolution.ts +1 -0
- package/src/shaders/EngineUniform.ts +11 -0
- package/src/shaders/IShader.ts +20 -0
- package/src/shaders/QuadShader.ts +288 -0
- package/src/shaders/ShaderDescriptor.ts +6 -0
- package/src/shaders/mod.ts +5 -0
- package/src/shaders/parser.ts +221 -0
- package/src/shaders/postprocess/blur.ts +245 -0
- package/src/shaders/postprocess/mod.ts +71 -0
- package/src/shaders/samplers.ts +13 -0
- package/src/shaders/wgsl/example.wgsl.ts +24 -0
- package/src/shaders/wgsl/hello.wgsl.ts +62 -0
- package/src/shaders/wgsl/helloInstanced.wgsl.ts +46 -0
- package/src/shaders/wgsl/quad.wgsl.ts +140 -0
- package/src/text/FontPipeline.ts +212 -0
- package/src/text/MsdfFont.ts +190 -0
- package/src/text/TextFormatting.ts +28 -0
- package/src/text/TextNode.ts +82 -0
- package/src/text/TextShader.ts +223 -0
- package/src/text/mod.ts +8 -0
- package/src/text/shaping.ts +280 -0
- package/src/text/text.wgsl.ts +149 -0
- package/src/textures/AssetManager.ts +746 -0
- package/src/textures/TextureComputeShader.ts +434 -0
- package/src/textures/mod.ts +1 -0
- package/src/textures/pixel-scraping.wgsl.ts +131 -0
- package/src/textures/types.ts +182 -0
- package/src/textures/util.ts +352 -0
- package/src/utils/assert.ts +5 -0
- package/src/utils/boilerplate.ts +110 -0
- package/src/utils/error.ts +14 -0
- package/src/utils/mod.ts +2 -0
- package/src/utils/pool.ts +42 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { Size, Vec2 } from "../coreTypes/mod";
|
|
2
|
+
export type AtlasCoords = TextureRegion & {
|
|
3
|
+
atlasIndex: number;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* A TextureRegion is a region of the texture atlas in normalized texels.
|
|
7
|
+
*
|
|
8
|
+
* It is a combination of a UvRegion and a cropOffset.
|
|
9
|
+
*/
|
|
10
|
+
export type TextureRegion = UvRegion & {
|
|
11
|
+
/** the offset from the top left of the texture in texels to begin drawing */
|
|
12
|
+
cropOffset: Vec2;
|
|
13
|
+
/** the original size of the texture in texels */
|
|
14
|
+
originalSize: Size;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* A UvRegion is a region of the texture atlas in normalized texels.
|
|
18
|
+
*/
|
|
19
|
+
export type UvRegion = {
|
|
20
|
+
/**
|
|
21
|
+
* The offset of the UVs in normalized atlas texels. Relative to the un-cropped texture.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
*
|
|
25
|
+
* { x: 10 / 4096, y: 10 / 4096 }
|
|
26
|
+
*/
|
|
27
|
+
uvOffset: Vec2;
|
|
28
|
+
/**
|
|
29
|
+
* The scale of the UVs in normalized texels. Derived from the width and height of the un-cropped texture.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
*
|
|
33
|
+
* { width: 1 / 4096, height: 1 / 4096 }
|
|
34
|
+
*/
|
|
35
|
+
uvScale: Size;
|
|
36
|
+
/**
|
|
37
|
+
* The scale of the UVs in normalized texels. Derived from the width and height of the cropped texture.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
*
|
|
41
|
+
* { width: 1 / 4096, height: 1 / 4096 }
|
|
42
|
+
*/
|
|
43
|
+
uvScaleCropped?: Size;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* A CpuTextureAtlas is a texture atlas that has been loaded into memory.
|
|
47
|
+
*
|
|
48
|
+
* It contains the texture and a map of texture ids to TextureRegions.
|
|
49
|
+
*/
|
|
50
|
+
export type CpuTextureAtlas = {
|
|
51
|
+
texture: ImageBitmap;
|
|
52
|
+
rg8Bytes?: Uint8Array<ArrayBuffer>;
|
|
53
|
+
textureRegions: Map<string, TextureRegion>;
|
|
54
|
+
width: number;
|
|
55
|
+
height: number;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* A TextureWithMetadata is a texture that has been loaded into the gpu.
|
|
59
|
+
*
|
|
60
|
+
* It contains the gpu texture data and a cropOffset and originalSize for use with cropped textures.
|
|
61
|
+
*/
|
|
62
|
+
export type TextureWithMetadata = {
|
|
63
|
+
texture: GPUTexture;
|
|
64
|
+
/** crop offset from center in texel units */
|
|
65
|
+
cropOffset: Vec2;
|
|
66
|
+
/** original size in texel units before cropping */
|
|
67
|
+
originalSize: Size;
|
|
68
|
+
};
|
|
69
|
+
/** A definition for a pre-baked texture atlas */
|
|
70
|
+
export type AtlasDef = {
|
|
71
|
+
/** The url of the atlas png file, if empty the png is assumed to be next to the json file */
|
|
72
|
+
png?: URL;
|
|
73
|
+
/** The url of the atlas json file, if empty the json is assumed to be next to the png file */
|
|
74
|
+
json: URL;
|
|
75
|
+
} | {
|
|
76
|
+
/** The url of the atlas png file, if empty the png is assumed to be next to the json file */
|
|
77
|
+
png: URL;
|
|
78
|
+
/** The url of the atlas json file, if empty the json is assumed to be next to the png file */
|
|
79
|
+
json?: URL;
|
|
80
|
+
};
|
|
81
|
+
/** Bundle options for registering multiple individual textures */
|
|
82
|
+
export type TextureBundleOpts = {
|
|
83
|
+
/**
|
|
84
|
+
* A record of texture ids and URLs.
|
|
85
|
+
* ids must be unique within a bundle
|
|
86
|
+
*
|
|
87
|
+
*/
|
|
88
|
+
textures: Record<string, URL>;
|
|
89
|
+
/**
|
|
90
|
+
* Whether the image should be cropped down to the minimal bounding box for non-transparent pixels.
|
|
91
|
+
*
|
|
92
|
+
* See [Transparent Pixel Cropping](https://toodle.gg/f849595b3ed13fc956fc1459a5cb5f0228f9d259/examples/transparent-cropping.html) for more information.
|
|
93
|
+
*/
|
|
94
|
+
cropTransparentPixels?: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Whether the bundle should be loaded automatically on registration
|
|
97
|
+
*/
|
|
98
|
+
autoLoad?: boolean;
|
|
99
|
+
};
|
|
100
|
+
/** Bundle options for registering pre-generated texture atlases */
|
|
101
|
+
export type AtlasBundleOpts = {
|
|
102
|
+
/**
|
|
103
|
+
* atlas definitions as pregenerated by a texture packer like https://github.com/pixijs/assetpack
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
*
|
|
107
|
+
* [
|
|
108
|
+
* {
|
|
109
|
+
* json: new URL('https://example.com/atlas.json'),
|
|
110
|
+
* },
|
|
111
|
+
* {
|
|
112
|
+
* png: new URL('https://example.com/atlas.png'),
|
|
113
|
+
* },
|
|
114
|
+
* {
|
|
115
|
+
* json: new URL('https://example.com/metadata/atlas.json'),
|
|
116
|
+
* png: new URL('https://example.com/images/atlas.png'),
|
|
117
|
+
* },
|
|
118
|
+
* ]
|
|
119
|
+
*/
|
|
120
|
+
atlases: AtlasDef[];
|
|
121
|
+
/**
|
|
122
|
+
* Whether the bundle should be loaded automatically on registration
|
|
123
|
+
*/
|
|
124
|
+
autoLoad?: boolean;
|
|
125
|
+
/**
|
|
126
|
+
* If true, png urls will be ignored and the texture path will be inferred to be next to the json file
|
|
127
|
+
* with a .rg8.gz extension.
|
|
128
|
+
*/
|
|
129
|
+
rg8?: boolean;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* A texel region defines a subregion of an individual texture in texel units.
|
|
133
|
+
*
|
|
134
|
+
* (0,0) is the top left corner of the original texture.
|
|
135
|
+
* (width, height) is the bottom right corner of the original texture.
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* This is useful for something like spritesheet animations,
|
|
139
|
+
* for eg a 3-frame pose of a 32x32 character sprite might be 96x32 texels, and the animation could
|
|
140
|
+
* be done by alternating between:
|
|
141
|
+
*
|
|
142
|
+
* { x: 0, y: 0, width: 32, height: 32 }
|
|
143
|
+
* { x: 32, y: 0, width: 32, height: 32 }
|
|
144
|
+
* { x: 64, y: 0, width: 32, height: 32 }
|
|
145
|
+
*
|
|
146
|
+
*/
|
|
147
|
+
export type TexelRegion = {
|
|
148
|
+
x: number;
|
|
149
|
+
y: number;
|
|
150
|
+
width: number;
|
|
151
|
+
height: number;
|
|
152
|
+
};
|
|
153
|
+
/** A region specification from a pixi.js spritesheet or atlas paced with assetPack */
|
|
154
|
+
export type PixiRegion = {
|
|
155
|
+
/** the position and size of the cropped region in the atlas, measured in texels*/
|
|
156
|
+
frame: {
|
|
157
|
+
x: number;
|
|
158
|
+
y: number;
|
|
159
|
+
w: number;
|
|
160
|
+
h: number;
|
|
161
|
+
};
|
|
162
|
+
rotated: boolean;
|
|
163
|
+
trimmed: boolean;
|
|
164
|
+
/** the original size of the texture in texels */
|
|
165
|
+
sourceSize: {
|
|
166
|
+
w: number;
|
|
167
|
+
h: number;
|
|
168
|
+
};
|
|
169
|
+
/** the position and size of the cropped region of the texture prior to packing in the atlas, measured in texels */
|
|
170
|
+
spriteSourceSize: {
|
|
171
|
+
x: number;
|
|
172
|
+
y: number;
|
|
173
|
+
w: number;
|
|
174
|
+
h: number;
|
|
175
|
+
};
|
|
176
|
+
};
|
|
177
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/textures/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CpuTextureAtlas, TextureWithMetadata } from "./types";
|
|
2
|
+
export declare function getBitmapFromUrl(url: URL): Promise<ImageBitmap>;
|
|
3
|
+
export declare function loadZip(zipUrl: URL): Promise<{
|
|
4
|
+
path: string;
|
|
5
|
+
bitmap: ImageBitmap;
|
|
6
|
+
}[]>;
|
|
7
|
+
export declare function packBitmapsToAtlas(images: Map<string, TextureWithMetadata>, textureSize: number, device: GPUDevice): Promise<CpuTextureAtlas[]>;
|
|
8
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/textures/util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAEf,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CASrE;AAmED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,GAAG,GACV,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,EAAE,CAAC,CAsBlD;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACxC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,eAAe,EAAE,CAAC,CAqH5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/utils/assert.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAIzE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ShaderDescriptor } from "../shaders/ShaderDescriptor";
|
|
2
|
+
export declare function initGpu(canvas: HTMLCanvasElement, onUncapturedError?: (e: GPUUncapturedErrorEvent) => void): Promise<{
|
|
3
|
+
device: GPUDevice;
|
|
4
|
+
context: GPUCanvasContext;
|
|
5
|
+
presentationFormat: GPUTextureFormat;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function getGpuPipelineDescriptor(shaderDescriptor: ShaderDescriptor, module: GPUShaderModule, presentationFormat: GPUTextureFormat, blend?: GPUBlendState): Omit<GPURenderPipelineDescriptor, "layout">;
|
|
8
|
+
export declare function setVertexInstanceBufferLayout(pipeline: Omit<GPURenderPipelineDescriptor, "layout">, bufferLayout: GPUVertexBufferLayout): Omit<GPURenderPipelineDescriptor, "layout">;
|
|
9
|
+
export declare function attachVertexInstanceBuffer(renderPass: GPURenderPassEncoder, instanceBuffer: GPUBuffer): void;
|
|
10
|
+
export declare function createGpuPipeline(device: GPUDevice, shaderDescriptor: ShaderDescriptor, pipelineDescriptor: Omit<GPURenderPipelineDescriptor, "layout">): GPURenderPipeline;
|
|
11
|
+
//# sourceMappingURL=boilerplate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boilerplate.d.ts","sourceRoot":"","sources":["../../src/utils/boilerplate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAKpE,wBAAsB,OAAO,CAC3B,MAAM,EAAE,iBAAiB,EACzB,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,uBAAuB,KAAK,IAAI;;;;GAgCzD;AAED,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,eAAe,EACvB,kBAAkB,EAAE,gBAAgB,EACpC,KAAK,CAAC,EAAE,aAAa,GACpB,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAuB7C;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC,EACrD,YAAY,EAAE,qBAAqB,GAClC,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAG7C;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,oBAAoB,EAChC,cAAc,EAAE,SAAS,QAG1B;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC,GAC9D,iBAAiB,CAenB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Useful for warning in a function run every frame if you only want to warn once
|
|
3
|
+
*
|
|
4
|
+
* @param key a unique key to tag the warning
|
|
5
|
+
* @param msg message to console.warn
|
|
6
|
+
*/
|
|
7
|
+
export declare function warnOnce(key: string, msg?: string): void;
|
|
8
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,QAMjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/utils/mod.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A simple pool for creating and reusing objects to avoid allocation between frames
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
*
|
|
6
|
+
* const pool = new Pool(() => new SomeObject(), 10);
|
|
7
|
+
*
|
|
8
|
+
* function animate() {
|
|
9
|
+
* const obj = pool.get();
|
|
10
|
+
* console.log(obj);
|
|
11
|
+
* pool.free();
|
|
12
|
+
* requestAnimationFrame(animate);
|
|
13
|
+
* }
|
|
14
|
+
*
|
|
15
|
+
* requestAnimationFrame(animate);
|
|
16
|
+
*/
|
|
17
|
+
export declare class Pool<T> {
|
|
18
|
+
#private;
|
|
19
|
+
constructor(create: () => T, initialSize?: number);
|
|
20
|
+
get(): T;
|
|
21
|
+
free(): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/utils/pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,IAAI,CAAC,CAAC;;gBAKL,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,SAAI;IAS5C,GAAG;IAQH,IAAI;CAGL"}
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bloopjs/toodle",
|
|
3
|
+
"version": "0.0.100",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"files": ["dist", "src"],
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/bloopgames/toodle.git"
|
|
10
|
+
},
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"sideEffects": false,
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"import": "./src/mod.ts",
|
|
18
|
+
"types": "./src/mod.ts"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"dev": "vite",
|
|
23
|
+
"build": "bun build src/mod.ts --outdir ./dist --sourcemap=linked && bun run build:tsc",
|
|
24
|
+
"build:tsc": "tsc -p scripts/tsconfig.publish.json",
|
|
25
|
+
"preview": "vite preview",
|
|
26
|
+
"biome:check": "biome check ./src ./examples",
|
|
27
|
+
"biome:write": "biome check ./src ./examples --write",
|
|
28
|
+
"ci": "bun run biome:check && bun test && bun tsc",
|
|
29
|
+
"docs:dev": "(cd docs && bun run docs:dev)",
|
|
30
|
+
"docs:build": "(cd docs && bun run docs:build)"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@biomejs/biome": "^2.1.2",
|
|
34
|
+
"@types/bun": "^1.1.13",
|
|
35
|
+
"@webgpu/types": "^0.1.51",
|
|
36
|
+
"vite": "^5.4.11"
|
|
37
|
+
},
|
|
38
|
+
"peerDependencies": {
|
|
39
|
+
"typescript": "^5.7.2"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"fflate": "^0.8.2",
|
|
43
|
+
"webgpu-utils": "^1.9.3",
|
|
44
|
+
"wgpu-matrix": "^3.3.0",
|
|
45
|
+
"wgsl_reflect": "^1.0.14"
|
|
46
|
+
}
|
|
47
|
+
}
|