Skip to content

Commit d16719c

Browse files
committed
chore: updates
1 parent 2753ed2 commit d16719c

File tree

16 files changed

+1554
-349
lines changed

16 files changed

+1554
-349
lines changed

crates/canvas-2d/src/context/text_styles/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,6 @@ impl Context {
102102
}
103103

104104
pub fn get_letter_spacing(&self) -> &str {
105-
return self.state.letter_spacing_value.as_str();
105+
self.state.letter_spacing_value.as_str()
106106
}
107107
}

crates/canvas-c/src/c2d/paint/mod.rs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
use std::ffi::CStr;
2-
use std::os::raw::c_char;
2+
use std::os::raw::{c_char, c_float};
33
use std::ptr;
44

55
use canvas_2d::utils::image::from_image_slice;
66

77
use crate::c2d::context::CanvasRenderingContext2D;
88

99
mod gradient;
10+
pub use gradient::*;
1011
mod pattern;
1112

13+
pub use pattern::*;
14+
1215
#[derive(Clone)]
1316
pub struct PaintStyle(pub(crate) canvas_2d::context::fill_and_stroke_styles::paint::PaintStyle);
1417

@@ -38,6 +41,16 @@ impl PaintStyle {
3841
}
3942
}
4043
}
44+
45+
46+
pub fn add_color_stop(&mut self, offset: c_float, color: &str) {
47+
match &mut self.0 {
48+
canvas_2d::context::fill_and_stroke_styles::paint::PaintStyle::Gradient(gradient) => {
49+
gradient.add_color_stop_str(offset, color.as_ref())
50+
}
51+
_ => {}
52+
}
53+
}
4154
}
4255

4356
#[no_mangle]
1.57 KB
Loading
278 Bytes
Loading
6.85 KB
Loading

napi/canvas-napi/index.d.ts

Lines changed: 83 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ export declare class WebGLRenderingContext {
1515
toDataURL(format: string, encoderOptions?: number | undefined | null): string;
1616
get COLOR_BUFFER_BIT(): number;
1717
}
18-
export type JSPath2D = Path2D;
1918
export declare class Path2D {
2019
constructor(data?: Path2D | string | undefined | null);
2120
addPath(path: Path2D): void;
@@ -32,57 +31,111 @@ export declare class Path2D {
3231
trim(start: number, end: number): void;
3332
toSvg(): string;
3433
}
35-
export type JSCanvasRenderingContext2D = CanvasRenderingContext2D;
34+
export declare class CanvasPattern {}
35+
export declare class CanvasGradient {
36+
addColorStop(offset: number, color: string): void;
37+
}
38+
export declare class ImageData {
39+
constructor(widthOrImageData: number | Uint8ClampedArray, height?: number | undefined | null, settingsOrHeight?: object | number | undefined | null);
40+
get width(): number;
41+
get height(): number;
42+
get data(): Buffer;
43+
}
3644
export declare class CanvasRenderingContext2D {
37-
static withView(view: number, width: number, height: number, density: number, alpha: boolean, fontColor: number, ppi: number, direction: number): JsCanvasRenderingContext2D;
38-
static withCpu(width: number, height: number, density: number, alpha: boolean, fontColor: number, ppi: number, direction: number): JsCanvasRenderingContext2D;
39-
arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean | undefined | null): void;
40-
beginPath(): void;
41-
render(): void;
42-
fill(path?: Path2D | undefined | null, rule?: string | undefined | null): void;
43-
fillText(text: string, x: number, y: number, maxWidth?: number | undefined | null): void;
45+
static withView(view: number, width: number, height: number, density: number, alpha: boolean, fontColor: number, ppi: number, direction: number): CanvasRenderingContext2D;
46+
static withCpu(width: number, height: number, density: number, alpha: boolean, fontColor: number, ppi: number, direction: number): CanvasRenderingContext2D;
47+
get direction(): string;
48+
set direction(direction: string);
49+
get fillStyle(): unknown;
50+
set fillStyle(style: string | CanvasPattern | CanvasGradient);
51+
get filter(): string;
52+
set filter(value: string);
53+
get font(): string;
54+
set font(value: string);
55+
get fontKerning(): string;
56+
set fontKerning(value: string);
57+
get fontStretch(): string;
58+
set fontStretch(value: string);
59+
get fontVariantCaps(): string;
60+
set fontVariantCaps(value: string);
61+
get globalAlpha(): number;
62+
set globalAlpha(alpha: number);
63+
get globalCompositeOperation(): string;
64+
set globalCompositeOperation(operation: string);
65+
get imageSmoothingEnabled(): boolean;
66+
set imageSmoothingEnabled(enabled: boolean);
67+
get imageSmoothingQuality(): string;
68+
set imageSmoothingQuality(quality: number | string);
69+
get letterSpacing(): string;
70+
set letterSpacing(spacing: string);
71+
get lineCap(): string;
72+
set lineCap(cap: string);
73+
get lineDashOffset(): number;
74+
set lineDashOffset(offset: number);
75+
get lineJoin(): string;
76+
set lineJoin(join: string);
77+
get lineWidth(): number;
78+
set lineWidth(width: number);
79+
get miterLimit(): number;
80+
set miterLimit(limit: number);
81+
get shadowBlur(): number;
82+
set shadowBlur(blur: number);
4483
get shadowColor(): string;
4584
set shadowColor(color: string);
4685
get shadowOffsetX(): number;
4786
set shadowOffsetX(x: number);
4887
get shadowOffsetY(): number;
4988
set shadowOffsetY(y: number);
50-
get lineWidth(): number;
51-
set lineWidth(width: number);
52-
get globalAlpha(): number;
53-
set globalAlpha(alpha: number);
54-
get direction(): string;
55-
set direction(direction: string);
56-
get imageSmoothingEnabled(): boolean;
57-
set imageSmoothingEnabled(enabled: boolean);
58-
get fillStyle(): unknown;
59-
set fillStyle(style: string | CanvasPattern | CanvasGradient);
6089
get strokeStyle(): unknown;
6190
set strokeStyle(style: string | CanvasPattern | CanvasGradient);
62-
get font(): string;
63-
set font(value: string);
91+
get textAlign(): string;
92+
set textAlign(align: string);
93+
get textBaseline(): string;
94+
set textBaseline(value: string);
95+
get textRendering(): string;
96+
set textRendering(value: string);
97+
get wordSpacing(): string;
98+
set wordSpacing(value: string);
99+
arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean | undefined | null): void;
100+
arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
101+
beginPath(): void;
102+
bezierCurveTo(cp1X: number, cp1Y: number, cp2X: number, cp2Y: number, x: number, y: number): void;
103+
clearRect(x: number, y: number, width: number, height: number): void;
104+
clip(path?: Path2D | undefined | null, rule?: string | undefined | null): void;
105+
closePath(): void;
106+
createConicGradient(startAngle: number, x: number, y: number): CanvasGradient;
107+
createImageData(widthOrImageData: number | ImageData, height?: number | undefined | null): ImageData;
108+
createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;
109+
createPattern(image: ImageAsset, repetition?: string | undefined | null): CanvasPattern;
110+
createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;
111+
drawFocusIfNeeded(elementPath: object | Path2D, element?: object | undefined | null): void;
112+
ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise?: boolean | undefined | null): void;
113+
fill(path?: Path2D | undefined | null, rule?: string | undefined | null): void;
64114
fillRect(x: number, y: number, width: number, height: number): void;
115+
fillText(text: string, x: number, y: number, maxWidth?: number | undefined | null): void;
116+
getImageData(x: number, y: number, width: number, height: number): ImageData;
117+
getLineDash(): Array<number>;
118+
getTransform(): DOMMatrix;
119+
lineTo(x: number, y: number): void;
120+
moveTo(x: number, y: number): void;
121+
render(): void;
65122
toDataURL(format: string, encoderOptions?: number | undefined | null): string;
66-
drawImage(image: JSImageAsset, sx?: number | undefined | null, sy?: number | undefined | null, sWidth?: number | undefined | null, sHeight?: number | undefined | null, dx?: number | undefined | null, dy?: number | undefined | null, dWidth?: number | undefined | null, dHeight?: number | undefined | null): void;
123+
drawImage(image: ImageAsset, sx?: number | undefined | null, sy?: number | undefined | null, sWidth?: number | undefined | null, sHeight?: number | undefined | null, dx?: number | undefined | null, dy?: number | undefined | null, dWidth?: number | undefined | null, dHeight?: number | undefined | null): void;
67124
rect(x: number, y: number, width: number, height: number): void;
68125
restore(): void;
69126
rotate(angle: number): void;
70127
roundRect(x: number, y: number, width: number, height: number, radii: number | Array<number>): void;
71128
save(): void;
129+
scale(x: number, y: number): void;
72130
setLineDash(segments: Array<number>): void;
73131
stroke(path?: Path2D | undefined | null): void;
74132
strokeRect(x: number, y: number, width: number, height: number): void;
75133
strokeText(text: string, x: number, y: number, maxWidth?: number | undefined | null): void;
76134
strokeOval(x: number, y: number, width: number, height: number): void;
77-
setTransform(a: number | JSDOMMatrix, b?: number | undefined | null, c?: number | undefined | null, d?: number | undefined | null, e?: number | undefined | null, f?: number | undefined | null): void;
135+
setTransform(a: number | DOMMatrix, b?: number | undefined | null, c?: number | undefined | null, d?: number | undefined | null, e?: number | undefined | null, f?: number | undefined | null): void;
78136
transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
79137
translate(x: number, y: number): void;
80138
}
81-
export type JSCanvasPattern = CanvasPattern;
82-
export declare class CanvasPattern {}
83-
export type JSCCanvasGradient = CanvasGradient;
84-
export declare class CanvasGradient {}
85-
export type JSImageAsset = ImageAsset;
86139
export declare class ImageAsset {
87140
constructor();
88141
get width(): number;
@@ -92,7 +145,7 @@ export declare class ImageAsset {
92145
fromUrl(url: string): Promise<boolean>;
93146
loadUrlCallback(url: string, callback: (...args: any[]) => any): void;
94147
}
95-
export type JSDOMMatrix = DOMMatrix;
96-
export declare class DOMMatrix {
148+
export type DOMMatrix = DomMatrix;
149+
export declare class DomMatrix {
97150
constructor(data?: Array<number> | undefined | null);
98151
}

napi/canvas-napi/index.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -284,12 +284,13 @@ if (!nativeBinding) {
284284
throw new Error(`Failed to load native binding`);
285285
}
286286

287-
const { WebGLRenderingContext, Path2D, CanvasRenderingContext2D, CanvasPattern, CanvasGradient, ImageAsset, DOMMatrix } = nativeBinding;
287+
const { WebGLRenderingContext, Path2D, CanvasPattern, CanvasGradient, ImageData, CanvasRenderingContext2D, ImageAsset, DomMatrix } = nativeBinding;
288288

289289
module.exports.WebGLRenderingContext = WebGLRenderingContext;
290290
module.exports.Path2D = Path2D;
291-
module.exports.CanvasRenderingContext2D = CanvasRenderingContext2D;
292291
module.exports.CanvasPattern = CanvasPattern;
293292
module.exports.CanvasGradient = CanvasGradient;
293+
module.exports.ImageData = ImageData;
294+
module.exports.CanvasRenderingContext2D = CanvasRenderingContext2D;
294295
module.exports.ImageAsset = ImageAsset;
295-
module.exports.DOMMatrix = DOMMatrix;
296+
module.exports.DomMatrix = DomMatrix;

0 commit comments

Comments
 (0)