@solidtv/renderer 1.0.0 → 1.0.2
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/dist/src/core/CoreNode.js +13 -11
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreTextNode.js +2 -1
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/lib/utils.d.ts +2 -2
- package/dist/src/core/lib/utils.js +21 -21
- package/dist/src/core/lib/utils.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +0 -30
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +2 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +128 -47
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +1 -2
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
- package/dist/src/core/renderers/webgl/SdfRenderOp.d.ts +5 -5
- package/dist/src/core/renderers/webgl/SdfRenderOp.js +8 -8
- package/dist/src/core/renderers/webgl/SdfRenderOp.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +3 -4
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- package/dist/src/core/shaders/canvas/Border.js +8 -11
- package/dist/src/core/shaders/canvas/Border.js.map +1 -1
- package/dist/src/core/shaders/canvas/HolePunch.js +2 -1
- package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
- package/dist/src/core/shaders/canvas/LinearGradient.js +23 -4
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/RadialGradient.js +7 -5
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/Rounded.js +2 -2
- package/dist/src/core/shaders/canvas/Rounded.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +2 -2
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +5 -4
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +5 -4
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/Shadow.js +4 -2
- package/dist/src/core/shaders/canvas/Shadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/utils/render.js +0 -15
- package/dist/src/core/shaders/canvas/utils/render.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/core/CoreNode.test.ts +2 -2
- package/src/core/CoreNode.ts +13 -11
- package/src/core/CoreTextNode.ts +3 -1
- package/src/core/lib/utils.ts +23 -25
- package/src/core/renderers/CoreRenderer.ts +0 -31
- package/src/core/renderers/canvas/CanvasRenderer.ts +158 -63
- package/src/core/renderers/canvas/CanvasShaderNode.ts +1 -2
- package/src/core/renderers/webgl/SdfRenderOp.ts +7 -7
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +3 -6
- package/src/core/shaders/canvas/Border.ts +11 -15
- package/src/core/shaders/canvas/HolePunch.ts +2 -1
- package/src/core/shaders/canvas/LinearGradient.ts +26 -7
- package/src/core/shaders/canvas/RadialGradient.ts +7 -10
- package/src/core/shaders/canvas/Rounded.ts +5 -5
- package/src/core/shaders/canvas/RoundedWithBorder.ts +5 -5
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +9 -8
- package/src/core/shaders/canvas/RoundedWithShadow.ts +6 -5
- package/src/core/shaders/canvas/Shadow.ts +7 -5
- package/src/core/shaders/canvas/utils/render.ts +0 -18
|
@@ -21,14 +21,14 @@ export const Rounded: CanvasShaderType<RoundedProps, ComputedRoundedValues> = {
|
|
|
21
21
|
node.h,
|
|
22
22
|
);
|
|
23
23
|
},
|
|
24
|
-
render(ctx,
|
|
24
|
+
render(ctx, node, renderContext) {
|
|
25
25
|
const path = new Path2D();
|
|
26
26
|
roundRect(
|
|
27
27
|
path,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
node.globalTransform!.tx,
|
|
29
|
+
node.globalTransform!.ty,
|
|
30
|
+
node.props.w,
|
|
31
|
+
node.props.h,
|
|
32
32
|
this.computed.radius!,
|
|
33
33
|
);
|
|
34
34
|
ctx.clip(path);
|
|
@@ -78,14 +78,14 @@ export const RoundedWithBorder: CanvasShaderType<
|
|
|
78
78
|
Math.max(0.0, this.computed.outerBorderRadius[3] - Math.max(l, r)),
|
|
79
79
|
];
|
|
80
80
|
},
|
|
81
|
-
render(ctx,
|
|
81
|
+
render(ctx, node, renderContext) {
|
|
82
82
|
const computed = this.computed as ComputedRoundedWithBorderValues;
|
|
83
83
|
roundedRectWithBorder(
|
|
84
84
|
ctx,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
node.globalTransform!.tx,
|
|
86
|
+
node.globalTransform!.ty,
|
|
87
|
+
node.props.w,
|
|
88
|
+
node.props.h,
|
|
89
89
|
computed.radius,
|
|
90
90
|
this.props!['border-gap'] as number,
|
|
91
91
|
computed.outerX,
|
|
@@ -79,15 +79,16 @@ export const RoundedWithBorderAndShadow: CanvasShaderType<
|
|
|
79
79
|
(value) => value + props['shadow-blur'],
|
|
80
80
|
) as Vec4;
|
|
81
81
|
},
|
|
82
|
-
render(ctx,
|
|
83
|
-
const { tx, ty
|
|
82
|
+
render(ctx, node, renderContext) {
|
|
83
|
+
const { tx, ty } = node.globalTransform!;
|
|
84
|
+
const { w, h } = node.props;
|
|
84
85
|
const computed = this.computed as ComputedValues;
|
|
85
86
|
render.shadow(
|
|
86
87
|
ctx,
|
|
87
88
|
tx + computed.outerX,
|
|
88
89
|
ty + computed.outerY,
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
w + computed.outerW,
|
|
91
|
+
h + computed.outerH,
|
|
91
92
|
computed.shadowColor,
|
|
92
93
|
this.props!['shadow-projection'],
|
|
93
94
|
computed.shadowRadius,
|
|
@@ -95,10 +96,10 @@ export const RoundedWithBorderAndShadow: CanvasShaderType<
|
|
|
95
96
|
);
|
|
96
97
|
render.roundedRectWithBorder(
|
|
97
98
|
ctx,
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
tx,
|
|
100
|
+
ty,
|
|
101
|
+
w,
|
|
102
|
+
h,
|
|
102
103
|
computed.radius,
|
|
103
104
|
this.props!['border-gap'] as number,
|
|
104
105
|
computed.outerX,
|
|
@@ -30,8 +30,9 @@ export const RoundedWithShadow: CanvasShaderType<
|
|
|
30
30
|
(value) => value + props['shadow-blur'],
|
|
31
31
|
) as Vec4;
|
|
32
32
|
},
|
|
33
|
-
render(ctx,
|
|
34
|
-
const { tx, ty
|
|
33
|
+
render(ctx, node, renderContext) {
|
|
34
|
+
const { tx, ty } = node.globalTransform!;
|
|
35
|
+
const { w, h } = node.props;
|
|
35
36
|
const computed = this.computed as ComputedValues;
|
|
36
37
|
|
|
37
38
|
if (this.props!['shadow-color'] !== 0) {
|
|
@@ -39,8 +40,8 @@ export const RoundedWithShadow: CanvasShaderType<
|
|
|
39
40
|
ctx,
|
|
40
41
|
tx,
|
|
41
42
|
ty,
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
w,
|
|
44
|
+
h,
|
|
44
45
|
computed.shadowColor,
|
|
45
46
|
this.props!['shadow-projection'],
|
|
46
47
|
computed.shadowRadius,
|
|
@@ -49,7 +50,7 @@ export const RoundedWithShadow: CanvasShaderType<
|
|
|
49
50
|
}
|
|
50
51
|
|
|
51
52
|
const path = new Path2D();
|
|
52
|
-
render.roundRect(path, tx, ty,
|
|
53
|
+
render.roundRect(path, tx, ty, w, h, computed.radius);
|
|
53
54
|
ctx.clip(path);
|
|
54
55
|
renderContext();
|
|
55
56
|
},
|
|
@@ -18,13 +18,15 @@ export const Shadow: CanvasShaderType<ShadowProps, ComputedShadowValues> = {
|
|
|
18
18
|
const blur = this.props!['blur'];
|
|
19
19
|
this.computed.shadowRadius = [blur, blur, blur, blur];
|
|
20
20
|
},
|
|
21
|
-
render(ctx,
|
|
21
|
+
render(ctx, node, renderContext) {
|
|
22
|
+
const { tx, ty } = node.globalTransform!;
|
|
23
|
+
const { w, h } = node.props;
|
|
22
24
|
shadow(
|
|
23
25
|
ctx,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
tx,
|
|
27
|
+
ty,
|
|
28
|
+
w,
|
|
29
|
+
h,
|
|
28
30
|
this.computed.shadowColor!,
|
|
29
31
|
this.props!['projection'],
|
|
30
32
|
this.computed.shadowRadius!,
|
|
@@ -55,24 +55,6 @@ export function roundedRectWithBorder(
|
|
|
55
55
|
innerW += width;
|
|
56
56
|
innerH += height;
|
|
57
57
|
|
|
58
|
-
// no gap render strategy - to avoid artifacts between border and node
|
|
59
|
-
if (borderGap === 0) {
|
|
60
|
-
//draw outer border rounded rect
|
|
61
|
-
ctx.beginPath();
|
|
62
|
-
roundRect(ctx, outerX, outerY, outerW, outerH, outerBorderRadius);
|
|
63
|
-
ctx.fillStyle = borderColor;
|
|
64
|
-
ctx.fill();
|
|
65
|
-
ctx.closePath();
|
|
66
|
-
|
|
67
|
-
const path = new Path2D();
|
|
68
|
-
roundRect(path, innerX, innerY, innerW, innerH, innerBorderRadius as Vec4);
|
|
69
|
-
ctx.clip(path);
|
|
70
|
-
renderContext();
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// with gap render strategy
|
|
75
|
-
|
|
76
58
|
//draw node content first
|
|
77
59
|
ctx.save();
|
|
78
60
|
const path = new Path2D();
|