@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.
Files changed (60) hide show
  1. package/dist/src/core/CoreNode.js +13 -11
  2. package/dist/src/core/CoreNode.js.map +1 -1
  3. package/dist/src/core/CoreTextNode.js +2 -1
  4. package/dist/src/core/CoreTextNode.js.map +1 -1
  5. package/dist/src/core/lib/utils.d.ts +2 -2
  6. package/dist/src/core/lib/utils.js +21 -21
  7. package/dist/src/core/lib/utils.js.map +1 -1
  8. package/dist/src/core/renderers/CoreRenderer.d.ts +0 -30
  9. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  10. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +2 -1
  11. package/dist/src/core/renderers/canvas/CanvasRenderer.js +128 -47
  12. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  13. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +1 -2
  14. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
  15. package/dist/src/core/renderers/webgl/SdfRenderOp.d.ts +5 -5
  16. package/dist/src/core/renderers/webgl/SdfRenderOp.js +8 -8
  17. package/dist/src/core/renderers/webgl/SdfRenderOp.js.map +1 -1
  18. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +3 -4
  19. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  20. package/dist/src/core/shaders/canvas/Border.js +8 -11
  21. package/dist/src/core/shaders/canvas/Border.js.map +1 -1
  22. package/dist/src/core/shaders/canvas/HolePunch.js +2 -1
  23. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
  24. package/dist/src/core/shaders/canvas/LinearGradient.js +23 -4
  25. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
  26. package/dist/src/core/shaders/canvas/RadialGradient.js +7 -5
  27. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
  28. package/dist/src/core/shaders/canvas/Rounded.js +2 -2
  29. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -1
  30. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +2 -2
  31. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  32. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +5 -4
  33. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
  34. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +5 -4
  35. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
  36. package/dist/src/core/shaders/canvas/Shadow.js +4 -2
  37. package/dist/src/core/shaders/canvas/Shadow.js.map +1 -1
  38. package/dist/src/core/shaders/canvas/utils/render.js +0 -15
  39. package/dist/src/core/shaders/canvas/utils/render.js.map +1 -1
  40. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  41. package/package.json +1 -1
  42. package/src/core/CoreNode.test.ts +2 -2
  43. package/src/core/CoreNode.ts +13 -11
  44. package/src/core/CoreTextNode.ts +3 -1
  45. package/src/core/lib/utils.ts +23 -25
  46. package/src/core/renderers/CoreRenderer.ts +0 -31
  47. package/src/core/renderers/canvas/CanvasRenderer.ts +158 -63
  48. package/src/core/renderers/canvas/CanvasShaderNode.ts +1 -2
  49. package/src/core/renderers/webgl/SdfRenderOp.ts +7 -7
  50. package/src/core/renderers/webgl/WebGlShaderProgram.ts +3 -6
  51. package/src/core/shaders/canvas/Border.ts +11 -15
  52. package/src/core/shaders/canvas/HolePunch.ts +2 -1
  53. package/src/core/shaders/canvas/LinearGradient.ts +26 -7
  54. package/src/core/shaders/canvas/RadialGradient.ts +7 -10
  55. package/src/core/shaders/canvas/Rounded.ts +5 -5
  56. package/src/core/shaders/canvas/RoundedWithBorder.ts +5 -5
  57. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +9 -8
  58. package/src/core/shaders/canvas/RoundedWithShadow.ts +6 -5
  59. package/src/core/shaders/canvas/Shadow.ts +7 -5
  60. 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, quad, renderContext) {
24
+ render(ctx, node, renderContext) {
25
25
  const path = new Path2D();
26
26
  roundRect(
27
27
  path,
28
- quad.tx,
29
- quad.ty,
30
- quad.width,
31
- quad.height,
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, quad, renderContext) {
81
+ render(ctx, node, renderContext) {
82
82
  const computed = this.computed as ComputedRoundedWithBorderValues;
83
83
  roundedRectWithBorder(
84
84
  ctx,
85
- quad.tx,
86
- quad.ty,
87
- quad.width,
88
- quad.height,
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, quad, renderContext) {
83
- const { tx, ty, width, height } = quad;
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
- height + computed.outerH,
90
- width + computed.outerW,
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
- quad.tx,
99
- quad.ty,
100
- quad.width,
101
- quad.height,
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, quad, renderContext) {
34
- const { tx, ty, width, height } = quad;
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
- width,
43
- height,
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, width, height, computed.radius);
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, quad, renderContext) {
21
+ render(ctx, node, renderContext) {
22
+ const { tx, ty } = node.globalTransform!;
23
+ const { w, h } = node.props;
22
24
  shadow(
23
25
  ctx,
24
- quad.tx,
25
- quad.ty,
26
- quad.width,
27
- quad.height,
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();