rapid-render 1.0.27 → 1.0.29

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/README.md CHANGED
@@ -103,7 +103,7 @@ rapid.drawSprite(ui);
103
103
 
104
104
  ## Reuse MatrixStack Transforms
105
105
 
106
- `save()` returns `parent`, `local`, and `world` matrix IDs. Saved world IDs can be used with `customMatrix` within the current frame. Use `retainMatrix()` to cache transforms across frames and reuse them with `save(cached)`:
106
+ `save()` returns `parent`, `local`, and `world` matrix IDs. Saved world IDs can be used with `customMatrix` within the current frame. Use `retainMatrix()` to cache transforms across frames and reuse them with `save(cached)` or `cached.world`:
107
107
 
108
108
  ```ts
109
109
  const stack = rapid.matrixStack;
@@ -119,6 +119,7 @@ function drawFrame() {
119
119
  stack.save(cached);
120
120
  rapid.drawSprite({ texture });
121
121
  stack.restore();
122
+ rapid.drawSprite({ texture, customMatrix: cached.world });
122
123
  rapid.flush();
123
124
  }
124
125
  ```
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './webgl/glshader';
5
5
  export * from './math';
6
6
  export * from './extensions/particle';
7
7
  export * from './extensions/light';
8
- export * from './line';
9
8
  export * from './draw';
9
+ export * from './line';
10
10
  export * from './viewport';
11
+ export * from './matrix-engine';
@@ -20,6 +20,7 @@ export interface ITransformOptions {
20
20
  * Matrices are stored flat in a dynamic Float32Array to improve memory locality and cache performance.
21
21
  */
22
22
  export declare class MatrixStore {
23
+ private readonly transformValues;
23
24
  /** Number of matrix slots created, including released slots available for reuse. */
24
25
  matrixCount: number;
25
26
  /** The dynamic buffer used to hold matrix data. */
@@ -212,6 +213,8 @@ export declare class MatrixStore {
212
213
  multiplyAffine(indexIn: number, indexOut: number, a: number, b: number, c: number, dValue: number, tx: number, ty: number): void;
213
214
  clampBounds(index: number, viewWidth: number, viewHeight: number, limitLeft?: number, limitRight?: number, limitTop?: number, limitBottom?: number): void;
214
215
  applyTransform(transform: ITransformOptions, width?: number, height?: number): number[];
216
+ /** Numeric results reuse an internal array; consume them before the next call. */
217
+ applyTransform(x: number, y: number, scaleX?: number, scaleY?: number, rotation?: number, originX?: number, originY?: number, width?: number, height?: number, offsetX?: number, offsetY?: number): number[];
215
218
  }
216
219
  export interface MatrixSaveState {
217
220
  world: number;
@@ -365,4 +368,5 @@ export declare class MatrixStack {
365
368
  y: number;
366
369
  };
367
370
  applyTransform(transform: ITransformOptions, width?: number, height?: number, customMatrix?: number, worldMatrix?: number, localMatrix?: number): void;
371
+ applyTransform(x: number, y: number, scaleX?: number, scaleY?: number, rotation?: number, originX?: number, originY?: number, width?: number, height?: number, offsetX?: number, offsetY?: number, customMatrix?: number, worldMatrix?: number, localMatrix?: number): void;
368
372
  }