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
*PostScript Devices
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.
Published date: 05/24/2022
Last modified date: 02/24/2022