Skip to main content
Tom Ruark
Inspiring
March 2, 2007
Question

CS3 Public Beta - MacTel - Plug-Ins

  • March 2, 2007
  • 15 replies
  • 1812 views
How many developers have downloaded the CS3 public beta?
How many developers have downloaded the CS3 public beta SDK?
How many developers have their plug-ins running natively on MacTel? UniversalBinary?

I would like to hear your pain points and what I can do in the SDK to make life easier for future developers trying to move from CodeWarrior to XCode.

One big pain point I know of is debugging. Trying to debug a plug-in in XCode is very difficult. Does anyone have any tricks they can share? I know of two: 1) become a gdb expert (not an easy task), 2) use DebugStr(foo); and that will stop XCode if you have Break on DebugStr turned on.
This topic has been closed for replies.

15 replies

Participant
July 24, 2007
I am a new member in implementing PS plug-in on Mac OS
Please share me some hints to implement a PS plug-in by using C Carbon on Macintosh.
Because my knowledge in plug-in on Mac OS is very poor, so that it's the best way if you show me the step by step to create a PS plug-in project by using C Carbon framework on Mac OS

Please contact me via email ID: thuongdn@fsoft.com.vn

Thanks for your help
ThuongDN
Participant
March 14, 2007
For the UI, can the Adobe Dialog Manager be used? The plugin is for Windows and Mac, so isn't the Adobe Dialog Manager the platform independent method of implementing the UI?
Inspiring
March 9, 2007
Re: Xcode docs, I just use a Makefile anyway. :)

Re: UI, you can use Carbon API as usual.
Participant
March 8, 2007
I am developing a file format plugin and have downloaded the CS3 beta and the CS3 beta SDK. My biggest problem so far is the lack of XCode documentation in the SDK. Almost all of the documentation refers to CodeWarrior development, which is no longer relevant. The only XCode documentation I can find is in the HTML documentation in the section "Making Xcode Projects for Mac OS." I would like to see updated documentation which discusses the use of Xcode instead of CodeWarrior. I also find that there is a lack of documentation on developing plugin User Interfaces, such as dialogs, for Mac OS plugins.
Participating Frequently
March 8, 2007
Debugging works for me using the following:

- ALL binaries involved are for a single platform, including XCode, the debugger, and the host. I only get it working for intel binaries on intel machines involving all intel apps. Trying to debug PS in PPC mode for PPC plugin binary on intel fails. The debugger then reports that it can not determine the binary type of the executable (PS).

- Photoshop points to the build directory to look for the plugin binary. I have my build directory set to a custom repository folder, so it does not necessarily have to be the project folder as far as I can tell.

- Obviously, a plugin project requires an added executable = Photoshop. I have no additional settings, vars or scripts.

- In the XCode project settings, make sure that ALL optimization options are OFF. These are not OFF by default, even though the projects come with a default "debug" setting.

TIP: You can select the project file and make settings, and you can select the target file and make settings. The latter overwrites the former. I have the target settings set to have NO custom settings whatsoever. This ensures that there is only one place where I make settings which are dense enough as it is...

- Breaking works on the first invocation of the plugin only. With subsequent invocations the link is lost, which I presume has something to do with PS unloading the binary. I recall a similar problem back in the old days of components where a glue component was suggested to do your own loading and unloading of code.

As for pains:

My biggest issue currently is obsolescence of the host technology for Filter plugins.
- When processing events in the plugin GUI, I frequently receive the same event during host callbacks while I'm still processing the initial event.
- In addition the host still requires a Quickdraw environment which isn't really available anymore.
- If display pixels would support some additional bit depths, it would significantly reduce the complexity of plugin GUIs and the number of internal plugin buffers. It would also overcome the problem of displaying 32bit linear data...!

On the Apple OS side:
- I have implemented a GUI in Cocoa which works fine (don't tell Chris ;-) ). However, there is a problem with inter window communication.

In general I also believe that the FilterRecord struct is getting a bit aged and overcrowded. A newly designed and more robust interface might be welcome. Splitting up certain functions between new types of filter plugins perhaps...

Oh, and did I mention re-entrancy yet?