UNPKG

@shopify/react-native-skia

Version:

High-performance React Native Graphics using Skia

195 lines (137 loc) 4.54 kB
import { NodeType } from "../dom/types"; import { exhaustiveCheck } from "./typeddash"; // This flag should only be turned on for debugging/testing const shouldUseJSDomOnNative = false; export const NATIVE_DOM = shouldUseJSDomOnNative ? false : !!global.SkiaDomApi; export const createNode = (container, type, props) => { const { Sk } = container; switch (type) { case NodeType.Layer: return Sk.Layer(props); case NodeType.Group: return Sk.Group(props); case NodeType.Paint: return Sk.Paint(props); // Drawings case NodeType.Fill: return Sk.Fill(props); case NodeType.Image: return Sk.Image(props); case NodeType.Circle: return Sk.Circle(props); case NodeType.Path: return Sk.Path(props); case NodeType.Drawing: return Sk.CustomDrawing(props); case NodeType.Line: return Sk.Line(props); case NodeType.Oval: return Sk.Oval(props); case NodeType.Patch: return Sk.Patch(props); case NodeType.Points: return Sk.Points(props); case NodeType.Rect: return Sk.Rect(props); case NodeType.RRect: return Sk.RRect(props); case NodeType.Vertices: return Sk.Vertices(props); case NodeType.Text: return Sk.Text(props); case NodeType.TextPath: return Sk.TextPath(props); case NodeType.TextBlob: return Sk.TextBlob(props); case NodeType.Glyphs: return Sk.Glyphs(props); case NodeType.DiffRect: return Sk.DiffRect(props); case NodeType.Picture: return Sk.Picture(props); case NodeType.ImageSVG: return Sk.ImageSVG(props); // Mask Filter case NodeType.BlurMaskFilter: return Sk.BlurMaskFilter(props); // Image Filter case NodeType.BlendImageFilter: return Sk.BlendImageFilter(props); case NodeType.BlurImageFilter: return Sk.BlurImageFilter(props); case NodeType.OffsetImageFilter: return Sk.OffsetImageFilter(props); case NodeType.DropShadowImageFilter: return Sk.DropShadowImageFilter(props); case NodeType.DisplacementMapImageFilter: return Sk.DisplacementMapImageFilter(props); case NodeType.MorphologyImageFilter: return Sk.MorphologyImageFilter(props); case NodeType.RuntimeShaderImageFilter: return Sk.RuntimeShaderImageFilter(props); // Color Filter case NodeType.MatrixColorFilter: return Sk.MatrixColorFilter(props); case NodeType.BlendColorFilter: return Sk.BlendColorFilter(props); case NodeType.LerpColorFilter: return Sk.LerpColorFilter(props); case NodeType.LumaColorFilter: return Sk.LumaColorFilter(); case NodeType.LinearToSRGBGammaColorFilter: return Sk.LinearToSRGBGammaColorFilter(); case NodeType.SRGBToLinearGammaColorFilter: return Sk.SRGBToLinearGammaColorFilter(); // Shader case NodeType.Shader: return Sk.Shader(props); case NodeType.ImageShader: return Sk.ImageShader(props); case NodeType.ColorShader: return Sk.ColorShader(props); case NodeType.Turbulence: return Sk.Turbulence(props); case NodeType.FractalNoise: return Sk.FractalNoise(props); case NodeType.LinearGradient: return Sk.LinearGradient(props); case NodeType.RadialGradient: return Sk.RadialGradient(props); case NodeType.SweepGradient: return Sk.SweepGradient(props); case NodeType.TwoPointConicalGradient: return Sk.TwoPointConicalGradient(props); // Path Effect case NodeType.CornerPathEffect: return Sk.CornerPathEffect(props); case NodeType.DiscretePathEffect: return Sk.DiscretePathEffect(props); case NodeType.DashPathEffect: return Sk.DashPathEffect(props); case NodeType.Path1DPathEffect: return Sk.Path1DPathEffect(props); case NodeType.Path2DPathEffect: return Sk.Path2DPathEffect(props); case NodeType.SumPathEffect: return Sk.SumPathEffect(); case NodeType.Line2DPathEffect: return Sk.Line2DPathEffect(props); // Mixed case NodeType.Blend: return Sk.Blend(props); case NodeType.BackdropFilter: return Sk.BackdropFilter(props); case NodeType.Box: return Sk.Box(props); case NodeType.BoxShadow: return Sk.BoxShadow(props); // Paragraph case NodeType.Paragraph: return Sk.Paragraph(props); default: return exhaustiveCheck(type); } }; //# sourceMappingURL=HostComponents.js.map