As has been pointed out, Motion 5 and FCPX are now 64-bit only. The FxPlug 2.0 SDK will only build 64-bit plug-ins. This means that all existing FxPlugs will need to be recompiled for 64-bit. In most cases, this is a simple process that I'll describe below. Of course, if you're using technologies that don't exist in 64-bit, such as QuickTime or Carbon UI, you'll need to rewrite those parts of your plug-ins.
It is possible to build a single universal plug-in that works in both 32 and 64-bit, but it's not as easy as you'd probably like. The templates and examples currently only build 64-bit. But it's still possible to do by yourself. I will post more information on that as soon as I get it written up in a cogent way. You can also choose to build separate 32-bit and 64-bit versions, if you would prefer to do that.
Building a New FxPlug for 64-bit To build a new FxPlug that is 64-bit, simply install the SDK and use any of the templates from the "New Project" dialog in Xcode. All of the FxPlug templates have been updated to be 64-bit.
Updating an Existing FxPlug to 64-bit When you install the FxPlug 2.0 SDK, the FxPlug.framework and PluginManager.framework are now installed in /Developer/Examples/FxPlug/ rather than in their old locations. (If you have an older version of each in the old location, they will remain there.)
1) Set your architecture to "64-bit Intel". To do this, open Xcode 3's "Project" menu and choose "Edit Project Settings" In the Project settings, click on the "Build" tab In the build settings, set the "Architectures" pop-up to "64-bit Intel"
2) Link against the 64-bit version of FxPlug.framework and PluginManager.framework To do this, find the FxPlug.framework in your project. If you started the project with a code template, it is usually in the "External Frameworks Libraries" folder in the "Groups & Files" pane of your Xcode project Remove the FxPlug.framework and PluginManager.framework from the project (When prompted, select "Delete References", do not select the other option) From the "Project" menu, select "Add to Project…" Navigate to /Developer/Examples/FxPlug/ Choose "FxPlug.framework" Do the same for the PluginManager.framework
3) Set your active executable to Motion 5 To do this, go to the "Project" menu and choose "New Custom Executable…" Navigate to /Applications/ Choose Motion 5 Name it "Motion 5" in the "New Custom Executable…" dialog Click the "Finish" button From the "Project" menu, open the "Set Active Executable" sub-menu and choose "Motion 5"
4) Update the method signature for -getOutputWidth:height:withInput:withInfo: and similar methods. They were changed to use NSUIntegers instead of UInt32.
5) Profit! Well, hopefully, anyway. At this point you should be able to build a 64-bit plug-in that is loaded by Motion 5 if you aren't using any APIs or libraries that are not 64-bit compatible. If you are, you'll need to update your code and/or libraries to be 64-bit compatible.
Let me know how well this works for you.
Thanks, |