Views Foundation Classes
Views Foundation Classes include the following code changes.
IlvColorMap
-
IlvIndexedBitmapData now uses IlvColorMap
-
The quantizers have been modularized and use IlvColorMap.
IlvDisplay
The method IlvDisplay::getBitmap now has a second parameter. The prototype becomes:
IlvBitmap* getBitmap(const char* name, IlBoolean read = IlFalse) const;
When set to IlTrue, the read parameter indicates that if the bitmap has not been found in the internal display cache list, it must be read using the IlvDisplay::readBitmap method.
IlvPort
On Windows platforms, the IlvPort::drawTransformedString method has changed its behavior to work around a display bug. This may result in smaller strings being displayed. As a side effect, the IlvZoomableLabel objects, which use this method, may have their drawing changed the same way.
IlvBitmap
Since Views 5.0, on the Windows platform when the display depth is > 8, the IlvBitmap constructor that accepts an IlvBitmapData internally uses a DIBSection of the depth of the IlvBitmapData. This has the following consequences:
-
When using an IlvIndexedBitmapData, the memory allocated is now one-fourth of the memory allocated in Views 5.0.
-
The size and the number of created IlvBitmap instances is limited only by the available system memory, whereas in previous Views versions there was a limit given by the system (approx 48 Megabytes by IlvBitmap and a limit of 192 Megabytes for all IlvBitmap instances on Windows NT).
-
Performance is far better when using IlvIndexedBitmapData since no conversion to true color is needed anymore.
-
The IlvBitmap depth is no longer always equal to the display depth, so using a depth-8 IlvBitmap to draw into using Views can give unexpected results since the colormap of the underlying DIBSection might not exactly match the colors used to draw.
IlvView
On Windows, the following methods are no longer taking the task bar into account:
-
IlvView::ensureInScreen
-
IlvView::moveToScreen
IlvWindowsDevice
The constructor of IlvWindowsDevice has an additional optional parameterof type IlvWindowsPrinterFactory.
IlvWindowsVirtualDevice
-
The return type of IlvWindowsVirtualDevice::getHDC is now an HDC and no longer an unsigned long.
-
The type of the parameter of IlvWindowsVirtualDevice::setHDC is now an HDC and no longer an unsigned long.
Typedef Changes
The typedef of IlvWindowProc has changed so that a port on Windows 64 bits will be possible later. It is now:
typedef IlBoolean (* IlvWindowProc)(IlvAbstractView* view,
IlvSystemView hWnd,
IlvMsgParam iMessage,
IlvWParam wParam,
IlvLParam lParam,
IlAny& returned,
IlAny userArg);
IlvMsgParam, IlvWParam, and IlvLParam are three new typedefs that are respectively equivalent to unsigned int, unsigned int, and long for Windows 32 bits. That means that a code written for the previous version of Views still compiles and runs. However, the types will be different for Windows 64bits, and you should use the new types to be portable.
Note that the port on Windows64bits is not yet available, and even not precisely planned.