@shopify/react-native-skia 2.4.1 → 2.4.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.
|
@@ -26,20 +26,20 @@ const getZIndex = command => {
|
|
|
26
26
|
}
|
|
27
27
|
return zIndex;
|
|
28
28
|
};
|
|
29
|
-
const flushPendingGroups = (ctx, pendingGroups) => {
|
|
30
|
-
"worklet";
|
|
31
|
-
|
|
32
|
-
if (pendingGroups.length === 0) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
pendingGroups.sort((a, b) => a.zIndex === b.zIndex ? a.order - b.order : a.zIndex - b.zIndex).forEach(({
|
|
36
|
-
command
|
|
37
|
-
}) => {
|
|
38
|
-
play(ctx, command);
|
|
39
|
-
});
|
|
40
|
-
pendingGroups.length = 0;
|
|
41
|
-
};
|
|
42
29
|
const play = (ctx, _command) => {
|
|
30
|
+
const flushPendingGroups = (ctx, pendingGroups) => {
|
|
31
|
+
"worklet";
|
|
32
|
+
|
|
33
|
+
if (pendingGroups.length === 0) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
pendingGroups.sort((a, b) => a.zIndex === b.zIndex ? a.order - b.order : a.zIndex - b.zIndex).forEach(({
|
|
37
|
+
command
|
|
38
|
+
}) => {
|
|
39
|
+
play(ctx, command);
|
|
40
|
+
});
|
|
41
|
+
pendingGroups.length = 0;
|
|
42
|
+
};
|
|
43
43
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
44
44
|
const playGroup = (ctx, group) => {
|
|
45
45
|
"worklet";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Drawing","require","_Box","_ColorFilters","_CTM","_ImageFilters","_Paint","_PathEffects","_Shaders","_Core","getZIndex","command","_materialized$props","materialized","materializeCommand","zIndex","props","Number","isNaN","flushPendingGroups","ctx","pendingGroups","length","sort","a","b","order","forEach","play","_command","playGroup","group","pending","children","child","isGroup","push","isCommand","CommandType","SaveBackdropFilter","saveBackdropFilter","SaveLayer","materializePaint","paint","paintDeclarations","pop","canvas","saveLayer","isDrawCommand","SavePaint","paints","standalone","savePaint","freshPaint","Skia","Paint","assign","setPaintProperties","RestorePaint","restorePaint","ComposeColorFilter","composeColorFilters","RestorePaintDeclaration","Error","MaterializePaint","isPushColorFilter","pushColorFilter","isPushShader","pushShader","isPushImageFilter","pushImageFilter","isPushPathEffect","pushPathEffect","ComposePathEffect","composePathEffects","ComposeImageFilter","composeImageFilters","PushBlurMaskFilter","setBlurMaskFilter","SaveCTM","saveCTM","RestoreCTM","restore","copy","setAlphaf","getAlphaf","getOpacity","p","isBoxCommand","drawBox","DrawPaint","drawPaint","DrawImage","drawImage","DrawCircle","drawCircle","DrawPoints","drawPoints","DrawPath","drawPath","DrawRect","drawRect","DrawRRect","drawRRect","DrawOval","drawOval","DrawLine","drawLine","DrawPatch","drawPatch","DrawVertices","drawVertices","DrawDiffRect","drawDiffRect","DrawText","drawText","DrawTextPath","drawTextPath","DrawTextBlob","drawTextBlob","DrawGlyphs","drawGlyphs","DrawPicture","drawPicture","DrawImageSVG","drawImageSVG","DrawParagraph","drawParagraph","DrawAtlas","drawAtlas","DrawSkottie","drawSkottie","console","warn","type","replay","commands"],"sources":["Player.ts"],"sourcesContent":["import type { DrawingNodeProps } from \"../../dom/types\";\n\nimport {\n drawCircle,\n drawImage,\n drawOval,\n drawPath,\n drawPoints,\n drawRect,\n drawRRect,\n drawLine,\n drawAtlas,\n drawParagraph,\n drawImageSVG,\n drawPicture,\n drawGlyphs,\n drawTextBlob,\n drawTextPath,\n drawText,\n drawDiffRect,\n drawVertices,\n drawPatch,\n drawSkottie,\n} from \"./commands/Drawing\";\nimport { drawBox, isBoxCommand } from \"./commands/Box\";\nimport {\n composeColorFilters,\n isPushColorFilter,\n pushColorFilter,\n} from \"./commands/ColorFilters\";\nimport { saveCTM } from \"./commands/CTM\";\nimport {\n setBlurMaskFilter,\n isPushImageFilter,\n pushImageFilter,\n composeImageFilters,\n} from \"./commands/ImageFilters\";\nimport { setPaintProperties } from \"./commands/Paint\";\nimport {\n composePathEffects,\n isPushPathEffect,\n pushPathEffect,\n} from \"./commands/PathEffects\";\nimport { isPushShader, pushShader } from \"./commands/Shaders\";\nimport {\n CommandType,\n isCommand,\n isDrawCommand,\n isGroup,\n materializeCommand,\n} from \"./Core\";\nimport type { Command, GroupCommand } from \"./Core\";\nimport type { DrawingContext } from \"./DrawingContext\";\n\ntype PendingGroup = {\n command: GroupCommand;\n zIndex: number;\n order: number;\n};\n\nconst getZIndex = (command: GroupCommand) => {\n \"worklet\";\n const materialized = materializeCommand(command);\n const { zIndex } = (materialized.props ?? {}) as DrawingNodeProps;\n if (typeof zIndex !== \"number\" || Number.isNaN(zIndex)) {\n return 0;\n }\n return zIndex;\n};\n\nconst flushPendingGroups = (\n ctx: DrawingContext,\n pendingGroups: PendingGroup[]\n) => {\n \"worklet\";\n if (pendingGroups.length === 0) {\n return;\n }\n pendingGroups\n .sort((a, b) =>\n a.zIndex === b.zIndex ? a.order - b.order : a.zIndex - b.zIndex\n )\n .forEach(({ command }) => {\n play(ctx, command);\n });\n pendingGroups.length = 0;\n};\n\nconst play = (ctx: DrawingContext, _command: Command) => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const playGroup = (ctx: DrawingContext, group: GroupCommand) => {\n \"worklet\";\n const pending: PendingGroup[] = [];\n group.children.forEach((child) => {\n if (isGroup(child)) {\n pending.push({\n command: child,\n zIndex: getZIndex(child),\n order: pending.length,\n });\n return;\n }\n flushPendingGroups(ctx, pending);\n play(ctx, child);\n });\n flushPendingGroups(ctx, pending);\n };\n\n (\"worklet\");\n if (isGroup(_command)) {\n playGroup(ctx, _command);\n return;\n }\n const command = materializeCommand(_command);\n if (isCommand(command, CommandType.SaveBackdropFilter)) {\n ctx.saveBackdropFilter();\n } else if (isCommand(command, CommandType.SaveLayer)) {\n ctx.materializePaint();\n const paint = ctx.paintDeclarations.pop();\n ctx.canvas.saveLayer(paint);\n } else if (isDrawCommand(command, CommandType.SavePaint)) {\n if (command.props.paint) {\n ctx.paints.push(command.props.paint);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const { standalone } = command as any;\n ctx.savePaint();\n if (standalone) {\n const freshPaint = ctx.Skia.Paint();\n ctx.paint.assign(freshPaint);\n }\n setPaintProperties(ctx.Skia, ctx, command.props, standalone);\n }\n } else if (isCommand(command, CommandType.RestorePaint)) {\n ctx.restorePaint();\n } else if (isCommand(command, CommandType.ComposeColorFilter)) {\n composeColorFilters(ctx);\n } else if (isCommand(command, CommandType.RestorePaintDeclaration)) {\n ctx.materializePaint();\n const paint = ctx.restorePaint();\n if (!paint) {\n throw new Error(\"No paint declaration to push\");\n }\n ctx.paintDeclarations.push(paint);\n } else if (isCommand(command, CommandType.MaterializePaint)) {\n ctx.materializePaint();\n } else if (isPushColorFilter(command)) {\n pushColorFilter(ctx, command);\n } else if (isPushShader(command)) {\n pushShader(ctx, command);\n } else if (isPushImageFilter(command)) {\n pushImageFilter(ctx, command);\n } else if (isPushPathEffect(command)) {\n pushPathEffect(ctx, command);\n } else if (isCommand(command, CommandType.ComposePathEffect)) {\n composePathEffects(ctx);\n } else if (isCommand(command, CommandType.ComposeImageFilter)) {\n composeImageFilters(ctx);\n } else if (isDrawCommand(command, CommandType.PushBlurMaskFilter)) {\n setBlurMaskFilter(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.SaveCTM)) {\n saveCTM(ctx, command.props);\n } else if (isCommand(command, CommandType.RestoreCTM)) {\n ctx.canvas.restore();\n } else {\n // TODO: is a copy needed here?\n // apply opacity to the current paint.\n const paint = ctx.paint.copy();\n paint.setAlphaf(paint.getAlphaf() * ctx.getOpacity());\n const paints = [paint, ...ctx.paintDeclarations];\n ctx.paintDeclarations = [];\n paints.forEach((p) => {\n ctx.paints.push(p);\n if (isBoxCommand(command)) {\n drawBox(ctx, command);\n } else if (isCommand(command, CommandType.DrawPaint)) {\n ctx.canvas.drawPaint(ctx.paint);\n } else if (isDrawCommand(command, CommandType.DrawImage)) {\n drawImage(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawCircle)) {\n drawCircle(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPoints)) {\n drawPoints(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPath)) {\n drawPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRect)) {\n drawRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRRect)) {\n drawRRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawOval)) {\n drawOval(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawLine)) {\n drawLine(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPatch)) {\n drawPatch(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawVertices)) {\n drawVertices(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawDiffRect)) {\n drawDiffRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawText)) {\n drawText(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextPath)) {\n drawTextPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextBlob)) {\n drawTextBlob(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawGlyphs)) {\n drawGlyphs(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPicture)) {\n drawPicture(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawImageSVG)) {\n drawImageSVG(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawParagraph)) {\n drawParagraph(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawAtlas)) {\n drawAtlas(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawSkottie)) {\n drawSkottie(ctx, command.props);\n } else {\n console.warn(`Unknown command: ${command.type}`);\n }\n ctx.paints.pop();\n });\n }\n};\nexport function replay(ctx: DrawingContext, commands: Command[]) {\n \"worklet\";\n //console.log(debugTree(commands));\n commands.forEach((command) => {\n play(ctx, command);\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_Drawing","require","_Box","_ColorFilters","_CTM","_ImageFilters","_Paint","_PathEffects","_Shaders","_Core","getZIndex","command","_materialized$props","materialized","materializeCommand","zIndex","props","Number","isNaN","play","ctx","_command","flushPendingGroups","pendingGroups","length","sort","a","b","order","forEach","playGroup","group","pending","children","child","isGroup","push","isCommand","CommandType","SaveBackdropFilter","saveBackdropFilter","SaveLayer","materializePaint","paint","paintDeclarations","pop","canvas","saveLayer","isDrawCommand","SavePaint","paints","standalone","savePaint","freshPaint","Skia","Paint","assign","setPaintProperties","RestorePaint","restorePaint","ComposeColorFilter","composeColorFilters","RestorePaintDeclaration","Error","MaterializePaint","isPushColorFilter","pushColorFilter","isPushShader","pushShader","isPushImageFilter","pushImageFilter","isPushPathEffect","pushPathEffect","ComposePathEffect","composePathEffects","ComposeImageFilter","composeImageFilters","PushBlurMaskFilter","setBlurMaskFilter","SaveCTM","saveCTM","RestoreCTM","restore","copy","setAlphaf","getAlphaf","getOpacity","p","isBoxCommand","drawBox","DrawPaint","drawPaint","DrawImage","drawImage","DrawCircle","drawCircle","DrawPoints","drawPoints","DrawPath","drawPath","DrawRect","drawRect","DrawRRect","drawRRect","DrawOval","drawOval","DrawLine","drawLine","DrawPatch","drawPatch","DrawVertices","drawVertices","DrawDiffRect","drawDiffRect","DrawText","drawText","DrawTextPath","drawTextPath","DrawTextBlob","drawTextBlob","DrawGlyphs","drawGlyphs","DrawPicture","drawPicture","DrawImageSVG","drawImageSVG","DrawParagraph","drawParagraph","DrawAtlas","drawAtlas","DrawSkottie","drawSkottie","console","warn","type","replay","commands"],"sources":["Player.ts"],"sourcesContent":["import type { DrawingNodeProps } from \"../../dom/types\";\n\nimport {\n drawCircle,\n drawImage,\n drawOval,\n drawPath,\n drawPoints,\n drawRect,\n drawRRect,\n drawLine,\n drawAtlas,\n drawParagraph,\n drawImageSVG,\n drawPicture,\n drawGlyphs,\n drawTextBlob,\n drawTextPath,\n drawText,\n drawDiffRect,\n drawVertices,\n drawPatch,\n drawSkottie,\n} from \"./commands/Drawing\";\nimport { drawBox, isBoxCommand } from \"./commands/Box\";\nimport {\n composeColorFilters,\n isPushColorFilter,\n pushColorFilter,\n} from \"./commands/ColorFilters\";\nimport { saveCTM } from \"./commands/CTM\";\nimport {\n setBlurMaskFilter,\n isPushImageFilter,\n pushImageFilter,\n composeImageFilters,\n} from \"./commands/ImageFilters\";\nimport { setPaintProperties } from \"./commands/Paint\";\nimport {\n composePathEffects,\n isPushPathEffect,\n pushPathEffect,\n} from \"./commands/PathEffects\";\nimport { isPushShader, pushShader } from \"./commands/Shaders\";\nimport {\n CommandType,\n isCommand,\n isDrawCommand,\n isGroup,\n materializeCommand,\n} from \"./Core\";\nimport type { Command, GroupCommand } from \"./Core\";\nimport type { DrawingContext } from \"./DrawingContext\";\n\ntype PendingGroup = {\n command: GroupCommand;\n zIndex: number;\n order: number;\n};\n\nconst getZIndex = (command: GroupCommand) => {\n \"worklet\";\n const materialized = materializeCommand(command);\n const { zIndex } = (materialized.props ?? {}) as DrawingNodeProps;\n if (typeof zIndex !== \"number\" || Number.isNaN(zIndex)) {\n return 0;\n }\n return zIndex;\n};\n\nconst play = (ctx: DrawingContext, _command: Command) => {\n const flushPendingGroups = (\n // eslint-disable-next-line @typescript-eslint/no-shadow\n ctx: DrawingContext,\n pendingGroups: PendingGroup[]\n ) => {\n \"worklet\";\n if (pendingGroups.length === 0) {\n return;\n }\n pendingGroups\n .sort((a, b) =>\n a.zIndex === b.zIndex ? a.order - b.order : a.zIndex - b.zIndex\n )\n .forEach(({ command }) => {\n play(ctx, command);\n });\n pendingGroups.length = 0;\n };\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const playGroup = (ctx: DrawingContext, group: GroupCommand) => {\n \"worklet\";\n const pending: PendingGroup[] = [];\n group.children.forEach((child) => {\n if (isGroup(child)) {\n pending.push({\n command: child,\n zIndex: getZIndex(child),\n order: pending.length,\n });\n return;\n }\n flushPendingGroups(ctx, pending);\n play(ctx, child);\n });\n flushPendingGroups(ctx, pending);\n };\n\n (\"worklet\");\n if (isGroup(_command)) {\n playGroup(ctx, _command);\n return;\n }\n const command = materializeCommand(_command);\n if (isCommand(command, CommandType.SaveBackdropFilter)) {\n ctx.saveBackdropFilter();\n } else if (isCommand(command, CommandType.SaveLayer)) {\n ctx.materializePaint();\n const paint = ctx.paintDeclarations.pop();\n ctx.canvas.saveLayer(paint);\n } else if (isDrawCommand(command, CommandType.SavePaint)) {\n if (command.props.paint) {\n ctx.paints.push(command.props.paint);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const { standalone } = command as any;\n ctx.savePaint();\n if (standalone) {\n const freshPaint = ctx.Skia.Paint();\n ctx.paint.assign(freshPaint);\n }\n setPaintProperties(ctx.Skia, ctx, command.props, standalone);\n }\n } else if (isCommand(command, CommandType.RestorePaint)) {\n ctx.restorePaint();\n } else if (isCommand(command, CommandType.ComposeColorFilter)) {\n composeColorFilters(ctx);\n } else if (isCommand(command, CommandType.RestorePaintDeclaration)) {\n ctx.materializePaint();\n const paint = ctx.restorePaint();\n if (!paint) {\n throw new Error(\"No paint declaration to push\");\n }\n ctx.paintDeclarations.push(paint);\n } else if (isCommand(command, CommandType.MaterializePaint)) {\n ctx.materializePaint();\n } else if (isPushColorFilter(command)) {\n pushColorFilter(ctx, command);\n } else if (isPushShader(command)) {\n pushShader(ctx, command);\n } else if (isPushImageFilter(command)) {\n pushImageFilter(ctx, command);\n } else if (isPushPathEffect(command)) {\n pushPathEffect(ctx, command);\n } else if (isCommand(command, CommandType.ComposePathEffect)) {\n composePathEffects(ctx);\n } else if (isCommand(command, CommandType.ComposeImageFilter)) {\n composeImageFilters(ctx);\n } else if (isDrawCommand(command, CommandType.PushBlurMaskFilter)) {\n setBlurMaskFilter(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.SaveCTM)) {\n saveCTM(ctx, command.props);\n } else if (isCommand(command, CommandType.RestoreCTM)) {\n ctx.canvas.restore();\n } else {\n // TODO: is a copy needed here?\n // apply opacity to the current paint.\n const paint = ctx.paint.copy();\n paint.setAlphaf(paint.getAlphaf() * ctx.getOpacity());\n const paints = [paint, ...ctx.paintDeclarations];\n ctx.paintDeclarations = [];\n paints.forEach((p) => {\n ctx.paints.push(p);\n if (isBoxCommand(command)) {\n drawBox(ctx, command);\n } else if (isCommand(command, CommandType.DrawPaint)) {\n ctx.canvas.drawPaint(ctx.paint);\n } else if (isDrawCommand(command, CommandType.DrawImage)) {\n drawImage(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawCircle)) {\n drawCircle(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPoints)) {\n drawPoints(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPath)) {\n drawPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRect)) {\n drawRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRRect)) {\n drawRRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawOval)) {\n drawOval(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawLine)) {\n drawLine(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPatch)) {\n drawPatch(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawVertices)) {\n drawVertices(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawDiffRect)) {\n drawDiffRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawText)) {\n drawText(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextPath)) {\n drawTextPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextBlob)) {\n drawTextBlob(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawGlyphs)) {\n drawGlyphs(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPicture)) {\n drawPicture(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawImageSVG)) {\n drawImageSVG(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawParagraph)) {\n drawParagraph(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawAtlas)) {\n drawAtlas(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawSkottie)) {\n drawSkottie(ctx, command.props);\n } else {\n console.warn(`Unknown command: ${command.type}`);\n }\n ctx.paints.pop();\n });\n }\n};\nexport function replay(ctx: DrawingContext, commands: Command[]) {\n \"worklet\";\n //console.log(debugTree(commands));\n commands.forEach((command) => {\n play(ctx, command);\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,20 +20,20 @@ const getZIndex = command => {
|
|
|
20
20
|
}
|
|
21
21
|
return zIndex;
|
|
22
22
|
};
|
|
23
|
-
const flushPendingGroups = (ctx, pendingGroups) => {
|
|
24
|
-
"worklet";
|
|
25
|
-
|
|
26
|
-
if (pendingGroups.length === 0) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
pendingGroups.sort((a, b) => a.zIndex === b.zIndex ? a.order - b.order : a.zIndex - b.zIndex).forEach(({
|
|
30
|
-
command
|
|
31
|
-
}) => {
|
|
32
|
-
play(ctx, command);
|
|
33
|
-
});
|
|
34
|
-
pendingGroups.length = 0;
|
|
35
|
-
};
|
|
36
23
|
const play = (ctx, _command) => {
|
|
24
|
+
const flushPendingGroups = (ctx, pendingGroups) => {
|
|
25
|
+
"worklet";
|
|
26
|
+
|
|
27
|
+
if (pendingGroups.length === 0) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
pendingGroups.sort((a, b) => a.zIndex === b.zIndex ? a.order - b.order : a.zIndex - b.zIndex).forEach(({
|
|
31
|
+
command
|
|
32
|
+
}) => {
|
|
33
|
+
play(ctx, command);
|
|
34
|
+
});
|
|
35
|
+
pendingGroups.length = 0;
|
|
36
|
+
};
|
|
37
37
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
38
38
|
const playGroup = (ctx, group) => {
|
|
39
39
|
"worklet";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["drawCircle","drawImage","drawOval","drawPath","drawPoints","drawRect","drawRRect","drawLine","drawAtlas","drawParagraph","drawImageSVG","drawPicture","drawGlyphs","drawTextBlob","drawTextPath","drawText","drawDiffRect","drawVertices","drawPatch","drawSkottie","drawBox","isBoxCommand","composeColorFilters","isPushColorFilter","pushColorFilter","saveCTM","setBlurMaskFilter","isPushImageFilter","pushImageFilter","composeImageFilters","setPaintProperties","composePathEffects","isPushPathEffect","pushPathEffect","isPushShader","pushShader","CommandType","isCommand","isDrawCommand","isGroup","materializeCommand","getZIndex","command","_materialized$props","materialized","zIndex","props","Number","isNaN","flushPendingGroups","ctx","pendingGroups","length","sort","a","b","order","forEach","play","_command","playGroup","group","pending","children","child","push","SaveBackdropFilter","saveBackdropFilter","SaveLayer","materializePaint","paint","paintDeclarations","pop","canvas","saveLayer","SavePaint","paints","standalone","savePaint","freshPaint","Skia","Paint","assign","RestorePaint","restorePaint","ComposeColorFilter","RestorePaintDeclaration","Error","MaterializePaint","ComposePathEffect","ComposeImageFilter","PushBlurMaskFilter","SaveCTM","RestoreCTM","restore","copy","setAlphaf","getAlphaf","getOpacity","p","DrawPaint","drawPaint","DrawImage","DrawCircle","DrawPoints","DrawPath","DrawRect","DrawRRect","DrawOval","DrawLine","DrawPatch","DrawVertices","DrawDiffRect","DrawText","DrawTextPath","DrawTextBlob","DrawGlyphs","DrawPicture","DrawImageSVG","DrawParagraph","DrawAtlas","DrawSkottie","console","warn","type","replay","commands"],"sources":["Player.ts"],"sourcesContent":["import type { DrawingNodeProps } from \"../../dom/types\";\n\nimport {\n drawCircle,\n drawImage,\n drawOval,\n drawPath,\n drawPoints,\n drawRect,\n drawRRect,\n drawLine,\n drawAtlas,\n drawParagraph,\n drawImageSVG,\n drawPicture,\n drawGlyphs,\n drawTextBlob,\n drawTextPath,\n drawText,\n drawDiffRect,\n drawVertices,\n drawPatch,\n drawSkottie,\n} from \"./commands/Drawing\";\nimport { drawBox, isBoxCommand } from \"./commands/Box\";\nimport {\n composeColorFilters,\n isPushColorFilter,\n pushColorFilter,\n} from \"./commands/ColorFilters\";\nimport { saveCTM } from \"./commands/CTM\";\nimport {\n setBlurMaskFilter,\n isPushImageFilter,\n pushImageFilter,\n composeImageFilters,\n} from \"./commands/ImageFilters\";\nimport { setPaintProperties } from \"./commands/Paint\";\nimport {\n composePathEffects,\n isPushPathEffect,\n pushPathEffect,\n} from \"./commands/PathEffects\";\nimport { isPushShader, pushShader } from \"./commands/Shaders\";\nimport {\n CommandType,\n isCommand,\n isDrawCommand,\n isGroup,\n materializeCommand,\n} from \"./Core\";\nimport type { Command, GroupCommand } from \"./Core\";\nimport type { DrawingContext } from \"./DrawingContext\";\n\ntype PendingGroup = {\n command: GroupCommand;\n zIndex: number;\n order: number;\n};\n\nconst getZIndex = (command: GroupCommand) => {\n \"worklet\";\n const materialized = materializeCommand(command);\n const { zIndex } = (materialized.props ?? {}) as DrawingNodeProps;\n if (typeof zIndex !== \"number\" || Number.isNaN(zIndex)) {\n return 0;\n }\n return zIndex;\n};\n\nconst flushPendingGroups = (\n ctx: DrawingContext,\n pendingGroups: PendingGroup[]\n) => {\n \"worklet\";\n if (pendingGroups.length === 0) {\n return;\n }\n pendingGroups\n .sort((a, b) =>\n a.zIndex === b.zIndex ? a.order - b.order : a.zIndex - b.zIndex\n )\n .forEach(({ command }) => {\n play(ctx, command);\n });\n pendingGroups.length = 0;\n};\n\nconst play = (ctx: DrawingContext, _command: Command) => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const playGroup = (ctx: DrawingContext, group: GroupCommand) => {\n \"worklet\";\n const pending: PendingGroup[] = [];\n group.children.forEach((child) => {\n if (isGroup(child)) {\n pending.push({\n command: child,\n zIndex: getZIndex(child),\n order: pending.length,\n });\n return;\n }\n flushPendingGroups(ctx, pending);\n play(ctx, child);\n });\n flushPendingGroups(ctx, pending);\n };\n\n (\"worklet\");\n if (isGroup(_command)) {\n playGroup(ctx, _command);\n return;\n }\n const command = materializeCommand(_command);\n if (isCommand(command, CommandType.SaveBackdropFilter)) {\n ctx.saveBackdropFilter();\n } else if (isCommand(command, CommandType.SaveLayer)) {\n ctx.materializePaint();\n const paint = ctx.paintDeclarations.pop();\n ctx.canvas.saveLayer(paint);\n } else if (isDrawCommand(command, CommandType.SavePaint)) {\n if (command.props.paint) {\n ctx.paints.push(command.props.paint);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const { standalone } = command as any;\n ctx.savePaint();\n if (standalone) {\n const freshPaint = ctx.Skia.Paint();\n ctx.paint.assign(freshPaint);\n }\n setPaintProperties(ctx.Skia, ctx, command.props, standalone);\n }\n } else if (isCommand(command, CommandType.RestorePaint)) {\n ctx.restorePaint();\n } else if (isCommand(command, CommandType.ComposeColorFilter)) {\n composeColorFilters(ctx);\n } else if (isCommand(command, CommandType.RestorePaintDeclaration)) {\n ctx.materializePaint();\n const paint = ctx.restorePaint();\n if (!paint) {\n throw new Error(\"No paint declaration to push\");\n }\n ctx.paintDeclarations.push(paint);\n } else if (isCommand(command, CommandType.MaterializePaint)) {\n ctx.materializePaint();\n } else if (isPushColorFilter(command)) {\n pushColorFilter(ctx, command);\n } else if (isPushShader(command)) {\n pushShader(ctx, command);\n } else if (isPushImageFilter(command)) {\n pushImageFilter(ctx, command);\n } else if (isPushPathEffect(command)) {\n pushPathEffect(ctx, command);\n } else if (isCommand(command, CommandType.ComposePathEffect)) {\n composePathEffects(ctx);\n } else if (isCommand(command, CommandType.ComposeImageFilter)) {\n composeImageFilters(ctx);\n } else if (isDrawCommand(command, CommandType.PushBlurMaskFilter)) {\n setBlurMaskFilter(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.SaveCTM)) {\n saveCTM(ctx, command.props);\n } else if (isCommand(command, CommandType.RestoreCTM)) {\n ctx.canvas.restore();\n } else {\n // TODO: is a copy needed here?\n // apply opacity to the current paint.\n const paint = ctx.paint.copy();\n paint.setAlphaf(paint.getAlphaf() * ctx.getOpacity());\n const paints = [paint, ...ctx.paintDeclarations];\n ctx.paintDeclarations = [];\n paints.forEach((p) => {\n ctx.paints.push(p);\n if (isBoxCommand(command)) {\n drawBox(ctx, command);\n } else if (isCommand(command, CommandType.DrawPaint)) {\n ctx.canvas.drawPaint(ctx.paint);\n } else if (isDrawCommand(command, CommandType.DrawImage)) {\n drawImage(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawCircle)) {\n drawCircle(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPoints)) {\n drawPoints(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPath)) {\n drawPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRect)) {\n drawRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRRect)) {\n drawRRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawOval)) {\n drawOval(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawLine)) {\n drawLine(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPatch)) {\n drawPatch(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawVertices)) {\n drawVertices(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawDiffRect)) {\n drawDiffRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawText)) {\n drawText(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextPath)) {\n drawTextPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextBlob)) {\n drawTextBlob(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawGlyphs)) {\n drawGlyphs(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPicture)) {\n drawPicture(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawImageSVG)) {\n drawImageSVG(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawParagraph)) {\n drawParagraph(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawAtlas)) {\n drawAtlas(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawSkottie)) {\n drawSkottie(ctx, command.props);\n } else {\n console.warn(`Unknown command: ${command.type}`);\n }\n ctx.paints.pop();\n });\n }\n};\nexport function replay(ctx: DrawingContext, commands: Command[]) {\n \"worklet\";\n //console.log(debugTree(commands));\n commands.forEach((command) => {\n play(ctx, command);\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["drawCircle","drawImage","drawOval","drawPath","drawPoints","drawRect","drawRRect","drawLine","drawAtlas","drawParagraph","drawImageSVG","drawPicture","drawGlyphs","drawTextBlob","drawTextPath","drawText","drawDiffRect","drawVertices","drawPatch","drawSkottie","drawBox","isBoxCommand","composeColorFilters","isPushColorFilter","pushColorFilter","saveCTM","setBlurMaskFilter","isPushImageFilter","pushImageFilter","composeImageFilters","setPaintProperties","composePathEffects","isPushPathEffect","pushPathEffect","isPushShader","pushShader","CommandType","isCommand","isDrawCommand","isGroup","materializeCommand","getZIndex","command","_materialized$props","materialized","zIndex","props","Number","isNaN","play","ctx","_command","flushPendingGroups","pendingGroups","length","sort","a","b","order","forEach","playGroup","group","pending","children","child","push","SaveBackdropFilter","saveBackdropFilter","SaveLayer","materializePaint","paint","paintDeclarations","pop","canvas","saveLayer","SavePaint","paints","standalone","savePaint","freshPaint","Skia","Paint","assign","RestorePaint","restorePaint","ComposeColorFilter","RestorePaintDeclaration","Error","MaterializePaint","ComposePathEffect","ComposeImageFilter","PushBlurMaskFilter","SaveCTM","RestoreCTM","restore","copy","setAlphaf","getAlphaf","getOpacity","p","DrawPaint","drawPaint","DrawImage","DrawCircle","DrawPoints","DrawPath","DrawRect","DrawRRect","DrawOval","DrawLine","DrawPatch","DrawVertices","DrawDiffRect","DrawText","DrawTextPath","DrawTextBlob","DrawGlyphs","DrawPicture","DrawImageSVG","DrawParagraph","DrawAtlas","DrawSkottie","console","warn","type","replay","commands"],"sources":["Player.ts"],"sourcesContent":["import type { DrawingNodeProps } from \"../../dom/types\";\n\nimport {\n drawCircle,\n drawImage,\n drawOval,\n drawPath,\n drawPoints,\n drawRect,\n drawRRect,\n drawLine,\n drawAtlas,\n drawParagraph,\n drawImageSVG,\n drawPicture,\n drawGlyphs,\n drawTextBlob,\n drawTextPath,\n drawText,\n drawDiffRect,\n drawVertices,\n drawPatch,\n drawSkottie,\n} from \"./commands/Drawing\";\nimport { drawBox, isBoxCommand } from \"./commands/Box\";\nimport {\n composeColorFilters,\n isPushColorFilter,\n pushColorFilter,\n} from \"./commands/ColorFilters\";\nimport { saveCTM } from \"./commands/CTM\";\nimport {\n setBlurMaskFilter,\n isPushImageFilter,\n pushImageFilter,\n composeImageFilters,\n} from \"./commands/ImageFilters\";\nimport { setPaintProperties } from \"./commands/Paint\";\nimport {\n composePathEffects,\n isPushPathEffect,\n pushPathEffect,\n} from \"./commands/PathEffects\";\nimport { isPushShader, pushShader } from \"./commands/Shaders\";\nimport {\n CommandType,\n isCommand,\n isDrawCommand,\n isGroup,\n materializeCommand,\n} from \"./Core\";\nimport type { Command, GroupCommand } from \"./Core\";\nimport type { DrawingContext } from \"./DrawingContext\";\n\ntype PendingGroup = {\n command: GroupCommand;\n zIndex: number;\n order: number;\n};\n\nconst getZIndex = (command: GroupCommand) => {\n \"worklet\";\n const materialized = materializeCommand(command);\n const { zIndex } = (materialized.props ?? {}) as DrawingNodeProps;\n if (typeof zIndex !== \"number\" || Number.isNaN(zIndex)) {\n return 0;\n }\n return zIndex;\n};\n\nconst play = (ctx: DrawingContext, _command: Command) => {\n const flushPendingGroups = (\n // eslint-disable-next-line @typescript-eslint/no-shadow\n ctx: DrawingContext,\n pendingGroups: PendingGroup[]\n ) => {\n \"worklet\";\n if (pendingGroups.length === 0) {\n return;\n }\n pendingGroups\n .sort((a, b) =>\n a.zIndex === b.zIndex ? a.order - b.order : a.zIndex - b.zIndex\n )\n .forEach(({ command }) => {\n play(ctx, command);\n });\n pendingGroups.length = 0;\n };\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const playGroup = (ctx: DrawingContext, group: GroupCommand) => {\n \"worklet\";\n const pending: PendingGroup[] = [];\n group.children.forEach((child) => {\n if (isGroup(child)) {\n pending.push({\n command: child,\n zIndex: getZIndex(child),\n order: pending.length,\n });\n return;\n }\n flushPendingGroups(ctx, pending);\n play(ctx, child);\n });\n flushPendingGroups(ctx, pending);\n };\n\n (\"worklet\");\n if (isGroup(_command)) {\n playGroup(ctx, _command);\n return;\n }\n const command = materializeCommand(_command);\n if (isCommand(command, CommandType.SaveBackdropFilter)) {\n ctx.saveBackdropFilter();\n } else if (isCommand(command, CommandType.SaveLayer)) {\n ctx.materializePaint();\n const paint = ctx.paintDeclarations.pop();\n ctx.canvas.saveLayer(paint);\n } else if (isDrawCommand(command, CommandType.SavePaint)) {\n if (command.props.paint) {\n ctx.paints.push(command.props.paint);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const { standalone } = command as any;\n ctx.savePaint();\n if (standalone) {\n const freshPaint = ctx.Skia.Paint();\n ctx.paint.assign(freshPaint);\n }\n setPaintProperties(ctx.Skia, ctx, command.props, standalone);\n }\n } else if (isCommand(command, CommandType.RestorePaint)) {\n ctx.restorePaint();\n } else if (isCommand(command, CommandType.ComposeColorFilter)) {\n composeColorFilters(ctx);\n } else if (isCommand(command, CommandType.RestorePaintDeclaration)) {\n ctx.materializePaint();\n const paint = ctx.restorePaint();\n if (!paint) {\n throw new Error(\"No paint declaration to push\");\n }\n ctx.paintDeclarations.push(paint);\n } else if (isCommand(command, CommandType.MaterializePaint)) {\n ctx.materializePaint();\n } else if (isPushColorFilter(command)) {\n pushColorFilter(ctx, command);\n } else if (isPushShader(command)) {\n pushShader(ctx, command);\n } else if (isPushImageFilter(command)) {\n pushImageFilter(ctx, command);\n } else if (isPushPathEffect(command)) {\n pushPathEffect(ctx, command);\n } else if (isCommand(command, CommandType.ComposePathEffect)) {\n composePathEffects(ctx);\n } else if (isCommand(command, CommandType.ComposeImageFilter)) {\n composeImageFilters(ctx);\n } else if (isDrawCommand(command, CommandType.PushBlurMaskFilter)) {\n setBlurMaskFilter(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.SaveCTM)) {\n saveCTM(ctx, command.props);\n } else if (isCommand(command, CommandType.RestoreCTM)) {\n ctx.canvas.restore();\n } else {\n // TODO: is a copy needed here?\n // apply opacity to the current paint.\n const paint = ctx.paint.copy();\n paint.setAlphaf(paint.getAlphaf() * ctx.getOpacity());\n const paints = [paint, ...ctx.paintDeclarations];\n ctx.paintDeclarations = [];\n paints.forEach((p) => {\n ctx.paints.push(p);\n if (isBoxCommand(command)) {\n drawBox(ctx, command);\n } else if (isCommand(command, CommandType.DrawPaint)) {\n ctx.canvas.drawPaint(ctx.paint);\n } else if (isDrawCommand(command, CommandType.DrawImage)) {\n drawImage(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawCircle)) {\n drawCircle(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPoints)) {\n drawPoints(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPath)) {\n drawPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRect)) {\n drawRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawRRect)) {\n drawRRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawOval)) {\n drawOval(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawLine)) {\n drawLine(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPatch)) {\n drawPatch(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawVertices)) {\n drawVertices(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawDiffRect)) {\n drawDiffRect(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawText)) {\n drawText(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextPath)) {\n drawTextPath(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawTextBlob)) {\n drawTextBlob(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawGlyphs)) {\n drawGlyphs(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawPicture)) {\n drawPicture(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawImageSVG)) {\n drawImageSVG(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawParagraph)) {\n drawParagraph(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawAtlas)) {\n drawAtlas(ctx, command.props);\n } else if (isDrawCommand(command, CommandType.DrawSkottie)) {\n drawSkottie(ctx, command.props);\n } else {\n console.warn(`Unknown command: ${command.type}`);\n }\n ctx.paints.pop();\n });\n }\n};\nexport function replay(ctx: DrawingContext, commands: Command[]) {\n \"worklet\";\n //console.log(debugTree(commands));\n commands.forEach((command) => {\n play(ctx, command);\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -68,25 +68,25 @@ const getZIndex = (command: GroupCommand) => {
|
|
|
68
68
|
return zIndex;
|
|
69
69
|
};
|
|
70
70
|
|
|
71
|
-
const flushPendingGroups = (
|
|
72
|
-
ctx: DrawingContext,
|
|
73
|
-
pendingGroups: PendingGroup[]
|
|
74
|
-
) => {
|
|
75
|
-
"worklet";
|
|
76
|
-
if (pendingGroups.length === 0) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
pendingGroups
|
|
80
|
-
.sort((a, b) =>
|
|
81
|
-
a.zIndex === b.zIndex ? a.order - b.order : a.zIndex - b.zIndex
|
|
82
|
-
)
|
|
83
|
-
.forEach(({ command }) => {
|
|
84
|
-
play(ctx, command);
|
|
85
|
-
});
|
|
86
|
-
pendingGroups.length = 0;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
71
|
const play = (ctx: DrawingContext, _command: Command) => {
|
|
72
|
+
const flushPendingGroups = (
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
74
|
+
ctx: DrawingContext,
|
|
75
|
+
pendingGroups: PendingGroup[]
|
|
76
|
+
) => {
|
|
77
|
+
"worklet";
|
|
78
|
+
if (pendingGroups.length === 0) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
pendingGroups
|
|
82
|
+
.sort((a, b) =>
|
|
83
|
+
a.zIndex === b.zIndex ? a.order - b.order : a.zIndex - b.zIndex
|
|
84
|
+
)
|
|
85
|
+
.forEach(({ command }) => {
|
|
86
|
+
play(ctx, command);
|
|
87
|
+
});
|
|
88
|
+
pendingGroups.length = 0;
|
|
89
|
+
};
|
|
90
90
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
91
91
|
const playGroup = (ctx: DrawingContext, group: GroupCommand) => {
|
|
92
92
|
"worklet";
|