Этот вопрос, вероятно, актуален и для других начинающих авторов CIFilter. Мне нужен совет по обновлению приложения QTKit видеоплеера для Mac OS X (на основе QTKitPlayer) для использования CIFilters. Я уже прочитал руководства по Image Unit и Core Image. И я успешно заставил приложение загрузить и запустить встроенные CIFilters, используя [CIPlugIn loadAllPlugIns].
Я также успешно написал свой первый CIFilter, обернул его как блок изображения и поместил в /Library/Graphics/Image Units. И я успешно протестировал его с помощью Quartz Composer, который загружает его и успешно работает. Я также успешно загрузил его в Core Image Fun House.
Однако измененное приложение QTKitPlayer не ЗАГРУЗИТ мой CIFilter. Точки останова показывают, что все встроенные фильтры CIFilter загружены, а мой фильтр — нет.
Поскольку я новичок в написании и использовании CIFilters, я беспокоюсь, что я, должно быть, пропустил какой-то код инициализации Core Image, или флаг nib QTMovieView, или флаг компилятора, или что-то в этом роде. Нужно ли мне выполнять какие-либо настройки перед вызовом loadAllPlugins? Вот код:
[CIPlugIn loadAllPlugIns]; CIFilter *ciFilter = [CIFilter filterWithName:@"MyDistortionWarp"];
Я проверяю, загружается ли он:
NSArray *filterList = [CIFilter filterNamesInCategories:[NSArray arrayWithObject:kCICategoryDistortionEffect]];
Во время отладки мой CIFilter не отображается в списке фильтров внутри моего производного QTKitPlayer. Но вставка того же кода в src Core Image Fun House показывает, что filterList действительно содержит мой фильтр. FunHouse также устанавливает фильтр ciFilter, но мое приложение получает только значение Nil.
Чего не хватает моему приложению QTKit, что ему нужно загрузить CIPlugin?