kei-lisp-plugin-graphics 1.1.0 → 3.0.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/README.md +40 -12
- package/dist/index.cjs +698 -270
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +50 -34
- package/dist/index.d.ts +50 -34
- package/dist/index.js +698 -270
- package/dist/index.js.map +1 -1
- package/package.json +23 -11
package/dist/index.d.ts
CHANGED
|
@@ -5,23 +5,17 @@ import { Cons, InterpretedSymbol, KeiLispPlugin, LispValue, PluginContext } from
|
|
|
5
5
|
* @class
|
|
6
6
|
* @classdesc Canvas2D drawing plugin for the kei-lisp interpreter. Implements
|
|
7
7
|
* the `KeiLispPlugin` contract (`name` / `has` / `apply`) and
|
|
8
|
-
* exposes
|
|
8
|
+
* exposes 75 `g…` Lisp functions that proxy to a 2D rendering
|
|
9
9
|
* context.
|
|
10
10
|
* @author Keisuke Ikeda
|
|
11
|
-
* @this {GraphicsPlugin}
|
|
12
11
|
*/
|
|
13
|
-
declare class GraphicsPlugin
|
|
12
|
+
declare class GraphicsPlugin implements KeiLispPlugin {
|
|
14
13
|
#private;
|
|
15
14
|
/**
|
|
16
|
-
*
|
|
17
|
-
* the
|
|
15
|
+
* Lists every Lisp function name this plugin registers.
|
|
16
|
+
* @return the sorted `g…` function names
|
|
18
17
|
*/
|
|
19
|
-
static
|
|
20
|
-
/**
|
|
21
|
-
* Builds the dispatch table.
|
|
22
|
-
* @return the dispatch table
|
|
23
|
-
*/
|
|
24
|
-
static setup(): Map<InterpretedSymbol, string>;
|
|
18
|
+
static functionNames(): string[];
|
|
25
19
|
/**
|
|
26
20
|
* Plugin identifier, used for diagnostics.
|
|
27
21
|
*/
|
|
@@ -49,28 +43,10 @@ declare class GraphicsPlugin extends Object implements KeiLispPlugin {
|
|
|
49
43
|
* @return the method's result, or `Cons.nil` if dispatch fails
|
|
50
44
|
*/
|
|
51
45
|
apply(aSymbol: InterpretedSymbol, arguments_: Cons, _context: PluginContext): LispValue;
|
|
52
|
-
/**
|
|
53
|
-
* Resolves the procedure name and invokes the matching method.
|
|
54
|
-
* @param procedure - the Lisp symbol
|
|
55
|
-
* @param arguments_ - the evaluated argument list
|
|
56
|
-
* @return the method's result, or `Cons.nil` if not registered
|
|
57
|
-
*/
|
|
58
|
-
selectProcedure(procedure: InterpretedSymbol, arguments_: Cons): LispValue;
|
|
59
|
-
/**
|
|
60
|
-
* Looks up and invokes the JS method that implements the given Lisp symbol.
|
|
61
|
-
* Throws `TypeError` when the dispatch table points to a method that does
|
|
62
|
-
* not exist on the instance — this matches the legacy behavior, where the
|
|
63
|
-
* Ramda `R.invoker(1, methodName)(args, this)` call would surface the same
|
|
64
|
-
* error by attempting to call `undefined`.
|
|
65
|
-
* @param procedure - the Lisp symbol
|
|
66
|
-
* @param arguments_ - the evaluated argument list
|
|
67
|
-
* @return the method's result
|
|
68
|
-
*/
|
|
69
|
-
buildInFunction(procedure: InterpretedSymbol, arguments_: Cons): LispValue;
|
|
70
46
|
/**
|
|
71
47
|
* Checks whether the canvas exposes a usable 2D context, and narrows
|
|
72
48
|
* `this.ctx` to non-null for the caller when it returns true.
|
|
73
|
-
* @return type predicate — true when
|
|
49
|
+
* @return type predicate — true when context is non-null
|
|
74
50
|
*/
|
|
75
51
|
checkSupport(): this is GraphicsPlugin & {
|
|
76
52
|
ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D;
|
|
@@ -79,7 +55,7 @@ declare class GraphicsPlugin extends Object implements KeiLispPlugin {
|
|
|
79
55
|
gArc(arguments_: Cons): LispValue;
|
|
80
56
|
gArcTo(arguments_: Cons): LispValue;
|
|
81
57
|
gBezCurveTo(arguments_: Cons): LispValue;
|
|
82
|
-
gClear(): LispValue;
|
|
58
|
+
gClear(arguments_: Cons): LispValue;
|
|
83
59
|
gClose(): LispValue;
|
|
84
60
|
gColor(arguments_: Cons): LispValue;
|
|
85
61
|
gFill(): LispValue;
|
|
@@ -97,8 +73,18 @@ declare class GraphicsPlugin extends Object implements KeiLispPlugin {
|
|
|
97
73
|
gOpen(): LispValue;
|
|
98
74
|
gPattern(arguments_: Cons): LispValue;
|
|
99
75
|
gQuadCurveTo(arguments_: Cons): LispValue;
|
|
100
|
-
gSaveJpeg(): LispValue;
|
|
101
|
-
gSavePng(): LispValue;
|
|
76
|
+
gSaveJpeg(arguments_: Cons): LispValue;
|
|
77
|
+
gSavePng(arguments_: Cons): LispValue;
|
|
78
|
+
/**
|
|
79
|
+
* Shared implementation of `gsave-jpeg` / `gsave-png`. With no argument it
|
|
80
|
+
* triggers a browser download; with a single string argument it writes the
|
|
81
|
+
* encoded image to that file path on Node.js.
|
|
82
|
+
* @param arguments_ - the evaluated argument list (empty, or one path string)
|
|
83
|
+
* @param mimeType - the image MIME type to encode
|
|
84
|
+
* @param label - the format name used in diagnostics ("jpeg" / "png")
|
|
85
|
+
* @return `t` on success, `Cons.nil` otherwise
|
|
86
|
+
*/
|
|
87
|
+
saveCanvas(arguments_: Cons, mimeType: string, label: string): LispValue;
|
|
102
88
|
gScale(arguments_: Cons): LispValue;
|
|
103
89
|
gShadowBlur(arguments_: Cons): LispValue;
|
|
104
90
|
gShadowColor(arguments_: Cons): LispValue;
|
|
@@ -121,7 +107,7 @@ declare class GraphicsPlugin extends Object implements KeiLispPlugin {
|
|
|
121
107
|
/**
|
|
122
108
|
* Pushes the current drawing state (styles, transform, clip) onto the
|
|
123
109
|
* context's state stack. Pairs with `gRestore` to let Lisp callers manage
|
|
124
|
-
* state explicitly. Replaces the legacy per-method `
|
|
110
|
+
* state explicitly. Replaces the legacy per-method `context.save()` calls, which
|
|
125
111
|
* pushed state on every draw with no matching `restore()` and grew the stack
|
|
126
112
|
* unbounded.
|
|
127
113
|
* @return `t` on success, `Cons.nil` otherwise
|
|
@@ -133,6 +119,36 @@ declare class GraphicsPlugin extends Object implements KeiLispPlugin {
|
|
|
133
119
|
* @return `t` on success, `Cons.nil` otherwise
|
|
134
120
|
*/
|
|
135
121
|
gRestore(): LispValue;
|
|
122
|
+
gEllipse(arguments_: Cons): LispValue;
|
|
123
|
+
gRoundRect(arguments_: Cons): LispValue;
|
|
124
|
+
gLineDash(arguments_: Cons): LispValue;
|
|
125
|
+
gLineDashOffset(arguments_: Cons): LispValue;
|
|
126
|
+
gMiterLimit(arguments_: Cons): LispValue;
|
|
127
|
+
gClip(): LispValue;
|
|
128
|
+
gIsPointInPath(arguments_: Cons): LispValue;
|
|
129
|
+
gIsPointInStroke(arguments_: Cons): LispValue;
|
|
130
|
+
gTransform(arguments_: Cons): LispValue;
|
|
131
|
+
gSetTransform(arguments_: Cons): LispValue;
|
|
132
|
+
gResetTransform(): LispValue;
|
|
133
|
+
gComposite(arguments_: Cons): LispValue;
|
|
134
|
+
gFilter(arguments_: Cons): LispValue;
|
|
135
|
+
gImageSmoothing(arguments_: Cons): LispValue;
|
|
136
|
+
gMeasureText(arguments_: Cons): LispValue;
|
|
137
|
+
gLetterSpacing(arguments_: Cons): LispValue;
|
|
138
|
+
gWordSpacing(arguments_: Cons): LispValue;
|
|
139
|
+
gFontKerning(arguments_: Cons): LispValue;
|
|
140
|
+
gFontStretch(arguments_: Cons): LispValue;
|
|
141
|
+
gFontVariant(arguments_: Cons): LispValue;
|
|
142
|
+
gTextRendering(arguments_: Cons): LispValue;
|
|
143
|
+
gClearRect(arguments_: Cons): LispValue;
|
|
144
|
+
gReset(): LispValue;
|
|
145
|
+
gWidth(): LispValue;
|
|
146
|
+
gHeight(): LispValue;
|
|
147
|
+
gPixel(arguments_: Cons): LispValue;
|
|
148
|
+
gSetPixel(arguments_: Cons): LispValue;
|
|
149
|
+
gLinearGradient(arguments_: Cons): LispValue;
|
|
150
|
+
gRadialGradient(arguments_: Cons): LispValue;
|
|
151
|
+
gConicGradient(arguments_: Cons): LispValue;
|
|
136
152
|
/**
|
|
137
153
|
* Parses a color spec from the head of the argument Cons. Accepts
|
|
138
154
|
* (1 string), (3 numbers — rgb), or (4 numbers — rgba); falls back to
|