Foundation Features
The following new features have been added for Views 5.0:
Filters
-
Views Foundation now has image processing classes providing the same functionality as the SVG filters:
IlvBlendFilter
IlvColorMatrixFilter
IlvSaturationFilter
IlvLuminanceToAlphaFilter
IlvHueRotateFilter
IlvComponentTransferFilter
IlvComposeFilter
IlvConvolutionFilter
IlvDisplaceFilter
IlvFloodFilter
IlvGaussianBlurFilter
IlvImageFilter
IlvLightingFilter
IlvDiffuseLightingFilter
IlvSpecularLightingFilter
IlvMergeFilter
IlvMorphologyFilter
IlvOffsetFilter
IlvTileFilter
IlvTurbulenceFilter
IlvFilterFlow
and supporting classes:
IlvTransferFunction
IlvBitmapDataKernel
IlvLightSource
IlvDistantLight
IlvPointLight
IlvSpotLight
IlvPerlinNoise
IlvIdentityTransfer
IlvLinearTransfer
IlvTableTransfer
IlvDiscreteTransfer
IlvGammaTransfer
IlvIdentityTransfer
These filters can be described in an XML format similar to the SVG filters format. They are applicable on IlvRGBBitmapData images. They can be chained together to create complex image processing commands.
-
A graphic object IlvFilteredGraphic now offers the ability to apply filters (a flow of image processing operations) on any IlvGraphic.
Printing
-
Views Foundation now has a printing framework to facilitate the printing in Views applications. It consists of the following classes:
IlvPrintableDocument to define a document
IlvPrintable to describe printable objects, with subclasses:
- IlvPrintableContainer
- IlvPrintableText
- IlvPrintableFormattedText
- IlvPrintableGraphic
- IlvPrintableFrame
- IlvPrintableManager, IlvPrintableMgrView, and IlvPrintableManagerLayer (available only with the manager package)
- IlvPrintableComposite
IlvPrintableLayout for describing page layouts, with the predefined layouts:
- IlvPrintableLayoutOnePage
- IlvPrintableLayoutMultiplePages
- IlvPrintableLayoutIdentity
- IlvPrintableLayoutFixedSize
IlvPrinter to describe the printer, with subclasses:
- IlvPSPrinter
- IlvWindowsPrinter
IlvPrintUnit with predefined units:
- IlvPrintPointUnit
- IlvPrintCMUnit
- IlvPrintInchUnit
- IlvPrintPicaUnit
IlvPaperFormat with a selection of preregistered paper formats
Predefined user interface dialogs IlvPostScriptPrinterDialog and IlvPrinterPreviewDialog for choosing printers and their features. A print preview dialog is also available, all of these in the Gadgets package.
-
There are two new classes for low-level Windows printing management:
IlvWindowsPrinterDCFactory
IlvWindowsPrinterDCDialogFactory
Bitmap Data
-
There is a new method to draw IlvBitmapData using alpha per pixel IlvPort::stretchBitmapData.
-
A new bitmap streamer for TIFF images has been added, IlvTIFFStreamer
-
IlvRGBBitmapData now allows filtered image resampling using a large varity of filters for very high quality stretching. The new method is IlvRGBBitmapData::stretchSmooth.
IlvRGBBitmapData data can be made alpha-premultiplied.
-
A new class for handling colormaps within IlvIndexedBitmapData has been added, IlvColorMap.
Quantizers
There are new Quantizers for 24 bits, and indexed color conversion has been added:
-
IlvFixedQuantizer for conversion to a fixed colormap.
-
IlvNetscapeQuantizer for conversion to the Netscape colormap.
The new hierarchy for quantizers is now:
-
IlvQuantizer
-
IlvFixedQuantizer
-
IlvQuickQuantizer
-
IlvNetscapeQuantizer
-
IlvWUQuantizer
The PostScript device can now make use of PostScript level 2 features (this is now the default mode).
The PostScript device when in level 2 can now encode images in various formats using encoders derived from IlvPostScriptEncoder. Three encoders are provided:
-
IlvASCIIHexEncoder (converts input bytes in hexadecimal, produces 2 characters from 1 input byte).
-
IlvASCII85Encoder (convert input bytes to visible charset, produces 5 characters from 4 input bytes).
-
IlvRunLengthEncoder (converts input bytes to binary run length encoded data; compression depends on input).
The default encoder is now IlvASCIIHexEncoder for level 1 and IlvASCII85Encoder for level 2. These encoders can be linked together, for example, to ascii85 encode run length encoded data.
Windows Transparency
On Windows platforms 98, 2000, and XP, IlvView can be partially transparent when it is a top window, and full transparency can be defined by a color value. New Windows functionality such as Layered Windows can be used. The new methods are:
-
IlvAbstractView::setOpacity
-
IlvAbstractView::getOpacity
-
IlvAbstractView::setTransparentColorKey
-
IlvAbstractView::getTransparentColorKey
-
IlvAbstractView::setLayered
These methods have no effect on other platforms.
Graphic Rendering
The Views low-level drawing primitives API has been enhanced to support transparency and anti-aliasing. These features are accessible from different levels: at the port (IlvPort) level for a global setting, or at the palette (IlvPalette) level for a local setting.
See the sections Alpha Value and Anti-AliasingMode of the Foundation User Manual’s chapter "IlvResource: The Graphic Resources Class " for details.
Note that these features are available only on Windows platforms with GDI+ installed. See the section Using GDI+ Features with Views in Appendix B of the Foundation User’s Manual for details.