今天,在2011年,只为CS5制作插件,只在运行Snow Leopard的Mac上制作插件,我应该使用什么样的工具链和库/ API /框架?
我已经得到了这样的印象:Carbon(无论究竟是什么)是旧的并且要避免,但是不清楚插件是否属实.我不清楚我是否应该使用Cocoa(无论是什么).我确实认为我需要Core Foundation(无论如何……)是否有关于64位与32位的选择,或者CS5纯粹是64位,那是什么? (当然,我更喜欢64位.)我确实安装了Photoshop CS5 SDK和Photoshop CS5.
XCode可以用作IDE吗?我将手动编写一个makefile并在命令行编译,如果这更容易或唯一可行的话.如果可以使用XCode,使用哪个项目模板?我读到的这个“Mach-O”是什么,它如何适用于PS插件?
这是特别令人困惑的,因为我在任何类型的Mac编程中都是一个完整的菜鸟,尽管在Linux和其他平台上经历了多年.
解决方法
Cocoa对于GUI设置窗口和其他东西很有用 – 它是一个巨大的东西 – 但我最终只用于我的插件的“关于”弹出窗口.
完全忘记了CS5或更高版本,OSX 10.6或更高版本以及64位的组合碳.显然,碳的一部分过去已经制成了64位,但现在应该被忽略了.
XCode是一个很好的编辑器.从使用C的“dylib”项目开始.可以毫不费力地添加C和Obj-C源文件.只需要将XCode用于一些简单的玩具项目就可以熟悉它如何组织事物并构建应用程序和库.这是唯一需要的真正“工具”;其余的是API – 头文件和库(或Apple世界中的“框架”).在使用XCode玩游戏时,请了解“捆绑”是什么 – 包含应用程序所需的可执行文件和其他文件的文件夹.
路径需要设置为Photoshop CS5 API,需要列出两个或三个特定目录.您可能需要从Photoshop示例插件目录中复制某些常见的源文件,并且有一个名为MachOMacrezXcode.h的文件有点麻烦,请参阅What is the meaning of exit code 3 from Rez?
不幸的是,在64位上没有用于CS5编写良好的插件的真正有用的例子. Dissolve示例,SimpleFormat文件读/写插件的组合,http://www.telegraphics.com.au/sw/product/FilterFoundry插件的浏览源以及Adobe Photoshop SDK论坛上的问题.
不要理会使用一些“插件套件”来获取内存的笨拙过程.这就像微软旧的16位Windows API,你需要“内存句柄”和厚实的malarky,现在已经好几次了.这些天,好的’malloc /免费或新/删除都很好.
有了我现在所有的箭头伤口,也许我应该写一本书或者其他东西……