@oh-just-another/renderer-core 0.60.1 → 0.61.0
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/CHANGELOG.md +42 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/caches/edge-cache-bitmap.d.ts.map +1 -0
- package/dist/caches/edge-cache-bitmap.js.map +1 -0
- package/dist/caches/edge-cache.d.ts.map +1 -0
- package/dist/caches/edge-cache.js.map +1 -0
- package/dist/caches/layer-cache-composite.d.ts.map +1 -0
- package/dist/caches/layer-cache-composite.js.map +1 -0
- package/dist/caches/lru-cache.d.ts.map +1 -0
- package/dist/caches/lru-cache.js.map +1 -0
- package/dist/caches/shape-cache-bitmap.d.ts.map +1 -0
- package/dist/caches/shape-cache-bitmap.js.map +1 -0
- package/dist/caches/shape-cache.d.ts.map +1 -0
- package/dist/caches/shape-cache.js.map +1 -0
- package/dist/caches/tile-renderer.d.ts.map +1 -0
- package/dist/caches/tile-renderer.js.map +1 -0
- package/dist/constants.d.ts +95 -9
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +98 -11
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +40 -37
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -21
- package/dist/index.js.map +1 -1
- package/dist/raster/animation-adapter.d.ts.map +1 -0
- package/dist/raster/animation-adapter.js.map +1 -0
- package/dist/raster/image-source-guard.d.ts +2 -0
- package/dist/raster/image-source-guard.d.ts.map +1 -0
- package/dist/raster/image-source-guard.js +44 -0
- package/dist/raster/image-source-guard.js.map +1 -0
- package/dist/raster/js-rasterizer.d.ts.map +1 -0
- package/dist/raster/js-rasterizer.js.map +1 -0
- package/dist/raster/rasterizer.d.ts.map +1 -0
- package/dist/raster/rasterizer.js.map +1 -0
- package/dist/raster/wasm-bytes.d.ts.map +1 -0
- package/dist/raster/wasm-bytes.js.map +1 -0
- package/dist/rendering/built-in-renderers.d.ts +85 -0
- package/dist/rendering/built-in-renderers.d.ts.map +1 -0
- package/dist/rendering/built-in-renderers.js +1087 -0
- package/dist/rendering/built-in-renderers.js.map +1 -0
- package/dist/{edge-renderer.d.ts → rendering/edge-renderer.d.ts} +3 -3
- package/dist/rendering/edge-renderer.d.ts.map +1 -0
- package/dist/{edge-renderer.js → rendering/edge-renderer.js} +4 -4
- package/dist/rendering/edge-renderer.js.map +1 -0
- package/dist/{grid-renderer.d.ts → rendering/grid-renderer.d.ts} +1 -1
- package/dist/rendering/grid-renderer.d.ts.map +1 -0
- package/dist/{grid-renderer.js → rendering/grid-renderer.js} +1 -1
- package/dist/rendering/grid-renderer.js.map +1 -0
- package/dist/rendering/lod.d.ts +26 -0
- package/dist/rendering/lod.d.ts.map +1 -0
- package/dist/rendering/lod.js +5 -0
- package/dist/rendering/lod.js.map +1 -0
- package/dist/{scene-renderer.d.ts → rendering/scene-renderer.d.ts} +21 -21
- package/dist/rendering/scene-renderer.d.ts.map +1 -0
- package/dist/{scene-renderer.js → rendering/scene-renderer.js} +26 -9
- package/dist/rendering/scene-renderer.js.map +1 -0
- package/dist/{shape-renderer.d.ts → rendering/shape-renderer.d.ts} +32 -2
- package/dist/rendering/shape-renderer.d.ts.map +1 -0
- package/dist/rendering/shape-renderer.js.map +1 -0
- package/dist/targets/dim-target.d.ts.map +1 -0
- package/dist/targets/dim-target.js.map +1 -0
- package/dist/targets/layers.d.ts.map +1 -0
- package/dist/targets/layers.js.map +1 -0
- package/dist/{render-target.d.ts → targets/render-target.d.ts} +8 -0
- package/dist/targets/render-target.d.ts.map +1 -0
- package/dist/targets/render-target.js.map +1 -0
- package/dist/{text-editing.d.ts → text/text-editing.d.ts} +22 -1
- package/dist/text/text-editing.d.ts.map +1 -0
- package/dist/{text-editing.js → text/text-editing.js} +53 -12
- package/dist/text/text-editing.js.map +1 -0
- package/dist/{text-layout.d.ts → text/text-layout.d.ts} +1 -1
- package/dist/text/text-layout.d.ts.map +1 -0
- package/dist/text/text-layout.js.map +1 -0
- package/dist/{text-shaper.d.ts → text/text-shaper.d.ts} +9 -1
- package/dist/text/text-shaper.d.ts.map +1 -0
- package/dist/text/text-shaper.js +32 -0
- package/dist/text/text-shaper.js.map +1 -0
- package/package.json +3 -3
- package/dist/animation-adapter.d.ts.map +0 -1
- package/dist/animation-adapter.js.map +0 -1
- package/dist/built-in-renderers.d.ts +0 -25
- package/dist/built-in-renderers.d.ts.map +0 -1
- package/dist/built-in-renderers.js +0 -601
- package/dist/built-in-renderers.js.map +0 -1
- package/dist/dim-target.d.ts.map +0 -1
- package/dist/dim-target.js.map +0 -1
- package/dist/edge-cache-bitmap.d.ts.map +0 -1
- package/dist/edge-cache-bitmap.js.map +0 -1
- package/dist/edge-cache.d.ts.map +0 -1
- package/dist/edge-cache.js.map +0 -1
- package/dist/edge-renderer.d.ts.map +0 -1
- package/dist/edge-renderer.js.map +0 -1
- package/dist/grid-renderer.d.ts.map +0 -1
- package/dist/grid-renderer.js.map +0 -1
- package/dist/js-rasterizer.d.ts.map +0 -1
- package/dist/js-rasterizer.js.map +0 -1
- package/dist/layer-cache-composite.d.ts.map +0 -1
- package/dist/layer-cache-composite.js.map +0 -1
- package/dist/layers.d.ts.map +0 -1
- package/dist/layers.js.map +0 -1
- package/dist/lru-cache.d.ts.map +0 -1
- package/dist/lru-cache.js.map +0 -1
- package/dist/rasterizer.d.ts.map +0 -1
- package/dist/rasterizer.js.map +0 -1
- package/dist/render-target.d.ts.map +0 -1
- package/dist/render-target.js.map +0 -1
- package/dist/scene-renderer.d.ts.map +0 -1
- package/dist/scene-renderer.js.map +0 -1
- package/dist/shape-cache-bitmap.d.ts.map +0 -1
- package/dist/shape-cache-bitmap.js.map +0 -1
- package/dist/shape-cache.d.ts.map +0 -1
- package/dist/shape-cache.js.map +0 -1
- package/dist/shape-renderer.d.ts.map +0 -1
- package/dist/shape-renderer.js.map +0 -1
- package/dist/text-editing.d.ts.map +0 -1
- package/dist/text-editing.js.map +0 -1
- package/dist/text-layout.d.ts.map +0 -1
- package/dist/text-layout.js.map +0 -1
- package/dist/text-shaper.d.ts.map +0 -1
- package/dist/text-shaper.js +0 -16
- package/dist/text-shaper.js.map +0 -1
- package/dist/tile-renderer.d.ts.map +0 -1
- package/dist/tile-renderer.js.map +0 -1
- package/dist/wasm-bytes.d.ts.map +0 -1
- package/dist/wasm-bytes.js.map +0 -1
- /package/dist/{edge-cache-bitmap.d.ts → caches/edge-cache-bitmap.d.ts} +0 -0
- /package/dist/{edge-cache-bitmap.js → caches/edge-cache-bitmap.js} +0 -0
- /package/dist/{edge-cache.d.ts → caches/edge-cache.d.ts} +0 -0
- /package/dist/{edge-cache.js → caches/edge-cache.js} +0 -0
- /package/dist/{layer-cache-composite.d.ts → caches/layer-cache-composite.d.ts} +0 -0
- /package/dist/{layer-cache-composite.js → caches/layer-cache-composite.js} +0 -0
- /package/dist/{lru-cache.d.ts → caches/lru-cache.d.ts} +0 -0
- /package/dist/{lru-cache.js → caches/lru-cache.js} +0 -0
- /package/dist/{shape-cache-bitmap.d.ts → caches/shape-cache-bitmap.d.ts} +0 -0
- /package/dist/{shape-cache-bitmap.js → caches/shape-cache-bitmap.js} +0 -0
- /package/dist/{shape-cache.d.ts → caches/shape-cache.d.ts} +0 -0
- /package/dist/{shape-cache.js → caches/shape-cache.js} +0 -0
- /package/dist/{tile-renderer.d.ts → caches/tile-renderer.d.ts} +0 -0
- /package/dist/{tile-renderer.js → caches/tile-renderer.js} +0 -0
- /package/dist/{animation-adapter.d.ts → raster/animation-adapter.d.ts} +0 -0
- /package/dist/{animation-adapter.js → raster/animation-adapter.js} +0 -0
- /package/dist/{js-rasterizer.d.ts → raster/js-rasterizer.d.ts} +0 -0
- /package/dist/{js-rasterizer.js → raster/js-rasterizer.js} +0 -0
- /package/dist/{rasterizer.d.ts → raster/rasterizer.d.ts} +0 -0
- /package/dist/{rasterizer.js → raster/rasterizer.js} +0 -0
- /package/dist/{wasm-bytes.d.ts → raster/wasm-bytes.d.ts} +0 -0
- /package/dist/{wasm-bytes.js → raster/wasm-bytes.js} +0 -0
- /package/dist/{shape-renderer.js → rendering/shape-renderer.js} +0 -0
- /package/dist/{dim-target.d.ts → targets/dim-target.d.ts} +0 -0
- /package/dist/{dim-target.js → targets/dim-target.js} +0 -0
- /package/dist/{layers.d.ts → targets/layers.d.ts} +0 -0
- /package/dist/{layers.js → targets/layers.js} +0 -0
- /package/dist/{render-target.js → targets/render-target.js} +0 -0
- /package/dist/{text-layout.js → text/text-layout.js} +0 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { type ElementBase, type StickyElement, type ImageMask, type TextElement } from "@oh-just-another/scene";
|
|
2
|
+
import type { RenderTarget } from "../targets/render-target.js";
|
|
3
|
+
import { type LodOptions } from "./lod.js";
|
|
4
|
+
/**
|
|
5
|
+
* Build a rounded-rect path via the standard "4 corners with
|
|
6
|
+
* quadratic Bezier arcs" pattern — same shape every backend
|
|
7
|
+
* understands without a special `roundRect()` API:
|
|
8
|
+
*
|
|
9
|
+
* ┌───arc───┐
|
|
10
|
+
* │ │
|
|
11
|
+
* arc arc
|
|
12
|
+
* │ │
|
|
13
|
+
* └───arc───┘
|
|
14
|
+
*
|
|
15
|
+
* Quadratic control points sit at each corner of the rect; the
|
|
16
|
+
* curve goes from `r` units along one side to `r` units along the
|
|
17
|
+
* adjacent side.
|
|
18
|
+
*
|
|
19
|
+
* Radius `r` is pre-clamped by `getCornerRadius` to half the
|
|
20
|
+
* smaller side, so no overlap-handling is needed here.
|
|
21
|
+
*/
|
|
22
|
+
export declare const buildRoundedRectPath: (target: RenderTarget, x: number, y: number, w: number, h: number, r: number) => void;
|
|
23
|
+
interface StickyReactionRect {
|
|
24
|
+
readonly x: number;
|
|
25
|
+
readonly y: number;
|
|
26
|
+
readonly width: number;
|
|
27
|
+
readonly height: number;
|
|
28
|
+
}
|
|
29
|
+
interface StickyReactionPill extends StickyReactionRect {
|
|
30
|
+
readonly glyph: string;
|
|
31
|
+
readonly label: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Layout of a sticky's reaction pills + the "+" add button under its
|
|
35
|
+
* bottom edge, in the shape's LOCAL space. Pills flow left-to-right and
|
|
36
|
+
* WRAP onto new rows (inline-block style) when they'd overrun the card
|
|
37
|
+
* width — every reaction is always laid out, none are dropped. ONE
|
|
38
|
+
* implementation shared by the canvas renderer and the DOM click-zone
|
|
39
|
+
* overlay so the hit areas always match the painted pills.
|
|
40
|
+
*
|
|
41
|
+
* `measure` must be bound to `STICKY_REACTION_FONT_SIZE`-sized system-ui
|
|
42
|
+
* text (base px); `zoom` is the current view scale — pill sizes are
|
|
43
|
+
* divided by it so they stay visually constant (see
|
|
44
|
+
* {@link STICKY_REACTION_MIN_ZOOM} for the low-zoom clamp).
|
|
45
|
+
*/
|
|
46
|
+
export declare const stickyReactionLayout: (shape: StickyElement, measure: (s: string) => number, zoom?: number) => {
|
|
47
|
+
readonly pills: readonly StickyReactionPill[];
|
|
48
|
+
readonly add: StickyReactionRect;
|
|
49
|
+
};
|
|
50
|
+
/** Pills half of {@link stickyReactionLayout} (click-zone overlay helper). */
|
|
51
|
+
export declare const stickyReactionPillRects: (shape: StickyElement, measure: (s: string) => number, zoom?: number) => readonly StickyReactionPill[];
|
|
52
|
+
/** "+" button half of {@link stickyReactionLayout} (click-zone overlay helper). */
|
|
53
|
+
export declare const stickyReactionAddRect: (shape: StickyElement, measure: (s: string) => number, zoom?: number) => StickyReactionRect;
|
|
54
|
+
export declare const shapeLabelLayout: (shape: ElementBase, measure: (s: string) => number) => {
|
|
55
|
+
readonly synthetic: TextElement;
|
|
56
|
+
readonly offsetX: number;
|
|
57
|
+
readonly offsetY: number;
|
|
58
|
+
/** Visible window in layout-space Y (lines outside are not painted). */
|
|
59
|
+
readonly windowTop: number;
|
|
60
|
+
readonly windowBottom: number;
|
|
61
|
+
} | null;
|
|
62
|
+
/**
|
|
63
|
+
* Draw a shape's embedded label inside its local bounds. Reuses the text
|
|
64
|
+
* renderer wholesale (wrap, runs, lists, highlight); vertical alignment
|
|
65
|
+
* places the whole block, `textAlign` centres lines within the padded
|
|
66
|
+
* width. Called by the scene renderer after the shape body.
|
|
67
|
+
*/
|
|
68
|
+
export declare const drawShapeLabel: (shape: ElementBase, target: RenderTarget,
|
|
69
|
+
/** Readable-text LOD: skip the label when its resolved font size is below the floor on screen. */
|
|
70
|
+
lod?: {
|
|
71
|
+
readonly zoom: number;
|
|
72
|
+
readonly lod: LodOptions;
|
|
73
|
+
}) => void;
|
|
74
|
+
/**
|
|
75
|
+
* Build an {@link ImageMask}'s path in the shape's LOCAL space
|
|
76
|
+
* (normalised mask coordinates × the element box). Exported so overlays
|
|
77
|
+
* (crop/mask preview) can trace the same outline the renderer clips by.
|
|
78
|
+
*/
|
|
79
|
+
export declare const buildImageMaskPath: (target: RenderTarget, mask: ImageMask, width: number, height: number) => void;
|
|
80
|
+
/**
|
|
81
|
+
* Registers renderers for every `BuiltinElement` type.
|
|
82
|
+
*/
|
|
83
|
+
export declare const installBuiltinRenderers: () => void;
|
|
84
|
+
export {};
|
|
85
|
+
//# sourceMappingURL=built-in-renderers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"built-in-renderers.d.ts","sourceRoot":"","sources":["../../src/rendering/built-in-renderers.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,WAAW,EAEhB,KAAK,aAAa,EAMlB,KAAK,SAAS,EAKd,KAAK,WAAW,EASjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAiI3D;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,YAAY,EACpB,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,KACR,IAWF,CAAC;AAsHF,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,kBAAmB,SAAQ,kBAAkB;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,aAAa,EACpB,SAAS,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAC9B,aAAQ,KACP;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAA;CAyBnF,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,GAClC,OAAO,aAAa,EACpB,SAAS,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAC9B,aAAQ,KACP,SAAS,kBAAkB,EAAsD,CAAC;AAErF,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,GAChC,OAAO,aAAa,EACpB,SAAS,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAC9B,aAAQ,KACP,kBAAoE,CAAC;AAgMxE,eAAO,MAAM,gBAAgB,GAC3B,OAAO,WAAW,EAClB,SAAS,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,KAC7B;IACD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B,GAAG,IAqFH,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,WAAW,EAClB,QAAQ,YAAY;AACpB,kGAAkG;AAClG,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;CAAE,KACxD,IAmBF,CAAC;AAoWF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,YAAY,EACpB,MAAM,SAAS,EACf,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,IAuBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAO,IAoC1C,CAAC"}
|