BitmapIO Capability Flags
These flags describe the capabilities of the IO module. These should be OR'ed together as required to define the properties of the IO module. For example:
return BMMIO_WRITER | BMMIO_RANDOM_WRITES | BMMIO_EXTENSION |
BMMIO_INFODLG | BMMIO_CONTROLWRITE;
BMMIO_NONE
Not defined yet.
BMMIO_READER
Reads files.
BMMIO_WRITER
Writes files.
BMMIO_RANDOM_WRITES
Can write frames in any order.
BMMIO_MULTIFRAME
File contains multiple frames (i.e. FLC, AVI, ...)
BMMIO_EXTENSION
Uses file extension (File Filter Type), i.e. .EPS, .PS. Plug-In's returning this will be expected to implement ExtCount(), and Ext(int i). This is also used to identify a plug-in as a "File Type" as opposed to a "Device Type".
BMMIO_FRAMEBUFFER
Frame Buffer Driver.
BMMIO_GRABBER
Device Grabs Video.
BMMIO_THREADED
This is not used. All plug-ins are expected to be thread aware.
BMMIO_RANDOM_ACCESS
This is not used.
BMMIO_NON_CONCURRENT_ACCESS
Device cannot handle multiple, concurrent requests (FLC, AVI, VTR's, etc.).
BMMIO_OWN_VIEWER
If this flag is set, 3ds max will call the driver's own ShowImage() method to handle displaying the image as opposed to using the generic Virtual Frame Buffer
BMMIO_INFODLG
If the device is able to show its own image information dialog this flag should be set. Otherwise, the 3ds max must call BitmapManager::GetImageInfo() and display a generic information dialog.
BMMIO_UNINTERRUPTIBLE
If a driver cannot be started and stopped this flag should be set. This is an 'Uninterruptible Driver'. For example the AVI, FLIC, etc. cannot stop and go and thus define this flag.
BMMIO_EVALMATCH
Drivers that may have a different image for the same given 3ds max frame and same file/device name should set this flag and implement the BitmapIO::EvalMatch() method.
BMMIO_IFL
If this flag is set, instead of calling the Load() method 3ds max will call the GetImageName() method. 3ds max will then process the given image name accordingly.
The following flags relate to the plug-in's control dialog. There is only a single call to the plug-in's control panel but the call specifies the nature of the operation going on. It's up to the plug-in to provide different interfaces if needed. If one control serves two or more services, all the pertinent flags should be set.
BMMIO_CONTROLREAD
Device Driver has a Control Panel for Read Operations
BMMIO_CONTROLWRITE
Device Driver has a Control Panel for Write Operations
BMMIO_CONTROLGENERIC
This flag is no longer used.