Часто задаваемые вопросы
Где я могу загрузить 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 не удается создать, выполнить эти шаги:
Загрузите установщик FxPlug 1.2.5 с https://developer.apple.com/downloads/. Это поместит файл
fxplug_sdk_1.2.5.dmgв ВашемDownloadsпапка.Дважды щелкните по файлу
fxplug_sdk_1.2.5.dmg. Образ диска FxPlug SDK 1.2.5 будет смонтирован.Откройте недавно смонтированный образ диска. Щелчок управления
FxPlugSDK.pkgфайл, и выбирает Show Package Contents из контекстного меню.Откройтесь
Contentsпапка.Перетащите файл
Archive.pax.gzна Ваш рабочий стол.Дважды щелкните по файлу
Archive.pax.gz. Папку называютArchiveбудет создаваться на Вашем рабочем столе.Откройте папку Archive. Это содержит две папки:
LibraryиDeveloper.Откройтесь
Libraryпапка.Откройтесь
Frameworksпапка.Откройтесь
PluginManager.frameworkпапка.Откройтесь
Versionsпапка.Откройтесь
Bпапка.Скопируйте
Headersпапка в/Library/Frameworks/PluginManager.framework/Versions/B/на объеме, где Вы создаете свои плагины.