Часто задаваемые вопросы

Где я могу загрузить FxPlug SDK?

Можно ли загрузить FxPlug SDK с https://developer.apple.com/downloads/index.action? =FXPlug.

Как я могу отладить свой плагин?

Для тестирования сменного кода в целевом приложении можно выбрать Project> Scheme> Edit Scheme, и под вкладкой Info для действия Выполнения можно выбрать Motion или Final Cut Pro как Исполнимая программа.

Как я могу получить файлы ресурсов от своего сменного пакета?

Можно поместить файл в папку Resources для плагина. Тогда можно получить доступ к пакету от метода одного из классов в плагине, как это:

  NSBundle *bundle = [NSBundle bundleForClass:[self  class]];

(Шаблоны FxPlug Xcode делают это для получения локализованных строк.) Для получения данных от вызванного файла filename.extension в Вашей папке Resources можно использовать этот отрывок:

NSBundle *bundle = [NSBundle bundleForClass:[  self  class]];
NSString *path = [bundle pathForResource:  @"filename"
ofType:  @"extension"  ];
 
 NSString *dataString = [NSString stringWithContentsOfFile:path];

Как я могу определить, чередуется ли входной кадр?

Если кадр будет чередован, то Вы будете знать в Вашем -renderOutput: метод, потому что FxRenderInfo структуре, в которой это передается, установят «полевой» элемент в также kFxField_UPPER или kFxField_LOWER. Обратите внимание на то, что это не говорит Вам поле, которое Вы имеете, а скорее каков полевой порядок. Если кадр не будет чередован, то у «полевого» элемента будет значение kFxField_NONE.

Как я могу получить доступ к единственному полю от чересстрочного кадра?

Во-первых, доберитесь FxTemporalImageAPI и вызовите один из этих двух методов:

-getInputBitmap:withInfo:atTime:

или

-getInputTexture:withInfo:atTime:

Для первого поля кадра t, используйте время t, и для второго поля, используйте время t + 0.5.

Как я могу определить, в каком приложении мой плагин запускает?

Следующий фрагмент кода возвращает строку, appIdentity, который указывает хост-приложение:

CFBundleRef appBundle = CFBundleGetMainBundle();
CFStringRef appIdentity = NULL;
if ( appBundle != NULL )
    appIdentity = CFBundleGetIdentifier( appBundle );

Идентификатор пакета движения com.apple.motionapp; идентификатор Final Cut Pro com.apple.FinalCut или com.apple.FinalCutTrial.

Как я могу указать другой клип как ввод?

В языке FxPlug ссылку на другой клип или внешний медиа-файл вызывают ссылкой изображения. Так использование FxParameterCreationAPI протокол, вызовите следующий метод для создания параметра:

-addImageReferenceWithName:parmId:parmFlags:

Для получения значения параметра используйте также:

-getBitmap:layerOffsetX:layerOffsetY:requestInfo:fromParm:atTime:

или

-getTexture:layerOffsetX:layerOffsetY:requestInfo:fromParm:atTime:

Как я могу получить текущее время?

В Вашем -parameterChanged: метод, и в ответ на событие в пользовательском представлении параметра или экранном управлении, необходимо будет определить текущее время. Можно сделать это путем вызова -currentTime метод в FxCustomParameterAPI протокол.

Я могу определить многократные сменные пакеты, заполняющие ту же группу?

Да, но Сменный менеджер устанавливает ограничение для того, как Вы делаете это. Если Вы создаете многократные эффекты FxPlug в различных пакетах и присваиваете их тем же группам, различные пакеты должны использовать другую группу UUIDs, но иметь то же название группы. При использовании той же группы UUID в двух пакетах плагины в только одном из двух пакетов загружаются.

Если FxPlug SDK 1.2.5 не удается создать, что я должен сделать?

Если Вы устанавливаете FxPlug SDK на OS X v10.6.6 или позже и FxPlug SDK не удается создать, выполнить эти шаги:

  1. Загрузите установщик FxPlug 1.2.5 с https://developer.apple.com/downloads/. Это поместит файл fxplug_sdk_1.2.5.dmg в Вашем Downloads папка.

  2. Дважды щелкните по файлу fxplug_sdk_1.2.5.dmg. Образ диска FxPlug SDK 1.2.5 будет смонтирован.

  3. Откройте недавно смонтированный образ диска. Щелчок управления FxPlugSDK.pkg файл, и выбирает Show Package Contents из контекстного меню.

  4. Откройтесь Contents папка.

  5. Перетащите файл Archive.pax.gz на Ваш рабочий стол.

  6. Дважды щелкните по файлу Archive.pax.gz. Папку называют Archive будет создаваться на Вашем рабочем столе.

  7. Откройте папку Archive. Это содержит две папки: Library и Developer.

  8. Откройтесь Library папка.

  9. Откройтесь Frameworks папка.

  10. Откройтесь PluginManager.framework папка.

  11. Откройтесь Versions папка.

  12. Откройтесь B папка.

  13. Скопируйте Headers папка в /Library/Frameworks/PluginManager.framework/Versions/B/ на объеме, где Вы создаете свои плагины.