GPUImage icon indicating copy to clipboard operation
GPUImage copied to clipboard

For `GPUImageFilterGroup`, why do we need to do all the `addFilter`, `setInitialFilters`, `setTerminalFilter` steps?

Open allenlinli opened this issue 6 years ago • 0 comments

Hi, I have a question that why do we need to do all the addFilter, setInitialFilters, setTerminalFilter steps? And we even need to addTarget for the filters in the group? What's the difference between filters and initialFilters within GPUImageFilterGroup.m?

Is it possible that the GPUImageFilterGroup just receives a filters array, and setup setInitialFilters, setTerminalFilter, and even add target one by one for the filters being added?

        case GPUIMAGE_FILTERGROUP:
        {
            self.title = @"Filter Group";
            self.filterSettingsSlider.hidden = NO;
            
            [self.filterSettingsSlider setValue:0.05];
            [self.filterSettingsSlider setMinimumValue:0.0];
            [self.filterSettingsSlider setMaximumValue:0.3];
            
            filter = [[GPUImageFilterGroup alloc] init];
            
            GPUImageSepiaFilter *sepiaFilter = [[GPUImageSepiaFilter alloc] init];
            [(GPUImageFilterGroup *)filter addFilter:sepiaFilter];

            GPUImagePixellateFilter *pixellateFilter = [[GPUImagePixellateFilter alloc] init];
            [(GPUImageFilterGroup *)filter addFilter:pixellateFilter];
            
            [sepiaFilter addTarget:pixellateFilter];
            [(GPUImageFilterGroup *)filter setInitialFilters:[NSArray arrayWithObject:sepiaFilter]];
            [(GPUImageFilterGroup *)filter setTerminalFilter:pixellateFilter];
        }; break;

allenlinli avatar Jan 18 '19 01:01 allenlinli