Copy link to clipboard
Copied
Hi,
I am slowly figuring out what needs to go into the PiPL file, but I have a few questions.
I started using Dissolve.r as the sample to emulate. The first question is on this line:
resource 'PiPL' ( 16000, "Color Remover", purgeable )
The best explanation I find for this line is in the syntax section of the Plug-in Resource Guide:
<resource header> :=
"resource" "'PiPL'" "("
<resourceID> <optional resource name> <optional attribute list>
")"
What is <resourceID>? It appears to be 16000 by default. I found I can use 'resourceID' instead of '16000', but I don't know if this is something I should change or not.
What is the <optional attribute list>? It's a list of <attribute>s, but I can't find any further explanation of <attribute> (at least, not by searching the Plug-in Resource Guide).
Moving down the file, I get to
Version { (latestFilterVersion << 16 ) | latestFilterSubVersion },
The sample files never set latestFilterVersion or latestFilterSubVersion. Is this the version of the Adobe filter plugin API that I require or is this a version number for my filter?
I just found a reference to a MacTech article on aete's, so I hope that will answer any other questions.
Thanks for your help.
P.S. To Adobe: It would be helpful if you added documentation to the SDK that walked someone through a sample plugin's PiPL file and talked about the elements that need to be changed to create a new plugin and how to change them. If this is already in the SDK, I haven't run into it yet.
Some points.
1) .r files are Rez resource descriptions (Apple resource compiler). This is fully documented by Apple if you know where to look.
2) If you are using an Adobe sample code .r template then it should "just work"
3) The ID 16000 is an artefact of a 25-year-old Macintosh convention for numbering 'owned' resources. It comes from a formula for computing the starting ID when numbering resources of a particular type used by a plugin. The details of the formula are not relevant in this context
...Copy link to clipboard
Copied
Some points.
1) .r files are Rez resource descriptions (Apple resource compiler). This is fully documented by Apple if you know where to look.
2) If you are using an Adobe sample code .r template then it should "just work"
3) The ID 16000 is an artefact of a 25-year-old Macintosh convention for numbering 'owned' resources. It comes from a formula for computing the starting ID when numbering resources of a particular type used by a plugin. The details of the formula are not relevant in this context but the convention is still followed. Usually you have only one PiPL in a plugin (normally ID 16000), so better examples are something like 'STR ' or 'DITL' where you might have several, 16000, 16001, 16002 and so on. Your plugin will reference resources by these IDs as required (for example, when invoking an Alert() or ModalDialog(); read the Resource Manager documentation for the entire resource manipulation API). Also, resources often have internal cross-references to other resources (for example, a DLOG dialog box references its DITL dialog item list, which in turn may reference a CNTL control description).
4) There are literally dozens of correct and complete .r Rez descriptions, and Win32 .rc descriptions, for Photoshop plugins on my site. http://telegraphics.com.au/sw/ - see the Subversion source code repositories.
5) Contact me, support@telegraphics.com.au if you need more help.
Copy link to clipboard
Copied
Thanks! I will certainly look at your examples!
As for "working as is": yes, I understand that but I want to create a filter I can sell, and there are definitely things that need to be changed in the .r file and elsewhere. Without knowing what something is, it's difficult to know whether I need to change it or not. For example, I found out that plugInUniqueID needs to be changed and I learned how to do that. How about plugInSuiteID? How about latestFilterVersion?
I'll check out your files and email you directly if I still have questions.
Copy link to clipboard
Copied
Glad I can help in some way.
I can also review the sample code's PiPL and annotate it so that you understand which parts need changing.
Which varieties of plugin are you planning to support? The following all require different builds and generally different toolchains:
Most of my GPL plugins support at least 5, and some support all 7, of these runtimes.
The email reply produced only an empty message, so I Edited and pasted the actual text. :-X Yay for progress...