Beispiel #1
0
        public void AddProcessor(ProcessorElement element)
        {
            var settingType = element.m_ProcessorSettingType;

            // Add Element
            Undo.RecordObject(m_CurrentAsset, "Add Processor");

            FrameProcessor processor = null;

            // Reflection Stuff here
            ProcessorAttribute attribute = m_processorStack.settingsDefinitions[settingType];
            Type processorType           = attribute.processorType;

            var info = ProcessorInfo.CreateDefault(attribute.name, true, settingType);

            processor = (FrameProcessor)Activator.CreateInstance(processorType, m_processorStack, info);

            if (processor != null)
            {
                m_processorStack.AddProcessor(processor, m_CurrentAsset);
                m_processorStack.InvalidateAll();
            }
        }
        private void MenuAddProcessor(object processorName)
        {
            Undo.RecordObject(m_CurrentAsset, "Add Processor : " + processorName);
            string         name      = (string)processorName;
            FrameProcessor processor = null;

            switch (name)
            {
            case "Break Flipbook":
                processor = new BreakFlipbookProcessor(m_processorStack, ProcessorInfo.CreateDefault <BreakFilpbookProcessorSettings>(name, true));
                break;

            case "Crop":
                processor = new CropProcessor(m_processorStack, ProcessorInfo.CreateDefault <CropProcessorSettings>(name, true));
                break;

            case "Rotate":
                processor = new RotateProcessor(m_processorStack, ProcessorInfo.CreateDefault <RotateProcessorSettings>(name, true));
                break;

            case "Retime":
                processor = new RetimeProcessor(m_processorStack, ProcessorInfo.CreateDefault <RetimeProcessorSettings>(name, true));
                break;

            case "Looping":
                processor = new LoopingProcessor(m_processorStack, ProcessorInfo.CreateDefault <LoopingProcessorSettings>(name, true));
                break;

            case "Remove Background":
                processor = new RemoveBackgroundBlendingProcessor(m_processorStack, ProcessorInfo.CreateDefault <RemoveBackgroundSettings>(name, true));
                break;

            case "Decimate":
                processor = new DecimateProcessor(m_processorStack, ProcessorInfo.CreateDefault <DecimateProcessorSettings>(name, true));
                break;

            case "Fix Borders":
                processor = new FixBordersProcessor(m_processorStack, ProcessorInfo.CreateDefault <FixBordersProcessorSettings>(name, true));
                break;

            case "Fade":
                processor = new FadeProcessor(m_processorStack, ProcessorInfo.CreateDefault <FadeProcessorSettings>(name, true));
                break;

            case "Assemble Flipbook":
                processor = new AssembleProcessor(m_processorStack, ProcessorInfo.CreateDefault <AssembleProcessorSettings>(name, true));
                break;

            case "Premultiply Alpha":
                processor = new PremultiplyAlphaProcessor(m_processorStack, ProcessorInfo.CreateDefault <PremultiplyAlphaProcessorSettings>(name, true));
                break;

            case "Color Correction":
                processor = new ColorCorrectionProcessor(m_processorStack, ProcessorInfo.CreateDefault <ColorCorrectionProcessorSettings>(name, true));
                break;

            case "Alpha From RGB":
                processor = new AlphaFromRGBProcessor(m_processorStack, ProcessorInfo.CreateDefault <AlphaFromRGBProcessorSettings>(name, true));
                break;

            case "Remap Color":
                processor = new RemapColorProcessor(m_processorStack, ProcessorInfo.CreateDefault <RemapColorProcessorSettings>(name, true));
                break;

            case "Resize":
                processor = new ResizeProcessor(m_processorStack, ProcessorInfo.CreateDefault <ResizeProcessorSettings>(name, true));
                break;

            case "Custom Material":
                processor = new CustomMaterialProcessor(m_processorStack, ProcessorInfo.CreateDefault <CustomMaterialProcessorSettings>(name, true));
                break;

            default: break;
            }

            if (processor != null)
            {
                m_processorStack.AddProcessor(processor, m_CurrentAsset);
                m_processorStack.InvalidateAll();
                UpdateViewport();
            }
        }