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.