Right, the original plan was to cache the plugin registration info on disk and 
avoid loading the plugin at every single session. We could also keep all 
plugins in memory after registration like Maya does.

-mab


From: softimage-boun...@listproc.autodesk.com 
[mailto:softimage-boun...@listproc.autodesk.com] On Behalf Of jo benayoun
Sent: Friday, October 26, 2012 12:28 PM
To: softimage@listproc.autodesk.com
Subject: Re: SDK: When *exactly* does XSIUnloadPlugin get called

I guess the plugin is loaded once for discovering and registration (plugin 
manager), and then reloaded for getting the actual features (actual extension 
of features).
Usually, plugin systems use a specification file for each new plugin (xml or 
other) that is in charge of describing (description, name, version, author, 
...) and register items (commands, windows, ...) plus the actual plugin where 
the Load and Unload functions are only called once.  Wouldnt be great to have 
something similar for XSI ?

-- jo




2012/10/26 Luc-Eric Rousseau <luceri...@gmail.com<mailto:luceri...@gmail.com>>
sounds like if you put some code in the constructor of a global
variable, then you'd be called twice per xsi session, since your dll
will be loaded and unloaded twice?

On Fri, Oct 26, 2012 at 9:34 AM, Marc-Andre Belzile
<marc-andre.belz...@autodesk.com<mailto:marc-andre.belz...@autodesk.com>> wrote:
> Sorry for not being clear enough. When a plugin is loaded at startup or 
> through LoadPlugin, all plugin items are registered through XSILoadPlugin and 
> then the dll is unloaded by XSI *without* calling XSIUnloadPlugin. Anything 
> allocated in the current dll process will be zapped by the OS at this point. 
> The plugin dll will be loaded back again when one of the registered plugin 
> item is required by XSI, and in this case XSILoadPlugin *won't* be called 
> again. So if you allocated objects or resources in the plugin dll process 
> through XSILoadPlugin, they will not be available when the dll is loaded back.
>
> -mab

<<attachment: winmail.dat>>

Reply via email to