BitmapIO Capability Flags

3DS Max Plug-In SDK

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.