bitmap.h File Reference
 
 
 
bitmap.h File Reference
#include "BMMExport.h"
#include <WTypes.h>
#include <vfw.h>
#include <CommDlg.h>
#include "maxheap.h"
#include "palutil.h"
#include "linklist.h"
#include "gbuf.h"
#include "pixelbuf.h"
#include "path.h"
#include "containers/array.h"
#include "assetmanagement/AssetType.h"
#include "assetmanagement/IAssetAccessor.h"
#include "assetmanagement/AssetUser.h"
#include "matrix3.h"
#include "GetCOREInterface.h"
#include "box2.h"

File Description

Contains classes and utilities for reading and writing images.

Classes

class   bmmHistoryList
struct   BMMImageInfo
struct   BMM_Pyramid
struct   BMM_SAT
class   BMM_IOHandler
class   BMM_IOList
  This class is used for storing a linked list of Bitmap Manager BMM_IOHandler objects. More...
class   RenderInfo
class   BitmapInfo
  Information about an image file or in-memory bitmap, including settings for loading/saving, gamma, etc. More...
class   BitmapIO
  Base class for image IO plugins. More...
class   BitmapStorage
class   BitmapStorageLDR
class   BitmapStorageHDR
class   BitmapFilter
class   BitmapDither
class   BitmapNotify
class   CropCallback
class   Bitmap
  Class for image input and output. More...
struct   BMMStorageList
struct   BMMFilterList
struct   BMMBitmapList
struct   BMMGammaSettings
struct   BMMVfbPalette
class   BitmapFileInputDialog
class   BitmapFileOutputDialog
class   BitmapManager
class   IBitmapProxyManager
  Bitmap Proxy Manager Function-Published Interface. More...
class   BitmapProxyTemporaryDisableGuard
  Useful Guard class for temporarily disabling bitmap proxies. More...
class   BitmapIOLayer
class   BitmapLayerUtl
class   IBitmapPager
class   BitmapIOMetaData
  Extends BitmapIO with additional information for automatic gamma correction etc. More...

Defines

#define  INTBITS   (sizeof(int) * 8)
#define  IMGCLASSID   1
#define  CYCLECLASSID   2
#define  FLICCLASSID   5
#define  TARGACLASSID   6
#define  YUVCLASSID   7
#define  FBCLASSID   8
#define  WSDCLASSID   9
#define  IFLCLASSID   10
#define  BMPCLASSID   11
#define  JPEGCLASSID   12
#define  TARGAPLSCLASSID   13
#define  AVICLASSID   14
#define  RLACLASSID   15
#define  RPFCLASSID   16
#define  MPGCLASSID   17
#define  MAXOPENEXR_CLASSID   Class_ID(0x12f95b5e, 0x62a60b57)
#define  BMM_NO_TYPE   0
  Not allocated yet.
#define  BMM_LINE_ART   1
  1-bit monochrome image
#define  BMM_PALETTED   2
  8-bit paletted image.
#define  BMM_GRAY_8   3
  8-bit grayscale bitmap.
#define  BMM_GRAY_16   4
  16-bit grayscale bitmap.
#define  BMM_TRUE_16   5
  16-bit true color image.
#define  BMM_TRUE_32   6
  32-bit color: 8 bits each for Red, Green, Blue, and Alpha.
#define  BMM_TRUE_64   7
  64-bit color: 16 bits each for Red, Green, Blue, and Alpha.
#define  BMM_LOGLUV_32   13
  This format uses a logarithmic encoding of luminance and U' and V' in the CIE perceptively uniform space.
#define  BMM_LOGLUV_24   14
  This format is similar to BMM_LOGLUV_32 except is uses smaller values to give a span of 5 order of magnitude from 1/4096 to 16 in 1.1% luminance steps.
#define  BMM_LOGLUV_24A   15
  This format is similar to BMM_LOGUV_24, except the 8 bit alpha value is kept with the 24 bit color value in a single 32 bit word.
#define  BMM_REALPIX_32   16
  The "Real Pixel" format.
#define  BMM_FLOAT_RGBA_32   17
  32-bit floating-point per component (non-compressed), RGB with or without alpha
#define  BMM_FLOAT_GRAY_32   18
  32-bit floating-point (non-compressed), monochrome/grayscale
#define  BMM_TRUE_24   8
  24-bit color: 8 bits each for Red, Green, and Blue.
#define  BMM_TRUE_48   9
  48-bit color: 16 bits each for Red, Green, and Blue.
#define  BMM_YUV_422   10
  This is the YUV format - CCIR 601.
#define  BMM_BMP_4   11
  Windows BMP 16-bit color bitmap.
#define  BMM_PAD_24   12
  Padded 24-bit (in a 32 bit register).
#define  BMM_FLOAT_RGB_32   19
  ONLY returned by the GetStoragePtr() method of BMM_FLOAT_RGBA_32 storage, NOT an actual storage type! When GetStoragePtr() returns this type, the data should be interpreted as three floating-point values, corresponding to Red, Green, and Blue (in this order).
#define  BMM_FLOAT_A_32   20
  ONLY returned by the GetAlphaStoragePtr() method of BMM_FLOAT_RGBA_32 or BMM_FLOAT_GRAY_32 storage, NOT an actual storage type! When GetStorageAlphaPtr() returns this type, the data should be interpreted as floating-point values one value per pixel, corresponding to Alpha.
#define  MAX_DESCRIPTION   256
#define  MINGAMMA   0.2f
#define  MAXGAMMA   5.0f
#define  BMM_NOT_OPEN   0
  Not opened yet.
#define  BMM_OPEN_R   1
  Read-only.
#define  BMM_OPEN_W   2
  Write-only.
#define  BMMRES_SUCCESS   0
  Success - No error occurred.
#define  BMMRES_ERRORTAKENCARE   1
  Error - Function has already taken action to process the error.
#define  BMMRES_FILENOTFOUND   2
  The file being accessed was not found.
#define  BMMRES_MEMORYERROR   3
  Insufficient memory for the requested operation.
#define  BMMRES_NODRIVER   4
  Device driver responsible for image not present.
#define  BMMRES_IOERROR   5
  Input / Output error.
#define  BMMRES_INVALIDFORMAT   6
  The file being access was not of the proper format for the requested operation.
#define  BMMRES_CORRUPTFILE   7
  The file being accessed was corrupt.
#define  BMMRES_SINGLEFRAME   8
  Results from a goto request on a single frame image.
#define  BMMRES_INVALIDUSAGE   9
  Bad argument passed to function (Developer Mistake)
#define  BMMRES_RETRY   10
  This is returned if the user selects Retry from the 3ds Max Image IO Error dialog box.
#define  BMMRES_NUMBEREDFILENAMEERROR   11
  This can be passed as an errorcode to BitmapIO::ProcessImageIOError().
#define  BMMRES_INTERNALERROR   12
  An internal error occurred.
#define  BMMRES_BADFILEHEADER   13
  A file header error occurred.
#define  BMMRES_CANTSTORAGE   14
  This is used internally.
#define  BMMRES_BADFRAME   15
  Invalid Frame Number Requested.
#define  BMMIO_NONE   0
  Not defined yet.
#define  BMMIO_READER   (1<<0)
  Reads image files.
#define  BMMIO_WRITER   (1<<1)
  Writes image files.
#define  BMMIO_EXTENSION   (1<<2)
  Uses file extension (File Filter Type)
#define  BMMIO_MULTIFRAME   (1<<3)
  "File" contains multiple frames (i.e.
#define  BMMIO_THREADED   (1<<4)
  Not used.
#define  BMMIO_RANDOM_ACCESS   (1<<5)
  Can read and/or write frames in any order.
#define  BMMIO_NON_CONCURRENT_ACCESS   (1<<6)
  Device cannot handle multiple, concurrent requests (FLC, AVI, VTR's, etc)
#define  BMMIO_OWN_VIEWER   (1<<7)
  Driver has its own image viewer for its image type as opposed to using the generic Virtual Frame Buffer.
#define  BMMIO_FRAMEBUFFER   (1<<7)
  Frame Buffer Driver.
#define  BMMIO_GRABBER   (1<<8)
  Device Grabs Video.
#define  BMMIO_INFODLG   (1<<9)
  If the device is able to show its own image info dialogue this flag will be set.
#define  BMMIO_UNINTERRUPTIBLE   (1<<10)
  If a driver cannot be started and stopped this flag should be set.
#define  BMMIO_EVALMATCH   (1<<11)
  Drivers that may have a different image for a same given Max frame and same file/device name should define this and implement the EvalMatch() method.
#define  BMMIO_IFL   (1<<28)
  If this flag is set, instead of calling the Load() method 3ds Max calls the GetImageName() method.
#define  BMMIO_CONTROLREAD   (1<<29)
  There is only a single call to the plugin's control panel but the call specifies the nature of the operation going on.
#define  BMMIO_CONTROLWRITE   (1<<30)
  Device Driver has Control Panel for Write Operations.
#define  BMMIO_CONTROLGENERIC   (1<<31)
  Device Driver has a generic Control Panel.
#define  BMM_CLOSE_COMPLETE   0
  Close and save the image.
#define  BMM_CLOSE_ABANDON   1
  Many bitmap loader / savers do not make use of these flags.
#define  BMM_FILTER_NONE   0
  Specifies no filtering should be performed.
#define  BMM_FILTER_DUMMY   1
  No longer used.
#define  BMM_FILTER_SUM   2
  Specifies summed area filtering.
#define  BMM_FILTER_PYRAMID   3
  Specifies pyramidal filtering.
#define  BMM_FILTER_NOFLAGS   ((DWORD)0)
#define  BMM_FILTER_LERP_WRAP   ((DWORD)(1<<0))
#define  BMM_FILTER_BUILD_FAILED   ((DWORD)(1<<1))
#define  BMM_DITHER_NONE   0
#define  BMM_DITHER_FLOYD   1
#define  MAX_PYRAMID_DEPTH   12
#define  LAYER_DIM   MAX_PYRAMID_DEPTH+1
#define  COPY_IMAGE_CROP   0
  Copy image to current map size w/cropping if necessary.
#define  COPY_IMAGE_RESIZE_LO_QUALITY   1
  This is a resize from 50x50 to 150x150 using this option.
#define  COPY_IMAGE_RESIZE_HI_QUALITY   2
  This is a resize from 50x50 to 150x150 using this option.
#define  COPY_IMAGE_USE_CUSTOM   3
  Resize based on Image Input Options (BitmapInfo *)
#define  MAP_NOFLAGS   ((DWORD)0)
  The bitmap has none of the characteristics below.
#define  MAP_READY   ((DWORD)(1<<0))
  This bitmap has had memory allocated to it, or is accessible directly.
#define  MAP_HAS_ALPHA   ((DWORD)(1<<1))
  This flag can be checked from a BitmapInfo instance (bi.Flags()&MAP_HAS_ALPHA)), but not from a Bitmap instance (bmap->Flags() & MAP_HAS_ALPHA).
#define  MAP_ALPHA_PREMULTIPLIED   ((DWORD)(1<<2))
  The bitmap has pre-multiplied alpha.
#define  MAP_PALETTED   ((DWORD)(1<<3))
  The bitmap uses a palette (not true color).
#define  MAP_FRAME_SYSTEM_LOCKED   ((DWORD)(1<<4))
  This flag is no longer used.
#define  MAP_DITHERED   ((DWORD)(1<<5))
  The bitmap is dithered.
#define  MAP_FLIPPED   ((DWORD)(1<<6))
  The bitmap is flipped horizontally.
#define  MAP_INVERTED   ((DWORD)(1<<7))
  The bitmap is flipped vertically.
#define  MAP_USE_SCALE_COLORS   ((DWORD)(1<<10))
  Scale colors when high dynamic range values are out of gamut.
#define  MAP_PROXY   ((DWORD)(1<<11))
  When the proxy flag is set, the BitmapInfo is called a proxy info.
#define  MAP_PROXYREQUEST   ((DWORD)(1<<12))
  When the proxy request flag is set, the BitmapInfo is called a request info.
#define  MAP_LEGAL_DELETE   ((DWORD)(1<<30))
  internal use only
#define  MAP_VIEW_FILTERED   ((DWORD)(1<<31))
  Test stuff.
#define  MAP_ALL_FLAGS   0xFFFFFFFF
#define  BMM_PROGRESS   WM_USER + 0x120
#define  BMM_CHECKABORT   WM_USER + 0x121
#define  BMM_TEXTMSG   WM_USER + 0x122
#define  BMM_UNDEF_FRAME   0x7FFF0000
#define  BMM_CUSTOM_GAMMA   ((DWORD)(1 << 0))
  Flags that a Custom gamma is used.
#define  BMM_CUSTOM_SIZE   ((DWORD)(1 << 1))
  Custom size setting.
#define  BMM_CUSTOM_RESFIT   ((DWORD)(1 << 2))
  Bitmap is to be resized.
#define  BMM_CUSTOM_POS   ((DWORD)(1 << 3))
  Bitmap has a custom positioning.
#define  BMM_CUSTOM_FILEGAMMA   ((DWORD)(1 << 4))
  This flags if a loaded bitmap's gamma came from file, as well as flags the "Automatic" gamma correction mode for file load and save.
#define  BMM_CUSTOM_IFLENUMFILES   ((DWORD)(1 << 5))
#define  BMM_CUSTOM_HDR_TYPE   ((DWORD)(1 << 6))
  Internal Use Only.
#define  BMM_CUSTOM_INFERREDGAMMA   ((DWORD)(1 << 8))
  Additional flag to BMM_CUSTOM_FILEGAMMA. Did gamma actuallly come from data stored in the file, or was it inferred from the file type?
#define  BMM_CUSTOM_NOGAMMAUI   ((DWORD)(1 << 9))
  Settings this flag causes the Bitmap file dialog to gray out the Gamma UI.
#define  BMM_CUSTOM_POSNW   0
  Top Left.
#define  BMM_CUSTOM_POSN   1
  Top Center.
#define  BMM_CUSTOM_POSNE   2
  Top Right.
#define  BMM_CUSTOM_POSW   3
  Middle Left.
#define  BMM_CUSTOM_POSCN   4
  Center.
#define  BMM_CUSTOM_POSE   5
  Middle Right.
#define  BMM_CUSTOM_POSSW   6
  Bottom Left.
#define  BMM_CUSTOM_POSS   7
  Bottom Center.
#define  BMM_CUSTOM_POSSE   8
  Bottom Right.
#define  BMM_SEQ_WRAP   0
#define  BMM_SEQ_ERROR   1
#define  BMM_SEQ_HOLD   2
#define  BMM_CHANNEL_RED   0
#define  BMM_CHANNEL_GREEN   1
#define  BMM_CHANNEL_BLUE   3
#define  BMM_CHANNEL_ALPHA   4
#define  BMM_CHANNEL_Z   5
#define  BMM_CHANNEL_LUMINANCE   6
#define  BMNOTIFY_FLAG_STORAGE_CHANGE   0
#define  BMNOTIFY_FLAG_FILE_CHANGE   1
#define  BMM_SINGLEFRAME   -2000000L
#define  BMM_UL   1
#define  BMM_LL   2
#define  BMM_UR   3
#define  BMM_LR   4
#define  BMM_CN   5
#define  BMM_RND   10
#define  BMM_VPP   11
#define  BMM_VPS   12
#define  LG_NOLOG   0
#define  LG_FATAL   ((DWORD)(1 << 0))
#define  LG_INFO   ((DWORD)(1 << 1))
#define  LG_DEBUG   ((DWORD)(1 << 2))
#define  LG_WARN   ((DWORD)(1 << 3))
#define  BMM_ENABLE_SAVE_REGION   1
#define  BMM_DO_SAVE_REGION   2
#define  BMM_STORE_GEOREF_DATA   0
#define  BMM_RETRIEVE_GEOREF_DATA   1
#define  BMM_USE_CUSTOM_FILTERLIST   2
#define  BMM_SET_FILE_INPUT_SEQUENCE_FLAG   3
#define  BMM_GET_FILE_INPUT_SEQUENCE_FLAG   4
#define  BMM_FLUSH_RELATIVE_FILE_RESOLUTION_CACHE   5
#define  FPBITMAPPROXYMANAGER_INTERFACE_ID   Interface_ID(0x24e22528, 0x601f3610)
  Interface ID of the IBitmapProxyManager interface.
#define  BMM_ASSET_GROUP   1
  Bitmap asset declaration flags.
#define  BMM_ASSET_PROXY   2
  The declared bitmap is proxy enabled.
#define  BITMAP_IOLAYER_CLASS   Interface_ID(0x296b79ec,0x73e11944)
#define  LAYER_INTERFACE   Interface_ID(0x1563269c,0x7ec41d89)
#define  I_LAYER_INTERFACE   0x000A1001
#define  IBITMAPPAGER_INTERFACE_ID   Interface_ID(0x48e1041f, 0x34c86c51)
  Interface ID of the IBitmapPager interface.
#define  BITMAPIOMETADATA_INTERFACE_ID   Interface_ID(0x56507912, 0x7e3c56db)
  Interface ID of the BitmapIOMetaData interface.

Typedefs

typedef unsigned short  BMMRES
  Traps the use of int or BOOL.
typedef LinkedEntryT< MSTR MSTREntry
typedef LinkedListT< MSTR,
MSTREntry
MSTRList
typedef BOOL(WINAPI *  PBITMAP_FX_CALLBACK )(LPVOID lpparam, int done, int total, const MCHAR *msg)
typedef LinkedEntryT
< BMM_IOHandler
BMM_IOHandlerEntry
typedef LinkedListT
< BMM_IOHandler,
BMM_IOHandlerEntry
BMM_IOHandlerList

Enumerations

enum   ProjectionType { ProjPerspective = 0, ProjParallel = 1 }

Functions

BMMExport IBitmapProxyManager GetBitmapProxyManager ()
  Returns the Bitmap Proxy Manager singleton object.
BMMExport void  DeclareBitmapAsset (IEnumAuxAssetsCallback &enumCallback, IAssetAccessor &anAccessor, BitmapInfo *bitmapInfo, int flags=0)
  Declare a bitmap asset accessor to the specified callback.
int  ValidBitmapType (int type)
BMMExport BitmapStorage BMMCreateStorage (BitmapManager *manager, UINT type)
BMMExport BitmapFilter BMMCreateFilter (BitmapManager *manager, UINT type)
BMMExport BitmapDither BMMCreateDither (BitmapManager *manager, UINT type)
BMMExport int  BMMCalcPalette (Bitmap *map, int colors, BMM_Color_48 *palette)
BMMExport BYTE  BMMClosestColor (BMM_Color_64 *color, BMM_Color_48 *palette, int colors)
BMMExport const MCHAR *  BMMGetBitmapTypeDescription (int bitmapType, DWORD bitmapFlags)
BMMExport void  OpenBMM (BMMInterface *i)
BMMExport void  CloseBMM ()
INT_PTR CALLBACK  BMMGammaDlgProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
void  ExtractExtension (const MCHAR *string, MCHAR *ext)
BMMExport int  BMMCreateNumberedFilename (const MCHAR *namein, int frame, MCHAR *nameout)
  Create a filename appended by the specified frame number.
BMMExport int  BMMFindNumberedFilenames (const MaxSDK::Util::Path &baseFilename, MaxSDK::Array< MaxSDK::Util::Path > &foundFiles)
  Retrieve a list of existing files in a sequence that matches the base filename and numbering of the specified filename.
BMMExport int  BMMGetFullFilename (BitmapInfo *bi)
  These functions search the system for a bitmap.
BMMExport BOOL  BMMGetFullFilename (const MCHAR *namein, MCHAR *nameout)
BMMExport BOOL  BMMIsFile (const MCHAR *filename)
BMMExport void  BMMSplitFilename (const MCHAR *name, MCHAR *directory, MCHAR *filename, MCHAR *extension)
  Splits up a file path into three strings, the directory name, file name, and file extension.
BMMExport LPTSTR  BMMGetLastErrorText (LPTSTR lpszBuf, DWORD dwSize)
BMMExport Quantizer BMMNewQuantizer ()
BMMExport void  BMMAppendSlash (MCHAR *path)
  This function appends a slash character to the end of the path passed unless one already exists.
BMMExport void  BMMRemoveSlash (MCHAR *path)
  This function removes the slash character from the end of the path passed if present.
BMMExport void  BMMAppendSlash (MSTR &path)
  This function appends a slash character to the end of the path passed unless one already exists.
BMMExport void  BMMRemoveSlash (MSTR &path)
  This function removes the slash character from the end of the path passed if present.
BMMExport BOOL  BMMGetUniversalName (MCHAR *out_uncname, const MCHAR *in_path)
BMMExport BOOL  BMMFindNetworkShare (const MCHAR *in_localpath, MCHAR *out_sharename, MCHAR *out_sharepath)
BMMExport BOOL  BMMGetLocalShare (const MCHAR *local_path, MCHAR *share)
BMMExport ColorPacker BMMNewColorPacker (int w, BMM_Color_48 *pal, int npal, BYTE *remap=NULL)
BMMExport void  FixPaletteForWindows (BMM_Color_48 *pal, BMM_Color_48 *newpal, int ncols, BYTE *remap=NULL)
IBitmapPager GetIBitmapPager ()
  Returns the Bitmap Pager singleton object.

Variables

int  TheSystemFrame
  External data.
BMMExport BitmapManager TheManager
  The Primary Bitmap Manager Object.

Define Documentation

#define INTBITS   (sizeof(int) * 8)
#define IMGCLASSID   1
#define CYCLECLASSID   2
#define FLICCLASSID   5
#define TARGACLASSID   6
#define YUVCLASSID   7
#define FBCLASSID   8
#define WSDCLASSID   9
#define IFLCLASSID   10
#define BMPCLASSID   11
#define JPEGCLASSID   12
#define TARGAPLSCLASSID   13
#define AVICLASSID   14
#define RLACLASSID   15
#define RPFCLASSID   16
#define MPGCLASSID   17
#define MAXOPENEXR_CLASSID   Class_ID(0x12f95b5e, 0x62a60b57)
#define MAX_DESCRIPTION   256
#define MINGAMMA   0.2f
#define MAXGAMMA   5.0f
#define BMM_FILTER_NOFLAGS   ((DWORD)0)
#define BMM_FILTER_LERP_WRAP   ((DWORD)(1<<0))
#define BMM_FILTER_BUILD_FAILED   ((DWORD)(1<<1))
#define BMM_DITHER_NONE   0
#define BMM_DITHER_FLOYD   1
#define MAX_PYRAMID_DEPTH   12
#define LAYER_DIM   MAX_PYRAMID_DEPTH+1
#define BMM_PROGRESS   WM_USER + 0x120
#define BMM_CHECKABORT   WM_USER + 0x121
#define BMM_TEXTMSG   WM_USER + 0x122
#define BMM_UNDEF_FRAME   0x7FFF0000
#define BMM_SEQ_WRAP   0
#define BMM_SEQ_ERROR   1
#define BMM_SEQ_HOLD   2
#define BMM_CHANNEL_RED   0
#define BMM_CHANNEL_GREEN   1
#define BMM_CHANNEL_BLUE   3
#define BMM_CHANNEL_ALPHA   4
#define BMM_CHANNEL_Z   5
#define BMM_CHANNEL_LUMINANCE   6
#define BMNOTIFY_FLAG_STORAGE_CHANGE   0
#define BMNOTIFY_FLAG_FILE_CHANGE   1
#define BMM_SINGLEFRAME   -2000000L
#define BMM_UL   1
#define BMM_LL   2
#define BMM_UR   3
#define BMM_LR   4
#define BMM_CN   5
#define BMM_RND   10
#define BMM_VPP   11
#define BMM_VPS   12
#define LG_NOLOG   0
#define LG_FATAL   ((DWORD)(1 << 0))
#define LG_INFO   ((DWORD)(1 << 1))
#define LG_DEBUG   ((DWORD)(1 << 2))
#define LG_WARN   ((DWORD)(1 << 3))
#define BMM_ENABLE_SAVE_REGION   1
#define BMM_DO_SAVE_REGION   2
#define BMM_STORE_GEOREF_DATA   0
#define BMM_RETRIEVE_GEOREF_DATA   1
#define BMM_USE_CUSTOM_FILTERLIST   2
#define BMM_SET_FILE_INPUT_SEQUENCE_FLAG   3
#define BMM_GET_FILE_INPUT_SEQUENCE_FLAG   4
#define BMM_FLUSH_RELATIVE_FILE_RESOLUTION_CACHE   5
#define FPBITMAPPROXYMANAGER_INTERFACE_ID   Interface_ID(0x24e22528, 0x601f3610)
#define BMM_ASSET_GROUP   1

Bitmap asset declaration flags.

The declared bitmap represents a group. You must call EndGroup on the enum callback after you are finished grouping assets.

#define BMM_ASSET_PROXY   2

The declared bitmap is proxy enabled.

#define BITMAP_IOLAYER_CLASS   Interface_ID(0x296b79ec,0x73e11944)
#define LAYER_INTERFACE   Interface_ID(0x1563269c,0x7ec41d89)
#define I_LAYER_INTERFACE   0x000A1001
#define IBITMAPPAGER_INTERFACE_ID   Interface_ID(0x48e1041f, 0x34c86c51)
#define BITMAPIOMETADATA_INTERFACE_ID   Interface_ID(0x56507912, 0x7e3c56db)

Typedef Documentation

typedef unsigned short BMMRES

Traps the use of int or BOOL.

typedef BOOL(WINAPI* PBITMAP_FX_CALLBACK)(LPVOID lpparam, int done, int total, const MCHAR *msg)

Enumeration Type Documentation


Function Documentation

BMMExport IBitmapProxyManager* GetBitmapProxyManager ( )

Returns the Bitmap Proxy Manager singleton object.

BMMExport void DeclareBitmapAsset ( IEnumAuxAssetsCallback enumCallback,
IAssetAccessor anAccessor,
BitmapInfo bitmapInfo,
int  flags = 0 
)

Declare a bitmap asset accessor to the specified callback.

Decorates the specified asset accessor as a bitmap enabled asset accessor before declaring it to the specified enumeration callback.

Parameters:
[in] enumCallback The EnumAuxFiles callback to declare the asset to.
[in] anAccessor The original asset accessor to decorate with proxy settings.
[in] bitmapInfo The bitmap info of the bitmap. If NULL, the declared bitmap will always be treated as a single frame, no pi-data bitmap.
[in] flags Specify flags that define how the specified callback will declare the decorated accessor. Also controls how the accessor will be decorated.
See also:
IEnumAuxAssetsCallback
IAssetAccessor
int ValidBitmapType ( int  type )
BMMExport BitmapStorage* BMMCreateStorage ( BitmapManager manager,
UINT  type 
)
Remarks:
This global function will create a new instance of the specified storage type and return a pointer to it.
Parameters:
BitmapManager *manager

The bitmap manager used for this storage.

UINT type

The type of storage to create. One of the following values:

BMM_LINE_ART
BMM_PALETTED
BMM_GRAY_8
BMM_GRAY_16
BMM_TRUE_16
BMM_TRUE_32
BMM_TRUE_64
Returns:
The bitmap storage instance created or NULL if the specified type could not be created.
Data Members:
protected:

int openMode;

The mode the storage was opened in. See Bitmap Open Mode Types.

UINT usageCount;

The number of bitmaps using this storage.

BitmapManager *manager;

The bitmap manager associated with this storage.

int flags;

See Bitmap Flags.

int type;

See Bitmap Types.

BMM_Color_48 palette[256];

The palette entries (256 max). See Structure BMM_Color_48.

int paletteSlots;

The number of palette slots used.

UWORD *gammaTable;

The gamma correction table.

RenderInfo *rendInfo;

A pointer to an instance of RenderInfo. See Class RenderInfo.

BitmapInfo bi

Describes the properties of the bitmap associated with this storage.
BMMExport BitmapFilter* BMMCreateFilter ( BitmapManager manager,
UINT  type 
)
BMMExport BitmapDither* BMMCreateDither ( BitmapManager manager,
UINT  type 
)
BMMExport int BMMCalcPalette ( Bitmap map,
int  colors,
BMM_Color_48 palette 
)
BMMExport BYTE BMMClosestColor ( BMM_Color_64 color,
BMM_Color_48 palette,
int  colors 
)
BMMExport const MCHAR* BMMGetBitmapTypeDescription ( int  bitmapType,
DWORD  bitmapFlags 
)
Remarks:
A global function in bitmap.h

Returns a localized string that describes one of the (BMM_TRUE_32, BMM_TRUE_64, etc.) bitmap types. The string is loaded into a static buffer and therefore should be used or copied immediately. The bitmap flags (from BitmapInfo::Flags()) are also used.
Parameters:
BMMExport void OpenBMM ( BMMInterface *  i )
BMMExport void CloseBMM ( )
INT_PTR CALLBACK BMMGammaDlgProc ( HWND  hWnd,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)
void ExtractExtension ( const MCHAR *  string,
MCHAR *  ext 
)
BMMExport int BMMCreateNumberedFilename ( const MCHAR *  namein,
int  frame,
MCHAR *  nameout 
)

Create a filename appended by the specified frame number.

This function will pad the filename with zeroes.

Remarks:
For example, an input filename of sampleKitchen.bmp and frame 4 results in sampleKitchen0004.bmp
Parameters:
[in] namein,: A pointer to the buffer containing the base filename from which to create a numbered filename.
[in] frame,: The frame number to append. Can be BMM_SINGLEFRAME for convenience, which results in the orignal filename.
[out] nameout,: A pointer to the buffer in which to store the created filename. This buffer must be large enough to accommodate the original filename, the digits of the framenumber, any zero-padding, and the file extension.
Returns:
Zero if an error occurred, non-zero for success.
See also:
BMMFindNumberedFilenames
BMMExport int BMMFindNumberedFilenames ( const MaxSDK::Util::Path baseFilename,
MaxSDK::Array< MaxSDK::Util::Path > &  foundFiles 
)

Retrieve a list of existing files in a sequence that matches the base filename and numbering of the specified filename.

Remarks:
For example, a filename of sampleKitchen0001.bmp will return all existing files that match sampleKitchenxxxx.bmp, such as all files from sampleKitchen0000.bmp to sampleKitchen0060.bmp. This is similar to the sequence detection used in the Image File List (IFL) image format.
Parameters:
[in] namein,: The filename to match.
[out] foundFiles,: The list of matching files found. This list is cleared by the function.
Returns:
The number of matching files found. Zero if none found or an error occurred.
See also:
BMMCreateNumberedFilename
BMMExport BOOL BMMIsFile ( const MCHAR *  filename )
BMMExport void BMMSplitFilename ( const MCHAR *  name,
MCHAR *  directory,
MCHAR *  filename,
MCHAR *  extension 
)

Splits up a file path into three strings, the directory name, file name, and file extension.

The three out parameters are allowed to be NULL. For non-NULL parameters, it is also assumed the memory pointed to by the three parameters is big enough to hold the corresponding string contents.

Parameters:
[in] name - The full path to the file to be split
[out] directory - A string containing the directory portion of the file path
[out] filename - A string containing the file name portion of the file path
[out] directory - A string containing the file extension portion of the file path
BMMExport LPTSTR BMMGetLastErrorText ( LPTSTR  lpszBuf,
DWORD  dwSize 
)
BMMExport Quantizer* BMMNewQuantizer ( )
BMMExport void BMMAppendSlash ( MCHAR *  path )

This function appends a slash character to the end of the path passed unless one already exists.

Parameters:
[in,out] path,: The path name to append. If NULL, no operation.
BMMExport void BMMRemoveSlash ( MCHAR *  path )

This function removes the slash character from the end of the path passed if present.

Parameters:
[in,out] path,: The path name to append. If NULL, no operation.
BMMExport void BMMAppendSlash ( MSTR path )

This function appends a slash character to the end of the path passed unless one already exists.

Parameters:
[in,out] path,: The path name to append.
BMMExport void BMMRemoveSlash ( MSTR path )

This function removes the slash character from the end of the path passed if present.

Parameters:
[in,out] path,: The path name to append. If NULL, no operation.
BMMExport BOOL BMMGetUniversalName ( MCHAR *  out_uncname,
const MCHAR *  in_path 
)
BMMExport BOOL BMMFindNetworkShare ( const MCHAR *  in_localpath,
MCHAR *  out_sharename,
MCHAR *  out_sharepath 
)
BMMExport BOOL BMMGetLocalShare ( const MCHAR *  local_path,
MCHAR *  share 
)
BMMExport ColorPacker* BMMNewColorPacker ( int  w,
BMM_Color_48 pal,
int  npal,
BYTE *  remap = NULL 
)
BMMExport void FixPaletteForWindows ( BMM_Color_48 pal,
BMM_Color_48 newpal,
int  ncols,
BYTE *  remap = NULL 
)
Remarks:
Rearranges the palette pal (which has colors 0..ncols-1 occupied, in descending order of frequency), into newpal so that the colors 10-245 are populated first, then 0-9, then 246-255. Sets the optional array remap to map the old palette index values to the new ones.
Parameters:
BMM_Color_48 *pal

The palette to rearrange.

BMM_Color_48 *newpal

The rearranged palette.

int ncols

The number of colors in the palette.

BYTE *remap=NULL

An array that maps the old palette index values to the new ones.
IBitmapPager* GetIBitmapPager ( ) [inline]

Returns the Bitmap Pager singleton object.


Variable Documentation