@shopify/react-native-skia
Version:
High-performance React Native Graphics using Skia
51 lines (34 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.BlendNode = void 0;
var _types = require("../../../skia/types");
var _NodeType = require("../../types/NodeType");
var _Node = require("../Node");
var _datatypes = require("../datatypes");
var _DeclarationContext = require("../../types/DeclarationContext");
class BlendNode extends _Node.JsiDeclarationNode {
constructor(ctx, props) {
super(ctx, _NodeType.DeclarationType.ImageFilter, _NodeType.NodeType.Blend, props);
}
decorate(ctx) {
this.decorateChildren(ctx);
const {
Skia
} = this;
const blend = _types.BlendMode[(0, _datatypes.enumKey)(this.props.mode)]; // Blend ImageFilters
const imageFilters = ctx.imageFilters.popAll();
if (imageFilters.length > 0) {
const composer = Skia.ImageFilter.MakeBlend.bind(Skia.ImageFilter, blend);
ctx.imageFilters.push((0, _DeclarationContext.composeDeclarations)(imageFilters, composer));
} // Blend Shaders
const shaders = ctx.shaders.popAll();
if (shaders.length > 0) {
const composer = Skia.Shader.MakeBlend.bind(Skia.Shader, blend);
ctx.shaders.push((0, _DeclarationContext.composeDeclarations)(shaders, composer));
}
}
}
exports.BlendNode = BlendNode;
//# sourceMappingURL=BlendNode.js.map