Skip navigation
Currently Being Moderated

Category { "**Hidden**" } works for plug-in on 32 bit hosts but fails on 64 bit hosts - Alternative?

Jun 20, 2013 5:26 PM

I am experimenting with a simple plug-in that is supposed to execute a single specific task in combination with a PS panel.

So the panel's interface is written in Flex which calls my plug-in via jsx (PS scripting) and transfers some parameters that can be configured on the panel to the plug-in via its scripting capabilities - so far so good. The actual PS filter plug-in used in this shall only be executable in this way and I'd thus like it not to show up in the Filters menu at all.


I have been trying the solution suggested in this thread:


To summarize I specified "Category { "**Hidden**" }" in the plug-in's .r file and was subsequently still able to call the plug-in by means of jsx using its plugInUniqueID and jsx functions like stringIDToTypeID() and executeAction(). Anyway, that worked fine in 32 bit PS on the PC (I tried CS4 & CS5). I didn't build this on the Mac and its various platforms yet as it failed on the PC in 64 bit PS (I again tried CS4 and CS5).


The problem on the 64 bit hosts seems to be that as soon as I specify Category { "**Hidden**" } the plug-in does not get loaded anymore. If I make it visible in the menu it works fine but as soon as I make it hidden it can't be accessed by jsx plus the debugger says that no symbols were loaded for my source files when trying to set break points.


So obviously the Category { "**Hidden**" } solution does not work on all platforms.


Is there an alternative approach to this?

  • Currently Being Moderated
    Jun 21, 2013 9:14 AM   in reply to C.Oldendorf

    First, I would suggest using the sample Automation plugin as your base - if you change the category there to "hidden", it most certainly loads and works (I suggest you to try it yourself - it takes just a mniute). Its always easy to work your way up from a working example.

    Second, there are a lot of reasons why the plugin may fail to load on a specific platform. Have you specified you plugin as persistent ("Persistent {},") in the PIPL and is it not in the #if !defined(_WIN64) section somehow? Are you sure your x64 entry point exists? are all the dependencies properly satisfied on this platform? etc

    Mark as:
  • Currently Being Moderated
    Jun 21, 2013 10:41 AM   in reply to C.Oldendorf

    Not a problem. I guess my main point here is that if Automation works as a hidden plugin on your platform, yours should as well and if it doesn't more often than not the propblem is in the PIPL (even though it could also be dependent libraries, your plugin entry points or simply an in-code plugin initialization failure which should also be ruled out one-by-one).


    If you are stuck, you can still ran a 'diff' between your plugin's PIPL and the Automation one - it may give you some additional ideas, or run the precompiler on the resource is and see if the precompilation output still makes sense.

    Good luck!

    Mark as:
  • Currently Being Moderated
    Jun 24, 2013 2:16 PM   in reply to C.Oldendorf

    I'm glad it worked. I would actually suggest you to mark the plugin as Persistent on both platforms if your scripting API expects to find it available at all times. PS makes no guarantees about keeping plugins loaded unless they are explicitly marked as such (using "Persistent{}"), so the fact your 32-bit instance keeped it in memory is no guarantee it will always be there (e.g. when PS gets low on memory/loads other plugins etc)

    Mark as:
  • Currently Being Moderated
    Jun 24, 2013 3:14 PM   in reply to C.Oldendorf

    The panels were introduced for CS4 which was also the first x64 release.
    It is odd indeed... well, may be its yet another bug with non-persistent plugins. We long learned (the hard way) to keep all ours persistent to avoid a whole host of issues.

    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points