Code, Compiler, and Linker |
Most of the code necessary to initialize Shockwave 3D is contained in the S3DsceneGraphUtils::Init() method, whose use is recommended.
Note: Any files in the 3D Studio MAX exporter sample source that start with S3D* are free of MAX-specific code and can be used in any exporter.
When compiling the exporter, make sure that the following preprocessor macros are defined at the project level so that they are globally defined for every compiled module:
_MBCS (For internationalization)
_USRDLL (For a DLL)
IFXAPI_EXPORT (Failure to define this symbol will result in a link error like: error LNK2001: unresolved external symbol :__imp__IFXCreateComponent@12)
S3D_MAX_PLUGIN (If you are building this on 3D Studio MAX§. If not, look for occurrences of this macro for the code you need to port in otherwise "portable" classes).
[Windows§ only] Link the exporter against the following libraries:
IFXCommon.lib
IFXBoundHierarchy.lib
IFXPalette.lib
IFXPrimitive.lib
IFXPhysics.lib
IFXScheduler.lib
IFXScenegraph.lib
IFXTextureManager.lib
IFXUVGenerator.lib
IFXHashMap.lib
IFXBase.lib
IFXBones.lib
IFXWriter.lib
IFXShaders.lib
IFXMultiRes.lib
IFXAuthorGeom.lib
IFXSubDiv.lib
IFXMemNative.lib
IFXRenderOpenGL.lib
IFXRenderBase.lib
IFXRenderDirectX.lib
IFXBitstream.lib
IFXLocalImageTools.lib
IFXStatic.lib
IFXRenderSW.lib
IFXImageTools-ijg.lib
IFXImageTools-zlib.lib
IFXMRMAuthor.lib
To use the bone debugging mode, you must also link against:
opengl32.lib
glu32.lib
The project .DSP file included, which will build the 3D Studio MAX version of this exporter, should also help build your own exporter.
[Windows and Macintosh§] Any exporter that links against IFXRenderOpenGL.lib must globally define the variable g_hInst as a void * pointer to avoid a linker error.
§See asterisked (*) statement at Legal Information © 2001 Intel Corporation.