Skip to content
This repository has been archived by the owner on Apr 27, 2024. It is now read-only.

Commit

Permalink
finish save-restore testing, rename all save-restore tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jtenner committed Feb 6, 2019
1 parent e918028 commit 1bf8350
Show file tree
Hide file tree
Showing 27 changed files with 785 additions and 11 deletions.
12 changes: 12 additions & 0 deletions __tests__/CanvasRenderingContext2D.save-restore.shadowBlur.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { run } from "./__setup__/saveRestore";

run<number>({
name: "shadowBlur",
values: [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6],
getValue(wasm): number {
return wasm.getShadowBlur();
},
setValue(wasm, value): void {
wasm.setShadowBlur(value);
},
});
13 changes: 13 additions & 0 deletions __tests__/CanvasRenderingContext2D.save-restore.shadowColor.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { run } from "./__setup__/saveRestore";


run<string>({
name: "shadowColor",
values: ["one", "two", "three", "four", "five"],
getValue(wasm): string {
return wasm.getString(wasm.getShadowColor());
},
setValue(wasm, value): void {
wasm.setShadowColor(wasm.newString(value));
},
});
12 changes: 12 additions & 0 deletions __tests__/CanvasRenderingContext2D.save-restore.shadowOffsetX.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { run } from "./__setup__/saveRestore";

run<number>({
name: "shadowOffsetX",
values: [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6],
getValue(wasm): number {
return wasm.getShadowOffsetX();
},
setValue(wasm, value): void {
wasm.setShadowOffsetX(value);
},
});
12 changes: 12 additions & 0 deletions __tests__/CanvasRenderingContext2D.save-restore.shadowOffsetY.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { run } from "./__setup__/saveRestore";

run<number>({
name: "shadowOffsetY",
values: [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6],
getValue(wasm): number {
return wasm.getShadowOffsetY();
},
setValue(wasm, value): void {
wasm.setShadowOffsetY(value);
},
});
13 changes: 13 additions & 0 deletions __tests__/CanvasRenderingContext2D.save-restore.strokeStyle.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { run } from "./__setup__/saveRestore";


run<string>({
name: "strokeStyle",
values: ["one", "two", "three", "four", "five"],
getValue(wasm): string {
return wasm.getString(wasm.getStrokeStyle());
},
setValue(wasm, value): void {
wasm.setStrokeStyle(wasm.newString(value));
},
});
19 changes: 19 additions & 0 deletions __tests__/CanvasRenderingContext2D.save-restore.textAlign.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { run } from "./__setup__/saveRestore";
import { TextAlign } from "../src";

run<TextAlign>({
name: "textAlign",
values: [
TextAlign.center,
TextAlign.end,
TextAlign.left,
TextAlign.right,
TextAlign.start,
],
getValue(wasm): TextAlign {
return wasm.getTextAlign();
},
setValue(wasm, value): void {
wasm.setTextAlign(value);
},
});
20 changes: 20 additions & 0 deletions __tests__/CanvasRenderingContext2D.save-restore.textBaseline.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { run } from "./__setup__/saveRestore";
import { TextBaseline } from "../src";

run<TextBaseline>({
name: "textBaseline",
values: [
TextBaseline.alphabetic,
TextBaseline.bottom,
TextBaseline.hanging,
TextBaseline.ideographic,
TextBaseline.middle,
TextBaseline.top,
],
getValue(wasm): TextBaseline {
return wasm.getTextBaseline();
},
setValue(wasm, value): void {
wasm.setTextBaseline(value);
},
});
20 changes: 17 additions & 3 deletions __tests__/__setup__/SaveRestoreTestSuite.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { CanvasDirection, GlobalCompositeOperation, ImageSmoothingQuality, LineCap, LineJoin } from "../../src";
import { CanvasDirection, GlobalCompositeOperation, ImageSmoothingQuality, LineCap, LineJoin, TextAlign, TextBaseline } from "../../src";

export interface ISaveRestoreTestSuite {
getDirection(): CanvasDirection;
Expand All @@ -13,6 +13,11 @@ export interface ISaveRestoreTestSuite {
getLineDashOffset(): number;
getLineJoin(): LineJoin;
getLineWidth(): number;
getMiterLimit(): number;
getShadowBlur(): number;
getShadowColor(): number;
getShadowOffsetX(): number;
getShadowOffsetY(): number;
getTransform(): number;
hardSave(): void;
init(): void;
Expand All @@ -30,7 +35,16 @@ export interface ISaveRestoreTestSuite {
setLineDashOffset(value: number): void;
setLineJoin(value: LineJoin): void;
setLineWidth(value: number): void;
setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
setMiterLimit(value: number): void;
getMiterLimit(): number;
setShadowBlur(value: number): void;
setShadowColor(value: number): void;
setShadowOffsetX(value: number): void;
setShadowOffsetY(value: number): void;
setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
getStrokeStyle(): number;
setStrokeStyle(value: number): void;
getTextAlign(): TextAlign;
setTextAlign(value: TextAlign): void;
getTextBaseline(): TextBaseline;
setTextBaseline(value: TextBaseline): void;
}
4 changes: 2 additions & 2 deletions assembly/renderer/CanvasRenderingContext2D.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1080,11 +1080,11 @@ export class CanvasRenderingContext2D extends Buffer<CanvasInstruction> {
* The CanvasRenderingContext2D.shadowColor property of the Canvas 2D API specifies the current text
* representing a CSS Color
*/
public get shadowColor(): string | null {
public get shadowColor(): string {
return changetype<string>(LOAD<usize>(this._shadowColorStack, this._stackOffset));
}

public set shadowColor(value: string | null) {
public set shadowColor(value: string) {
if (value == null) value = defaultShadowColor;
STORE<usize>(this._shadowColorStack, this._stackOffset, changetype<usize>(value));
}
Expand Down
70 changes: 70 additions & 0 deletions assembly/save-restore.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -189,3 +189,73 @@ export function setMiterLimit(value: f64): void {
assert(ctx);
ctx.miterLimit = value;
}

export function getShadowBlur(): f64 {
assert(ctx);
return ctx.shadowBlur;
}

export function setShadowBlur(value: f64): void {
assert(ctx);
ctx.shadowBlur = value;
}

export function getShadowColor(): string {
assert(ctx);
return ctx.shadowColor;
}

export function setShadowColor(value: string): void {
assert(ctx);
ctx.shadowColor = value;
}

export function getShadowOffsetX(): f64 {
assert(ctx);
return ctx.shadowOffsetX;
}

export function setShadowOffsetX(value: f64): void {
assert(ctx);
ctx.shadowOffsetX = value;
}

export function getShadowOffsetY(): f64 {
assert(ctx);
return ctx.shadowOffsetY;
}

export function setShadowOffsetY(value: f64): void {
assert(ctx);
ctx.shadowOffsetY = value;
}

export function getStrokeStyle(): string | null {
assert(ctx);
return ctx.strokeStyle;
}

export function setStrokeStyle(value: string): void {
assert(ctx);
ctx.strokeStyle = value;
}

export function getTextAlign(): TextAlign {
assert(ctx);
return ctx.textAlign;
}

export function setTextAlign(value: TextAlign): void {
assert(ctx);
ctx.textAlign = value;
}

export function getTextBaseline(): TextBaseline {
assert(ctx);
return ctx.textBaseline;
}

export function setTextBaseline(value: TextBaseline): void {
assert(ctx);
ctx.textBaseline = value;
}
2 changes: 1 addition & 1 deletion build/Buffer.test.wasm.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion build/draw-functions.test.wasm.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion build/glue.test.wasm.map

Large diffs are not rendered by default.

Binary file modified build/save-restore.test.wasm
Binary file not shown.
2 changes: 1 addition & 1 deletion build/save-restore.test.wasm.map

Large diffs are not rendered by default.

0 comments on commit 1bf8350

Please sign in to comment.