/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import BackgroundTextEffect from './BackgroundTextEffect'; import DesaturateEffect from './DesaturateEffect'; import {Effect} from './Effect'; import EraseBackgroundEffect from './EraseBackgroundEffect'; import OriginalEffect from './OriginalEffect'; import OverlayEffect from './OverlayEffect'; import ArrowGLEffect from './ArrowGLEffect'; import BackgroundBlurEffect from './BackgroundBlurEffect'; import BurstGLEffect from './BurstGLEffect'; import CutoutGLEffect from './CutoutGLEffect'; import EraseForegroundGLEffect from './EraseForegroundGLEffect'; import GradientEffect from './GradientEffect'; import NoisyMaskEffect from './NoisyMaskEffect'; import PixelateEffect from './PixelateEffect'; import PixelateMaskGLEffect from './PixelateMaskGLEffect'; import ReplaceGLEffect from './ReplaceGLEffect'; import ScopeGLEffect from './ScopeGLEffect'; import SobelEffect from './SobelEffect'; import VibrantMaskEffect from './VibrantMaskEffect'; export type Effects = { /* Backgrounds */ Original: Effect; EraseBackground: Effect; Desaturate: Effect; Pixelate: Effect; Sobel: Effect; BackgroundText: Effect; BackgroundBlur: Effect; Gradient: Effect; /* Highlights */ Overlay: Effect; EraseForeground: Effect; Cutout: Effect; Scope: Effect; VibrantMask: Effect; Replace: Effect; Burst: Effect; PixelateMask: Effect; Arrow: Effect; /* More Effects */ NoisyMask: Effect; }; export default { /* Backgrounds */ Original: new OriginalEffect(), EraseBackground: new EraseBackgroundEffect(), Desaturate: new DesaturateEffect(), Pixelate: new PixelateEffect(), Sobel: new SobelEffect(), BackgroundText: new BackgroundTextEffect(), BackgroundBlur: new BackgroundBlurEffect(), Gradient: new GradientEffect(), /* Highlights */ Overlay: new OverlayEffect(), EraseForeground: new EraseForegroundGLEffect(), Cutout: new CutoutGLEffect(), Scope: new ScopeGLEffect(), VibrantMask: new VibrantMaskEffect(), Replace: new ReplaceGLEffect(), Burst: new BurstGLEffect(), PixelateMask: new PixelateMaskGLEffect(), Arrow: new ArrowGLEffect(), /* More Effects */ NoisyMask: new NoisyMaskEffect(), } as Effects; export enum EffectIndex { BACKGROUND = 0, HIGHLIGHT = 1, } type EffectComboItem = {name: keyof Effects; variant: number}; export type EffectsCombo = [EffectComboItem, EffectComboItem]; export const effectPresets: EffectsCombo[] = [ [ {name: 'Original', variant: 0}, {name: 'Overlay', variant: 0}, ], [ {name: 'Desaturate', variant: 0}, {name: 'Burst', variant: 2}, ], [ {name: 'Desaturate', variant: 1}, {name: 'VibrantMask', variant: 0}, ], [ {name: 'BackgroundText', variant: 1}, {name: 'Cutout', variant: 0}, ], [ {name: 'Original', variant: 0}, {name: 'PixelateMask', variant: 1}, ], [ {name: 'Desaturate', variant: 2}, {name: 'Cutout', variant: 0}, ], [ {name: 'Sobel', variant: 3}, {name: 'Cutout', variant: 1}, ], [ {name: 'Sobel', variant: 2}, {name: 'EraseForeground', variant: 2}, ], [ {name: 'EraseBackground', variant: 0}, {name: 'EraseForeground', variant: 0}, ], ];