/*
 * Software written by Jared Bruni https://github.com/lostjared
 
 This software is dedicated to all the people that experience mental illness.
 
 Website: http://lostsidedead.com
 YouTube: http://youtube.com/LostSideDead
 Instagram: http://instagram.com/lostsidedead
 Twitter: http://twitter.com/jaredbruni
 Facebook: http://facebook.com/LostSideDead0x
 
 You can use this program free of charge and redistrubute it online as long
 as you do not charge anything for this program. This program is meant to be
 100% free.
 
 BSD 2-Clause License
 
 Copyright (c) 2019, Jared Bruni
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
 
 * Redistributions of source code must retain the above copyright notice, this
 list of conditions and the following disclaimer.
 
 * Redistributions in binary form must reproduce the above copyright notice,
 this list of conditions and the following disclaimer in the documentation
 and/or other materials provided with the distribution.
 
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 */

#include "ac.h"
// Acid Cam namespace
namespace ac {
#if defined(__APPLE__)
    const std::string version="2.40.0 (macOS)";
#elif defined(__linux__)
    const std::string version="2.40.0 (Linux)";
#elif defined(_WIN32)
    const std::string version="2.40.0 (Windows)";
#else
    const std::string version="2.40.0 (Generic)";
#endif
    
    std::mutex col_lock;
    // variables
    int swapColor_r = 0, swapColor_g = 0, swapColor_b = 0;
    bool isNegative = false, noRecord = false, pass2_enabled = false, blendW = false, slide_Show = false, slide_Rand = false, strobe_It = false, switch_Back = false, blur_First = false;
    bool images_Enabled = false, fps_force = false,iRev = false;
    bool blur_Second = false;
    int set_color_map = 0;
    cv::Mat orig_frame;
    cv::Mat blendW_frame;
    cv::Mat image_files[4];
    double alpha = 1.0f, tr = 0.01f;
    double fps = 29.97;
    int draw_offset = 0;
    bool snapShot = false;
    int color_order = 0;
    int snapshot_Type = 0;
    bool in_custom = false;
    cv::Size resolution(0, 0);
    std::string fileName ="VideoFile.avi";
    std::string draw_strings_value[] = { "Self AlphaBlend", "Self Scale", "StrobeEffect", "Blend #3", "Negative Paradox","ThoughtMode", "RandTriBlend", "Blank", "Tri", "Distort", "CDraw", "Type", "NewOne", "Blend Fractal","Blend Fractal Mood", "CosSinMultiply", "Color Accumlate1", "Color Accumulate2", "Color Accumulate3", "Filter8","Filter3","Rainbow Blend","Rand Blend","New Blend", "Alpha Flame Filters", "Pixel Scale", "PixelSort", "GlitchSort","Random Filter", "Random Flash", "Blend with Image", "Blend with Image #2", "Blend with Image #3", "Blend with Image #4", "GaussianBlur", "Median Blur", "Blur Distortion", "Diamond Pattern","MirrorBlend","Pulse","Sideways Mirror","Mirror No Blend","Sort Fuzz","Fuzz","Double Vision","RGB Shift","RGB Sep","Graident Rainbow","Gradient Rainbow Flash", "Reverse", "Scanlines", "TV Static", "Mirror Average", "Mirror Average Mix", "Mean", "Laplacian", "Bitwise_XOR", "Bitwise_AND","Bitwise_OR","Equalize", "Channel Sort", "Reverse_XOR", "Combine Pixels", "FlipTrip", "Canny","Boxes","Boxes Fade", "Flash Black","SlideRGB","Side2Side","Top2Bottom","Strobe Red Then Green Then Blue","Blend_Angle", "Outward", "Outward Square","ShiftPixels", "ShiftPixelsDown", "XorMultiBlend", "Bitwise_Rotate", "Bitwise_Rotate Diff","HPPD","FuzzyLines","GradientLines","GradientSelf","GradientSelfVertical","GradientDown","GraidentHorizontal","GradientRGB","Inter","UpDown","LeftRight","StrobeScan","BlendedScanLines","GradientStripes","XorSine","SquareSwap","SquareSwap4x2","SquareSwap8x4","SquareSwap16x8","SquareSwap64x32","SquareBars","SquareBars8","SquareSwapRand16x8","SquareVertical8","SquareVertical16","SquareVertical_Roll","SquareSwapSort_Roll","SquareVertical_RollReverse","SquareSwapSort_RollReverse","Circular","WhitePixel","FrameBlend","FrameBlendRGB","TrailsFilter","TrailsFilterIntense","TrailsFilterSelfAlpha","TrailsFilterXor","ColorTrails","MoveRed","MoveRGB","MoveRedGreenBlue","BlurSim","Block","BlockXor","BlockScale","BlockStrobe","PrevFrameBlend","Wave","HighWave","VerticalSort","VerticalChannelSort","HorizontalBlend","VerticalBlend","OppositeBlend","DiagonalLines","HorizontalLines","InvertedScanlines","Soft_Mirror","KanapaTrip","ColorMorphing","ScanSwitch","ScanAlphaSwitch","NegativeStrobe", "XorAddMul","ParticleRelease", "BlendSwitch", "All Red", "All Green", "All Blue","LineRGB","PixelRGB","BoxedRGB","KruegerSweater","RGBFlash","IncreaseBlendHorizontal","BlendIncrease","GradientReverse","GradientReverseVertical","GradientReverseBox","GradientNewFilter","ReinterpretDouble","ReinterpSelfScale","AverageLines","ImageFile","ImageXor","ImageAlphaBlend","ColorRange","ImageInter","TrailsInter","TrailsBlend","TrailsNegate","InterReverse","InterMirror","InterFullMirror","MirrorRGB","RGBStatic1","RGBStatic2","VectorIncrease","LineByLineReverse","RandomIntertwine","RandomFour","BlendThree","AcidTrails","RandomTwo","HorizontalTrailsInter","Trails","BlendTrails","Negate","RandomFilteredSquare","ImageX","RandomQuads","QuadCosSinMultiply","QuadRandomFilter","RollRandom","AverageRandom","HorizontalStripes","DiamondStrobe","SmoothTrails","GridFilter8x","GridFilter16x","GridFilter8xBlend","GridRandom","GridRandomPixel","Dual_SelfAlphaRainbow","Dual_SelfAlphaBlur","SurroundPixelXor","Darken","WeakBlend","AverageVertical","RandomCollectionAverage","RandomCollectionAverageMax","SmoothTrailsSelfAlphaBlend","SmoothTrailsRainbowBlend","MedianBlend","SmoothRandomImageBlend","SmoothImageAlphaBlend","RandomAlphaBlend","RandomTwoFilterAlphaBlend","PixelatedSquare","AlphaBlendPosition","BlendRowAlpha", "BlendRow","BlendRowByVar","BlendRowByDirection","BlendAlphaXor","SelfXorScale","BitwiseXorScale","XorTrails", "RainbowTrails","NegativeTrails","IntenseTrails","SelfAlphaRGB","BlendImageOnOff","XorSelfAlphaImage","BitwiseXorStrobe","AlphaBlendRandom","ChannelSortAlphaBlend","XorChannelSort","GradientColors","GradientColorsVertical","Bitwise_XOR_Average","ImageShiftMatrixLeft","GradientXorSelfScale","SmoothSourcePixel","StrobeBlend","FrameBars","Sort_Vertical_Horizontal","Sort_Vertical_Horizontal_Bitwise_XOR","Scalar_Average_Multiply","Scalar_Average","Total_Average","AlphaBlendImageXor","FlashWhite","FlashBlackAndWhite","GaussianBlend","RandomXor","RandomXorFlash","RandomAmountMedianBlur","SoftXor","SelfXorBlend","SelfXorDoubleFlash","SelfOrDoubleFlash","BlendRowCurvedSqrt","CycleShiftRGB","CycleShiftRandomRGB","CycleShiftRandomRGB_XorBlend","CycleShiftRandomAlphaBlend","VerticalColorBars","GradientLeftRight","GraidentUpDown","GradientLeftRightInOut","GradientUpDownInOut","Lines","ColorLines","WhiteLines","ThickWhiteLines","UseLineObject","TanAlphaGrid","MedianBlendAnimation","FibFlash", "ScaleFlash","Curtain","RandomCurtain","CurtainVertical","RandomCurtainVertical","inOrder","inOrderBySecond","DarkenFilter","RandomFilterBySecond","ThreeRandom","inOrderAlpha","inOrderAlphaXor","SlideFilter","SlideFilterXor", "RandomSlideFilter","SlideUpDown","SlideUpDownXor", "SlideUpDownRandom","SlideSubFilter", "SlideSubUpDownFilter","ParticleBlend","ParticleFlash","ExactImage","ParticleAlpha","BlendInAndOut","BlendScaleInAndOut","AcidGlitch","XorBackwards","LiquidFilter","MatrixXorAnd","XorAlpha","AlphaAcidTrails","SelfXorAverage","RandomXorBlend","RGBVerticalXor","RGBVerticalXorScale","RGBHorizontalXor","RGBHorizontalXorScale","FadeStrobe","RGBMirror","MirrorStrobe","AndStrobe","AndStrobeScale", "AndPixelStrobe","AndOrXorStrobe","AndOrXorStrobeScale","FadeInAndOut","BrightStrobe","DarkStrobe","ParticleFast","RandomXorOpposite","StrobeTransform","InitBlend","MoveUpLeft","RandomStrobe","RandomBlur","Stuck","StuckStrobe","OrStrobe","LagBlend","SubFilter","AddFilter","BlendImageXor","BlendImageAround_Median","ImageBlendTransform","RGBTrails","RGBTrailsDark","RGBTrailsAlpha","RGBTrailsNegativeAlpha","MovementRGBTrails","RGBTrailsXor","DifferenceStrobe","BlackAndWhiteDifferenceStrobe","DifferenceXor","DifferenceRand", "DifferenceBrightStrobe","PsycheTrails","FourSquare","EightSquare","DiagonalSquare","DiagonalSquareRandom","SquareStretchDown","SquareStretchRight","SquareStretchUp","SquareStretchLeft","DarkTrails","SoftFeedback","SoftFeedbackFrames","ResizeSoftFeedback","SoftFeedback8","SoftFeedbackFrames8","ResizeSoftFeedback8","ResizeSoftFeedbackSubFilter","SoftFeedbackRandFilter","SoftFeedback32","SoftFeedbackFrames32","ResizeSoftFeedback32","SoftFeedbackRandFilter32","SoftFeedbackSubFilter","SoftFeedbackResizeSubFilter","SoftFeedbackResize64","SoftFeedbackResizeSubFilter64","SoftFeedbackReszieSubFilter64_Negate","SoftFeedbackReszieSubFilter64_Mirror","HalfNegateStrobe","MedianBlurXor","NegateTrails","RandomGradient","RandomStrobeFlash","RandomMirror","RandomOther","RandomXorFilter","RandomMirrorBlend","RandomMirrorAlphaBlend","Bitwise_XOR_AlphaSubFilter","AlphaBlendSubFilter","GradientSubFilterXor","XorBlend_SubFilter","SmoothSubFilterAlphaBlend","SmoothSubFilterXorBlend","IntertwineSubFilter","RandBlend","EveryOther","EveryOtherSubFilter","SmoothRandomFilter","RandomFilterRandomTimes","RandomSubFilterRandomTimes","AddToFrameSubFilter","MirrorXor","MirrorXorAll","MirrorXorScale","EnergyMirror","SmoothSubFilter","EnergizeSubFilter","SmoothSubFilter16","EnergizeSubFilter16","EnergizeSubFilter32","SmoothSubFilter32","HalfAddSubFilter","HalfXorSubFilter","StaticXorBlend","PsycheSort","XorScale","ChannelMedianSubFilter","GaussianStrobe","StrobeSort","GlitchSortStrobe","Bitwise_XOR_Blend","Bitwise_XOR_Sort","Bitwise_OR_Blend","Bitwise_AND_Blend","BitwiseColorMatrix","PixelReverseXor","PixelatedSubFilterSort","SilverBlend","RandomPixelOrderSort","ImageXorAlpha","ImageAverageXor","PixelXorBlend","SelfAlphaScale","SelfScaleAlpha","RainbowXorBlend","FrameDifference","SmallDiffference","FadeBlend","FilteredDifferenceSubFilter","ExpandSquareSubFilter","ExpandSquareBlendSubFilter","ExpandSquareVerticalSubFilter","DarkImageMedianBlend","GammaDarken5","GammaDarken10","SelfAlphaScaleBlend","FadeBars","MirrorXorAlpha","MirrorEnergizeSubFilter","StrobeXor","IntertwinedMirror","BlurredMirror","ShadeRGB","InterRGB_SubFilter","InterSmoothSubFilter","InterRGB_Bars_XY","InterRGB_Bars_X","InterRGB_Bars_Y","StoredFramesAlphaBlend_SubFilter","BlendSubFilter","BlendAlphaSubFilter","ReverseFrameBlend","ReverseFrameBlendSwitch","DoubleRandomMirror","Blend_AlphaSubFilter","RandomBlendFilter","DoubleRandomBlendFilter","FlipBlendW","FlipBlendWH", "FlipBlendH", "FlipBlendAll","FrameMedianBlendSubFilter","FrameBlurSubFilter","ImageBlendSubFilter","ImageBlendXorSubFilter","ImageCollectionSubFilter","SelfScaleXorIncrease","Blend_RedGreenBlue","XorBlend_RedGreenBlue","BlendIncrease_RedGreenBlue","Blend_RedReenBlue_Dark","DarkModBlend","PictureBuzz","IncDifference","IncDifferenceAlpha","MirrorMedianBlend","SubFilterMedianBlend","DarkenBlend","DarkCollectionSubFilter","ChannelSort_NoBlend_Descending", "ChannelSort_NoBlend_Ascending","Headrush","DarkSmooth_Filter","DarkSelfAlpha","FlipMedian","FlipMedianSubFilter","FlipMirror","FlipMirrorAverage","FlipMirrorSubFilter","ShuffleMedian","ShuffleRGB","ParticleSnow","RandomPixels","DarkRandomPixels","MedianBlurSubFilter","Bars","ShuffleAlpha","AlphaMorph","ShuffleSelf","PixelatedHorizontalLines","PixelatedVerticalLines","StrobeShuffle","BlendBurred","BlendCombinedValues","RGBColorTrails","BlendCombinedValueSubFilter","BlendSubFilterAlpha","GradientXorPixels","PurpleRain","PixelByPixelXor","CopyXorAlpha","AveragePixelsXor","AveragePixelAlpha","NegativeByRow","AveragePixelCollection","IncorrectLine","XorShift","StrobeXorAndOr","XorWithSource","AlphaBlendWithSource","RGBSep1x","RGBMedianBlend","RGBMirror1","RGBMirror1Median","FlashMirror","CollectionXorSourceSubFilter","ReverseMirrorX","MirrorXorAll_Reverse","MirrorRGBReverse","MirrorRGBReverseBlend","BlendReverseSubFilter","MirrorBitwiseXor","SmoothBlendReverseSubFilter","RandomIncrease","MedianBlend16","MedianBlendBufferSubFilter","BGRBlend","RGBBlend","RGBBlendSubFilter","DivideAndIncH","DivideAndIncW","XorOppositeSubFilter","BlendSmoothSubFilter","BlurSmooth","BlurSmoothMedian","BlurSmoothSubFilter","BlurFlip","BlurFlipSubFilter","BlurMirrorGamma","MedianBlendDark","MedianBlendSubFilterEx","EnergyMirrorDark","AlphaBlendMirror","MirrorAlphaBlendedImage","AlphaBlendXorImage","ShiftFrameSmoothSubFilter","ShiftFrameStaticXorSubFilter","IncreaseDecreaseGamma","GammaIncDecIncrease","RandomSubFilter","TwistedVision","TwistedMirror","SelfScaleSortBlend","FlashMedianBlend","BlendWithFrameSubFilter","AlphaBlendWithFrameSubFilter","AlphaXorBlendWithFrameSubFilter","XorBlendSubFilter","FlipAlphaBlend","RandomFlipFilter","MirrorMedian","FlipMatrixCollection","MirrorMatrixCollection","MirrorMatrixSource","SelfScaleByFrame","SmoothMedianRotateSubFilter","SmoothCollectionAlphaBlend","XorSubFilter","XorAlphaSubFilter","BlurXorAlphaSubFilter","ImageXorFrame","ImageXorFunction","ImageXorAlphaBlend","ImageAlphaXorMedianSubFilter","ImageSmoothAlphaXorSubFilter","ImageXorMirrorFilter","ImageXorSubFilter","ImageAlphaXorSubFilter","SmoothTrailsBlend","MatrixCollectionRGBXor","RainbowGlitch","RainbowGlichStrobe","NegateSwitchStrobe","StrobeAlphaShuffle","ShuffleAlphaWithRGB","ShuffleAlphaSubFilter","ShuffleColorMap","BlendWithRainbowSubFilter","BlendWithJetSubFilter","ColormapBlendSubFilter","RandomColorMap","SmoothMirrorBlurFlip","RandomColorMapAlphaBlendSubFilter","RandomOrder","RandomOrderMedianBlendSubFilter","MirrorOrder","MirrorOrderSubFilter","BlurMirrorOrder","AveragePixelMirror","ShuffleAlphaMedianBlend","MirrorOrderAlpha","FilterStrobeSubFilter","ImageSubtractMedianBlend","ImageDarkBlend","ImageAverageDark","ImageRemainderPixel","AverageLinesBlend","SoftFeedbackMirror","AverageVerticalLinesBlend","LinesMedianBlend","XorSquare","PixelValuesPlusOne","AverageHorizontalFilter","AverageVerticalFilter","GradientAlphaXorHorizontal","GradientAlphaXorVertical","BlendImageWithSubFilter","BlendImageWithSubFilterAlpha","MedianBlendSoft","AndImageSubFilterXor","AlphaBlendImageSubFilterXor","AlphaBlendImageSubFilterXorRev","ParticleReleaseXor","ParticleReleaseXorVec","ParticleReleaseAlphaBlend","ParticleReleaseWithImage","ParticleReleaseSubFilter","ParticleReleaseImageSubFilter","ImageEnergy","ImageEnergySubFilter","ImageDistortion","ImageDistortionSubFilter","SmoothExactImageXorAlpha","FeedbackColormap","SmoothImageAlphaBlendMedian","ImageDarkenSmoothMedian","XorReverseImageSmooth","ReverseSubFilterBlend","ReverseSubFilterXor","ImageReverseSubFilter","SmoothRainbowMedian","MirrorAlphaBlend","ImageSmoothMedianBlend","ImageSmoothMedianSubFilter","ImageAlphaXorMedianBlend","MatrixCollectionBlend","MatrixCollectionSubFilter","MatrixCollectionImageSubFilter","MatrixCollectionBlurAlpha","MatrixCollectionXor","MatrixCollectionXor32","MatrixCollectionRandomColorMap","MatrixCollectionDarkXor","MatrixCollectionRGB","TrailsSubFilter","TrailsSubFilter32","CompareWithSubFilter","MedianTrails","SmoothMedianBlend","ColorTransition","ColorTransitionMedian","ColorTransitionRandom","ColorTransitionRandomMedian","ColorTransitionSubFilter","ColorTransitionImageSubFilter","CurtainSubFilter","RandomTrails","RandomTrailsSubFilter","CosSinMedianBlend","TrailsRGB","MatrixTrailsXorRandom","CosSinMultiplyCollectionXor","Filter8_Blend","Filter8_SubFilter","RandomSmoothAlphaMedian","RandomAlphaBlendFilter","RandomMirrorBitwiseXor","SquareDivideSubFilter","SquareSubFilter","SquareSubFilter8","SquareRandomFilter","SquareRandomSubFilter","ColorExpand","ColorExpandSubFilter","RotateImage","RotateBlendImage","RotateImageSubFilter","RotateAlphaBlendImage","FlipShuffle","FlipRandom","FlipOrder","FlipStrobeSubFilter","MirrorBlendFrame","MirrorBlendVertical","MirrorVerticalAndHorizontal","BlendFor360","MirrorSidesMedian","MirrorSidesSubFilter","MedianFrameAlphaBlendSubFilter","MedianSubFilter","ColorXorScale","ColorXorScaleSubFilter","ImageXorScale","MatrixCollectionShiftSubFilter","MatrixCollectionImageShiftSubFilter","MatrixCollectionXorBlendAlphaBlend","MatrixCollectionBlurImageXorAlpha","MatrixCollectionBlurImageSubFilter","MatrixCollectionBlurImageSubFilter16","ImageAlphaBlendSubFilter","MultipleMatrixCollectionSubFilter","BlurAlphaSubFilter","BlurImageSubFilter","MedianBlendSubFilter","MedianBlendImageSubFilter","MedianBlendSelfBlend","BlendHalfSubFilter","BlurImageAlphaBlend","BlurImageAlphaBlendSubFilter","BlurImageAlphaBlendScaleSubFilter","RandomAmountOfMedianBlur","Bitwise_XOR_BlendFrame","AlphaBlendWithSubFilter","AlphaBlendScaleWithSubFilter","GaussianBlendEx","SimpleMatrixBlend","MatrixBlendSubFilter","SmoothMatrixBlendSubFilter","BlurSmoothSubFilterAlphaBlend","BlurSmoothAlphaXorBlendSubFilter","BlurTwiceSubFilter","BlurFrameBlendSubFilter","BlurFrameSubFilter","BlurSmoothMatrix","MedianBlurInc","GaussianBlurInc","BlurSmoothMedianInc","BlurSmoothGaussianInc","BlurMatrixCollectionXor","MatrixCollection8XorSubFilter","BlurSmoothRevFilter","SurroundingPixels","SurroundingPixelsAlpha","MatrixCollectionSurroundingPixels","MatrixCollectionSurroundingPixelsSubFilter","MatrixCollectionSurroundingPixelsImage","MatrixCollectionSurroundingPixelsImageSubFilter","ImageTransparent","MatrixImageAlphaBlendSubFilter","ImageAlphaCollectionSmoothBlend","ImageRandomColormap","ImageRandomColormapAlphaBlend","ImageRandomColormapAlphaScale","ImageRandomColormapSubFilter","ImageShuffle","ImageSubFilter","ImageAlphaBlendWithFrameSubFilter","ImageFadeInOut","ImageFadeBlackInOut","ImageFadeBlackInOutSubFilter","ImageFadeFrameInOut","ImageFadeFrameInOutSubFilter","ImageFadeDouble","BlendSubFilterAndImage","FadeSubFilter","FadeSubFilterRev","ImageBlendSubFilterMedianBlend","FadeSubFilterXor","BlurXorSubFilter","ColorFlashIncrease","ScaleFilter","NegativeDarkenXor","ImageXor_SubFilter","NegateBlendSubFilter","StrobeNegatePixel","StrobeNegateInOut","ImageStrobeOnOff","AlphaStrobeBlend","CannyRandomPixels","FrameImageFadeInOut","FrameImageFadeInOutDouble","ChangeEachSecond","ShuffleImage","ChangeImageEachSecond","ChangeImageFilterOnOff","ChangeXorEachSecond","MorphXor","MorphXorWithSubFilter","MirrorEachSecond","MirrorReverseSubFilter","MirrorReverseSubFilterAlphaBlend","Mirror_Xor_Combined","MirrorFrameShuffle","MirrorShuffleSmooth","Mirror_Xor_Smooth","XorFrameShuffle","XorMirrorBlendFrame","ImageXorSmooth","SmoothSubFilter64","SmoothMedian64","SmoothMedian32_SubFilter","SmoothAlphaMedian_SubFilter","SmoothImage_SubFilter","SmoothImageMedian_SubFilter","SmoothImageAndSubFilter","SmoothSubFilter90","SmoothMedianImageSubFilter16","ImageNegate","ImageNegateAlphaBlend","ImageNegateAlphaBlendSubFilter","FrameNegateAlphaBlendImage","DarkTrailsEffect","DarkNegate","ChannelSortMedianBlend","MatrixCollectionMirrorDirection","StrobeRandomChannel","SplitFramesSort","SplitFrameSortSubFilter","MedianBlend64","SplitFrameFilter","SplitFrameBlend","SplitFrameBlendSubFilter","SplitFrameCollection","SplitFrameMirror","RandomChannels","SmoothRandomChannels","SmoothChannelSubFilter","IncreaseRGB","IncreaseColor","SaturateBlend","SaturateBlendSubFilter","MaxRGB","XorDifferenceFilter","AlphaBlendChannelSort","ColorTrailsFilter","ColorTrailsSubFilter","DarkNegateRainbowMedian","IncreaseQuick","IncreaseRandomIndex","ImageChannelSubFilter","ImageChannelChangeSubFilter","ImageChannelRandom","ImageChannelRandomSubFilter","PixelateBlur","PixelateBlock","PixelateNoResize12","PixelateNoResize8","PixelateNoResize32","PixelateNoResize16","PixelateNoResize24","PixelateBlurFilter","PixelateBlurSubFilter","MirrorXorImage","MirrorXorSubFilter","PixelXorImageSubFilter","PixelAlphaImageSubFilter","PixelScaleImageSubFilter","PixelImageSubFilter","PixelImageTex","PixelImageXorSubFilter","PixelRowMedianBlend","IntertwineRows32","IntertwineRows16","IntertwineRows8","IntertwineAlpha","IntertwineRowsSubFilter","IntertwineRows4","Intertwine64x4","Intertwine64X","Intertwine64XSubFilter","Intertwine64XPixel","IntertwinePixels","IntertwineColsX","IntertwineCols16","IntertwineCols32","IntertwineCols8","MirrorIntertwine","MirrorIntertwineImage","MirrorIntertwineImageSubFilter","IntertwineImageSubFilter","BlendWithImage","IntertwineRowsReverse32","IntertwineRowsReverse16","IntertwineRowsReverse8","IntertwineRowsReverse64X","IntertwineRowsSwitch32","IntertwineRowsSwitch16","IntertwineRowsSwitch8","IntertwineRows64","IntertwineRowsReverse64","IntertwineRowsSwitch64","IntertwineShuffle","InterwtineAlphaSubFilter","IntertwineImageAndSubFilter","IntertwineRowsAndCols","IntertwineRowsAndColsSubFilter","MatrixCollectionVariable","MatrixCollectionVariableSubFilter","MatrixCollectionVariableImage","MatrixCollectionVariableImageSubFilter","SmoothImageAverageSubFilter","CallSubFilterBlend50","CallSubFilterBlend25","CallSubFilterBlend75","IntertwineColsX2","SmoothFrame64","SmoothFrame32","MatrixCollectionMedianBlendFilter","MedianBlendIncreaseFilter","MedianBlendNegate","BlendWithFrameAndImageSubFilter","ImageIntertwine32","ImageIntertwine16","ImageIntertwine8","ImageIntertwine64X","IntertwineDoubleSubFilter","IntertwineDoubleImageSubFilter","IntertwineEachRowXSubFilter","IntertwineGhost","IntertwineGhost32","IntertwineGhostSubFilter","BlendWithOldFrame","BlendWith16thFrame","BlendTrailsFilter","LineMoveInOut","MatrixCollectionTrails","MatrixCollectionRandom","MatrixCollectionRandomSmooth","MatrixCollectionRandomDouble","MatrixCollectionAddImage","MatrixCollectionAlphaBlendSubFilter","MatrixCollectionImageBlendSubFilter","TwitchinGlitchin","IntertwineRowsImageAlphaBlend","ChannelSortSubFilter","IntertwineRow2","IntertwineRow720p","IntertwineRow1080p","IntertwineRow720pX2","IntertwineRow1080pX2","IntertwineCols1280","IntertwineRowCols1280x720","IntertwineRowsImage","MedianBlendSquare","SmoothIntertwineMedianBlend","SmoothBlendMedian","SmoothDoubleSubFilter","AlphaBlendMedianSubFilter","ReverseOnOff","SmoothReverseSubFilter","IntertwineWithSubFilter","IntertwineWithImageAndSubFilter","IntertwineFrameWithImage","InterlaceVerticalFilter","InterlaceHorizontalFilter","IntertwineImageFlip","IntertwineImageFlipSubFilter","IntertwineFlipImageAndSubFilter","IntertwineImageOnOff","IntertwineVideoShuffle","ImageFlipFilter","FlipFrameFilter","AlphaBlendImageAndSubFilter","SquareFill","StretchAlphaBlend","StretchAlphaBlendWidth","StretchAlphaBlendHeight","StretchAlphaBlendTwitch","StretchAlphaBlednTwitchFast","StretchRandomValues","ImageRandomValues","AlphaBlendTrails","VideoStretchHorizontal","VideoStretchVertical","StrobeTrailsFilter","AlphaBlendTrailsReverse","ShadowAlphaTrails16","ShadowAlphaTrailsReset","SetColormap","ShadowAlphaTrails","ShadowAlphaTrails64","MirrorLeft","MirrorRight","MirrorBackAndForth","FadeFromColorToColor","FadeFromColorToColorImage","Random_Filter","FlipY_Axis","FlipX_Axis","FlipBoth","FlipMirrorAlphaBlend","Random_FilterX2","Random_FilterSubFilter","IntertwineRow480pX2","LowFi","HighToLow","LowToHigh","MoveHighAndLow","StretchSubFilter","Quality480","Quality720","Quality1080","StretchVerticalMirror","ImageLoFi","ImageLofiAlphaBlend","ImageAlphaBlendScale","FrameStretchAlphaBlend","BlurHighToLow","ImageHighToLowAlpha","MirrorTopToBottom","MirrorBottomToTop","FlashRGB_SubFilter","MirrorSwitch","MirrorSwitchSubFilter","MirrorSwitchFlip","BlendImageLayer","StrobeRandomFilter","AlphaBlendRandom_Filter","DoubleRandomAlphaImageSubFilter","MirrorLeftMirrorRightBlend","MirrorTopMirrorBottomBlend","MirrorAll","ImageDiff","ImageDiffSubFilter","RestoreBlack","OrigBlendSubFilter","OrigAndCurrentRandomX2","FillPixelsImage","AverageHorizontalDistortion","AlphaBlendImageWithOrigSource","resizeFrameWidth","resizeFrameHeight", "resizeFrameWidthAndHeight","resizeImageWidth", "resizseImageHeight","resizeImageWidthAndHeight","resizeImageAndFrameBlend","resizeImageWidthAndHeightSubFilter","resizeImageFrameWidth","resizeImageFrameHeight","resizeImageFrameWidthAndHeight","resizeImageRandom","resizeFrameRandom","resizeFrameImageFlash","RandomFlip","ColorsFilter","MirrorDoubleVision","ColorFadeFilter","ColorChannelMoveUpAndDown","MedianStrobe","DifferenceSubFilter","AlphaBlendFlippedFilter","ColorVariableBlend","ColorXorBlend","ColorAddBlend","IntertwineRowsShadow720p","IntertwineRowsAlpha720p","IntertwineByFrameDown","IntertwineByFrameUp","IntertwineFrameFast","IntertwineFrame360","IntertwineFrame360X","IntertwineFrameTwitch","IntertwineFrameDark","IntertwineFrame360_Reverse","IntertwineFrameBlend","IntertwineXorCollection","IntertwineFrame720X","IntertwineFrame1080X","IntertwineFrameImage1080X","RandomXorMultiThreadTest","SelfAlphaBlendMultiThread","MedianBlendMultiThread","BytePixelSort","SortedImageColorVariable","SmoothColorVariableImageBlend","BlendChannelXor","ColorShiftXor","RandomSquares","RandomImageSquares","Random_FilterX2_SubFilter","FuzzyFilter","XorMultiply","Grayscale","ColorShadowBlend","FlashMatrixTrails","GhostTrails","MedianBlend_Random_Filter","IntertwineMirrorEnergy","IntertwineMultipleRows","GhostTwitch","GhostTwitchTrails","Dyskinesia","Mirror_Rainbow_Blur","MirrorMedianBlur","VideoTwitch","ErodeFilter","DilateFilter","MirrorLeftBottomToTop","MirrorRightTopToBottom","BilateralFilter","BilateralFilterFade","BilateralBlend","BilateralBlendFade","BilateralFilterScale","ColorRGB_IncDec","ColorCollection","ColorCollectionRandom","ColorCollectionStrobeShift","ColorCollectionRandom_Filter","ColorCollectionShift","CollectionEnergy","ColorCollectionInterlace","ColorCollectionStrobeShake","ColorCollectionSubFilter","ColorCollectionShiftSubFilter","ColorCollectionSubtle","ColorCollection64","ColorCollectionSubtleStrobe","CollectionRandom","CollectionRandomSubFilter","CollectionImage","CollectionAlphaXor","ColorCollection64X","ColorCollectionSwitch","ColorCollectionRGB_Index","ColorCollectionRGBStrobeSubFilter","ColorCollectionGhostTrails","ColorCollectionScale","ColorCollectionReverseStrobe","CollectionAlphaBlend_SubFilter","ColorCollectionXorPixel","BlendWithSource25","BlendWithSource50","BlendWithSource75","BlendWithSource100","ColorCollectionXorOffsetFlash","ColorCollectionMatrixGhost","MildStrobe","ReduceBy50","AlphaBlendWithSourceScale","ColorPositionAverageXor","ColorPositionXor","ColorPositionXorMedianBlend","CannyStrobe","LaplacianStrobe","LaplacianStrobeOnOff","ColorCollectionPixelXor","GrayStrobe","ColorStrobeXor","ColorGhost","ColorCollectionTwitchSubFilter","BlurredOutXor","BoxFilter","DizzyFilter","Buzzed","BlendWithImage25","BlendWithImage50","BlendWithImage75","BuzzedDark","AlphaBlendImageDownUp","BlendWithImageAndSource","PixelSourceFrameBlend256","SplitMatrixCollection","RectangleGlitch","PositionShift","ColorCollectionMovementIndex","Shake","Disoriented","ColorCollectionPositionStrobe","ColorCollectionStrobeBlend","AlphaBlendStoredFrames","SplitMatrixSortChannel","SplitMatrixSortChannelArrayPosition","SplitMatrixSortChannelImage","ShiftColorLeft","CycleInAndOutRepeat","ColorCollectionShuffle","BlendFromXtoY","BlendImageXtoY","BlendColorImageStrobeSubFilter","BlendByColsSubFilter","BlendByColsImage","IntertwineX", "IntertwineY","IntertwineSubFilterX","IntertwineSubFilterY","IntertwineImageX","IntertwineImageY","InertwineImageSubFilter","IntertwineHorizontalImageSubFilter","InterwtineHorizontalImageSubFilterByIndex","IntertwineHorizontalImageSubFilterMatrixCollection","BlendForwardAndBack16","BlendForwardAndBack32","BlendForwardAndBack64","BlendForwardAndBack8_RandomStrobe","AlphaBlendWithThreeCollections","AlphaBlendArrayRandom","AlphaBlendArrayTrailsFilters","AlphaBlendMirrorChannelSort","ColorCollectionAlphaBlendArray","AlphaBlendArrayExpand","ColorImageMatrixFade","ColorImageMatrixFadeFast","ColorImageMatrixFadeDirection","ColorImageMatrixFadeDirectionBlend","ColorMatrixCollectionPixelation","ColorMatrixColllectionImagePixelation","ColorMatrixCollectionImagePixelationSubFilter","ColorImageMatrixMedianBlend","ColorImageBlendPixelMedian","ColorImageBlendOrigMedian","ColorImageBlendSource","ColorImageMatrixFadeOnAndOff","ColorImageMatrixRect","ColorImageBackAndForth","ColorImageFadeReallyFast","ColorImageSubFilterXor","ColorImageAllXor","ColorChannelIteration","ColorImageMatrixFadeVariable","ColorXorImageFade","ColorFreezeBlend","ColorImageFill","ColorImageFillMatrix","ColorImageFillSubFilter","ColorImagePixelsResetSubFilter","ColorIncrementReset","ColorPixelArray2D","ManualShell","ColorIncrementRandomReset","ColorImageIncrementResetCollection","ColorMoveDown","ColorMoveDownResetMedianBlend","ColorMoveDownSmoothMedianBlend","PixelRandom3","ShiftMatrixLeft","ShiftMatrixLeftSubFilter","ShiftMatrixUpSubFilter","PixelatePixelValues","StretchCollection","PsychedelicSlitScan","SineValue","SineTransitionUpLeft","TemporaryTrails","StrobingPixelDissolve","ImagePixelFrameBlend","PreviewFilters","EachFilterSubFilter","EachFilterRandomStartSubFilter","PixelPsychosis","PixelCloud","PiixelXorBlendFrame","PixelImageBlendFrame","PixelCollectionRandom","PixelCollectionSubFilter","PixelCollectionMatrixSubFilter","PixelCollectionIncreaseSubFilter","PixelCollectionImageBlend","ColorPulseIncrease","PixelCollectionLongMatrixSubFilter","ColorPulseImageIncreaseSubFilter","ColorPulseRandom","ColorPulseImage","ColorPulseAlpha","ColorLower75","ColorImageMedianBlend","ColorDullBlur","ColorImageDull","ColorImageBlendWithFrame","ColorImageBlendSubFilter","ColorMatrixImageFilter","ColorXorMatrixImage","MatrixColorBlur","ColorImageLower","BlurSubFilter8","LightBlend","LightBlendXor","Source_ImageSubFilter","XorZeroImage","SlowDownFilterSubFilter","VariableFilterSubFilter","SingleFrameGlitch","ColorFadeSlow","FadeBetweenSubFilter","FadeBetweenFrame","TrailsTwitch","Tremors","XorImageIndexPixel","ImageStrobeMedianBlend","StrobeImageArrayPosition","OppositeImageArray","NoMedianBlurBlendMultiThread","NegateNoBlurMedian","PulseIncreaseVariableSpeed","Source25_Image75","LightStrobe","StrobeRedChannel","StrobeGreenChannel","StrobeBlueChannel","StrobeOnOffRandomChannel","StrobeLightFlashRandomChannel","LostSideDeadImageSubFilter","SwapImageFrameSubFilter","PulseIncreaseFast","FibonacciXor","ColorFibonacci","ImageFibonacci","ImageFibonacciInAndOut","ImageFibonacciStrobe","ImageFibonacciMedianBlend","ImageFibonacciInAndOutSubFilter","ImageKaleidoscopeSubFilter","ImageMirrorLeftRight","ImageMirrorShiftUpLeftDownRight","SelfScaleRefined","MetalMedianBlend","SelfScaleRefinedRGB","ImageFreezeReleaseRepeat","ImageReplaceColorIntensity","ImageReplaceColorIntensitySubFilter","ImageReplaceColorIntensitySubFilterInOut","ImageFillColor","MultiRandFilter","MultiFilter","GradientRandom","LineMedianBlend","PerfectMedianBlend","ImageRowAlphaSubFilter","IndexPixelRowSubFilter","IndexSourceRowSubFilter","IndexSourceBlendSubFilter","BlendFilterWithSubFilter","FadeFilterWithSubFilter","AlphaBlendByRowSubFilter","ColorMatrixTrailsSubFilter","LoFi_320x240_Interlaced","LoFi_320x240","LoFi_320x240_SubFilter","LoFi_320x240_Alpha_SubFilter","LoFi_160x120_SubFilter","LoFi_Trails","LoFi_ImageScaleSubFilter","MedianShift","ImageAlienKaleidoscope","ImageMirror_Left","ImageMirror_Right","ImageMirror_Up","ImageMirror_Down","ImageMirror_LeftSubFilter","ImageMirror_RightSubFilter","ImageMirror_UpSubFilter","ImageMirror_DownSubFilter","ImageMirrorKaleidoscope","ExactImageSubFilter","AlphaImageSourceScale","GhostMirrorReversed","GhostMirrorFade","MirrorFadeLeftRight","FadeMirrorSubFilter","MirrorFadeUpDown","DarkTrailsKaleidoscope","MirrorFadeAll","KaleidoscopeMirrorSubFilter","ImageKaleidoscopeMirrorAlphaSubFilter","BlendOppositesSubFilter","AlphaBlendMirrorFade","DarkenMedianBlend","ReduceMedianBlend","DarkColors","DarkenChannelXorNoMedian","DarkenStrobeMedianBlend","DarkenImageAlphaBlend","MatrixStrobeTrails","MatrixStrobeMedianBlend","ImageEnergyKaleidoscopeSubFilter","ImageEnergyKaleidoscopeBlendSubFilter","ImageEnergyKaleidoscopeEvenSubFilter","ImageEnergyFadeSubFilter","ImageEnergizeBlendFilter","ImageEnergizeSubFilter","MatrixCollectionSmoothedSubFilter","MonoColorTrails","TremorMonoColorTrails","StrobeMonoColorTrails","StrobeEffectColorTrails","PixelStrobeColorTrails","ElectricImageFilter","ImageEnergyStrobeSubFilter","Twin","TwinKaleidoscope","MedianBlendMultiThread_2160p","MedianBlendMultiThreadByFour", "MedianBlendMultiThreadByEight","MedianBlendMultiThreadByTweleve","MedianBlendMultiThreadByThree","MedianBlendIncrease","MedianBlendIncrease16","StrangeGlitch64","StrangeGlitch16","CollectionMatrixOutline","CollectionMatrixSubFilter","CollectionMatrixRandomMedianBlend","ImageCollectionMatrixOutline","ImageCollectionMatrixOutlineSubFilter","ImageCollectionMatrixFillSubFilter","ImageCollectionMatrixFadeInOutSubFilter","ImageCollectionMatrixIntensitySubFilter","ImageCollectionMatrixMedianSubFilter","CollectionMatrxOutlineAlphaMedianBlend","ImageSourceOrigXor","MatrixCollectionAuraTrails","MatrixCollectionAuraTrails32","PixelIntensityFillSubFilter","SmoothImageFrameSubFilter","ImageCycleBlend","ImageCycleAlphaBlend","ImageCycleXor","ImageCycleMedian","ImageCycleAlphaSubFilter","ImageCycleSmoothAlphaBlend","ImageCycleSmoothAlphaBlend32","BlendWithSourceMedianBlendMultiThreadEight","BlendWithImageMedianMutliThreadEight","GradientBlendWithImage","DarkColorMovement","DarkColorFibonacci","UseFilterOnAndOffSubFilter","UseFilterOnAndOffEachQuarterSecondSubFilter","UseFilterOnAndOffByEightSubFilter","UseImageOnAndOffByEight","UseImageOnAndOff","SelfAlphaScale_Down","PsychoticVision","DarkPsychoticVision","Mirror_ReverseColor","ImageColorCycleMorph","ImageBlendAndSubFilter","ImageSquareShrink","ImageSquareShrinkFast","ImageSquareShrinkAlpha","ImageSquareExpand","ImageKaleidoscopeNoBlur","KaleidoscopeSubFilter","ImageSquareShrinkSubFilter","DifferenceReplaceSubFilter","InvertedDifferenceReplaceSubFilter","ImageInvertedDifferenceReplaceSubFilter","ImageDifferenceReplaceSubFilter","DifferenceReplaceSubFilterAlphaBlend",
        "No Filter",
        "Blend with Source", "Plugin", "Custom","Blend With Image #1","TriBlend with Image", "Image Strobe", "Image distraction"};
    // draw strings
    std::string *draw_strings = draw_strings_value;
    // filter callback functions
    // number of filters
    int draw_max = 1485;
    int getFilterCount() {
        return draw_max-5;
    }
    // variables
    double translation_variable = 0.001f, pass2_alpha = 0.75f;
    // swap colors inline function
    std::unordered_map<std::string, int> filter_map;
    bool color_map_set = false;
    DrawFunction custom_callback = 0;
    DrawFunction plugin_func = 0;
    int colors[3] = {rand()%255, rand()%255, rand()%255};
    PROC_MODE_TYPE proc_mode = PROC_MODE_TYPE(0);
    bool reset_filter = false;
    double alpha_increase = 0;
    
    FilterType filters[] = { {"Self AlphaBlend",SelfAlphaBlend}, {"Self Scale", SelfScale}, {"StrobeEffect", StrobeEffect}, {"Blend #3", Blend3}, {"Negative Paradox", NegParadox}, {"ThoughtMode", ThoughtMode}, {"RandTriBlend", RandTriBlend}, {"Blank", Blank}, {"Tri",Tri}, {"Distort",Distort}, {"CDraw",CDraw}, {"Type",Type}, {"NewOne",NewOne}, {"Blend Fractal",blendFractal}, {"Blend Fractal Mood",blendFractalMood}, {"CosSinMultiply",cossinMultiply}, {"Color Accumlate1",colorAccumulate1}, {"Color Accumulate2",colorAccumulate2}, {"Color Accumulate3",colorAccumulate3}, {"Filter8",filter8}, {"Filter3",filter3}, {"Rainbow Blend",rainbowBlend}, {"Rand Blend",randBlend}, {"New Blend",newBlend}, {"Alpha Flame Filters",alphaFlame}, {"Pixel Scale",pixelScale}, {"PixelSort",pixelSort}, {"GlitchSort",glitchSort}, {"Random Filter",randomFilter}, {"Random Flash",randomFlash}, {"Blend with Image",imageBlend}, {"Blend with Image #2",imageBlendTwo}, {"Blend with Image #3",imageBlendThree}, {"Blend with Image #4",imageBlendFour}, {"GaussianBlur",GaussianBlur}, {"Median Blur",MedianBlur}, {"Blur Distortion",BlurDistortion}, {"Diamond Pattern",DiamondPattern}, {"MirrorBlend",MirrorBlend}, {"Pulse",Pulse}, {"Sideways Mirror",SidewaysMirror}, {"Mirror No Blend",MirrorNoBlend}, {"Sort Fuzz",SortFuzz}, {"Fuzz",Fuzz}, {"Double Vision",DoubleVision}, {"RGB Shift",RGBShift}, {"RGB Sep",RGBSep}, {"Graident Rainbow",GradientRainbow}, {"Gradient Rainbow Flash",GradientRainbowFlash}, {"Reverse",Reverse}, {"Scanlines",Scanlines}, {"TV Static",TVStatic}, {"Mirror Average",MirrorAverage}, {"Mirror Average Mix",MirrorAverageMix}, {"Mean",Mean}, {"Laplacian",Laplacian}, {"Bitwise_XOR",Bitwise_XOR}, {"Bitwise_AND",Bitwise_AND}, {"Bitwise_OR",Bitwise_OR}, {"Equalize",Equalize}, {"Channel Sort",ChannelSort}, {"Reverse_XOR",Reverse_XOR}, {"Combine Pixels",CombinePixels}, {"FlipTrip",FlipTrip}, {"Canny",Canny}, {"Boxes",Boxes}, {"Boxes Fade",BoxesFade}, {"Flash Black",FlashBlack}, {"SlideRGB",SlideRGB}, {"Side2Side",Side2Side}, {"Top2Bottom",Top2Bottom}, {"Strobe Red Then Green Then Blue",StrobeRedGreenBlue}, {"Blend_Angle",Blend_Angle}, {"Outward",Outward}, {"Outward Square",OutwardSquare}, {"ShiftPixels",ShiftPixels}, {"ShiftPixelsDown",ShiftPixelsDown}, {"XorMultiBlend",XorMultiBlend}, {"Bitwise_Rotate",BitwiseRotate}, {"Bitwise_Rotate Diff",BitwiseRotateDiff}, {"HPPD",HPPD}, {"FuzzyLines",FuzzyLines}, {"GradientLines",GradientLines}, {"GradientSelf",GradientSelf}, {"GradientSelfVertical",GradientSelfVertical}, {"GradientDown",GradientDown}, {"GraidentHorizontal",GraidentHorizontal}, {"GradientRGB",GradientRGB}, {"Inter",Inter}, {"UpDown",UpDown}, {"LeftRight",LeftRight}, {"StrobeScan",StrobeScan}, {"BlendedScanLines",BlendedScanLines}, {"GradientStripes",GradientStripes}, {"XorSine",XorSine}, {"SquareSwap",SquareSwap}, {"SquareSwap4x2",SquareSwap4x2}, {"SquareSwap8x4",SquareSwap8x4}, {"SquareSwap16x8",SquareSwap16x8}, {"SquareSwap64x32",SquareSwap64x32}, {"SquareBars",SquareBars}, {"SquareBars8",SquareBars8}, {"SquareSwapRand16x8",SquareSwapRand16x8}, {"SquareVertical8",SquareVertical8}, {"SquareVertical16",SquareVertical16}, {"SquareVertical_Roll",SquareVertical_Roll}, {"SquareSwapSort_Roll",SquareSwapSort_Roll}, {"SquareVertical_RollReverse",SquareVertical_RollReverse}, {"SquareSwapSort_RollReverse",SquareSwapSort_RollReverse}, {"Circular",Circular}, {"WhitePixel",WhitePixel}, {"FrameBlend",FrameBlend}, {"FrameBlendRGB",FrameBlendRGB}, {"TrailsFilter",TrailsFilter}, {"TrailsFilterIntense",TrailsFilterIntense}, {"TrailsFilterSelfAlpha",TrailsFilterSelfAlpha}, {"TrailsFilterXor",TrailsFilterXor}, {"ColorTrails",ColorTrails}, {"MoveRed",MoveRed}, {"MoveRGB",MoveRGB}, {"MoveRedGreenBlue",MoveRedGreenBlue}, {"BlurSim",BlurSim}, {"Block",Block}, {"BlockXor",BlockXor}, {"BlockScale",BlockScale}, {"BlockStrobe",BlockStrobe}, {"PrevFrameBlend",PrevFrameBlend}, {"Wave",Wave}, {"HighWave",HighWave}, {"VerticalSort",VerticalSort}, {"VerticalChannelSort",VerticalChannelSort}, {"HorizontalBlend",HorizontalBlend}, {"VerticalBlend",VerticalBlend}, {"OppositeBlend",OppositeBlend}, {"DiagonalLines",DiagonalLines}, {"HorizontalLines",HorizontalLines}, {"InvertedScanlines",InvertedScanlines}, {"Soft_Mirror",Soft_Mirror}, {"KanapaTrip",KanapaTrip}, {"ColorMorphing",ColorMorphing}, {"ScanSwitch",ScanSwitch}, {"ScanAlphaSwitch",ScanAlphaSwitch}, {"NegativeStrobe",NegativeStrobe}, {"XorAddMul",XorAddMul}, {"ParticleRelease",ParticleRelease}, {"BlendSwitch",BlendSwitch}, {"All Red",AllRed}, {"All Green",AllGreen}, {"All Blue",AllBlue}, {"LineRGB",LineRGB}, {"PixelRGB",PixelRGB}, {"BoxedRGB",BoxedRGB}, {"KruegerSweater",KruegerSweater}, {"RGBFlash",RGBFlash}, {"IncreaseBlendHorizontal",IncreaseBlendHorizontal}, {"BlendIncrease",BlendIncrease}, {"GradientReverse",GradientReverse}, {"GradientReverseVertical",GradientReverseVertical}, {"GradientReverseBox",GradientReverseBox}, {"GradientNewFilter",GradientNewFilter}, {"ReinterpretDouble",ReinterpretDouble}, {"ReinterpSelfScale",ReinterpSelfScale}, {"AverageLines",AverageLines}, {"ImageFile",ImageFile}, {"ImageXor",ImageXor}, {"ImageAlphaBlend",ImageAlphaBlend}, {"ColorRange",ColorRange}, {"ImageInter",ImageInter}, {"TrailsInter",TrailsInter}, {"TrailsBlend",TrailsBlend}, {"TrailsNegate",TrailsNegate}, {"InterReverse",InterReverse}, {"InterMirror",InterMirror}, {"InterFullMirror",InterFullMirror}, {"MirrorRGB",MirrorRGB}, {"RGBStatic1",RGBStatic1}, {"RGBStatic2",RGBStatic2}, {"VectorIncrease",VectorIncrease}, {"LineByLineReverse",LineByLineReverse}, {"RandomIntertwine",RandomIntertwine}, {"RandomFour",RandomFour}, {"BlendThree",BlendThree}, {"AcidTrails",AcidTrails}, {"RandomTwo",RandomTwo}, {"HorizontalTrailsInter",HorizontalTrailsInter}, {"Trails",Trails}, {"BlendTrails",BlendTrails}, {"Negate",Negate}, {"RandomFilteredSquare",RandomFilteredSquare}, {"ImageX",ImageX}, {"RandomQuads",RandomQuads}, {"QuadCosSinMultiply",QuadCosSinMultiply}, {"QuadRandomFilter",QuadRandomFilter}, {"RollRandom",RollRandom}, {"AverageRandom",AverageRandom}, {"HorizontalStripes",HorizontalStripes}, {"DiamondStrobe",DiamondStrobe}, {"SmoothTrails",SmoothTrails}, {"GridFilter8x",GridFilter8x}, {"GridFilter16x",GridFilter16x}, {"GridFilter8xBlend",GridFilter8xBlend}, {"GridRandom",GridRandom}, {"GridRandomPixel",GridRandomPixel}, {"Dual_SelfAlphaRainbow",Dual_SelfAlphaRainbow}, {"Dual_SelfAlphaBlur",Dual_SelfAlphaBlur}, {"SurroundPixelXor",SurroundPixelXor}, {"Darken",Darken}, {"WeakBlend",WeakBlend}, {"AverageVertical",AverageVertical}, {"RandomCollectionAverage",RandomCollectionAverage}, {"RandomCollectionAverageMax",RandomCollectionAverageMax}, {"SmoothTrailsSelfAlphaBlend",SmoothTrailsSelfAlphaBlend}, {"SmoothTrailsRainbowBlend",SmoothTrailsRainbowBlend}, {"MedianBlend",MedianBlend}, {"SmoothRandomImageBlend",SmoothRandomImageBlend}, {"SmoothImageAlphaBlend",SmoothImageAlphaBlend}, {"RandomAlphaBlend",RandomAlphaBlend}, {"RandomTwoFilterAlphaBlend",RandomTwoFilterAlphaBlend}, {"PixelatedSquare",PixelatedSquare}, {"AlphaBlendPosition",AlphaBlendPosition}, {"BlendRowAlpha",BlendRowAlpha}, {"BlendRow",BlendRow}, {"BlendRowByVar",BlendRowByVar}, {"BlendRowByDirection",BlendRowByDirection}, {"BlendAlphaXor",BlendAlphaXor}, {"SelfXorScale",SelfXorScale}, {"BitwiseXorScale",BitwiseXorScale}, {"XorTrails",XorTrails}, {"RainbowTrails",RainbowTrails}, {"NegativeTrails",NegativeTrails}, {"IntenseTrails",IntenseTrails}, {"SelfAlphaRGB",SelfAlphaRGB}, {"BlendImageOnOff",BlendImageOnOff}, {"XorSelfAlphaImage",XorSelfAlphaImage}, {"BitwiseXorStrobe",BitwiseXorStrobe}, {"AlphaBlendRandom",AlphaBlendRandom}, {"ChannelSortAlphaBlend",ChannelSortAlphaBlend}, {"XorChannelSort",XorChannelSort}, {"GradientColors",GradientColors}, {"GradientColorsVertical",GradientColorsVertical}, {"Bitwise_XOR_Average",Bitwise_XOR_Average}, {"ImageShiftMatrixLeft",ImageShiftMatrixLeft}, {"GradientXorSelfScale",GradientXorSelfScale}, {"SmoothSourcePixel",SmoothSourcePixel}, {"StrobeBlend",StrobeBlend}, {"FrameBars",FrameBars}, {"Sort_Vertical_Horizontal",Sort_Vertical_Horizontal}, {"Sort_Vertical_Horizontal_Bitwise_XOR",Sort_Vertical_Horizontal_Bitwise_XOR}, {"Scalar_Average_Multiply",Scalar_Average_Multiply}, {"Scalar_Average",Scalar_Average}, {"Total_Average",Total_Average}, {"AlphaBlendImageXor",AlphaBlendImageXor}, {"FlashWhite",FlashWhite}, {"FlashBlackAndWhite",FlashBlackAndWhite}, {"GaussianBlend",GaussianBlend}, {"RandomXor",RandomXor}, {"RandomXorFlash",RandomXorFlash}, {"RandomAmountMedianBlur",RandomAmountMedianBlur}, {"SoftXor",SoftXor}, {"SelfXorBlend",SelfXorBlend}, {"SelfXorDoubleFlash",SelfXorDoubleFlash}, {"SelfOrDoubleFlash",SelfOrDoubleFlash}, {"BlendRowCurvedSqrt",BlendRowCurvedSqrt}, {"CycleShiftRGB",CycleShiftRGB}, {"CycleShiftRandomRGB",CycleShiftRandomRGB}, {"CycleShiftRandomRGB_XorBlend",CycleShiftRandomRGB_XorBlend}, {"CycleShiftRandomAlphaBlend",CycleShiftRandomAlphaBlend}, {"VerticalColorBars",VerticalColorBars}, {"GradientLeftRight",GradientLeftRight}, {"GraidentUpDown",GraidentUpDown}, {"GradientLeftRightInOut",GradientLeftRightInOut}, {"GradientUpDownInOut",GradientUpDownInOut}, {"Lines",Lines}, {"ColorLines",ColorLines}, {"WhiteLines",WhiteLines}, {"ThickWhiteLines",ThickWhiteLines}, {"UseLineObject",UseLineObject}, {"TanAlphaGrid",TanAlphaGrid}, {"MedianBlendAnimation",MedianBlendAnimation}, {"FibFlash",FibFlash}, {"ScaleFlash",ScaleFlash}, {"Curtain",Curtain}, {"RandomCurtain",RandomCurtain}, {"CurtainVertical",CurtainVertical}, {"RandomCurtainVertical",RandomCurtainVertical}, {"inOrder",inOrder}, {"inOrderBySecond",inOrderBySecond}, {"DarkenFilter",DarkenFilter}, {"RandomFilterBySecond",RandomFilterBySecond}, {"ThreeRandom",ThreeRandom}, {"inOrderAlpha",inOrderAlpha}, {"inOrderAlphaXor",inOrderAlphaXor}, {"SlideFilter",SlideFilter}, {"SlideFilterXor",SlideFilterXor}, {"RandomSlideFilter",RandomSlideFilter}, {"SlideUpDown",SlideUpDown}, {"SlideUpDownXor",SlideUpDownXor}, {"SlideUpDownRandom",SlideUpDownRandom}, {"SlideSubFilter",SlideSubFilter}, {"SlideSubUpDownFilter",SlideSubUpDownFilter}, {"ParticleBlend",ParticleBlend}, {"ParticleFlash",ParticleFlash}, {"ExactImage",ExactImage}, {"ParticleAlpha",ParticleAlpha}, {"BlendInAndOut",BlendInAndOut}, {"BlendScaleInAndOut",BlendScaleInAndOut}, {"AcidGlitch",AcidGlitch}, {"XorBackwards",XorBackwards}, {"LiquidFilter",LiquidFilter}, {"MatrixXorAnd",MatrixXorAnd}, {"XorAlpha",XorAlpha}, {"AlphaAcidTrails",AlphaAcidTrails}, {"SelfXorAverage",SelfXorAverage}, {"RandomXorBlend",RandomXorBlend}, {"RGBVerticalXor",RGBVerticalXor}, {"RGBVerticalXorScale",RGBVerticalXorScale}, {"RGBHorizontalXor",RGBHorizontalXor}, {"RGBHorizontalXorScale",RGBHorizontalXorScale}, {"FadeStrobe",FadeStrobe}, {"RGBMirror",RGBMirror}, {"MirrorStrobe",MirrorStrobe}, {"AndStrobe",AndStrobe}, {"AndStrobeScale",AndStrobeScale}, {"AndPixelStrobe",AndPixelStrobe}, {"AndOrXorStrobe",AndOrXorStrobe}, {"AndOrXorStrobeScale",AndOrXorStrobeScale}, {"FadeInAndOut",FadeInAndOut}, {"BrightStrobe",BrightStrobe}, {"DarkStrobe",DarkStrobe}, {"ParticleFast",ParticleFast}, {"RandomXorOpposite",RandomXorOpposite}, {"StrobeTransform",StrobeTransform}, {"InitBlend",InitBlend}, {"MoveUpLeft",MoveUpLeft}, {"RandomStrobe",RandomStrobe}, {"RandomBlur",RandomBlur}, {"Stuck",Stuck}, {"StuckStrobe",StuckStrobe}, {"OrStrobe",OrStrobe}, {"LagBlend",LagBlend}, {"SubFilter",SubFilter}, {"AddFilter",AddFilter}, {"BlendImageXor",BlendImageXor}, {"BlendImageAround_Median",BlendImageAround_Median}, {"ImageBlendTransform",ImageBlendTransform}, {"RGBTrails",RGBTrails}, {"RGBTrailsDark",RGBTrailsDark}, {"RGBTrailsAlpha",RGBTrailsAlpha}, {"RGBTrailsNegativeAlpha",RGBTrailsNegativeAlpha}, {"MovementRGBTrails",MovementRGBTrails}, {"RGBTrailsXor",RGBTrailsXor}, {"DifferenceStrobe",DifferenceStrobe}, {"BlackAndWhiteDifferenceStrobe",BlackAndWhiteDifferenceStrobe}, {"DifferenceXor",DifferenceXor}, {"DifferenceRand",DifferenceRand}, {"DifferenceBrightStrobe",DifferenceBrightStrobe}, {"PsycheTrails",PsycheTrails}, {"FourSquare",FourSquare}, {"EightSquare",EightSquare}, {"DiagonalSquare",DiagonalSquare}, {"DiagonalSquareRandom",DiagonalSquareRandom}, {"SquareStretchDown",SquareStretchDown}, {"SquareStretchRight",SquareStretchRight}, {"SquareStretchUp",SquareStretchUp}, {"SquareStretchLeft",SquareStretchLeft}, {"DarkTrails",DarkTrails}, {"SoftFeedback",SoftFeedback}, {"SoftFeedbackFrames",SoftFeedbackFrames}, {"ResizeSoftFeedback",ResizeSoftFeedback}, {"SoftFeedback8",SoftFeedback8}, {"SoftFeedbackFrames8",SoftFeedbackFrames8}, {"ResizeSoftFeedback8",ResizeSoftFeedback8}, {"ResizeSoftFeedbackSubFilter",ResizeSoftFeedbackSubFilter}, {"SoftFeedbackRandFilter",SoftFeedbackRandFilter}, {"SoftFeedback32",SoftFeedback32}, {"SoftFeedbackFrames32",SoftFeedbackFrames32}, {"ResizeSoftFeedback32",ResizeSoftFeedback32}, {"SoftFeedbackRandFilter32",SoftFeedbackRandFilter32}, {"SoftFeedbackSubFilter",SoftFeedbackSubFilter}, {"SoftFeedbackResizeSubFilter",SoftFeedbackResizeSubFilter},{"SoftFeedbackResize64",SoftFeedbackResize64}, {"SoftFeedbackResizeSubFilter64",SoftFeedbackResizeSubFilter64}, {"SoftFeedbackReszieSubFilter64_Negate",SoftFeedbackReszieSubFilter64_Negate}, {"SoftFeedbackReszieSubFilter64_Mirror",SoftFeedbackReszieSubFilter64_Mirror}, {"HalfNegateStrobe",HalfNegateStrobe},{"MedianBlurXor", MedianBlurXor},{"NegateTrails", NegateTrails},{"RandomGradient", RandomGradient},{"RandomStrobeFlash", RandomStrobeFlash}, {"RandomMirror", RandomMirror},{"RandomOther", RandomOther},{"RandomXorFilter", RandomXorFilter},{"RandomMirrorBlend", RandomMirrorBlend},{"RandomMirrorAlphaBlend", RandomMirrorAlphaBlend}, {"Bitwise_XOR_AlphaSubFilter", Bitwise_XOR_AlphaSubFilter}, {"AlphaBlendSubFilter", AlphaBlendSubFilter},{"GradientSubFilterXor", GradientSubFilterXor},{"XorBlend_SubFilter", XorBlend_SubFilter},{"SmoothSubFilterAlphaBlend", SmoothSubFilterAlphaBlend},{"SmoothSubFilterXorBlend", SmoothSubFilterXorBlend},{"IntertwineSubFilter", IntertwineSubFilter},{"RandBlend", RandBlend},{"EveryOther", EveryOther},{"EveryOtherSubFilter", EveryOtherSubFilter},{"SmoothRandomFilter", SmoothRandomFilter},{"RandomFilterRandomTimes", RandomFilterRandomTimes},{"RandomSubFilterRandomTimes", RandomSubFilterRandomTimes},{"AddToFrameSubFilter",AddToFrameSubFilter},{"MirrorXor", MirrorXor},{"MirrorXorAll", MirrorXorAll}, {"MirrorXorScale", MirrorXorScale},{"EnergyMirror",EnergyMirror},{"SmoothSubFilter", SmoothSubFilter},{"EnergizeSubFilter", EnergizeSubFilter},{"SmoothSubFilter16", SmoothSubFilter16},{"EnergizeSubFilter16", EnergizeSubFilter16},{"EnergizeSubFilter32", EnergizeSubFilter32},{"SmoothSubFilter32", SmoothSubFilter32},{"HalfAddSubFilter", HalfAddSubFilter},{"HalfXorSubFilter", HalfXorSubFilter},{"StaticXorBlend", StaticXorBlend},{"PsycheSort", PsycheSort},{"XorScale", XorScale},{"ChannelMedianSubFilter", ChannelMedianSubFilter},{"GaussianStrobe", GaussianStrobe},{"StrobeSort", StrobeSort},{"GlitchSortStrobe", GlitchSortStrobe},{"Bitwise_XOR_Blend",Bitwise_XOR_Blend},{"Bitwise_XOR_Sort", Bitwise_XOR_Sort},{"Bitwise_OR_Blend", Bitwise_OR_Blend},{"Bitwise_AND_Blend", Bitwise_AND_Blend},{"BitwiseColorMatrix", BitwiseColorMatrix},{"PixelReverseXor", PixelReverseXor},{"PixelatedSubFilterSort", PixelatedSubFilterSort},{"SilverBlend", SilverBlend},{"RandomPixelOrderSort", RandomPixelOrderSort},{"ImageXorAlpha", ImageXorAlpha},{"ImageAverageXor", ImageAverageXor},{"PixelXorBlend", PixelXorBlend},{"SelfAlphaScale", SelfAlphaScale},{"SelfScaleAlpha", SelfScaleAlpha},{"RainbowXorBlend", RainbowXorBlend},{"FrameDifference", FrameDifference},{"SmallDiffference", SmallDiffference},{"FadeBlend", FadeBlend},{"FilteredDifferenceSubFilter", FilteredDifferenceSubFilter},{"ExpandSquareSubFilter", ExpandSquareSubFilter}, {"ExpandSquareBlendSubFilter", ExpandSquareBlendSubFilter},{"ExpandSquareVerticalSubFilter", ExpandSquareVerticalSubFilter},{"DarkImageMedianBlend", DarkImageMedianBlend},{"GammaDarken5", GammaDarken5},{"GammaDarken10", GammaDarken10},{"SelfAlphaScaleBlend", SelfAlphaScaleBlend},{"FadeBars", FadeBars},{"MirrorXorAlpha", MirrorXorAlpha},{"MirrorEnergizeSubFilter", MirrorEnergizeSubFilter},{"StrobeXor", StrobeXor},{"IntertwinedMirror", InterMirror}, {"BlurredMirror", BlurredMirror},{"ShadeRGB", ShadeRGB},{"InterRGB_SubFilter", InterRGB_SubFilter},{"InterSmoothSubFilter", InterSmoothSubFilter},{"InterRGB_Bars_XY", InterRGB_Bars_XY},{"InterRGB_Bars_X",InterRGB_Bars_X},{"InterRGB_Bars_Y", InterRGB_Bars_Y},{"StoredFramesAlphaBlend_SubFilter", StoredFramesAlphaBlend_SubFilter},{"BlendSubFilter", BlendSubFilter},{"BlendAlphaSubFilter", BlendAlphaSubFilter},{"ReverseFrameBlend", ReverseFrameBlend},{"ReverseFrameBlendSwitch", ReverseFrameBlendSwitch},{"DoubleRandomMirror", DoubleRandomMirror},{"Blend_AlphaSubFilter", Blend_AlphaSubFilter},{"RandomBlendFilter", RandomBlendFilter},{"DoubleRandomBlendFilter", DoubleRandomBlendFilter},{"FlipBlendW", FlipBlendW},{"FlipBlendWH", FlipBlendWH}, {"FlipBlendH", FlipBlendH}, {"FlipBlendAll", FlipBlendAll},{"FrameMedianBlendSubFilter", FrameMedianBlendSubFilter}, {"FrameBlurSubFilter", FrameBlurSubFilter},{"ImageBlendSubFilter", ImageBlendSubFilter},{"ImageBlendXorSubFilter", ImageBlendXorSubFilter},{"ImageCollectionSubFilter", ImageCollectionSubFilter},{"SelfScaleXorIncrease", SelfScaleXorIncrease},{"Blend_RedGreenBlue", Blend_RedGreenBlue},{"XorBlend_RedGreenBlue", XorBlend_RedGreenBlue},{"BlendIncrease_RedGreenBlue", BlendIncrease_RedGreenBlue},{"Blend_RedReenBlue_Dark", Blend_RedReenBlue_Dark},{"DarkModBlend", DarkModBlend}, {"PictureBuzz", PictureBuzz},{"IncDifference", IncDifference},{"IncDifferenceAlpha", IncDifferenceAlpha},{"MirrorMedianBlend", MirrorMedianBlend},{"SubFilterMedianBlend", SubFilterMedianBlend},{"DarkenBlend", DarkenBlend},{"DarkCollectionSubFilter", DarkCollectionSubFilter},{"ChannelSort_NoBlend_Descending", ChannelSort_NoBlend_Descending}, {"ChannelSort_NoBlend_Ascending", ChannelSort_NoBlend_Ascending},{"Headrush", Headrush},{"DarkSmooth_Filter", DarkSmooth_Filter},{"DarkSelfAlpha", DarkSelfAlpha},{"FlipMedian", FlipMedian},{"FlipMedianSubFilter", FlipMedianSubFilter},{"FlipMirror", FlipMirror},{"FlipMirrorAverage", FlipMirrorAverage},{"FlipMirrorSubFilter", FlipMirrorSubFilter},{"ShuffleMedian", ShuffleMedian},{"ShuffleRGB", ShuffleRGB},{"ParticleSnow", ParticleSnow},{"RandomPixels", RandomPixels},{"DarkRandomPixels", DarkRandomPixels},{"MedianBlurSubFilter", MedianBlurSubFilter},{"Bars", Bars},{"ShuffleAlpha", ShuffleAlpha},{"AlphaMorph", AlphaMorph},{"ShuffleSelf", ShuffleSelf},{"PixelatedHorizontalLines", PixelatedHorizontalLines},{"PixelatedVerticalLines", PixelatedVerticalLines},{"StrobeShuffle", StrobeShuffle},{"BlendBurred", BlendBurred},{"BlendCombinedValues", BlendCombinedValues},{"RGBColorTrails", RGBColorTrails},{"BlendCombinedValueSubFilter", BlendCombinedValueSubFilter},{"BlendSubFilterAlpha", BlendSubFilterAlpha},{"GradientXorPixels", GradientXorPixels},{"PurpleRain", PurpleRain},{"PixelByPixelXor", PixelByPixelXor},{"CopyXorAlpha", CopyXorAlpha},{"AveragePixelsXor", AveragePixelsXor},{"AveragePixelAlpha", AveragePixelAlpha},{"NegativeByRow", NegativeByRow},{"AveragePixelCollection", AveragePixelCollection},{"IncorrectLine", IncorrectLine},{"XorShift", XorShift},{"StrobeXorAndOr", StrobeXorAndOr},{"XorWithSource", XorWithSource},{"AlphaBlendWithSource", AlphaBlendWithSource},{"RGBSep1x", RGBSep},{"RGBMedianBlend", RGBMedianBlend},{"RGBMirror1", RGBMirror1},{"RGBMirror1Median", RGBMirror1Median}, {"FlashMirror", FlashMirror},{"CollectionXorSourceSubFilter",  CollectionXorSourceSubFilter},{"ReverseMirrorX", ReverseMirrorX},{"MirrorXorAll_Reverse", MirrorXorAll_Reverse},{"MirrorRGBReverse", MirrorRGBReverse},{"MirrorRGBReverseBlend", MirrorRGBReverseBlend},{"BlendReverseSubFilter", BlendReverseSubFilter},{"MirrorBitwiseXor", MirrorBitwiseXor},{"SmoothBlendReverseSubFilter", SmoothBlendReverseSubFilter},{"RandomIncrease", RandomIncrease},{"MedianBlend16", MedianBlend16},{"MedianBlendBufferSubFilter", MedianBlendBufferSubFilter},{"BGRBlend", BGRBlend},{"RGBBlend", RGBBlend},{"RGBBlendSubFilter", RGBBlendSubFilter},{"DivideAndIncH", DivideAndIncH},{"DivideAndIncW", DivideAndIncW},{"XorOppositeSubFilter", XorOppositeSubFilter},{"BlendSmoothSubFilter", BlendSmoothSubFilter},{"BlurSmooth", BlurSmooth},{"BlurSmoothMedian", BlurSmoothMedian},{"BlurSmoothSubFilter", BlurSmoothSubFilter},{"BlurFlip", BlurFlip},{"BlurFlipSubFilter", BlurFlipSubFilter},{"BlurMirrorGamma", BlurMirrorGamma},{"MedianBlendDark", MedianBlendDark},{"MedianBlendSubFilterEx", MedianBlendSubFilterEx},{"EnergyMirrorDark", EnergyMirrorDark},{"AlphaBlendMirror", AlphaBlendMirror},{"MirrorAlphaBlendedImage", MirrorAlphaBlendedImage},{"AlphaBlendXorImage", AlphaBlendXorImage},{"ShiftFrameSmoothSubFilter", ShiftFrameSmoothSubFilter},{"ShiftFrameStaticXorSubFilter", ShiftFrameStaticXorSubFilter},{"IncreaseDecreaseGamma", IncreaseDecreaseGamma},{"GammaIncDecIncrease", GammaIncDecIncrease},{"RandomSubFilter", RandomSubFilter},{"TwistedVision", TwistedVision},{"TwistedMirror", TwistedMirror},{"SelfScaleSortBlend", SelfScaleSortBlend},{"FlashMedianBlend", FlashMedianBlend},{"BlendWithFrameSubFilter", BlendWithFrameSubFilter},{"AlphaBlendWithFrameSubFilter", AlphaBlendWithFrameSubFilter},{"AlphaXorBlendWithFrameSubFilter", AlphaXorBlendWithFrameSubFilter},{"XorBlendSubFilter", XorBlendSubFilter},{"FlipAlphaBlend", FlipAlphaBlend},{"RandomFlipFilter", RandomFlipFilter},{"MirrorMedian", MirrorMedian},{"FlipMatrixCollection", FlipMatrixCollection},{"MirrorMatrixCollection", MirrorMatrixCollection},{"MirrorMatrixSource", MirrorMatrixSource},{"SelfScaleByFrame", SelfScaleByFrame},{"SmoothMedianRotateSubFilter", SmoothMedianRotateSubFilter},{"SmoothCollectionAlphaBlend", SmoothCollectionAlphaBlend},{"XorSubFilter", XorSubFilter},{"XorAlphaSubFilter", XorAlphaSubFilter},{"BlurXorAlphaSubFilter", BlurXorAlphaSubFilter},{"ImageXorFrame", ImageXorFrame},{"ImageXorFunction", ImageXorFunction},{"ImageXorAlphaBlend", ImageXorAlphaBlend},{"ImageAlphaXorMedianSubFilter", ImageAlphaXorMedianSubFilter},{"ImageSmoothAlphaXorSubFilter", ImageSmoothAlphaXorSubFilter},{"ImageXorMirrorFilter", ImageXorMirrorFilter},{"ImageXorSubFilter", ImageXorSubFilter},{"ImageAlphaXorSubFilter", ImageAlphaXorSubFilter},{"SmoothTrailsBlend", SmoothTrailsBlend},{"MatrixCollectionRGBXor", MatrixCollectionRGBXor},{"RainbowGlitch", RainbowGlitch},{"RainbowGlichStrobe", RainbowGlichStrobe}, {"NegateSwitchStrobe", NegateSwitchStrobe},{"StrobeAlphaShuffle", StrobeAlphaShuffle},{"ShuffleAlphaWithRGB", ShuffleAlphaWithRGB},{"ShuffleAlphaSubFilter", ShuffleAlphaSubFilter},{"ShuffleColorMap", ShuffleColorMap},{"BlendWithRainbowSubFilter", BlendWithRainbowSubFilter},{"BlendWithJetSubFilter", BlendWithJetSubFilter},{"ColormapBlendSubFilter", ColormapBlendSubFilter},{"RandomColorMap", RandomColorMap},{"SmoothMirrorBlurFlip", SmoothMirrorBlurFlip},{"RandomColorMapAlphaBlendSubFilter", RandomColorMapAlphaBlendSubFilter},{"RandomOrder", RandomOrder},{"RandomOrderMedianBlendSubFilter", RandomOrderMedianBlendSubFilter}, {"MirrorOrder", MirrorOrder},{"MirrorOrderSubFilter", MirrorOrderSubFilter},{"BlurMirrorOrder", BlurMirrorOrder},{"AveragePixelMirror", AveragePixelMirror},{"ShuffleAlphaMedianBlend", ShuffleAlphaMedianBlend},{"MirrorOrderAlpha", MirrorOrderAlpha},{"FilterStrobeSubFilter", FilterStrobeSubFilter},{"ImageSubtractMedianBlend", ImageSubtractMedianBlend},{"ImageDarkBlend", ImageDarkBlend},{"ImageAverageDark", ImageAverageDark},{"ImageRemainderPixel", ImageRemainderPixel},{"AverageLinesBlend", AverageLinesBlend},{"SoftFeedbackMirror", SoftFeedbackMirror},{"AverageVerticalLinesBlend", AverageVerticalLinesBlend},{"LinesMedianBlend", LinesMedianBlend},{"XorSquare", XorSquare},{"PixelValuesPlusOne", PixelValuesPlusOne},{"AverageHorizontalFilter", AverageHorizontalFilter},{"AverageVerticalFilter", AverageVerticalFilter},{"GradientAlphaXorHorizontal", GradientAlphaXorHorizontal},{"GradientAlphaXorVertical", GradientAlphaXorVertical},{"BlendImageWithSubFilter", BlendImageWithSubFilter},{"BlendImageWithSubFilterAlpha", BlendImageWithSubFilterAlpha},{"MedianBlendSoft", MedianBlendSoft},{"AndImageSubFilterXor", AndImageSubFilterXor},{"AlphaBlendImageSubFilterXor", AlphaBlendImageSubFilterXor},{"AlphaBlendImageSubFilterXorRev", AlphaBlendImageSubFilterXorRev},{"ParticleReleaseXor", ParticleReleaseXor},{"ParticleReleaseXorVec", ParticleReleaseXorVec},{"ParticleReleaseAlphaBlend", ParticleReleaseAlphaBlend},{"ParticleReleaseWithImage", ParticleReleaseWithImage},{"ParticleReleaseSubFilter", ParticleReleaseSubFilter},{"ParticleReleaseImageSubFilter", ParticleReleaseImageSubFilter},{"ImageEnergy", ImageEnergy},{"ImageEnergySubFilter", ImageEnergySubFilter},{"ImageDistortion", ImageDistortion},{"ImageDistortionSubFilter", ImageDistortionSubFilter},{"SmoothExactImageXorAlpha", SmoothExactImageXorAlpha},{"FeedbackColormap", FeedbackColormap},{"SmoothImageAlphaBlendMedian", SmoothImageAlphaBlendMedian},{"ImageDarkenSmoothMedian", ImageDarkenSmoothMedian},{"XorReverseImageSmooth", XorReverseImageSmooth},{"ReverseSubFilterBlend", ReverseSubFilterBlend},{"ReverseSubFilterXor", ReverseSubFilterXor},{"ImageReverseSubFilter", ImageReverseSubFilter},{"SmoothRainbowMedian", SmoothRainbowMedian},{"MirrorAlphaBlend", MirrorAlphaBlend},{"ImageSmoothMedianBlend", ImageSmoothMedianBlend},{"ImageSmoothMedianSubFilter", ImageSmoothMedianSubFilter},{"ImageAlphaXorMedianBlend", ImageAlphaXorMedianBlend},{"MatrixCollectionBlend", MatrixCollectionBlend},{"MatrixCollectionSubFilter", MatrixCollectionSubFilter},{"MatrixCollectionImageSubFilter", MatrixCollectionImageSubFilter},{"MatrixCollectionBlurAlpha", MatrixCollectionBlurAlpha},{"MatrixCollectionXor", MatrixCollectionXor},{"MatrixCollectionXor32", MatrixCollectionXor32},{"MatrixCollectionRandomColorMap", MatrixCollectionRandomColorMap},{"MatrixCollectionDarkXor", MatrixCollectionDarkXor},{"MatrixCollectionRGB", MatrixCollectionRGB},{"TrailsSubFilter", TrailsSubFilter},{"TrailsSubFilter32", TrailsSubFilter32},{"CompareWithSubFilter", CompareWithSubFilter},{"MedianTrails", MedianTrails},{"SmoothMedianBlend", SmoothMedianBlend},{"ColorTransition", ColorTransition},{"ColorTransitionMedian", ColorTransitionMedian},{"ColorTransitionRandom", ColorTransitionRandom},{"ColorTransitionRandomMedian", ColorTransitionRandomMedian},{"ColorTransitionSubFilter", ColorTransitionSubFilter},{"ColorTransitionImageSubFilter", ColorTransitionImageSubFilter},{"CurtainSubFilter", CurtainSubFilter},{"RandomTrails", RandomTrails},{"RandomTrailsSubFilter", RandomTrailsSubFilter},{"CosSinMedianBlend", CosSinMedianBlend},{"TrailsRGB", TrailsRGB},{"MatrixTrailsXorRandom", MatrixTrailsXorRandom},{"CosSinMultiplyCollectionXor", CosSinMultiplyCollectionXor},{"Filter8_Blend", Filter8_Blend},{"Filter8_SubFilter", Filter8_SubFilter},{"RandomSmoothAlphaMedian", RandomSmoothAlphaMedian},{"RandomAlphaBlend", RandomAlphaBlendFilter},{"RandomMirrorBitwiseXor", RandomMirrorBitwiseXor},{"SquareDivideSubFilter", SquareDivideSubFilter},{"SquareSubFilter", SquareSubFilter},{"SquareSubFilter8", SquareSubFilter8},{"SquareRandomFilter", SquareRandomFilter},{"SquareRandomSubFilter", SquareRandomSubFilter},{"ColorExpand", ColorExpand},{"ColorExpandSubFilter", ColorExpandSubFilter},{"RotateImage", RotateImage},{"RotateBlendImage", RotateBlendImage},{"RotateImageSubFilter", RotateImageSubFilter},{"RotateAlphaBlendImage", RotateAlphaBlendImage},{"FlipShuffle", FlipShuffle},{"FlipRandom", FlipRandom},{"FlipOrder", FlipOrder},{"FlipStrobeSubFilter", FlipStrobeSubFilter},{"MirrorBlendFrame", MirrorBlendFrame},{"MirrorBlendVertical", MirrorBlendVertical},{"MirrorVerticalAndHorizontal", MirrorVerticalAndHorizontal},{"BlendFor360", BlendFor360},{"MirrorSidesMedian", MirrorSidesMedian},{"MirrorSidesSubFilter", MirrorSidesSubFilter},{"MedianFrameAlphaBlendSubFilter", MedianFrameAlphaBlendSubFilter},{"MedianSubFilter", MedianSubFilter},{"ColorXorScale", ColorXorScale},{"ColorXorScaleSubFilter", ColorXorScaleSubFilter},{"ImageXorScale", ImageXorScale},{"MatrixCollectionShiftSubFilter", MatrixCollectionShiftSubFilter},{"MatrixCollectionImageShiftSubFilter", MatrixCollectionImageShiftSubFilter},{"MatrixCollectionXorBlendAlphaBlend", MatrixCollectionXorBlendAlphaBlend},{"MatrixCollectionBlurImageXorAlpha", MatrixCollectionBlurImageXorAlpha},{"MatrixCollectionBlurImageSubFilter", MatrixCollectionBlurImageSubFilter},{"MatrixCollectionBlurImageSubFilter16", MatrixCollectionBlurImageSubFilter16},{"ImageAlphaBlendSubFilter", ImageAlphaBlendSubFilter},{"MultipleMatrixCollectionSubFilter", MultipleMatrixCollectionSubFilter},{"BlurAlphaSubFilter", BlurAlphaSubFilter},{"BlurImageSubFilter", BlurImageSubFilter},{"MedianBlendSubFilter", MedianBlendSubFilter},{"MedianBlendImageSubFilter", MedianBlendImageSubFilter},{"MedianBlendSelfBlend", MedianBlendSelfBlend},{"BlendHalfSubFilter", BlendHalfSubFilter},{"BlurImageAlphaBlend", BlurImageAlphaBlend},{"BlurImageAlphaBlendSubFilter", BlurImageAlphaBlendSubFilter},{"BlurImageAlphaBlendScaleSubFilter", BlurImageAlphaBlendScaleSubFilter},{"RandomAmountOfMedianBlur", RandomAmountOfMedianBlur},{"Bitwise_XOR_BlendFrame", Bitwise_XOR_BlendFrame},{"AlphaBlendWithSubFilter", AlphaBlendWithSubFilter},{"AlphaBlendScaleWithSubFilter", AlphaBlendScaleWithSubFilter},{"GaussianBlendEx", GaussianBlendEx},{"SimpleMatrixBlend", SimpleMatrixBlend},{"MatrixBlendSubFilter", MatrixBlendSubFilter},{"SmoothMatrixBlendSubFilter", SmoothMatrixBlendSubFilter},{"BlurSmoothSubFilterAlphaBlend", BlurSmoothSubFilterAlphaBlend},{"BlurSmoothAlphaXorBlendSubFilter", BlurSmoothAlphaXorBlendSubFilter},{"BlurTwiceSubFilter", BlurTwiceSubFilter},{"BlurFrameBlendSubFilter", BlurFrameBlendSubFilter},{"BlurFrameSubFilter", BlurFrameSubFilter},{"BlurSmoothMatrix", BlurSmoothMatrix},{"MedianBlurInc", MedianBlurInc},{"GaussianBlurInc", GaussianBlurInc},{"BlurSmoothMedianInc", BlurSmoothMedianInc},{"BlurSmoothGaussianInc", BlurSmoothGaussianInc},{"BlurMatrixCollectionXor", BlurMatrixCollectionXor},{"MatrixCollection8XorSubFilter", MatrixCollection8XorSubFilter},{"BlurSmoothRevFilter", BlurSmoothRevFilter},{"SurroundingPixels", SurroundingPixels},{"SurroundingPixelsAlpha", SurroundingPixelsAlpha},{"MatrixCollectionSurroundingPixels", MatrixCollectionSurroundingPixels},{"MatrixCollectionSurroundingPixelsSubFilter", MatrixCollectionSurroundingPixelsSubFilter},{"MatrixCollectionSurroundingPixelsImage", MatrixCollectionSurroundingPixelsImage},{"MatrixCollectionSurroundingPixelsImageSubFilter", MatrixCollectionSurroundingPixelsImageSubFilter},{"ImageTransparent", ImageTransparent},{"MatrixImageAlphaBlendSubFilter", MatrixImageAlphaBlendSubFilter},{"ImageAlphaCollectionSmoothBlend", ImageAlphaCollectionSmoothBlend},{"ImageRandomColormap", ImageRandomColormap},{"ImageRandomColormapAlphaBlend", ImageRandomColormapAlphaBlend},{"ImageRandomColormapAlphaScale", ImageRandomColormapAlphaScale},{"ImageRandomColormapSubFilter", ImageRandomColormapSubFilter},{"ImageShuffle", ImageShuffle},{"ImageSubFilter", ImageSubFilter},{"ImageAlphaBlendWithFrameSubFilter", ImageAlphaBlendWithFrameSubFilter},{"ImageFadeInOut", ImageFadeInOut},{"ImageFadeBlackInOut", ImageFadeBlackInOut},{"ImageFadeBlackInOutSubFilter", ImageFadeBlackInOutSubFilter},{"ImageFadeFrameInOut", ImageFadeFrameInOut},{"ImageFadeFrameInOutSubFilter",ImageFadeFrameInOutSubFilter},{"ImageFadeDouble", ImageFadeDouble},{"BlendSubFilterAndImage", BlendSubFilterAndImage},{"FadeSubFilter", FadeSubFilter},{"FadeSubFilterRev", FadeSubFilterRev},{"ImageBlendSubFilterMedianBlend", ImageBlendSubFilterMedianBlend},{"FadeSubFilterXor", FadeSubFilterXor},{"BlurXorSubFilter",BlurXorSubFilter},{"ColorFlashIncrease", ColorFlashIncrease},{"ScaleFilter", ScaleFilter},{"NegativeDarkenXor", NegativeDarkenXor},{"ImageXor_SubFilter", ImageXor_SubFilter},{"NegateBlendSubFilter", NegateBlendSubFilter},{"StrobeNegatePixel",StrobeNegatePixel},{"StrobeNegateInOut", StrobeNegateInOut},{"ImageStrobeOnOff", ImageStrobeOnOff},{"AlphaStrobeBlend", AlphaStrobeBlend},{"CannyRandomPixels", CannyRandomPixels},{"FrameImageFadeInOut", FrameImageFadeInOut},{"FrameImageFadeInOutDouble", FrameImageFadeInOutDouble},{"ChangeEachSecond", ChangeEachSecond},{"ShuffleImage", ShuffleImage},{"ChangeImageEachSecond", ChangeImageEachSecond},{"ChangeImageFilterOnOff", ChangeImageFilterOnOff},{"ChangeXorEachSecond", ChangeXorEachSecond},{"MorphXor", MorphXor},{"MorphXorWithSubFilter", MorphXorWithSubFilter},{"MirrorEachSecond", MirrorEachSecond},{"MirrorReverseSubFilter", MirrorReverseSubFilter},{"MirrorReverseSubFilterAlphaBlend", MirrorReverseSubFilterAlphaBlend},{"Mirror_Xor_Combined", Mirror_Xor_Combined},{"MirrorFrameShuffle", MirrorFrameShuffle},{"MirrorShuffleSmooth", MirrorShuffleSmooth},{"Mirror_Xor_Smooth", Mirror_Xor_Smooth},{"XorFrameShuffle", XorFrameShuffle},{"XorMirrorBlendFrame", XorMirrorBlendFrame},{"ImageXorSmooth", ImageXorSmooth},{"SmoothSubFilter64", SmoothSubFilter64},{"SmoothMedian64", SmoothMedian64},{"SmoothMedian32_SubFilter", SmoothMedian32_SubFilter},{"SmoothAlphaMedian_SubFilter", SmoothAlphaMedian_SubFilter},{"SmoothImage_SubFilter", SmoothImage_SubFilter},{"SmoothImageMedian_SubFilter", SmoothImageMedian_SubFilter},{"SmoothImageAndSubFilter", SmoothImageAndSubFilter},{"SmoothSubFilter90", SmoothSubFilter90},{"SmoothMedianImageSubFilter16", SmoothMedianImageSubFilter16},{"ImageNegate", ImageNegate},{"ImageNegateAlphaBlend", ImageNegateAlphaBlend},{"ImageNegateAlphaBlendSubFilter", ImageNegateAlphaBlendSubFilter},{"FrameNegateAlphaBlendImage", FrameNegateAlphaBlendImage},{"DarkTrailsEffect", DarkTrailsEffect},{"DarkNegate", DarkNegate},{"ChannelSortMedianBlend",ChannelSortMedianBlend},{"MatrixCollectionMirrorDirection", MatrixCollectionMirrorDirection},{"StrobeRandomChannel", StrobeRandomChannel},{"SplitFramesSort", SplitFramesSort},{"SplitFrameSortSubFilter", SplitFrameSortSubFilter},{"MedianBlend64", MedianBlend64},{"SplitFrameFilter", SplitFrameFilter},{"SplitFrameBlend", SplitFrameBlend},{"SplitFrameBlendSubFilter", SplitFrameBlendSubFilter},{"SplitFrameCollection", SplitFrameCollection},{"SplitFrameMirror", SplitFrameMirror},{"RandomChannels", RandomChannels},{"SmoothRandomChannels", SmoothRandomChannels},{"SmoothChannelSubFilter", SmoothChannelSubFilter},{"IncreaseRGB", IncreaseRGB},{"IncreaseColor", IncreaseColor},{"SaturateBlend", SaturateBlend},{"SaturateBlendSubFilter", SaturateBlendSubFilter},{"MaxRGB", MaxRGB},{"XorDifferenceFilter", XorDifferenceFilter},{"AlphaBlendChannelSort", AlphaBlendChannelSort},{"ColorTrailsFilter", ColorTrailsFilter},{"ColorTrailsSubFilter", ColorTrailsSubFilter},{"DarkNegateRainbowMedian", DarkNegateRainbowMedian},{"IncreaseQuick", IncreaseQuick},{"IncreaseRandomIndex", IncreaseRandomIndex},{"ImageChannelSubFilter", ImageChannelSubFilter},{"ImageChannelChangeSubFilter", ImageChannelChangeSubFilter},{"ImageChannelRandom", ImageChannelRandom},{"ImageChannelRandomSubFilter", ImageChannelRandomSubFilter},{"PixelateBlur", PixelateBlur},{"PixelateBlock", PixelateBlock},{"PixelateNoResize12", PixelateNoResize12},{"PixelateNoResize8", PixelateNoResize8},{"PixelateNoResize32", PixelateNoResize32},{"PixelateNoResize16", PixelateNoResize16},{"PixelateNoResize24", PixelateNoResize24},{"PixelateBlurFilter",PixelateBlurFilter},{"PixelateBlurSubFilter", PixelateBlurSubFilter},{"MirrorXorImage", MirrorXorImage},{"MirrorXorSubFilter", MirrorXorSubFilter},{"PixelXorImageSubFilter", PixelXorImageSubFilter},{"PixelAlphaImageSubFilter", PixelAlphaImageSubFilter},{"PixelScaleImageSubFilter", PixelScaleImageSubFilter},{"PixelImageSubFilter", PixelImageSubFilter},{"PixelImageTex", PixelImageTex},{"PixelImageXorSubFilter", PixelImageXorSubFilter},{"PixelRowMedianBlend", PixelRowMedianBlend},{"IntertwineRows32", IntertwineRows32},{"IntertwineRows16", IntertwineRows16},{"IntertwineRows8", IntertwineRows8}, {"IntertwineAlpha", IntertwineAlpha},{"IntertwineRowsSubFilter", IntertwineRowsSubFilter}, {"IntertwineRows4", IntertwineRows4},{"Intertwine64x4", Intertwine64x4},{"Intertwine64X", Intertwine64X},{"Intertwine64XSubFilter", Intertwine64XSubFilter},{"Intertwine64XPixel", Intertwine64XPixel},{"IntertwinePixels", IntertwinePixels},{"IntertwineColsX", IntertwineColsX}, {"IntertwineCols16", IntertwineCols16},{"IntertwineCols32", IntertwineCols32}, {"IntertwineCols8", IntertwineCols8},{"MirrorIntertwine", MirrorIntertwine},{"MirrorIntertwineImage", MirrorIntertwineImage},{"MirrorIntertwineImageSubFilter", MirrorIntertwineImageSubFilter},{"IntertwineImageSubFilter", IntertwineImageSubFilter},{"BlendWithImage", BlendWithImage},{"IntertwineRowsReverse32", IntertwineRowsReverse32},{"IntertwineRowsReverse16", IntertwineRowsReverse16}, {"IntertwineRowsReverse8", IntertwineRowsReverse8},{"IntertwineRowsReverse64X", IntertwineRowsReverse64X},{"IntertwineRowsSwitch32", IntertwineRowsSwitch32},{"IntertwineRowsSwitch16", IntertwineRowsSwitch16}, {"IntertwineRowsSwitch8", IntertwineRowsSwitch8},{"IntertwineRows64", IntertwineRows64}, {"IntertwineRowsReverse64", IntertwineRowsReverse64},{"IntertwineRowsSwitch64", IntertwineRowsSwitch64},{"IntertwineShuffle", IntertwineShuffle},{"InterwtineAlphaSubFilter", InterwtineAlphaSubFilter},{"IntertwineImageAndSubFilter", IntertwineImageAndSubFilter},{"IntertwineRowsAndCols", IntertwineRowsAndCols},{"IntertwineRowsAndColsSubFilter", IntertwineRowsAndColsSubFilter},{"MatrixCollectionVariable", MatrixCollectionVariable},{"MatrixCollectionVariableSubFilter", MatrixCollectionVariableSubFilter},{"MatrixCollectionVariableImage",MatrixCollectionVariableImage},{"MatrixCollectionVariableImageSubFilter", MatrixCollectionVariableImageSubFilter},{"SmoothImageAverageSubFilter", SmoothImageAverageSubFilter},{"CallSubFilterBlend50", CallSubFilterBlend50},{"CallSubFilterBlend25", CallSubFilterBlend25},{"CallSubFilterBlend75",CallSubFilterBlend75},{"IntertwineColsX2", IntertwineColsX2},{"SmoothFrame64", SmoothFrame64},{"SmoothFrame32", SmoothFrame32},{"MatrixCollectionMedianBlendFilter", MatrixCollectionMedianBlendFilter},{"MedianBlendIncreaseFilter", MedianBlendIncreaseFilter},{"MedianBlendNegate", MedianBlendNegate},{"BlendWithFrameAndImageSubFilter", BlendWithFrameAndImageSubFilter},{"ImageIntertwine32", ImageIntertwine32},{"ImageIntertwine16", ImageIntertwine16}, {"ImageIntertwine8", ImageIntertwine8},{"ImageIntertwine64X", ImageIntertwine64X},{"IntertwineDoubleSubFilter",IntertwineDoubleSubFilter},{"IntertwineDoubleImageSubFilter", IntertwineDoubleImageSubFilter},{"IntertwineEachRowXSubFilter", IntertwineEachRowXSubFilter},{"IntertwineGhost", IntertwineGhost},{"IntertwineGhost32", IntertwineGhost32},{"IntertwineGhostSubFilter", IntertwineGhostSubFilter},{"BlendWithOldFrame", BlendWithOldFrame},{"BlendWith16thFrame", BlendWith16thFrame},{"BlendTrailsFilter",BlendTrailsFilter},{"LineMoveInOut", LineMoveInOut},{"MatrixCollectionTrails", MatrixCollectionTrails},{"MatrixCollectionRandom", MatrixCollectionRandom},{"MatrixCollectionRandomSmooth", MatrixCollectionRandomSmooth},{"MatrixCollectionRandomDouble", MatrixCollectionRandomDouble},{"MatrixCollectionAddImage", MatrixCollectionAddImage},{"MatrixCollectionAlphaBlendSubFilter", MatrixCollectionAlphaBlendSubFilter},{"MatrixCollectionImageBlendSubFilter", MatrixCollectionImageBlendSubFilter},{"TwitchinGlitchin", TwitchinGlitchin},{"IntertwineRowsImageAlphaBlend", IntertwineRowsImageAlphaBlend}, {"ChannelSortSubFilter", ChannelSortSubFilter},{"IntertwineRow2", IntertwineRow2},{"IntertwineRow720p", IntertwineRow720p},{"IntertwineRow1080p", IntertwineRow1080p},{"IntertwineRow720pX2", IntertwineRow720pX2}, {"IntertwineRow1080pX2", IntertwineRow1080pX2},{"IntertwineCols1280", IntertwineCols1280},{"IntertwineRowCols1280x720", IntertwineRowCols1280x720},{"IntertwineRowsImage", IntertwineRowsImage},{"MedianBlendSquare", MedianBlendSquare},{"SmoothIntertwineMedianBlend", SmoothIntertwineMedianBlend},{"SmoothBlendMedian", SmoothBlendMedian},{"SmoothDoubleSubFilter", SmoothDoubleSubFilter},{"AlphaBlendMedianSubFilter", AlphaBlendMedianSubFilter},{"ReverseOnOff", ReverseOnOff},{"SmoothReverseSubFilter", SmoothReverseSubFilter},{"IntertwineWithSubFilter", IntertwineWithSubFilter},{"IntertwineWithImageAndSubFilter", IntertwineWithImageAndSubFilter},{"IntertwineFrameWithImage", IntertwineFrameWithImage},{"InterlaceVerticalFilter", InterlaceVerticalFilter},{"InterlaceHorizontalFilter", InterlaceHorizontalFilter},{"IntertwineImageFlip", IntertwineImageFlip},{"IntertwineImageFlipSubFilter", IntertwineImageFlipSubFilter},{"IntertwineFlipImageAndSubFilter", IntertwineFlipImageAndSubFilter},{"IntertwineImageOnOff", IntertwineImageOnOff},{"IntertwineVideoShuffle", IntertwineVideoShuffle},{"ImageFlipFilter", ImageFlipFilter},{"FlipFrameFilter", FlipFrameFilter},{"AlphaBlendImageAndSubFilter", AlphaBlendImageAndSubFilter},{"SquareFill", SquareFill},{"StretchAlphaBlend", StretchAlphaBlend},{"StretchAlphaBlendWidth", StretchAlphaBlendWidth}, {"StretchAlphaBlendHeight", StretchAlphaBlendHeight},{"StretchAlphaBlendTwitch", StretchAlphaBlendTwitch},{"StretchAlphaBlednTwitchFast", StretchAlphaBlednTwitchFast},{"StretchRandomValues", StretchRandomValues},{"ImageRandomValues", ImageRandomValues},{"AlphaBlendTrails", AlphaBlendTrails},{"VideoStretchHorizontal", VideoStretchHorizontal},{"VideoStretchVertical", VideoStretchVertical},{"StrobeTrailsFilter", StrobeTrailsFilter},{"AlphaBlendTrailsReverse", AlphaBlendTrailsReverse},{"ShadowAlphaTrails16",ShadowAlphaTrails},{"ShadowAlphaTrailsReset", ShadowAlphaTrailsReset},{"SetColormap", SetColormap},{"ShadowAlphaTrails", ShadowAlphaTrails},{"ShadowAlphaTrails64", ShadowAlphaTrails64},{"MirrorLeft", MirrorLeft},{"MirrorRight", MirrorRight},{"MirrorBackAndForth", MirrorBackAndForth},{"FadeFromColorToColor", FadeFromColorToColor},{"FadeFromColorToColorImage", FadeFromColorToColorImage},{"Random_Filter", Random_Filter},{"FlipY_Axis", FlipY_Axis}, {"FlipX_Axis", FlipX_Axis}, {"FlipBoth", FlipBoth},{"FlipMirrorAlphaBlend", FlipMirrorAlphaBlend},{"Random_FilterX2", Random_FilterX2},{"Random_FilterSubFilter", Random_FilterSubFilter},{"IntertwineRow480pX2", IntertwineRow480pX2},{"LowFi", LowFi},{"HighToLow", HighToLow},{"LowToHigh", LowToHigh},{"MoveHighAndLow", MoveHighAndLow},{"StretchSubFilter", StretchSubFilter},{"Quality480",Quality480}, {"Quality720",Quality720}, {"Quality1080", Quality1080},{"StretchVerticalMirror", StretchVerticalMirror},{"ImageLoFi", ImageLoFi},{"ImageLofiAlphaBlend", ImageLofiAlphaBlend},{"ImageAlphaBlendScale", ImageAlphaBlendScale},{"FrameStretchAlphaBlend", FrameStretchAlphaBlend},{"BlurHighToLow", BlurHighToLow},{"ImageHighToLowAlpha", ImageHighToLowAlpha},{"MirrorTopToBottom", MirrorTopToBottom},{"MirrorBottomToTop", MirrorBottomToTop},{"FlashRGB_SubFilter", FlashRGB_SubFilter},{"MirrorSwitch", MirrorSwitch},{"MirrorSwitchSubFilter", MirrorSwitchSubFilter},{"MirrorSwitchFlip", MirrorSwitchFlip},{"BlendImageLayer", BlendImageLayer},{"StrobeRandomFilter", StrobeRandomFilter},{"AlphaBlendRandom_Filter", AlphaBlendRandom_Filter},{"DoubleRandomAlphaImageSubFilter", DoubleRandomAlphaImageSubFilter},{"MirrorLeftMirrorRightBlend",MirrorLeftMirrorRightBlend},{"MirrorTopMirrorBottomBlend", MirrorTopMirrorBottomBlend},{"MirrorAll", MirrorAll},{"ImageDiff", ImageDiff},{"ImageDiffSubFilter", ImageDiffSubFilter},{"RestoreBlack", RestoreBlack},{"OrigBlendSubFilter", OrigBlendSubFilter},{"OrigAndCurrentRandomX2", OrigAndCurrentRandomX2},{"FillPixelsImage", FillPixelsImage},{"AverageHorizontalDistortion", AverageHorizontalDistortion},{"AlphaBlendImageWithOrigSource", AlphaBlendImageWithOrigSource},{"resizeFrameWidth", resizeFrameWidth},{"resizeFrameHeight", resizeFrameHeight}, {"resizeFrameWidthAndHeight", resizeFrameWidthAndHeight},{"resizeImageWidth", resizeImageWidth}, {"resizseImageHeight", resizeImageHeight}, {"resizeImageWidthAndHeight", resizeImageWidthAndHeight},{"resizeImageAndFrameBlend", resizeImageAndFrameBlend},{"resizeImageWidthAndHeightSubFilter", resizeImageWidthAndHeightSubFilter},{"resizeImageFrameWidth", resizeImageFrameWidth},{"resizeImageFrameHeight",resizeImageFrameHeight}, {"resizeImageFrameWidthAndHeight", resizeImageFrameWidthAndHeight},{"resizeImageRandom", resizeImageRandom},{"resizeFrameRandom", resizeFrameRandom},{"resizeFrameImageFlash", resizeFrameImageFlash},{"RandomFlip", RandomFlip},{"ColorsFilter", ColorsFilter},{"MirrorDoubleVision", MirrorDoubleVision},{"ColorFadeFilter", ColorFadeFilter},{"ColorChannelMoveUpAndDown", ColorChannelMoveUpAndDown},{"MedianStrobe", MedianStrobe},{"DifferenceSubFilter", DifferenceSubFilter},{"AlphaBlendFlippedFilter", AlphaBlendFlippedFilter},{"ColorVariableBlend", ColorVariableBlend},{"ColorXorBlend", ColorXorBlend},{"ColorAddBlend", ColorAddBlend},{"IntertwineRowsShadow720p", IntertwineRowsShadow720p},{"IntertwineRowsAlpha720p", IntertwineRowsAlpha720p},{"IntertwineByFrameDown", IntertwineByFrameDown},{"IntertwineByFrameUp", IntertwineByFrameUp},{"IntertwineFrameFast", IntertwineFrameFast},{"IntertwineFrame360", IntertwineFrame360},{"IntertwineFrame360X", IntertwineFrame360X},{"IntertwineFrameTwitch", IntertwineFrameTwitch},{"IntertwineFrameDark", IntertwineFrameDark},{"IntertwineFrame360_Reverse", IntertwineFrame360_Reverse},{"IntertwineFrameBlend", IntertwineFrameBlend},{"IntertwineXorCollection", IntertwineXorCollection},{"IntertwineFrame720X", IntertwineFrame720X},{"IntertwineFrame1080X", IntertwineFrame1080X},{"IntertwineFrameImage1080X", IntertwineFrameImage1080X},{"RandomXorMultiThreadTest", RandomXorMultiThreadTest},{"SelfAlphaBlendMultiThread", SelfAlphaBlendMultiThread},{"MedianBlendMultiThread", MedianBlendMultiThread},{"BytePixelSort", BytePixelSort},{"SortedImageColorVariable", SortedImageColorVariable},{"SmoothColorVariableImageBlend", SmoothColorVariableImageBlend},{"BlendChannelXor", BlendChannelXor},{"ColorShiftXor", ColorShiftXor},{"RandomSquares", RandomSquares},{"RandomImageSquares", RandomImageSquares},{"Random_FilterX2_SubFilter", Random_FilterX2_SubFilter},{"FuzzyFilter", FuzzyFilter},{"XorMultiply", XorMultiply},{"Grayscale", Grayscale},{"ColorShadowBlend", ColorShadowBlend},{"FlashMatrixTrails", FlashMatrixTrails},{"GhostTrails", GhostTrails},{"MedianBlend_Random_Filter", MedianBlend_Random_Filter},{"IntertwineMirrorEnergy", IntertwineMirrorEnergy},{"IntertwineMultipleRows", IntertwineMultipleRows},{"GhostTwitch", GhostTwitch},{"GhostTwitchTrails", GhostTwitchTrails},{"Dyskinesia", Dyskinesia},{"Mirror_Rainbow_Blur", Mirror_Rainbow_Blur},{"MirrorMedianBlur", MirrorMedianBlur},{"VideoTwitch", VideoTwitch},{"ErodeFilter", ErodeFilter},{"DilateFilter", DilateFilter},{"MirrorLeftBottomToTop", MirrorLeftBottomToTop},{"MirrorRightTopToBottom", MirrorRightTopToBottom},{"BilateralFilter", BilateralFilter},{"BilateralFilterFade", BilateralFilterFade},{"BilateralBlend", BilateralBlend},{"BilateralBlendFade", BilateralBlendFade},{"BilateralFilterScale", BilateralFilterScale},{"ColorRGB_IncDec", ColorRGB_IncDec},{"ColorCollection", ColorCollection},{"ColorCollectionRandom", ColorCollectionRandom},{"ColorCollectionStrobeShift", ColorCollectionStrobeShift},{"ColorCollectionRandom_Filter", ColorCollectionRandom_Filter},{"ColorCollectionShift", ColorCollectionShift},{"CollectionEnergy", CollectionEnergy},{"ColorCollectionInterlace", ColorCollectionInterlace},{"ColorCollectionStrobeShake", ColorCollectionStrobeShake},{"ColorCollectionSubFilter", ColorCollectionSubFilter},{"ColorCollectionShiftSubFilter", ColorCollectionShiftSubFilter},{"ColorCollectionSubtle", ColorCollectionSubtle},{"ColorCollection64", ColorCollection64},{"ColorCollectionSubtleStrobe", ColorCollectionSubtleStrobe},{"CollectionRandom", CollectionRandom},{"CollectionRandomSubFilter", CollectionRandomSubFilter},{"CollectionImage", CollectionImage},{"CollectionAlphaXor", CollectionAlphaXor},{"ColorCollection64X", ColorCollection64X},{"ColorCollectionSwitch", ColorCollectionSwitch},{"ColorCollectionRGB_Index", ColorCollectionRGB_Index},{"ColorCollectionRGBStrobeSubFilter", ColorCollectionRGBStrobeSubFilter},{"ColorCollectionGhostTrails", ColorCollectionGhostTrails},{"ColorCollectionScale", ColorCollectionScale},{"ColorCollectionReverseStrobe", ColorCollectionReverseStrobe},{"CollectionAlphaBlend_SubFilter", CollectionAlphaBlend_SubFilter},{"ColorCollectionXorPixel", ColorCollectionXorPixel},{"BlendWithSource25",BlendWithSource25}, {"BlendWithSource50",BlendWithSource50}, {"BlendWithSource75",BlendWithSource75}, {"BlendWithSource100",BlendWithSource100},{"ColorCollectionXorOffsetFlash", ColorCollectionXorOffsetFlash},{"ColorCollectionMatrixGhost", ColorCollectionMatrixGhost},{"MildStrobe", MildStrobe},{"ReduceBy50", ReduceBy50},{"AlphaBlendWithSourceScale", AlphaBlendWithSourceScale},{"ColorPositionAverageXor", ColorPositionAverageXor},{"ColorPositionXor", ColorPositionXor},{"ColorPositionXorMedianBlend", ColorPositionXorMedianBlend},{"CannyStrobe", CannyStrobe},{"LaplacianStrobe", LaplacianStrobe},{"LaplacianStrobeOnOff", LaplacianStrobeOnOff},{"ColorCollectionPixelXor", ColorCollectionPixelXor},{"GrayStrobe", GrayStrobe},{"ColorStrobeXor",ColorStrobeXor},{"ColorGhost", ColorGhost},{"ColorCollectionTwitchSubFilter", ColorCollectionTwitchSubFilter},{"BlurredOutXor", BlurredOutXor},{"BoxFilter", BoxFilter},{"DizzyFilter", DizzyFilter},{"Buzzed", Buzzed},{"BlendWithImage25", BlendWithImage25}, {"BlendWithImage50",BlendWithImage50}, {"BlendWithImage75",BlendWithImage75},{"BuzzedDark", BuzzedDark},{"AlphaBlendImageDownUp", AlphaBlendImageDownUp},{"BlendWithImageAndSource", BlendWithImageAndSource},{"PixelSourceFrameBlend256", PixelSourceFrameBlend256},{"SplitMatrixCollection", SplitMatrixCollection},{"RectangleGlitch", RectangleGlitch},{"PositionShift", PositionShift},{"ColorCollectionMovementIndex", ColorCollectionMovementIndex},{"Shake", Shake},{"Disoriented", Disoriented},{"ColorCollectionPositionStrobe", ColorCollectionPositionStrobe},{"ColorCollectionStrobeBlend", ColorCollectionStrobeBlend},{"AlphaBlendStoredFrames", AlphaBlendStoredFrames},{"SplitMatrixSortChannel", SplitMatrixSortChannel},{"SplitMatrixSortChannelArrayPosition", SplitMatrixSortChannelArrayPosition},{"SplitMatrixSortChannelImage", SplitMatrixSortChannelImage},{"ShiftColorLeft", ShiftColorLeft},{"CycleInAndOutRepeat", CycleInAndOutRepeat},{"ColorCollectionShuffle", ColorCollectionShuffle},{"BlendFromXtoY", BlendFromXtoY},{"BlendImageXtoY", BlendImageXtoY},{"BlendColorImageStrobeSubFilter", BlendColorImageStrobeSubFilter},{"BlendByColsSubFilter", BlendByColsSubFilter},{"BlendByColsImage", BlendByColsImage},{"IntertwineX", IntertwineX}, {"IntertwineY", IntertwineY},{"IntertwineSubFilterX", IntertwineSubFilterX}, {"IntertwineSubFilterY", IntertwineSubFilterY},{"IntertwineImageX", IntertwineImageX}, {"IntertwineImageY", IntertwineImageY},{"InertwineImageSubFilter", InertwineImageSubFilter},{"IntertwineHorizontalImageSubFilter", IntertwineHorizontalImageSubFilter},{"InterwtineHorizontalImageSubFilterByIndex", InterwtineHorizontalImageSubFilterByIndex},{"IntertwineHorizontalImageSubFilterMatrixCollection", IntertwineHorizontalImageSubFilterMatrixCollection},{"BlendForwardAndBack16", BlendForwardAndBack16},{"BlendForwardAndBack32", BlendForwardAndBack32},{"BlendForwardAndBack64", BlendForwardAndBack64},{"BlendForwardAndBack8_RandomStrobe", BlendForwardAndBack8_RandomStrobe},{"AlphaBlendWithThreeCollections", AlphaBlendWithThreeCollections},{"AlphaBlendArrayRandom", AlphaBlendArrayRandom},{"AlphaBlendArrayTrailsFilters", AlphaBlendArrayTrailsFilters},{"AlphaBlendMirrorChannelSort", AlphaBlendMirrorChannelSort},{"ColorCollectionAlphaBlendArray", ColorCollectionAlphaBlendArray},{"AlphaBlendArrayExpand", AlphaBlendArrayExpand},{"ColorImageMatrixFade", ColorImageMatrixFade},{"ColorImageMatrixFadeFast", ColorImageMatrixFadeFast},{"ColorImageMatrixFadeDirection", ColorImageMatrixFadeDirection},{"ColorImageMatrixFadeDirectionBlend", ColorImageMatrixFadeDirectionBlend},{"ColorMatrixCollectionPixelation", ColorMatrixCollectionPixelation},{"ColorMatrixColllectionImagePixelation", ColorMatrixColllectionImagePixelation},{"ColorMatrixCollectionImagePixelationSubFilter", ColorMatrixCollectionImagePixelationSubFilter},{"ColorImageMatrixMedianBlend", ColorImageMatrixMedianBlend},{"ColorImageBlendPixelMedian", ColorImageBlendPixelMedian},{"ColorImageBlendOrigMedian", ColorImageBlendOrigMedian},{"ColorImageBlendSource", ColorImageBlendSource},{"ColorImageMatrixFadeOnAndOff", ColorImageMatrixFadeOnAndOff},{"ColorImageMatrixRect", ColorImageMatrixRect},{"ColorImageBackAndForth", ColorImageBackAndForth},{"ColorImageFadeReallyFast", ColorImageFadeReallyFast},{"ColorImageSubFilterXor", ColorImageSubFilterXor},{"ColorImageAllXor", ColorImageAllXor},{"ColorChannelIteration", ColorChannelIteration},{"ColorImageMatrixFadeVariable", ColorImageMatrixFadeVariable},{"ColorXorImageFade", ColorXorImageFade},{"ColorFreezeBlend", ColorFreezeBlend},{"ColorImageFill", ColorImageFill},{"ColorImageFillMatrix", ColorImageFillMatrix},{"ColorImageFillSubFilter", ColorImageFillSubFilter},{"ColorImagePixelsResetSubFilter", ColorImagePixelsResetSubFilter},{"ColorIncrementReset", ColorIncrementReset},{"ColorPixelArray2D", ColorPixelArray2D},{"ManualShell", ManualShell},{"ColorIncrementRandomReset", ColorIncrementRandomReset},{"ColorImageIncrementResetCollection", ColorImageIncrementResetCollection},{"ColorMoveDown", ColorMoveDown},{"ColorMoveDownResetMedianBlend", ColorMoveDownResetMedianBlend},{"ColorMoveDownSmoothMedianBlend", ColorMoveDownSmoothMedianBlend},{"PixelRandom3", PixelRandom3},{"ShiftMatrixLeft", ShiftMatrixLeft},{"ShiftMatrixLeftSubFilter", ShiftMatrixLeftSubFilter},{"ShiftMatrixUpSubFilter", ShiftMatrixUpSubFilter},{"PixelatePixelValues", PixelatePixelValues},{"StretchCollection", StretchCollection},{"PsychedelicSlitScan", PsychedelicSlitScan},{"SineValue", SineValue},{"SineTransitionUpLeft", SineTransitionUpLeft},{"TemporaryTrails", TemporaryTrails},{"StrobingPixelDissolve", StrobingPixelDissolve},{"ImagePixelFrameBlend", ImagePixelFrameBlend},{"PreviewFilters", PreviewFilters},{"EachFilterSubFilter", EachFilterSubFilter},{"EachFilterRandomStartSubFilter", EachFilterRandomStartSubFilter},{"PixelPsychosis", PixelPsychosis},{"PixelCloud", PixelCloud},{"PiixelXorBlendFrame", PiixelXorBlendFrame},{"PixelImageBlendFrame", PixelImageBlendFrame},{"PixelCollectionRandom", PixelCollectionRandom},{"PixelCollectionSubFilter", PixelCollectionSubFilter},{"PixelCollectionMatrixSubFilter", PixelCollectionMatrixSubFilter},{"PixelCollectionIncreaseSubFilter", PixelCollectionIncreaseSubFilter},{"PixelCollectionImageBlend", PixelCollectionImageBlend},{"ColorPulseIncrease", ColorPulseIncrease},{"PixelCollectionLongMatrixSubFilter", PixelCollectionLongMatrixSubFilter},{"ColorPulseImageIncreaseSubFilter", ColorPulseImageIncreaseSubFilter},{"ColorPulseRandom", ColorPulseRandom},{"ColorPulseImage", ColorPulseImage},{"ColorPulseAlpha", ColorPulseAlpha},{"ColorLower75", ColorLower75},{"ColorImageMedianBlend", ColorImageMedianBlend},{"ColorDullBlur", ColorDullBlur},{"ColorImageDull", ColorImageDull},{"ColorImageBlendWithFrame", ColorImageBlendWithFrame},{"ColorImageBlendSubFilter", ColorImageBlendSubFilter},{"ColorMatrixImageFilter", ColorMatrixImageFilter},{"ColorXorMatrixImage", ColorXorMatrixImage},{"MatrixColorBlur", MatrixColorBlur},{"ColorImageLower",ColorImageLower},{"BlurSubFilter8", BlurSubFilter8},{"LightBlend", LightBlend},{"LightBlendXor", LightBlendXor},{"Source_ImageSubFilter", Source_ImageSubFilter},{"XorZeroImage", XorZeroImage},{"SlowDownFilterSubFilter", SlowDownFilterSubFilter},{"VariableFilterSubFilter", VariableFilterSubFilter},{"SingleFrameGlitch", SingleFrameGlitch},{"ColorFadeSlow", ColorFadeSlow},{"FadeBetweenSubFilter", FadeBetweenSubFilter},{"FadeBetweenFrame", FadeBetweenFrame},{"TrailsTwitch", TrailsTwitch},{"Tremors", Tremors},{"XorImageIndexPixel", XorImageIndexPixel},{"ImageStrobeMedianBlend", ImageStrobeMedianBlend},{"StrobeImageArrayPosition", StrobeImageArrayPosition},{"OppositeImageArray", OppositeImageArray},{"NoMedianBlurBlendMultiThread", NoMedianBlurBlendMultiThread},{"NegateNoBlurMedian", NegateNoBlurMedian},{"PulseIncreaseVariableSpeed", PulseIncreaseVariableSpeed},{"Source25_Image75", Source25_Image75},{"LightStrobe", LightStrobe},{"StrobeRedChannel", StrobeRedChannel}, {"StrobeGreenChannel", StrobeGreenChannel},{"StrobeBlueChannel",StrobeBlueChannel},{"StrobeOnOffRandomChannel", StrobeOnOffRandomChannel},{"StrobeLightFlashRandomChannel", StrobeLightFlashRandomChannel},{"LostSideDeadImageSubFilter", LostSideDeadImageSubFilter},{"SwapImageFrameSubFilter", SwapImageFrameSubFilter},{"PulseIncreaseFast", PulseIncreaseFast},{"FibonacciXor", FibonacciXor},{"ColorFibonacci", ColorFibonacci},{"ImageFibonacci", ImageFibonacci},{"ImageFibonacciInAndOut", ImageFibonacciInAndOut},{"ImageFibonacciStrobe", ImageFibonacciStrobe},{"ImageFibonacciMedianBlend", ImageFibonacciMedianBlend},{"ImageFibonacciInAndOutSubFilter", ImageFibonacciInAndOutSubFilter},{"ImageKaleidoscopeSubFilter", ImageKaleidoscopeSubFilter},{"ImageMirrorLeftRight", ImageMirrorLeftRight},{"ImageMirrorShiftUpLeftDownRight", ImageMirrorShiftUpLeftDownRight},{"SelfScaleRefined", SelfScaleRefined},{"MetalMedianBlend", MetalMedianBlend},{"SelfScaleRefinedRGB", SelfScaleRefinedRGB},{"ImageFreezeReleaseRepeat", ImageFreezeReleaseRepeat},{"ImageReplaceColorIntensity", ImageReplaceColorIntensity},{"ImageReplaceColorIntensitySubFilter", ImageReplaceColorIntensitySubFilter},{"ImageReplaceColorIntensitySubFilterInOut", ImageReplaceColorIntensitySubFilterInOut},{"ImageFillColor", ImageFillColor},{"MultiRandFilter", MultiRandFilter},{"MultiFilter", MultiFilter},{"GradientRandom", GradientRandom},{"LineMedianBlend", LineMedianBlend},{"PerfectMedianBlend", PerfectMedianBlend},{"ImageRowAlphaSubFilter", ImageRowAlphaSubFilter},{"IndexPixelRowSubFilter", IndexPixelRowSubFilter},{"IndexSourceRowSubFilter", IndexSourceRowSubFilter},{"IndexSourceBlendSubFilter", IndexSourceBlendSubFilter},{"BlendFilterWithSubFilter", BlendFilterWithSubFilter},{"FadeFilterWithSubFilter", FadeFilterWithSubFilter},{"AlphaBlendByRowSubFilter", AlphaBlendByRowSubFilter},{"ColorMatrixTrailsSubFilter", ColorMatrixTrailsSubFilter},{"LoFi_320x240_Interlaced", LoFi_320x240_Interlaced},{"LoFi_320x240", LoFi_320x240},{"LoFi_320x240_SubFilter", LoFi_320x240_SubFilter},{"LoFi_320x240_Alpha_SubFilter", LoFi_320x240_Alpha_SubFilter},{"LoFi_160x120_SubFilter",LoFi_160x120_SubFilter},{"LoFi_Trails",LoFi_Trails},{"LoFi_ImageScaleSubFilter",LoFi_ImageScaleSubFilter},{"MedianShift",MedianShift},{"ImageAlienKaleidoscope",ImageAlienKaleidoscope},{"ImageMirror_Left",ImageMirror_Left},{"ImageMirror_Right",ImageMirror_Right},{"ImageMirror_Up",ImageMirror_Up},{"ImageMirror_Down",ImageMirror_Down},{"ImageMirror_LeftSubFilter",ImageMirror_LeftSubFilter},{"ImageMirror_RightSubFilter",ImageMirror_RightSubFilter},{"ImageMirror_UpSubFilter",ImageMirror_UpSubFilter}, {"ImageMirror_DownSubFilter",ImageMirror_DownSubFilter},{"ImageMirrorKaleidoscope", ImageMirrorKaleidoscope},{"ExactImageSubFilter", ExactImageSubFilter},{"AlphaImageSourceScale", AlphaImageSourceScale},{"GhostMirrorReversed", GhostMirrorReversed},{"GhostMirrorFade", GhostMirrorFade},{"MirrorFadeLeftRight", MirrorFadeLeftRight},{"FadeMirrorSubFilter", FadeMirrorSubFilter},{"MirrorFadeUpDown", MirrorFadeUpDown},{"DarkTrailsKaleidoscope", DarkTrailsKaleidoscope},{"MirrorFadeAll",MirrorFadeAll},{"KaleidoscopeMirrorSubFilter", KaleidoscopeMirrorSubFilter},{"ImageKaleidoscopeMirrorAlphaSubFilter", ImageKaleidoscopeMirrorAlphaSubFilter},{"BlendOppositesSubFilter", BlendOppositesSubFilter},{"AlphaBlendMirrorFade", AlphaBlendMirrorFade},{"DarkenMedianBlend", DarkenMedianBlend},{"ReduceMedianBlend", ReduceMedianBlend},{"DarkColors", DarkColors},{"DarkenChannelXorNoMedian", DarkenChannelXorNoMedian},{"DarkenStrobeMedianBlend", DarkenStrobeMedianBlend},{"DarkenImageAlphaBlend", DarkenImageAlphaBlend},{"MatrixStrobeTrails", MatrixStrobeTrails},{"MatrixStrobeMedianBlend", MatrixStrobeMedianBlend},{"ImageEnergyKaleidoscopeSubFilter", ImageEnergyKaleidoscopeSubFilter},{"ImageEnergyKaleidoscopeBlendSubFilter", ImageEnergyKaleidoscopeBlendSubFilter},{"ImageEnergyKaleidoscopeEvenSubFilter", ImageEnergyKaleidoscopeEvenSubFilter},{"ImageEnergyFadeSubFilter", ImageEnergyFadeSubFilter},{"ImageEnergizeBlendFilter", ImageEnergizeBlendFilter},{"ImageEnergizeSubFilter", ImageEnergizeSubFilter},{"MatrixCollectionSmoothedSubFilter", MatrixCollectionSmoothedSubFilter},{"MonoColorTrails", MonoColorTrails},{"TremorMonoColorTrails", TremorMonoColorTrails},{"StrobeMonoColorTrails", StrobeMonoColorTrails},{"StrobeEffectColorTrails", StrobeEffectColorTrails},{"PixelStrobeColorTrails", PixelStrobeColorTrails},{"ElectricImageFilter", ElectricImageFilter},{"ImageEnergyStrobeSubFilter", ImageEnergyStrobeSubFilter},{"Twin", Twin},{"TwinKaleidoscope", TwinKaleidoscope},{"MedianBlendMultiThread_2160p", MedianBlendMultiThread_2160p},{"MedianBlendMultiThreadByFour",MedianBlendMultiThreadByFour}, {"MedianBlendMultiThreadByEight", MedianBlendMultiThreadByEight},{"MedianBlendMultiThreadByTweleve", MedianBlendMultiThreadByTweleve},{"MedianBlendMultiThreadByThree", MedianBlendMultiThreadByThree},{"MedianBlendIncrease", MedianBlendIncrease},{"MedianBlendIncrease16", MedianBlendIncrease16},{"StrangeGlitch64", StrangeGlitch64},{"StrangeGlitch16", StrangeGlitch16},{"CollectionMatrixOutline", CollectionMatrixOutline},{"CollectionMatrixSubFilter", CollectionMatrixSubFilter},{"CollectionMatrixRandomMedianBlend", CollectionMatrixRandomMedianBlend},{"ImageCollectionMatrixOutline", ImageCollectionMatrixOutline},{"ImageCollectionMatrixOutlineSubFilter", ImageCollectionMatrixOutlineSubFilter},{"ImageCollectionMatrixFillSubFilter", ImageCollectionMatrixFillSubFilter},{"ImageCollectionMatrixFadeInOutSubFilter", ImageCollectionMatrixFadeInOutSubFilter},{"ImageCollectionMatrixIntensitySubFilter", ImageCollectionMatrixIntensitySubFilter},{"ImageCollectionMatrixMedianSubFilter", ImageCollectionMatrixMedianSubFilter},{"CollectionMatrxOutlineAlphaMedianBlend", CollectionMatrxOutlineAlphaMedianBlend},{"ImageSourceOrigXor", ImageSourceOrigXor},{"MatrixCollectionAuraTrails", MatrixCollectionAuraTrails},{"MatrixCollectionAuraTrails32", MatrixCollectionAuraTrails32},{"PixelIntensityFillSubFilter", PixelIntensityFillSubFilter},{"SmoothImageFrameSubFilter", SmoothImageFrameSubFilter},{"ImageCycleBlend", ImageCycleBlend},{"ImageCycleAlphaBlend", ImageCycleAlphaBlend},{"ImageCycleXor", ImageCycleXor},{"ImageCycleMedian", ImageCycleMedian},{"ImageCycleAlphaSubFilter", ImageCycleAlphaSubFilter},{"ImageCycleSmoothAlphaBlend", ImageCycleSmoothAlphaBlend},{"ImageCycleSmoothAlphaBlend32", ImageCycleSmoothAlphaBlend32},{"BlendWithSourceMedianBlendMultiThreadEight", BlendWithSourceMedianBlendMultiThreadEight},{"BlendWithImageMedianMutliThreadEight", BlendWithImageMedianMutliThreadEight},{"GradientBlendWithImage", GradientBlendWithImage},{"DarkColorMovement", DarkColorMovement},{"DarkColorFibonacci", DarkColorFibonacci},{"UseFilterOnAndOffSubFilter", UseFilterOnAndOffSubFilter},{"UseFilterOnAndOffEachQuarterSecondSubFilter", UseFilterOnAndOffEachQuarterSecondSubFilter},{"UseFilterOnAndOffByEightSubFilter", UseFilterOnAndOffByEightSubFilter},{"UseImageOnAndOffByEight", UseImageOnAndOffByEight},{"UseImageOnAndOff", UseImageOnAndOff},{"SelfAlphaScale_Down",SelfAlphaScale_Down},{"PsychoticVision", PsychoticVision},{"DarkPsychoticVision", DarkPsychoticVision},{"Mirror_ReverseColor", Mirror_ReverseColor},{"ImageColorCycleMorph", ImageColorCycleMorph},{"ImageBlendAndSubFilter", ImageBlendAndSubFilter},{"ImageSquareShrink", ImageSquareShrink},{"ImageSquareShrinkFast", ImageSquareShrinkFast},{"ImageSquareShrinkAlpha", ImageSquareShrinkAlpha},{"ImageSquareExpand", ImageSquareExpand},{"ImageKaleidoscopeNoBlur", ImageKaleidoscopeNoBlur},{"KaleidoscopeSubFilter", KaleidoscopeSubFilter},{"ImageSquareShrinkSubFilter", ImageSquareShrinkSubFilter},{"DifferenceReplaceSubFilter", DifferenceReplaceSubFilter},{"InvertedDifferenceReplaceSubFilter", InvertedDifferenceReplaceSubFilter},{"ImageInvertedDifferenceReplaceSubFilter", ImageInvertedDifferenceReplaceSubFilter},{"ImageDifferenceReplaceSubFilter", ImageDifferenceReplaceSubFilter},{"DifferenceReplaceSubFilterAlphaBlend", DifferenceReplaceSubFilterAlphaBlend},
        {"No Filter",NoFilter},
        {"Blend with Source",BlendWithSource}, {"Plugin",plugin}, {"Custom",custom}, {"Blend With Image #1",blendWithImage}, {"TriBlend with Image", triBlendWithImage}, {"Image Strobe",imageStrobe}};
      
    FilterType *filter_array = filters;
    FilterType filterByIndex(const int &num) {
        return filter_array[num];
    }
    FilterType filterByString(const std::string &num) {
        return filter_array[ac::filter_map[num]];
    }
    std::unordered_map<std::string, FilterType> filter_map_str;
    Pixelated pix;
}

cv::Mat blend_image, color_image, color_bg_image,color_replace_image,color_filter;
bool blend_set = false;
bool colorkey_set = false;
bool colorkey_bg = false;
bool colorkey_replace = false;
bool colorkey_filter = false;
bool cl_init = false;

bool ac::OpenCL_Enabled() {
    return cl_init;
}

// return version info
std::string ac::getVersion() {
    return version;
}
// be sure to call this on startup
void ac::fill_filter_map() {
    cl_init = cv::ocl::useOpenCL();
    for(int i = 0; i < ac::draw_max; ++i)
        filter_map[draw_strings[i]] = i;
    for(int i = 0; i < ac::draw_max-3; ++i)
        filter_map_str[filters[i].first] = filters[i];
    ac::init_filter_menu_map();
}

void ac::DrawFilter(const std::string &name, const cv::Mat &frame, cv::Mat &outframe) {
   	outframe = frame.clone();
    CallFilter(name, outframe);
}

void ac::DrawFilter(int index, const cv::Mat &frame, cv::Mat &outframe) {
    outframe = frame.clone();
    CallFilter(index, outframe);
}
void ac::DrawFilter(int index, cv::Mat &frame) {
        CallFilter(index, frame);
}
void ac::DrawFilter(const std::string &name, cv::Mat &frame) {
    CallFilter(name, frame);
}

bool ac::CallFilter(int index, cv::Mat &frame) {
    if(index >= 0 && index < ac::draw_max) {
        DrawFilterUnordered(ac::draw_strings[index], frame);
        return true;
    }
    return false;
}

bool ac::CallFilter(const std::string &name, cv::Mat &frame) {
    int index = ac::filter_map[name];
    if(index >= 0 && index < ac::draw_max) {
        DrawFilterUnordered(name, frame);
        return true;
    }
    std::cout << "filter: " << name << " not found.\n";
    return false;
}

void ac::DrawFilterUnordered(const std::string &name, cv::Mat &frame) {
    if(filter_map_str.find(name) != filter_map_str.end())
        filter_map_str[name].second(frame);
    else
        std::cerr << "filter: " << name << " not found!\n";
}


void ac::swapColors(cv::Mat &frame, int y, int x) {
    if(in_custom == true) return;
    if(color_order == 0 && swapColor_r == 0 && swapColor_g == 0 && swapColor_b == 0) return; // if no swap needed return
    if(set_color_map > 0 && color_map_set == false) {
        return;
    }
    swapColors_(frame, y, x);
}

void ac::swapColors_(cv::Mat &frame, int y, int x) {
    cv::Vec3b &cur = frame.at<cv::Vec3b>(y,x);
    cur[0] += swapColor_b;
    cur[1] += swapColor_g;
    cur[2] += swapColor_r;
    cv::Vec3b temp;// temp
    temp = cur;// temp = cur
    // Default color order is BGR
    // swap RGB orders
    switch(color_order) {
        case 1: // RGB
            cur[0] = temp[2];
            cur[1] = temp[1];
            cur[2] = temp[0];
            break;
        case 2:// GBR
            cur[0] = temp[1];
            cur[1] = temp[0];
            break;
        case 3:// BRG
            cur[1] = temp[2];
            cur[2] = temp[1];
            break;
        case 4: // GRB
            cur[0] = temp[1];
            cur[1] = temp[2];
            cur[2] = temp[0];
            break;
    }
}
// invert pixel in frame at x,y
void ac::invert(cv::Mat &frame, int y, int x) {
    if(in_custom == true) return;
    cv::Vec3b &cur = frame.at<cv::Vec3b>(y,x);// cur pixel
    cur[0] = ~cur[0]; // bit manipulation sets opposite
    cur[1] = ~cur[1];
    cur[2] = ~cur[2];
}

//
//enum PROC_MODE_TYPE { MOVEINOUT_INC, MOVEINOUT, MOVERESET };

// proc position
void ac::procPos(int &direction, double &pos, double &pos_max, const double max_size, double iter) {
    if(alpha_increase != 0) iter = alpha_increase;
    switch(getProcMode()) {
        case MOVEINOUT_INC: { // move in - increase move out movin - increase move out
            // static int direction
            // pos max
            // if direction equals 1
            if(direction == 1) {
                pos += iter; // pos plus equal 0.05
                if(pos > pos_max) { // if pos > pos max
                    pos = pos_max; // pos = pos_max
                    direction = 0;// direction equals 0
                    pos_max += 0.5; // pos_max increases by 0.5
                }
            } else if(direction == 0) {// direction equals 0
                pos -= iter;// pos -= 0.05
                if(pos <= 1.0) {// if pos <= 1.0
                    if(pos_max > max_size) pos_max = 1.0;// if pos max at maxmium
                    // set to 1.0
                    direction = 1;// set direction back to 1
                }
            }
        }
            break;
        case MOVEINOUT: { // flat fade in fade out
            if(direction == 1) {
                pos += iter;
                if(pos > max_size) direction = 0;
                
            } else if(direction == 0) {
                pos -= iter;
                if(pos <= 1) direction = 1;
            }
            
        }
            break;
        case MOVERESET: {
            pos += iter;
            if(pos >= pos_max) {
                pos = 1.0;
            }
        }
            break;
    }
    resetAlpha(direction, pos);
}


void ac::setProcMode(ac::PROC_MODE_TYPE value) {
    proc_mode = value;
}

ac::PROC_MODE_TYPE ac::getProcMode() {
    return proc_mode;
}
