This is an extension of the BaseBitmap class that supports higher bit depths, floating point images and multiple layers.
The layers are stored hierarchically. There are three kinds of layers:
- Layer : A regular layer, with full range of functionality.
 
- Folder : A collection of layers. This is a dummy element that has no image content, but other stuff like name, visibility etc.
 
- Alpha : An alpha channel layer, with full range of functionality.
 
- Note
 - Has to be created with Alloc() and destroyed with Free(). Use AutoAlloc to automate the allocation and destruction based on scope. 
 
- 
This represents internally the same class as VPBuffer, so a VPBuffer can be cast to a MultipassBitmap and vice versa. 
 
 | 
| Bool  | SetColorProfile (const ColorProfile *profile, Int32 index=COLORPROFILE_INDEX_IMAGE) | 
|   | 
| const ColorProfile *  | GetColorProfile (Int32 index=COLORPROFILE_INDEX_IMAGE) const | 
|   | 
| IMAGERESULT  | Init (const Filename &name, Int32 frame=-1, Bool *ismovie=nullptr) | 
|   | 
| IMAGERESULT  | Init (Int32 x, Int32 y, Int32 depth=24, INITBITMAPFLAGS flags=INITBITMAPFLAGS::NONE) | 
|   | 
| void  | FlushAll () | 
|   | 
| IMAGERESULT  | Save (const Filename &name, Int32 format, BaseContainer *data, SAVEBIT savebits) const | 
|   | 
| BaseBitmap *  | GetClone () const | 
|   | 
| BaseBitmap *  | GetClonePart (Int32 x, Int32 y, Int32 w, Int32 h) const | 
|   | 
| Bool  | CopyTo (BaseBitmap *dst) const | 
|   | 
| Bool  | CopyPartTo (BaseBitmap *dst, Int32 x, Int32 y, Int32 w, Int32 h) const | 
|   | 
| Int32  | GetBw () const | 
|   | 
| Int32  | GetBh () const | 
|   | 
| Int32  | GetBt () const | 
|   | 
| Int32  | GetBpz () const | 
|   | 
| COLORMODE  | GetColorMode () const | 
|   | 
| void  | ScaleIt (BaseBitmap *dst, Int32 intens, Bool sample, Bool nprop) const | 
|   | 
| void  | ScaleBicubic (BaseBitmap *dst, Int32 src_xmin, Int32 src_ymin, Int32 src_xmax, Int32 src_ymax, Int32 dst_xmin, Int32 dst_ymin, Int32 dst_xmax, Int32 dst_ymax) const | 
|   | 
| void  | SetPen (Int32 r, Int32 g, Int32 b) | 
|   | 
| void  | Clear (Int32 r, Int32 g, Int32 b) | 
|   | 
| void  | Clear (Int32 x1, Int32 y1, Int32 x2, Int32 y2, Int32 r, Int32 g, Int32 b) | 
|   | 
| void  | Line (Int32 x1, Int32 y1, Int32 x2, Int32 y2) | 
|   | 
| void  | Arc (Int32 x, Int32 y, Float radius, Float angle_start, Float angle_end, Int32 subdiv=32) | 
|   | 
| void  | GetPixel (Int32 x, Int32 y, UInt16 *r, UInt16 *g, UInt16 *b) const | 
|   | 
| Vector32  | GetPixelDirect (Int32 x, Int32 y) const | 
|   | 
| Bool  | SetPixel (Int32 x, Int32 y, Int32 r, Int32 g, Int32 b) | 
|   | 
| void  | GetAlphaPixel (BaseBitmap *channel, Int32 x, Int32 y, UInt16 *val) const | 
|   | 
| Bool  | SetAlphaPixel (BaseBitmap *channel, Int32 x, Int32 y, Int32 val) | 
|   | 
| void  | GetPixelCnt (Int32 x, Int32 y, Int32 cnt, UChar *buffer, Int32 inc, COLORMODE dstmode, PIXELCNT flags, ColorProfileConvert *conversion=nullptr) const | 
|   | 
| Bool  | SetPixelCnt (Int32 x, Int32 y, Int32 cnt, UChar *buffer, Int32 inc, COLORMODE srcmode, PIXELCNT flags) | 
|   | 
| BaseBitmap *  | AddChannel (Bool internal, Bool straight) | 
|   | 
| void  | RemoveChannel (BaseBitmap *channel) | 
|   | 
| const BaseBitmap *  | GetInternalChannel () const | 
|   | 
| BaseBitmap *  | GetInternalChannel () | 
|   | 
| Int32  | GetChannelCount () const | 
|   | 
| const BaseBitmap *  | GetChannelNum (Int32 num) const | 
|   | 
| BaseBitmap *  | GetChannelNum (Int32 num) | 
|   | 
| GeData  | GetData (Int32 id, const GeData &t_default) const | 
|   | 
| Bool  | SetData (Int32 id, const GeData &data) | 
|   | 
| UInt32  | GetDirty () const | 
|   | 
| void  | SetDirty () | 
|   | 
| const BaseBitmap *  | GetUpdateRegionBitmap () const | 
|   | 
| BaseBitmap *  | GetUpdateRegionBitmap () | 
|   | 
| void  | GetUpdateRegion (Int32 &xMin, Int32 &xMax, Int32 &yMin, Int32 &yMax, Bool reset) | 
|   | 
| void  | UpdateRegionAddPoint (Int32 x, Int32 y, Bool updateImageRefRegions=false) | 
|   | 
| void  | UpdateRegionAddLine (Int32 x1, Int32 x2, Int32 y, Bool updateImageRefRegions=false) | 
|   | 
| void  | UpdateRegionAddRegion (Int32 x1, Int32 y1, Int32 x2, Int32 y2, Bool updateImageRefRegions=false) | 
|   | 
| Int  | GetMemoryInfo () const | 
|   | 
| Bool  | IsMultipassBitmap () const | 
|   | 
| void  | SetCMAP (Int32 i, Int32 r, Int32 g, Int32 b) | 
|   | 
| Bool  | GetImageRef (SAVEBIT saveBit, Bool isAlphaChannel, PIXELCNT getFlags, maxon::ImageRef &imageRef) const | 
|   | 
| Bool  | GetImageRef (SAVEBIT saveBit, Bool isAlphaChannel, maxon::ImageRef &imageRef) const | 
|   | 
| static BaseBitmap *  | Alloc () | 
|   | 
| static void  | Free (BaseBitmap *&bm) | 
|   | 
| static IMAGERESULT  | Init (BaseBitmap *&res, const Filename &name, Int32 frame=-1, Bool *ismovie=nullptr, BitmapLoaderPlugin **loaderplugin=nullptr, const maxon::Delegate< void(Float progress)> &progressCallback=nullptr) | 
|   | 
| static constexpr Int32  | COLORPROFILE_INDEX_IMAGE | 
|   | 
| static constexpr Int32  | COLORPROFILE_INDEX_RENDERSPACE | 
|   | 
| static constexpr Int32  | COLORPROFILE_INDEX_VIEW_TRANSFORM | 
|   | 
| static constexpr Int32  | COLORPROFILE_INDEX_DISPLAYSPACE | 
|   |