Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP VISUALIZE-IVL Documentation: HP 9000 Series 700 Computers > Chapter 3 Chapter 3: For Application Developers

Types of IVL API Routines

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Glossary

 » Index

There are three basic types of routines in IVL:

  • Routines that modify state (attributes).

  • Routines that cause some action (operations).

  • Routines that control window system operations.

Setting and Querying Attributes

The IVL API reflects an underlying state machine with attributes that can be modified to make it behave in different ways. State attributes in IVL are orthogonal to one another, meaning that setting one state attribute doesn't affect the setting or behavior of any other state attribute. For example, if you set certain parameters for the convolution operation, they have no effect on the parameters for the image transformation operation, nor do they modify the behavior of the image transformation operation.

In order to get IVL to behave in a particular way, you may have to set many state attributes. IVL provides facilities for querying any of the state values that you can set, so you are not required to keep track of the current attribute values. See the glGet and glIsEnabled reference pages for a list of the state values that can be queried.

There are default values for every state attribute in IVL. The default value usually reflects the most commonly used value for that attribute. For instance, there are a number of modes that can be enabled or disabled. Since the typical case for each mode is that it is disabled, most of these state attributes have a default value of "disabled".

Imaging Operations

Routines that perform tasks above and beyond the setting or querying of a state attribute are called operations. An example of a routine in this category is glDrawPixels, which causes a rectangular block of pixel values to be transferred from host memory to the frame buffer. The behavior of this transfer depends on the current settings of all of the state values that affect the pixel processing pipeline. The net result of this routine is (usually) that an image is displayed in a viewable window.

Operations (such as those that occur as a result of a call to glDrawPixels) have a well-defined set of semantics. By understanding the semantics of an operation, you can choose settings for attributes necessary to achieve the behavior you want. The pixel transfer operations in IVL occur in a sequence that is best explained using a pipeline model. The order of operations is very specific, as are the data formats for input to and output from each pipeline stage. See "The IVL Machine" section of the "Overview of the Image Visualization Library (IVL)" chapter for greater detail on the pixel transfer pipeline.

Window System Interaction

There are a number of routines in IVL that deal with coordination between the native window system and IVL rendering operations. In the HP workstation environment, the native window system is X. Therefore IVL contains routines for:

  • Querying the capabilities of X visuals.

  • Selecting a visual for rendering.

  • Creating and manipulating data structures to store IVL state attributes.

  • Performing double-buffering.

  • Synchronizing between rendering with X and IVL.

It is important to realize that IVL can be implemented as a separate process from the X server. If it is implemented this way, it is possible to have IVL rendering and X window system rendering occurring simultaneously in the same window. In order to achieve the correct results when the order of rendering is important, applications must use the synchronization primitives that are provided in X and in IVL. For more information on these primitives, see the "Synchronization" section in the "Interaction with the X Window System" chapter.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© Hewlett-Packard Development Company, L.P.