SGI IPAS Toolkit Product Specification 1) Description of differences from 3D Studio Release 3 IPAS Toolkit Since this version of the SGI IPAS Toolkit is only for use with a batch renderer, the PXP and KXP modules will not be supported. The SGI implementation of IPAS shall be though the use of Dynamic Shared Objects (DSOs) containing the IPAS functions. Since these functions are loaded directly into the address space of the renderer, data between the render and the IPAS plug-in may be shared directly. Copying of memory buffers will not be necessary when using DSOs. The main routine in an IPAS DSO will need to be renamed to avoid conflicting with the renderer main routine. We suggest main_entry() or ipas_main() as reasonable replacements. For detailed information on DSOs, see the DSO man page as well as Chapter 3 of the IRIX System Programming Manual accessible on-line through InSight. An overview of DSOs would probably be the best approach for the IPAS documentation, with references to the detailed man page and manual. Since state parameters are passed to the plug-ins in Intel format (packed, little-endian), each plug-in must provide an entry point for unpacking the state parameters structure (i.e. ClientDecodeState). Similarly, binary APP_DATA created in Intel format will need to be unpacked and byte-swapped as well. The APP_DATA headers could be decoded by the renderer when a plug-in function requests app_data for an object. Decoded APP_DATA could be cached to avoid repeated decoding. The plug-in function would still be required to decode the contents of any APP_DATA sub-chunk on its own. All IXP, AXP, SXP, BXP plug-ins shipped with 3D Studio Release 3 shall be supported, provided that source code is available. One such plug-in, stucco_i.sxp, is not available since the source code has been lost. By convention, SGI plug-ins shall be use the _m suffix, i.e. stucco_m.sxp, where 'm' stands for MIPS. 2) System Dependencies In order to compile IPAS plug-ins, a developer will need the IRIS Development Option (IDO). This includes a C compiler and all libraries and header files which should be necessary for most plug-in developers. Compiling an SGI IPAS plug-in should be essentially the same as compiling a DOS IPAS plug-in. Example plug-in source and Makefiles will be provided to guide the developer. Debugging may be done with printfs, dbx, and/or cvd. Dbx is a tty-based debugger similar to the PC debugger MDB from MetaWare. Cvd is a powerful GUI-based multi-process debugger, which requires the purchase of CASEVision/WorkShop in addition to IDO. See the CASEVision/WorkShop User's Guide in InSight for details on how to use cvd. Plug-in development will be possible on all SGI machines running IRIX 5.2 and later. 3) Installation Procudure The IPAS Toolkit will be installed via inst(1M). See the inst man page for example usage.