@bloopjs/toodle 0.0.102 → 0.0.104

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.
@@ -1 +1 @@
1
- {"version":3,"file":"QuadNode.d.ts","sourceRoot":"","sources":["../../src/scene/QuadNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAe1D;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,SAAS;;IACrC,YAAY,EAAE,YAAY,CAAC;gBAsBf,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC;IAsExD;;;;;OAKG;IACH,IAAI,KAAK,IAIQ,KAAK,CAFrB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,EAErB;IAED;;OAEG;IACH,IAAI,IAAI,SAMP;IAED;;;;OAIG;IACH,IAAI,cAAc,kCASjB;IAED;;;OAGG;IACH,IAAI,WAAW,gBAEd;IAED;;;;OAIG;IACH,IAAI,MAAM,gBAET;IAED,IAAI,aAAa,aAlIQ,YAAY,UAAU,MAAM,KAAK,IAAI,cAoI7D;IAED;;;;;OAKG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;;;;OAKG;IACH,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAGvB;IAED;;;;;OAKG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;;;;OAKG;IACH,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAGvB;IAED;;;OAGG;IACH,IAAI,UAAU,IAAI,IAAI,CAErB;IAED;;;OAGG;IACH,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,EAEzB;IAED,IAAI,SAAS,WAEZ;IAED;;OAEG;IACH,IAAI,WAAW,YAEd;IAED;;OAEG;IACH,IAAI,QAAQ,YAEX;IAED,KAAK;QACH;;;;WAIG;gCACqB,WAAW;QAInC;;;;WAIG;;QAKH;;WAEG;;MAIH;CACH;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;CACzB,CAAC"}
1
+ {"version":3,"file":"QuadNode.d.ts","sourceRoot":"","sources":["../../src/scene/QuadNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAe1D;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,SAAS;;IACrC,YAAY,EAAE,YAAY,CAAC;gBAsBf,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC;IAmExD;;;;;OAKG;IACH,IAAI,KAAK,IAIQ,KAAK,CAFrB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,EAErB;IAED;;OAEG;IACH,IAAI,IAAI,SAMP;IAED;;;;OAIG;IACH,IAAI,cAAc,kCASjB;IAED;;;OAGG;IACH,IAAI,WAAW,gBAEd;IAED;;;;OAIG;IACH,IAAI,MAAM,gBAET;IAED,IAAI,aAAa,aA/HQ,YAAY,UAAU,MAAM,KAAK,IAAI,cAiI7D;IAED;;;;;OAKG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;;;;OAKG;IACH,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAGvB;IAED;;;;;OAKG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;;;;OAKG;IACH,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAGvB;IAED;;;OAGG;IACH,IAAI,UAAU,IAAI,IAAI,CAErB;IAED;;;OAGG;IACH,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,EAEzB;IAED,IAAI,SAAS,WAEZ;IAED;;OAEG;IACH,IAAI,WAAW,YAEd;IAED;;OAEG;IACH,IAAI,QAAQ,YAEX;IAED,KAAK;QACH;;;;WAIG;gCACqB,WAAW;QAInC;;;;WAIG;;QAKH;;WAEG;;MAIH;CACH;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;CACzB,CAAC"}
@@ -91,10 +91,10 @@ export declare class SceneNode {
91
91
  */
92
92
  get scale(): Vec2;
93
93
  set scale(value: Vec2 | number);
94
- set idealSize(value: Size | null);
95
94
  /**
96
95
  * The size of the node. See https://toodle.gg/f849595b3ed13fc956fc1459a5cb5f0228f9d259/examples/quad-size-scale.html
97
96
  */
97
+ set size(value: Size | null);
98
98
  get size(): Size | null;
99
99
  /**
100
100
  * The aspect ratio of the node.
@@ -250,7 +250,7 @@ export type NodeOptions = {
250
250
  /** The scale for the node. */
251
251
  scale?: Vec2 | number;
252
252
  /** The desired size for the node. */
253
- idealSize?: Size;
253
+ size?: Size;
254
254
  /** The active state for the node. */
255
255
  isActive?: boolean;
256
256
  /** The kids for the node. */
@@ -1 +1 @@
1
- {"version":3,"file":"SceneNode.d.ts","sourceRoot":"","sources":["../../src/scene/SceneNode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;;;GAKG;AACH,qBAAa,SAAS;;IACpB,MAAM,CAAC,MAAM,SAAK;IAElB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;gBAgBH,IAAI,CAAC,EAAE,WAAW;IAkE9B;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM;IAW/C;;;;;;;;;;;;;;;;;OAiBG;IACH,IAAI,IAAI,gBAEP;IAED;;OAEG;IACH,IAAI,QAAQ,gBAEX;IAED;;;;;OAKG;IACH,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED;;;;OAIG;IACH,IAAI,GAAG,WAEN;IAED;;OAEG;IACH,IAAI,MAAM,qBAET;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,EAGxB;IAED;;OAEG;IACH,IAAI,QAAQ,IARQ,KAAK,CAUxB;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAGlB;IAED;;OAEG;IACH,IAAI,CAAC,IARQ,MAAM,CAUlB;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAGlB;IAED;;OAEG;IACH,IAAI,CAAC,IARQ,MAAM,CAUlB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAGzB;IAED;;;OAGG;IACH,IAAI,QAAQ,IATQ,MAAM,CAWzB;IAED;;;OAGG;IACH,IAAI,eAAe,IAIQ,MAAM,CAFhC;IAED,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,EAGhC;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,IAAI,CAEhB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,EAO7B;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,EAG/B;IAED;;OAEG;IAEH,IAAI,IAAI,gBAEP;IAED;;;OAGG;IACH,IAAI,WAAW,WAQd;IAED;;;;OAIG;IACH,IAAI,QAAQ,IAeQ,OAAO,CAF1B;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAG1B;IAED;;;;OAIG;IACH,IAAI,KAAK,IAiCQ,MAAM,CAZtB;IAED;;;;;OAKG;IACH,IAAI,gBAAgB,YAEnB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAGtB;IAED,IAAI,eAAe,2BAElB;IAED;;;;OAIG;IACH,IAAI,MAAM,IAAI,YAAY,CAYzB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CA+BnB;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;IAWjC;;OAEG;IACH,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAEvB;IAED;;OAEG;IACH,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAEpB;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAED;;OAEG;IACH,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAExB;IAED;;OAEG;IACH,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAExB;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM;IAWN;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,GAAG,EAAE,SAAS;IA2BrB;;;OAGG;IACH,QAAQ;IAKR;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM;IAKzB;;;;;;;;;;OAUG;IACH,MAAM;;;;;;;;;CAWP;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,0CAA0C;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACtB,qCAAqC;IACrC,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,yCAAyC;IACzC,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gCAAgC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mGAAmG;IACnG,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AA4BF;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;CACX,CAAC"}
1
+ {"version":3,"file":"SceneNode.d.ts","sourceRoot":"","sources":["../../src/scene/SceneNode.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,22 @@ import type { Limits } from "../limits";
4
4
  import { QuadNode } from "../scene/QuadNode";
5
5
  import type { SceneNode } from "../scene/SceneNode";
6
6
  import { TextShader } from "../text/TextShader";
7
+ import { Bundles } from "./Bundles";
7
8
  import type { AtlasBundleOpts, AtlasCoords, CpuTextureAtlas, TextureBundleOpts } from "./types";
8
9
  export type TextureId = string;
9
10
  export type BundleId = string;
10
11
  export type FontId = string;
12
+ export type AssetManagerOptions = {
13
+ /** Existing Bundles instance to use for CPU-side storage. If not provided, a new one is created. */
14
+ bundles?: Bundles;
15
+ /** Texture format (default: "rgba8unorm") */
16
+ format?: "rgba8unorm" | "rg8unorm";
17
+ };
11
18
  export declare class AssetManager {
12
19
  #private;
13
20
  readonly textureAtlas: GPUTexture;
14
- constructor(device: GPUDevice, presentationFormat: GPUTextureFormat, limits: Limits, format?: "rgba8unorm" | "rg8unorm");
21
+ readonly bundles: Bundles;
22
+ constructor(device: GPUDevice, presentationFormat: GPUTextureFormat, limits: Limits, options?: AssetManagerOptions);
15
23
  /**
16
24
  * True dimensions of a loaded texture, prior to any transparent pixel cropping.
17
25
  *
@@ -36,7 +44,7 @@ export declare class AssetManager {
36
44
  /**
37
45
  * A read-only map of all currently loaded textures.
38
46
  */
39
- get textures(): Map<string, AtlasCoords[]>;
47
+ get textures(): ReadonlyMap<string, AtlasCoords[]>;
40
48
  /**
41
49
  * A read-only array of all currently loaded texture ids.
42
50
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AssetManager.d.ts","sourceRoot":"","sources":["../../src/textures/AssetManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,eAAe,EAEf,iBAAiB,EAGlB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAQ5B,qBAAa,YAAY;;IACvB,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;gBAWhC,MAAM,EAAE,SAAS,EACjB,kBAAkB,EAAE,gBAAgB,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,YAAY,GAAG,UAAyB;IAwBlD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAS5B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAWnC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO;IAUjC;;OAEG;IACH,IAAI,QAAQ,+BAEX;IAED;;OAEG;IACH,IAAI,UAAU,aAEb;IAED;;;;;;;;;;;;;;;;OAgBG;IACG,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtE;;;;;;;;;OASG;IACG,WAAW,CACf,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,GAAG,GAAG,WAAW,EACtB,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;;;;IAwCtC;;;;;;;;OAQG;IACG,cAAc,CAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,iBAAiB,GAAG,eAAe,GACxC,OAAO,CAAC,QAAQ,CAAC;IAapB;;;;OAIG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ;IAmBnC;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,QAAQ;IAqBrC;;;;;;OAMG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,iBAAiB,SAAM;IAqB5D,OAAO,CAAC,EAAE,EAAE,MAAM;IASlB,wBAAwB,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ;IAqNnD;;OAEG;IACH,KAAK;sCAEyB,MAAM,EAAE;kCAKZ,MAAM,EAAE;QAMhC;;;;;;;WAOG;6BACkB,SAAS,UAAU,WAAW;QAWnD;;;;;WAKG;6BACkB,SAAS,KAAG,WAAW,EAAE;QAS9C;;;;;WAKG;+BACoB,SAAS,KAAG,IAAI;QAUvC;;;;WAIG;;YAGC;;;eAGG;;YAEH;;eAEG;;YAEH;;eAEG;;;QAKP;;;WAGG;;QAWH;;;;;WAKG;2BACsB,eAAe;QAyCxC;;;;WAIG;kCAC6B,MAAM;MActC;IAmCF;;OAEG;IACH,OAAO;CAGR"}
1
+ {"version":3,"file":"AssetManager.d.ts","sourceRoot":"","sources":["../../src/textures/AssetManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAE5B,MAAM,MAAM,mBAAmB,GAAG;IAChC,oGAAoG;IACpG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACpC,CAAC;AAEF,qBAAa,YAAY;;IACvB,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBASxB,MAAM,EAAE,SAAS,EACjB,kBAAkB,EAAE,gBAAgB,EACpC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,mBAAwB;IA2BnC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAS5B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAWnC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO;IAUjC;;OAEG;IACH,IAAI,QAAQ,uCAEX;IAED;;OAEG;IACH,IAAI,UAAU,aAEb;IAED;;;;;;;;;;;;;;;;OAgBG;IACG,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtE;;;;;;;;;OASG;IACG,WAAW,CACf,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,GAAG,GAAG,WAAW,EACtB,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;;;;IAwCtC;;;;;;;;OAQG;IACG,cAAc,CAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,iBAAiB,GAAG,eAAe,GACxC,OAAO,CAAC,QAAQ,CAAC;IAcpB;;;;OAIG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ;IAsBnC;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,QAAQ;IAkBrC;;;;;;OAMG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,iBAAiB,SAAM;IAqB5D,OAAO,CAAC,EAAE,EAAE,MAAM;IASlB,wBAAwB,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ;IA4FnD;;OAEG;IACH,KAAK;sCAEyB,MAAM,EAAE;kCAKZ,MAAM,EAAE;QAIhC;;;;;;;WAOG;6BACkB,SAAS,UAAU,WAAW;QAInD;;;;;WAKG;6BACkB,SAAS,KAAG,WAAW,EAAE;QAI9C;;;;;WAKG;+BACoB,SAAS,KAAG,IAAI;QAIvC;;;;WAIG;;YAGC;;;eAGG;;YAEH;;eAEG;;YAEH;;eAEG;;;QAKP;;;WAGG;;QAWH;;;;;WAKG;2BACsB,eAAe;QAsCxC;;;;WAIG;kCAC6B,MAAM;MAItC;IAmCF;;OAEG;IACH,OAAO;CAGR"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Bundles - A renderer-agnostic class for managing texture bundles and atlas coordinates.
3
+ *
4
+ * This class can be used standalone (without WebGPU) for:
5
+ * - Registering pre-baked texture atlases (Pixi/AssetPack format)
6
+ * - Looking up texture regions and UV coordinates
7
+ * - Managing bundle state
8
+ *
9
+ * For WebGPU rendering, use AssetManager which wraps this class and handles GPU operations.
10
+ */
11
+ import type { Size } from "../coreTypes/Size";
12
+ import type { Vec2 } from "../coreTypes/Vec2";
13
+ import type { AtlasBundleOpts, AtlasCoords, CpuTextureAtlas, TextureRegion } from "./types";
14
+ export type TextureId = string;
15
+ export type BundleId = string;
16
+ /**
17
+ * Options for creating a Bundles instance
18
+ */
19
+ export type BundlesOptions = {
20
+ /** The size of the texture atlas (default: 4096) */
21
+ atlasSize?: number;
22
+ };
23
+ /**
24
+ * Bundles manages texture bundle registration and atlas coordinate lookups.
25
+ *
26
+ * This is a pure TypeScript class with no WebGPU dependencies, suitable for
27
+ * use with custom renderers (e.g., WebGL fallbacks).
28
+ */
29
+ export declare class Bundles {
30
+ #private;
31
+ constructor(options?: BundlesOptions);
32
+ /**
33
+ * Register a bundle of pre-baked texture atlases.
34
+ *
35
+ * @param bundleId - Unique identifier for this bundle
36
+ * @param opts - Atlas bundle options containing atlas definitions
37
+ * @returns The bundle ID
38
+ */
39
+ registerAtlasBundle(bundleId: BundleId, opts: AtlasBundleOpts): Promise<BundleId>;
40
+ /**
41
+ * Register a bundle with pre-built CPU texture atlases.
42
+ * Used internally by AssetManager for texture bundles that require GPU packing.
43
+ *
44
+ * @param bundleId - Unique identifier for this bundle
45
+ * @param atlases - Pre-built CPU texture atlases
46
+ */
47
+ registerDynamicBundle(bundleId: BundleId, atlases: CpuTextureAtlas[]): void;
48
+ /**
49
+ * Check if a bundle is registered.
50
+ *
51
+ * @param bundleId - The bundle ID to check
52
+ */
53
+ hasBundle(bundleId: BundleId): boolean;
54
+ /**
55
+ * Check if a bundle is loaded.
56
+ *
57
+ * @param bundleId - The bundle ID to check
58
+ */
59
+ isBundleLoaded(bundleId: BundleId): boolean;
60
+ /**
61
+ * Get the atlas indices for a loaded bundle.
62
+ *
63
+ * @param bundleId - The bundle ID
64
+ * @returns Array of atlas indices, or empty array if not loaded
65
+ */
66
+ getBundleAtlasIndices(bundleId: BundleId): number[];
67
+ /**
68
+ * Mark a bundle as loaded without populating texture lookups.
69
+ * Used when texture lookups are already populated via loadAtlas.
70
+ *
71
+ * @param bundleId - The bundle to mark as loaded
72
+ * @param atlasIndices - Array of atlas indices, one per atlas
73
+ */
74
+ setBundleLoaded(bundleId: BundleId, atlasIndices: number[]): void;
75
+ /**
76
+ * Mark a bundle as loaded and populate texture lookups.
77
+ * For standalone usage (without AssetManager).
78
+ *
79
+ * @param bundleId - The bundle to mark as loaded
80
+ * @param atlasIndices - Array of atlas indices, one per atlas. If not provided, indices are auto-assigned sequentially.
81
+ */
82
+ markBundleLoaded(bundleId: BundleId, atlasIndices?: number[]): void;
83
+ /**
84
+ * Unmark a bundle as loaded and remove texture lookups.
85
+ *
86
+ * @param bundleId - The bundle to unload
87
+ */
88
+ unloadBundle(bundleId: BundleId): void;
89
+ /**
90
+ * A read-only map of all currently loaded textures.
91
+ */
92
+ get textures(): ReadonlyMap<TextureId, AtlasCoords[]>;
93
+ /**
94
+ * A read-only array of all currently loaded texture ids.
95
+ */
96
+ get textureIds(): TextureId[];
97
+ /**
98
+ * Get the atlas coordinates for a texture.
99
+ *
100
+ * @param id - The texture ID
101
+ * @returns Array of atlas coordinates (may have multiple if texture exists in multiple atlases)
102
+ */
103
+ getAtlasCoords(id: TextureId): AtlasCoords[];
104
+ /**
105
+ * Set the atlas coordinates for a texture.
106
+ * This allows for UV precision adjustments.
107
+ *
108
+ * @param id - The texture ID
109
+ * @param coords - The atlas coordinates to set
110
+ */
111
+ setAtlasCoords(id: TextureId, coords: AtlasCoords): void;
112
+ /**
113
+ * Add atlas coordinates for a texture entry.
114
+ * Used by AssetManager.loadAtlas for textures loaded outside of bundles.
115
+ *
116
+ * @param id - The texture ID
117
+ * @param coords - The atlas coordinates to add
118
+ */
119
+ addTextureEntry(id: TextureId, coords: AtlasCoords): void;
120
+ /**
121
+ * Remove texture entries for a specific atlas index.
122
+ * Used by AssetManager.unloadAtlas.
123
+ *
124
+ * @param atlasIndex - The atlas index to remove entries for
125
+ */
126
+ removeTextureEntriesForAtlas(atlasIndex: number): void;
127
+ /**
128
+ * Get the texture region (without atlas index) for a texture.
129
+ *
130
+ * @param id - The texture ID
131
+ * @returns The texture region, or undefined if not found
132
+ */
133
+ getTextureRegion(id: TextureId): TextureRegion | undefined;
134
+ /**
135
+ * Get the crop offset for a texture.
136
+ *
137
+ * @param id - The texture ID
138
+ * @returns The crop offset vector
139
+ */
140
+ getTextureOffset(id: TextureId): Vec2;
141
+ /**
142
+ * Get the original (uncropped) size of a texture.
143
+ *
144
+ * @param id - The texture ID
145
+ * @returns The original size in pixels
146
+ */
147
+ getSize(id: TextureId): Size;
148
+ /**
149
+ * Get the cropped size of a texture.
150
+ *
151
+ * @param id - The texture ID
152
+ * @returns The cropped size in pixels
153
+ */
154
+ getCroppedSize(id: TextureId): Size;
155
+ /**
156
+ * Check if a texture exists.
157
+ *
158
+ * @param id - The texture ID
159
+ * @returns True if the texture is registered
160
+ */
161
+ hasTexture(id: TextureId): boolean;
162
+ /**
163
+ * Get all registered bundle IDs.
164
+ */
165
+ getRegisteredBundleIds(): BundleId[];
166
+ /**
167
+ * Get all loaded bundle IDs.
168
+ */
169
+ getLoadedBundleIds(): BundleId[];
170
+ /**
171
+ * Get the CPU-side atlas data for a bundle.
172
+ * Useful for custom renderers that need access to the raw atlas data.
173
+ *
174
+ * @param bundleId - The bundle ID
175
+ * @returns Array of CPU texture atlases
176
+ */
177
+ getBundleAtlases(bundleId: BundleId): CpuTextureAtlas[];
178
+ /**
179
+ * The atlas size used for coordinate calculations.
180
+ */
181
+ get atlasSize(): number;
182
+ }
183
+ //# sourceMappingURL=Bundles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bundles.d.ts","sourceRoot":"","sources":["../../src/textures/Bundles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,eAAe,EAEf,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAQ9B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,OAAO;;gBAKN,OAAO,GAAE,cAAmB;IAIxC;;;;;;OAMG;IACG,mBAAmB,CACvB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,QAAQ,CAAC;IAmEpB;;;;;;OAMG;IACH,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI;IAQ3E;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAItC;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAK3C;;;;;OAKG;IACH,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE;IAKnD;;;;;;OAMG;IACH,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI;IASjE;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAwCnE;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IA8BtC;;OAEG;IACH,IAAI,QAAQ,IAAI,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAEpD;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,SAAS,EAAE,CAE5B;IAED;;;;;OAKG;IACH,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,WAAW,EAAE;IAU5C;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAWxD;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IASzD;;;;;OAKG;IACH,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IActD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS;IAQ1D;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAUrC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAS5B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAYnC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO;IAIlC;;OAEG;IACH,sBAAsB,IAAI,QAAQ,EAAE;IAIpC;;OAEG;IACH,kBAAkB,IAAI,QAAQ,EAAE;IAMhC;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,eAAe,EAAE;IAQvD;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;CA0EF"}
@@ -1,2 +1,4 @@
1
+ export type { BundlesOptions } from "./Bundles";
2
+ export { Bundles } from "./Bundles";
1
3
  export type * from "./types";
2
4
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/textures/mod.ts"],"names":[],"mappings":"AAAA,mBAAmB,SAAS,CAAC"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/textures/mod.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,mBAAmB,SAAS,CAAC"}
@@ -93,7 +93,8 @@ export type TextureBundleOpts = {
93
93
  */
94
94
  cropTransparentPixels?: boolean;
95
95
  /**
96
- * Whether the bundle should be loaded automatically on registration
96
+ * Whether the bundle should be loaded automatically on registration.
97
+ * @default true
97
98
  */
98
99
  autoLoad?: boolean;
99
100
  };
@@ -119,7 +120,8 @@ export type AtlasBundleOpts = {
119
120
  */
120
121
  atlases: AtlasDef[];
121
122
  /**
122
- * Whether the bundle should be loaded automatically on registration
123
+ * Whether the bundle should be loaded automatically on registration.
124
+ * @default true
123
125
  */
124
126
  autoLoad?: boolean;
125
127
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/textures/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/textures/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG;IACxC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG;IACrC,6EAA6E;IAC7E,UAAU,EAAE,IAAI,CAAC;IACjB,iDAAiD;IACjD,YAAY,EAAE,IAAI,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB;;;;;;OAMG;IACH,QAAQ,EAAE,IAAI,CAAC;IACf;;;;;;OAMG;IACH,OAAO,EAAE,IAAI,CAAC;IACd;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,IAAI,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACnC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,UAAU,CAAC;IACpB,6CAA6C;IAC7C,UAAU,EAAE,IAAI,CAAC;IACjB,mDAAmD;IACnD,YAAY,EAAE,IAAI,CAAC;CACpB,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,QAAQ,GAChB;IACE,6FAA6F;IAC7F,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,8FAA8F;IAC9F,IAAI,EAAE,GAAG,CAAC;CACX,GACD;IACE,6FAA6F;IAC7F,GAAG,EAAE,GAAG,CAAC;IACT,8FAA8F;IAC9F,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,CAAC;AAEN,kEAAkE;AAClE,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE9B;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,EAAE,QAAQ,EAAE,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,sFAAsF;AACtF,MAAM,MAAM,UAAU,GAAG;IACvB,kFAAkF;IAClF,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,UAAU,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,mHAAmH;IACnH,gBAAgB,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bloopjs/toodle",
3
- "version": "0.0.102",
3
+ "version": "0.0.104",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
package/src/Toodle.ts CHANGED
@@ -510,7 +510,7 @@ export class Toodle {
510
510
  */
511
511
  Quad(assetId: TextureId, options: QuadOptions = {}) {
512
512
  const assetManager = options.assetManager ?? this.assets;
513
- options.idealSize ??= assetManager.getSize(assetId);
513
+ options.size ??= assetManager.getSize(assetId);
514
514
  options.shader ??= this.#defaultQuadShader();
515
515
  options.atlasCoords ??= assetManager.extra.getAtlasCoords(assetId)[0];
516
516
  options.textureId ??= assetId;
@@ -578,7 +578,7 @@ export class Toodle {
578
578
  height: originalSize.height,
579
579
  };
580
580
 
581
- options.idealSize ??= {
581
+ options.size ??= {
582
582
  width: originalSize.width,
583
583
  height: originalSize.height,
584
584
  };
@@ -612,7 +612,7 @@ export class Toodle {
612
612
 
613
613
  shapes = {
614
614
  Rect: (options: QuadOptions = {}) => {
615
- options.idealSize ??= { width: 1, height: 1 };
615
+ options.size ??= { width: 1, height: 1 };
616
616
  options.shader ??= this.#defaultQuadShader();
617
617
  options.atlasCoords ??= {
618
618
  atlasIndex: 1000,
@@ -640,18 +640,25 @@ export class Toodle {
640
640
  return quad;
641
641
  },
642
642
 
643
- Circle: (options: QuadOptions = {}) => {
644
- options.idealSize ??= { width: 1, height: 1 };
645
- options.shader ??= this.#defaultQuadShader();
646
- options.atlasCoords ??= {
647
- atlasIndex: 1001,
648
- uvOffset: { x: 0, y: 0 },
649
- uvScale: { width: 0, height: 0 },
650
- cropOffset: { x: 0, y: 0 },
651
- originalSize: { width: 1, height: 1 },
643
+ Circle: (options: CircleOptions = { radius: 50 }) => {
644
+ const radius = options.radius ?? 50;
645
+ const diameter = radius * 2;
646
+
647
+ const quadOptions: QuadOptions = {
648
+ ...options,
649
+ size: { width: diameter, height: diameter },
650
+ shader: options.shader ?? this.#defaultQuadShader(),
651
+ atlasCoords: options.atlasCoords ?? {
652
+ atlasIndex: 1001,
653
+ uvOffset: { x: 0, y: 0 },
654
+ uvScale: { width: 0, height: 0 },
655
+ cropOffset: { x: 0, y: 0 },
656
+ originalSize: { width: 1, height: 1 },
657
+ },
658
+ assetManager: this.assets,
652
659
  };
653
- options.assetManager = this.assets;
654
- const quad = new QuadNode(options, this.#matrixPool);
660
+
661
+ const quad = new QuadNode(quadOptions, this.#matrixPool);
655
662
 
656
663
  if (options?.position) {
657
664
  quad.position = options.position;
@@ -693,7 +700,7 @@ export class Toodle {
693
700
  originalSize: { width: 1, height: 1 },
694
701
  },
695
702
  shader: options.shader ?? this.#defaultQuadShader(),
696
- idealSize: { width: 1, height: 1 },
703
+ size: { width: 1, height: 1 },
697
704
  layer: options.layer,
698
705
  key: options.key,
699
706
  rotationRadians: angle,
@@ -821,6 +828,15 @@ export type ToodleOptions = {
821
828
  limits?: LimitsOptions;
822
829
  };
823
830
 
831
+ export type CircleOptions = Omit<QuadOptions, "size"> & {
832
+ /**
833
+ * The radius of the circle in pixels.
834
+ * The diameter will be radius * 2.
835
+ * @default 50
836
+ */
837
+ radius?: number;
838
+ };
839
+
824
840
  export type LineOptions = {
825
841
  /**
826
842
  * The start position of the line.
package/src/mod.ts CHANGED
@@ -20,3 +20,4 @@ export * as Textures from "./textures/mod";
20
20
  export * as Utils from "./utils/mod";
21
21
 
22
22
  export { AssetManager } from "./textures/AssetManager";
23
+ export { Bundles } from "./textures/Bundles";
@@ -57,10 +57,7 @@ export class QuadNode extends SceneNode {
57
57
  options.shader,
58
58
  "QuadNode requires a shader to be explicitly provided",
59
59
  );
60
- assert(
61
- options.idealSize,
62
- "QuadNode requires an ideal size to be explicitly provided",
63
- );
60
+ assert(options.size, "QuadNode requires a size to be explicitly provided");
64
61
 
65
62
  assert(
66
63
  options.atlasCoords,
@@ -27,7 +27,7 @@ export class SceneNode {
27
27
  #transform: Transform;
28
28
  #matrix: Mat3 = mat3.identity();
29
29
  #renderComponent: RenderComponent | null = null;
30
- #idealSize: Size | null = null;
30
+ #size: Size | null = null;
31
31
  #positionProxy: Point;
32
32
  #scaleProxy: Vec2;
33
33
 
@@ -45,7 +45,7 @@ export class SceneNode {
45
45
  this.#transform = {
46
46
  position: opts?.position ?? { x: 0, y: 0 },
47
47
  scale: { x: 1, y: 1 },
48
- size: opts?.idealSize ?? { width: 1, height: 1 },
48
+ size: opts?.size ?? { width: 1, height: 1 },
49
49
  rotation: opts?.rotationRadians ?? 0,
50
50
  };
51
51
  if (opts?.scale) this.scale = opts.scale;
@@ -56,7 +56,7 @@ export class SceneNode {
56
56
  this.#layer = opts?.layer ?? null;
57
57
  this.#isActive = opts?.isActive ?? true;
58
58
  this.label = opts?.label ?? undefined;
59
- this.#idealSize = opts?.idealSize ?? null;
59
+ this.#size = opts?.size ?? null;
60
60
  this.#key = opts?.key ?? null;
61
61
 
62
62
  for (const kid of opts?.kids ?? []) {
@@ -246,17 +246,16 @@ export class SceneNode {
246
246
  this.setDirty();
247
247
  }
248
248
 
249
- set idealSize(value: Size | null) {
250
- this.#idealSize = value;
251
- this.setDirty();
252
- }
253
-
254
249
  /**
255
250
  * The size of the node. See https://toodle.gg/f849595b3ed13fc956fc1459a5cb5f0228f9d259/examples/quad-size-scale.html
256
251
  */
252
+ set size(value: Size | null) {
253
+ this.#size = value;
254
+ this.setDirty();
255
+ }
257
256
 
258
257
  get size() {
259
- return this.#idealSize;
258
+ return this.#size;
260
259
  }
261
260
 
262
261
  /**
@@ -264,13 +263,13 @@ export class SceneNode {
264
263
  * If the node has no defined size, the aspect ratio will be 1.
265
264
  */
266
265
  get aspectRatio() {
267
- if (!this.#idealSize) {
266
+ if (!this.#size) {
268
267
  console.warn(
269
268
  "Attempted to get aspect ratio of a node with no ideal size",
270
269
  );
271
270
  return 1;
272
271
  }
273
- return this.#idealSize.width / this.#idealSize.height;
272
+ return this.#size.width / this.#size.height;
274
273
  }
275
274
 
276
275
  /**
@@ -592,7 +591,7 @@ export type NodeOptions = {
592
591
  /** The scale for the node. */
593
592
  scale?: Vec2 | number;
594
593
  /** The desired size for the node. */
595
- idealSize?: Size;
594
+ size?: Size;
596
595
  /** The active state for the node. */
597
596
  isActive?: boolean;
598
597
  /** The kids for the node. */
@@ -23,8 +23,8 @@ export class TextNode extends SceneNode {
23
23
 
24
24
  const em2px = shader.font.lineHeight / (opts.fontSize ?? DEFAULT_FONT_SIZE);
25
25
 
26
- if (!opts.shrinkToFit && !opts.idealSize) {
27
- opts.idealSize = { width: width / em2px, height: height / em2px };
26
+ if (!opts.shrinkToFit && !opts.size) {
27
+ opts.size = { width: width / em2px, height: height / em2px };
28
28
  }
29
29
 
30
30
  super({