IlvPattern and IlvColorPattern: The Pattern Classes
A pattern can be of any size and either monochrome, defined with only one bit per pixel, or colored. For details see:
Monochrome Patterns
Monochrome patterns are handled by the IlvPattern class. Two constructors are provided that you can use depending on the data available:
IlvPattern(IlvDisplay* display,
IlvDim w,
IlvDim h,
unsigned char* data);
IlvPattern(IlvBitmap* bitmap);
The first constructor initializes a new IlvPattern object with a pattern w pixels wide and h pixels high, filled in by the data stored in the data array of bit values. The pixel values are packed into 16-bit words from left to right in a most-significant-bits-first manner, and each scan line, stored from top to bottom, must be padded to 16 bits.
The second constructor initializes a new IlvPattern object from the given bitmap monochrome image.
To obtain a previously defined pattern, use the member function getPattern.
Other patterns are predefined within Views, which you can access by name.
Note that patterns can have a monochrome color, along with a background of a different color. To do so, draw the pattern with IlvPalette. The palette's foreground color defines the pattern's color and, if palette's fill style is set to IlvFillMaskPattern, the pattern's background is transparent. Set the fill style to IlvFillPattern in order to reveal the palette's background color.
For instance:
IlvPalette* patternPalette = display->getPalette(
display->getColor("yellow"),
display->getColor("red"),
display->getPattern("diagrl"),
0,
0,
0,
0,
IlvFillPattern
);
patternPalette->lock();
object->setPalette(patternPalette);
Multi-color patterns
Patterns can also have many colors when they are represented by instances of the IlvColorPattern class.