HP VISUALIZE-IVL Documentation HP 9000 Series 700 Computers ABCDE HP Part No. B5182-96001 Printed in USA E0496 Edition 1 FINAL TRIM SIZE : 7.5 in x 9.
Notices The information contained in this document is subject to change without notice. Hewlett-Packard provides the following material \as is" and makes no warranty of any kind with regard to this manual, including, but not limited to, the implied warranties of merchantability and tness for a particular purpose.
Use of this manual and exible disc(s), or tape cartridge(s), or CD-ROM supplied for this pack is restricted to this product only. Additional copies of the programs can be made for security and back-up purposes only. Resale of the programs in their present form or with alterations, is expressly prohibited. PEX and PEXlib are trademarks of Massachusetts Institute of Technology.
Printing History New editions of this manual will incorporate all material updated since the previous edition. Update packages may be issued between editions and contain replacement and additional pages to be merged into the manual by the user. Each updated page will be indicated by a revision date at the bottom of the page. A vertical bar in the margin indicates the changes on each page. Note that pages which are rearranged due to changes on a previous page are not considered revised.
0 0 Preface: About this Documentation Manual Contents For your convenience, the document you are reading, the Image Visualization Library Implementation Guide , exists in two forms: a web-browsable version and a paper version. The web-browsable version exists on the World-Wide Web at Access HP (URL=http://www.hp.com ), as well as on your local le system in the directory /opt/graphics/IVL/doc/Web, which can be accessed from your web browser even without an Internet connection.
0 Chapter 5|IVL Implementation and Device-Speci c Information Contains device-speci c information for the graphics devices supported by IVL. Appendix A|IVL Quick Reference Contains names and parameter lists of the IVL routines. Appendix B|IVL Reference Contains complete reference pages for each the IVL routine. Glossary Contains a list of IVL-related terms and their de nitions. Audience and Scope This manual is designed to teach imaging application developers about the Image Visualization Library (IVL).
0 For More Information Hewlett-Packard does not attempt to discuss in detail the concepts and theory of digital image processing in this manual. For further information on digital image processing, the following references may be helpful. Note that these are suggestions, a starting point for further reading, not a speci c endorsement of these books over others not listed here.
0 Viewing IVL Documentation with Web Browsers At the time of publication for this document, Hewlett-Packard does not distribute a World-Wide Web browser with HP-UX. Nor does HP endorse or recommend any speci c browser from other sources. Informal testing has found some problems with early versions of various browsers. Because of this, the following versions of Web browsers are recommended for viewing the IVL documentation: Netscape NavigatorTM , version 1.1N or later.
Contents 0. Preface: About this Documentation Manual Contents . . . . . . . . . . . . . . Audience and Scope . . . . . . . . . . . . Formatting Conventions . . . . . . . . . . For More Information . . . . . . . . . . . Viewing IVL Documentation with Web Browsers Printing the IVL Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0-1 0-2 0-2 0-3 0-4 0-4 1. Chapter 1: For System Administrators Installation . . . . . . . . . . . . .
2. Chapter 2: Overview of the Image Visualization Library (IVL) What is IVL? . . . . . . . . . . . . . . . . . . . . . IVL Description . . . . . . . . . . . . . . . . . . . Relationship to OpenGL . . . . . . . . . . . . . . . . Using IVL with Other Graphics APIs . . . . . . . . . . Xlib and Motif . . . . . . . . . . . . . . . . . . . HP Image Library . . . . . . . . . . . . . . . . . Starbase, HP-PHIGS, and HP PEX . . . . . . . . . . Other OpenGL Implementations . . . . . . . . . . . Color Model . . . . . .
3. Chapter 3: For Application Developers Naming Conventions . . . . . . . . . . . . . . . . . . IVL Routines . . . . . . . . . . . . . . . . . . . . . Standard IVL Routines and Constants . . . . . . . . . Window System Routines and Constants . . . . . . . . Extensions to IVL . . . . . . . . . . . . . . . . . Extensions Supported by Multiple Vendors . . . . . . Extensions Supported by HP Only . . . . . . . . . Function Variants Based on Data Type . . . . . . . . Naming Conventions Summary . . . . . . . . . .
4. Chapter 4: Interaction with the X Window System X Interaction . . . . . . . . . . . . . . . . . X Windows Capabilities . . . . . . . . . . . . Setting Up an X/IVL Program . . . . . . . . Selecting Visuals . . . . . . . . . . . . . . IVL and Color Recovery . . . . . . . . . . Managing Rendering Contexts . . . . . . . . Double-Bu ering Support . . . . . . . . . . IVL and Backing Store . . . . . . . . . . . Using Pixmaps . . . . . . . . . . . . . . . Synchronization . . . . . . . . . . . . . .
Rasterization . . . . . . . . . . . . . . Performance Hints . . . . . . . . . . . . Clip Rectangles . . . . . . . . . . . . . Software versus Hardware-Accelerated Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 5-11 5-11 5-11 A. Appendix A: Quick Syntax Summary for IVL IVL Rendering Routines . . . . . . . . . . . . . . . . . . GLX Utility Routines . . . . . . . . . . . . . . . . . . . A-1 A-3 B. Appendix B: HP-IVL Reference glClear . . . . . . . . . . . glClearColor . . . . . .
glX.Intro . . . . . glXChooseVisual . . glXCreateContext . glXCreateGLXPixmap glXDestroyContext . glXDestroyGLXPixmap glXGetConfig . . . glXMakeCurrent . . glXQueryExtension . glXSwapBuffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Figures 2-1. 2-2. 2-3. 2-4. 2-5. 2-6. 2-7. 2-8. 2-9. 3-1. 4-1. Frame Bu er Organization . . . . . Window Coordinate System . . . . Rendering Contexts . . . . . . . . Hardware and Software Architecture Abstract Machine . . . . . . . . . Pipeline Stages . . . . . . . . . . Skipping Rows and Pixels . . . . . Unpacking Pixels . . . . . . . . . More on Pixel Transfer . . . . . . Supported Data Formats . . . . . . X Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FINAL TRIM SIZE : 7.5 in x 9.
1 1 Chapter 1: For System Administrators Installation IVL Filesets You must use SD-UX to install the following lesets in order to successfully develop or execute IVL applications: DDA-SHLIBS IVL-SHLIBS You must use SD-UX to install the following lesets in order to successfully develop IVL applications: DDA-SHLIBS IVL-PRG IVL-SHLIBS IVL-WEBDOC (optional) IVL-HARDCOPY (optional) IVL-DEMO (optional) Using SD-UX See your HP-UX system administration documentation for information on using the Software Distri
1 X Configuration X11 Double-Buffering IVL draws images from the bottom to the top of a window. This is known as the rasterization order. (The OpenGL standard does not dictate a speci c rasterization order, but does dictate that the image data coordinate system has it's origin at the lower left corner of an image. This coordinate system lends itself naturally to a bottom to top rasterization.) This di ers from the frame bu er, which refreshes from the top to the bottom of the screen.
However, IVL is supported on multi-display con gurations that are not con gured as a Single Logical Screen. VUE and CDE IVL does not require any special con guration for VUE or CDE. Motif By default, Motif creates child widgets using the same visual class as their parent widget. This can cause your application windows to inherit an unexpected visual type.
1 Revision Information The following sections will help you determine what revisions of IVL, X11, and HP-UX you have on your system. Your operating system must be Release 10.10 HP-UX or a subsequent version, in order to use IVL. Refer to the Graphics Administration Guide to determine whether or not these revisions are compatible. The output of the what command will show the name of the product, the version number, compile date, and the base operating system name (HP-UX) and it's release level.
of these software products. If you do not already have the necessary software, contact your local Hewlett-Packard sales o ce or your HP Response Center. Chapter 1: For System Administrators FINAL TRIM SIZE : 7.5 in x 9.
1 Using the graphinfo Command The graphinfo command can be used to determine if you have image acceleration hardware installed on your system.
Chapter 2: Overview of the Image 2 Visualization Library (IVL) What is IVL? IVL Description The Image Visualization Library (IVL) is an Application Programming Interface (API) from Hewlett-Packard that provides access to high-performance capabilities for the display and manipulation of two-dimensional images. IVL is a deviceindependent API; application developers do not need to provide special code to change between di erent devices.
a diagnostic imaging application for the medical market would bene t from the high-performance image processing capabilities provided by IVL. 2 IVL currently supports luminance format (GL_LUMINANCE) and RGBA format (GL_RGBA) data, which are described in detail in the \IVL Data" section of the \For Application Developers" chapter. Future releases of IVL may support additional data formats.
HP Image Library Using IVL in the same application with the HP Imaging Library is not supported. You can use both IVL and the HP Image API within the same application. (The Image API manipulates image data, but does not display it. You must use Xlib to display images after processing by the Image API.) Starbase, HP-PHIGS, and HP PEX Using IVL in the same application with a 3D API such as Starbase, HP-PHIGS, or HP PEX is not supported.
Color Model 2 The set of rules for manipulating color values in a processing system is sometimes called a color model. IVL supports a color model that is based on processing pixel values with red, green, blue, and alpha values, hence it is called RGBA mode. The color model is determined by characteristics of the window in which drawing is to occur. For this release of IVL, all windows that support IVL rendering support RGBA mode.
Frame Buffer Organization In IVL, the frame bu er is a two-dimensional memory array that holds pixel values. A portion of the frame bu er is typically visible on the display screen. Some portions of the frame bu er may never be visible. Corresponding bits from each pixel in the frame bu er are considered to be a bitplane; each bitplane consists of a single bit from each pixel in the frame bu er. Bitplanes are grouped into logical bu ers.
2 If your application is inherently monoscopic, you should use the tokens GL_FRONT and GL_BACK when setting the current draw bu er. On non-stereo double-bu ered windows, there are just two bu ers, so these two tokens can be used to refer to each one explicitly. On a stereo double-bu ered window, the token GL_FRONT will cause drawing to occur in both the front left and the front right bu ers of the stereo window.
High-Level IVL Overview Window Coordinate System Some IVL routines require you to provide locations in window coordinates. The window coordinate system in IVL has its origin (0,0) in the lower left corner of the window. Both x and y coordinates may be negative, and they may be larger than the window's width and height , respectively. But the visible pixels have coordinates from 0 to width 01 in the horizontal direction and 0 to height 01 in the vertical direction.
Rendering Contexts 2 IVL is an API for a state machine. This state machine operates according to a very speci c set of rules. Its behavior is deterministic: given the current values of all state attributes and a speci c input, you can very accurately predict the output. By manipulating the state, the behavior of the underlying system can be modi ed. There are two types of state in IVL. The rst type of state is server state. Server state resides in the server and controls the rendering process.
In many ways, the IVL rendering context is very similar to the concept of a Graphics Context (GC) in the X environment. The following gure shows the IVL rendering model in the X environment. The drawable can be considered the \canvas" on which drawing occurs. X is capable of rendering simple 2D graphics and text, and the state values that are stored in the GC determine the behavior of the X rendering \crayon.
2 When IVX hardware is available, IVL automatically uses its hardware implementation to write to the graphics frame bu er. When using a system without IVX hardware, IVL uses its software implementation to render an image. In either case, IVL uses the Direct Drawable Access Library (DDAlib) to access the hardware (frame bu er or accelerator). Figure 2-4.
In this diagram, the arrows represent the ow of data within the system. Words that begin with \gl" indicate IVL subroutines that provide state or input values for that particular operation. Boxes that are outlined with thin lines and have square corners are operations that are applied to pixel values. Boxes with bold outlines and rounded corners represent storage locations for pixel values. Figure 2-5.
2 In the case of glConvolutionFilter2DEXT, the pixel values are modi ed by the scale and bias values set by glConvolutionParameterEXT and then stored in convolution lter memory for later use. Similarly, glColorTableEXT causes pixel values to be extracted from host memory, modi ed by the scale and bias values set by glColorTableParameterEXT, and stored in color table memory for later use. Pipeline Stages The ultimate destination for pixels speci ed by glDrawPixels is frame bu er memory.
to glDrawPixels. The pixels in memory can be thought of as a rectangle that is arranged in a series of rows. If no scaling or rotation factors are in e ect, the rst pixel group in the rst row will be displayed at the current raster position as the lower left corner of the image. The GL_UNPACK_ROW_LENGTH attribute can override the number of pixels in each row.
The previous gure shows how these three pixel store values are used to extract a subimage from a larger image in host memory. The values indicated by width , height , and pixels are the values passed to the glDrawPixels routine. 2 To get to the rst pixel that is to be transferred, the number of rows speci ed by GL_UNPACK_SKIP_ROWS is skipped. Each of these rows contains GL_UNPACK_ROW_LENGTH pixels.
The default value is 0 for the pixel store parameters that indicate row length, number of rows to skip, and number of pixels to skip in each row. The default value for alignment is 4. 2 Figure 2-8. Unpacking Pixels There are three main steps that go into unpacking pixels, as shown in the above gure. First, the arguments to glDrawPixels together with the pixel store parameters are used to extract pixels from host memory as described above.
blue pixel components and assigning a value of 1.0 to alpha. As the previous gure shows, the result of pixel unpacking is a stream of pixels that are uniform in type and format. This makes it easier to describe the operations that follow. 2 Pixel Transfer. After pixel values are extracted from host memory and unpacked, they undergo a set of operations collectively referred to as pixel transfer.
The pixel values that make it this far are written into the frame bu er. If the current drawable is double-bu ered, the values may be written into the front or the back bu er, whichever is currently selected for drawing. Frame Buffer. 2 More on Pixel Transfer The following gure is an expanded version of the \Pixel Transfer" box from the gure in the \Abstract Machine" section. Although the term \pixel transfer" is somewhat ambiguous, it refers to the set of operations illustrated in the following gure.
Clipping occurs during a later stage of processing. For the purposes of this discussion, it will be assumed that the resulting image lies completely within in the window or GLX pixmap. GLX pixmaps are de ned in the \Using Pixmaps" section of the \Interaction with the X Window System" chapter. 2 Figure 2-9. More on Pixel Transfer The following sections expand on the concepts introduced in the previous gure. Convolution Convolution is a common image-processing operation used to lter an image.
If you want to perform a convolution operation as part of the pixel-processing path, the rst thing you need to do is de ne the convolution lter. This can be done using the glConvolutionFilter2DEXT routine. The pixels that make up the convolution lter pass through the \Unpack Pixels" stage of the pixel-processing path just as if glDrawPixels was called. However, instead of continuing on to the \Pixel Transfer" stage, the lter values are routed to the convolution lter memory for later use.
lter, the input image will pass through the convolution stage unmodi ed. You can query the current convolution lter using glGetConvolutionFilterEXT. 2 When it is enabled, the convolution operation occurs as part of the pixeltransfer operation and a ects pixel rectangles that are transferred with calls to glDrawPixels, glReadPixels , and glCopyPixels . To enable the convolution operation, call glEnable with the value GL_CONVOLUTION_2D_EXT.
minus the width of the convolution lter, and that range in j from 0 to the height of the source image minus the height of the convolution lter. See the glConvolutionParameterEXT reference page for information on other supported border modes. Post-Convolution Scale and Bias The next box shown in the Pixel Transfer gure is \Post-Convolution Scale and Bias." The lter values are not clamped when they are loaded.
ing pixel. All of these parameters can be set with glImageTransformParameterHP. You can query any of the current image-transform parameters using the glGetImageTransformParameterHP routine. 2 Post-Image Transform Color Table Following the image-transformation stage of the pixel-processing path, it is possible to re-map all component values through the use of a look-up table. A color table uses each incoming pixel component value as an index into a table (that corresponds to that component).
Pixel Rasterization Rasterization is the process of converting a rendering primitive into a collection of window-coordinate values and pixel values to be written at those locations. You can think of rasterization as consisting of two steps: rst, determine all of the pixel locations in a window that will be a ected by rendering the primitive, and then determine what value is to be written at each of the a ected locations.
2 If the pixel location that is to be written is not owned by the current drawable, the window system determines what to do with the incoming fragment. Most of the time, the fragment will be discarded. However, this test is de ned in such a way as to allow window-system-speci c behavior for conditions such as overlapping windows. Scissor Test IVL provides for a rectangular clipping region known as the scissor box.
3 Chapter 3: For Application Developers Naming Conventions Using IVL is easier if you remember some rules about the names used for functions, data types, and constants. For the purposes of writing portable code, it is also important to understand the naming conventions that are applied to extensions. IVL Routines Standard IVL Routines and Constants In IVL, most procedure names begin with the pre x gl. (This is the naming convention for OpenGL, the \parent" of IVL.
Window System Routines and Constants Some IVL routine names begin with the pre x glX (e.g., glXMakeCurrent). This pre x indicates that the routine is speci c to the X Window System environment. Applications that require portability to windowing environments other than X should isolate calls to these routines in the window system dependent portions of their code.
Hewlett-Packard has kept the number of proprietary procedures and constants to a minimum, but there are requirements to provide certain critical features that aren't de ned by the OpenGL standard or any existing OpenGL extension. HP has o ered these extensions to the OpenGL community and is encouraging other vendors to implement them. If any other vendor agrees to support them, the su xes may change from HP to EXT.
Naming Conventions Summary IVL Routines The following table summarizes the naming convention used with IVL routines: 3 Naming Convention gl* glX* *EXT *HP Example Meaning glEnable glXGetConfig glColorTableEXT glImageTransformParameterHP Standard OpenGL routine X Window System-speci c routine \Common" OpenGL Extension HP-speci c Extension IVL Data Type Names The following table summarizes the naming convention used with IVL data types: Naming Convention GL* GLX* Example GLint GLXContext Meaning St
IVL Constants The following table summarizes the naming convention used with IVL constants: Naming Convention GL_* GLX_* *_EXT *_HP Example GL_BLUE_SCALE GLX_RGBA GL_REDUCE_EXT GL_WRAP_BORDER_HP Meaning Standard OpenGL constant X Window System-speci c constant \Common" OpenGL extension constant HP-speci c extension constant Chapter 3: For Application Developers FINAL TRIM SIZE : 7.5 in x 9.
Types of IVL API Routines 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 3 The IVL API re ects an underlying state machine with attributes that can be modi ed to make it behave in di erent ways.
Operations (such as those that occur as a result of a call to glDrawPixels ) have a well-de ned 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 speci c, as are the data formats for input to and output from each pipeline stage.
Compiling and Linking IVL supports only the C programming language. The following example shows the command line used to compile the IVL program h lename i: cc -I /opt/graphics/IVL/include h lenamei.c \ -L/opt/graphics/IVL/lib -lIVL -lX11 -lm -o h lenamei 3 IVL Data Supported Data Formats A component is the fundamental building block for a pixel value. For instance, the red, green, blue, and alpha components make up an RGBA pixel value. A pixel value may consist of either one or four components.
IVL currently supports the following image data formats: GL_LUMINANCE : This is a one-component data format that stores luminance values. The data can be in an 8-bit or 16-bit format. GL_RGBA: This is a four-component data format that stores red, green, blue, and alpha values. In C language programs, declare this as a (one-dimensional) array of bytes so as to avoid byte-swapping problems with certain computer architectures. 3 Figure 3-1.
Implementation Restrictions Underlays Hewlett-Packard graphics hardware does not support underlays, nor does IVL emulate this functionality in software. Distributed Environments 3 HP does not currently support using IVL in a distributed (i.e., client/server) environment. Applications must run on the system where IVL is installed. Multi-Threaded Applications Use of IVL in a multi-threaded application is not currently supported. 3-10 Chapter 3: For Application Developers FINAL TRIM SIZE : 7.5 in x 9.
Programming Advice Query Data Values Attributes are stored within IVL in the machine type that is used during processing. Some state attributes are stored as oats, some as integers, some as boolean values, etc. With some IVL routines, applications can specify a state attribute as either a oat or an integer (for example, glColorTableParameterfvEXT and glColorTableParameterivEXT). In such cases, IVL converts and stores the passed value in the machine type that is used during processing.
Image Data Formatting 3 If you are calling glDrawPixels with 12-bit image data stored as 16-bit values, you might be tempted to think that you only need to load a look-up table that contains 4096 entries. However, IVL has no way of knowing that only 12 bits out of the 16 are signi cant. If you create a look-up table with 4096 entries, IVL will (conceptually, at least) map each incoming 16-bit value to a oat in the range [0,1].
Performance Tuning Tips IVL is designed to take advantage of the acceleration provided by workstations equipped with IVX hardware. IVL contains support for rendering with IVX and support for rendering with a software implementation of the pixel-processing pipeline. The software implementation is used when no IVX accelerator is present, or when the limits of the IVX hardware are exceeded.
Image sizes should be at least 824 pixels (width 2height ), and at most 32768232768 pixels. Only three clipping rectangles (including any enabled scissor speci cation) are supported in hardware. Additional clipping rectangles will cause rendering to be accomplished with multiple rendering passes through the hardware, so rendering performance may decease by more than half.
Error Handling IVL was designed to allow applications to achieve maximum performance. One such area is in the handling of error conditions. The error checking philosophy of IVL is fairly simple. IVL assumes that correctly working programs will pass valid parameter values. Exhaustive checking of all parameter values is usually only helpful when developing and debugging code. Such error checking would adversely impact the performance of an application that was fully debugged and working properly.
If the routine that generates the error returns a value, it will return zero. If the routine that generates the error modi es values through a pointer argument, no change is made to these values. The fact that the o ending routine is ignored can sometimes lead to mysterious program behavior.
It is a good idea to check the status of the current error value frequently in order to determine whether any errors have occurred. A good way to do this is to de ne a routine that checks for errors and then call this routine at the end of each rendering loop. For example: { /* start of main rendering loop */ /* ... */ /* ...
to provide values that are well within the range of oating point computation limits. 3 3-18 Chapter 3: For Application Developers FINAL TRIM SIZE : 7.5 in x 9.
Sample Code The IVL product includes some sample code to use as a learning tool. The /opt/graphics/IVL/demo directory contains les and data that demonstrate many of the features of IVL. There are smaller example programs in the /opt/graphics/IVL/examples directory. README les in these directories describe how to make and run the programs. (Remember that the example code that ships with IVL is in a read-only part of the le system. You should copy those les elsewhere before modifying and/or compiling them.
FINAL TRIM SIZE : 7.5 in x 9.
Chapter 4: Interaction with the X Window 4 System X Interaction IVL is designed to be \window system neutral." That is, it attempts to avoid duplicating capabilities that are typically supported by the native window system (e.g., window operations, interactive input, color maps, and overlays). The focus of IVL is to provide 2D imaging capabilities. By not including these operations in the API, IVL can coexist with a variety of window systems.
The following gure shows a block diagram of the X/IVL environment: 4 Figure 4-1. X Interaction The top of the above gure shows the application making calls to both Xlib and IVL. These two libraries cooperate in sending commands to the X server via a network connection. The boxes labeled \transport" indicate the network transport mechanism that actually transfers X protocol requests between the X client (the application) and the X server.
restriction if the application and the X server run on the same machine (as is often the case). There are several ways that data can be transferred more rapidly between processes if the processes are known to be running on the same system. IVL provides a method for the application to directly access the frame bu er hardware, provided that the application and the X server are running on the same processor.
X Windows Capabilities This section describes the steps involved in setting up an IVL program in the X environment. It then describes some of the IVL-speci c steps in more detail. Finally, it describes other, optional capabilities of IVL in an X environment. Setting Up an X/IVL Program 4 There are nine main steps for setting up an IVL application. They are listed below. (Note that it is good programming practice to check the return value from these functions and respond to any errors.) 1.
context was created. Note: using glXMakeCurrent for each image frame will reduce application performance. 7. Initialize rendering state If you need to set any IVL state values to something other than their default values, you would probably want to call an initialization routine prior to falling into your main event processing loop. IVL state attributes are designed to have reasonable defaults, so you probably will not need to initialize too many values. 8.
In the X environment, applications create windows (regions of the frame bu er that they can draw into) of a particular visual type. The visual type of a window de nes its behavior in some important ways, and it is through this mechanism that frame bu er features are exposed and software portability is de ned. To be speci c, an XVisualInfo structure in X de nes the visual type, screen, and depth of the window, as well as the number of bits of red, green, and blue information in a pixel.
will be used in conjunction with drawables of that type. The glXMakeCurrent routine checks to ensure that the rendering context you specify will work with the drawable you specify. If the drawable is not a visual type that will work with the rendering context you provide, IVL generates an error. With glXMakeCurrent, it is easy to change both the drawable and the rendering context at the same time. This is something that applications drawing into multiple windows may need to do quite often.
IVL and Backing Store IVL does not support rendering into backing store. Using Pixmaps It is also possible to use IVL to render into o -screen memory. X pixmaps are the basis for supporting o -screen rendering. X is limited in that it does not de ne visual types for pixmaps. In X, pixmaps are not necessarily associated with a screen; they have a depth, but no visual type. 4 Since IVL extends the notion of visual types by de ning additional visual attributes, the de nition of a pixmap is also extended.
Using the glFlush Routine Sometimes it is only necessary to tell IVL to ush any/all internal command bu ers so that all commands will be sent to the display hardware for processing. Use the glFlush routine to achieve this. This routine can be more e cient than glFinish. It does not wait until the results of all the commands are completed, but just issues commands to ush any and all bu ers in the system so that all pending commands are at least queued up for processing.
FINAL TRIM SIZE : 7.5 in x 9.
Chapter 5: IVL Implementation and 5 Device-Specific Information List of Devices The following device descriptions are included in this chapter: Entry-Level Color Graphics Devices: Internal color graphics HP VISUALIZE-EG (enhanced color) graphics The HCRX family of devices: HCRX-8 HCRX-8Z HP VISUALIZE-8 HCRX-24 HCRX-24Z HP VISUALIZE-24 The HCRX family of devices with IVX hardware: HCRX-8 with IVX HCRX-24 with IVX 5 See the Graphics Administration Guide for information about which workstation models supp
The following graphics device uses the hardware implementation of IVL whenever possible: HCRX-8 devices with IVX hardware. HCRX-24 devices with IVX hardware. Renderer Names If you set the name argument of glGetString to GL_RENDERER, IVL returns the name of the renderer used on the current workstation. The currently supported return values are: Internal Color Graphics Internal Color Graphics devices. Enhanced Color Graphics HP VISUALIZE-EG devices. HCRXB8 HCRX-8 workstations.
Entry-Level Color Graphics Devices The Internal Color Graphics device is identical in functionality to the HP VISUALIZE-EG device. The only di erence you should see is faster performance on the HP VISUALIZE-EG device. For the remainder of this chapter, information that describes Entry-Level Color Graphics devices applies to both the HP VISUALIZE-EG device and the Internal Color Graphics device.
Color Map Management Many applications use the default X11 color map. A \technicolor" e ect in the windows using the default color map may occur if a non-default color map is downloaded into the hardware color map that had previously contained the default color map.
HCRX Family Device Descriptions This section describes the HCRX family of devices, including the HP Visualize devices. This information applies to HCRX devices with or without IVX hardware. The following devices are included in the HCRX family: HCRX-8 HCRX-8Z HP VISUALIZE-8 HCRX-24 HCRX-24Z HP VISUALIZE-24 Note that only the HCRX-8 and HCRX-24 can support IVX hardware. The graphics accelerators on these devices do not a ect IVL performance or functionality.
Device Descriptions HCRX-8 Description The HCRX-8 device is a color display with two image-plane banks of 8 planes each. It supports 8 planes single-bu ered or 8/8 planes double-bu ered in the image planes. The image planes include two hardware color maps. The HCRX-8 also has 8 overlay planes. It includes two hardware color maps in the overlay planes. The overlay color maps do not support transparency by default. The default overlay visual has 256 entries per color map and no overlay transparency.
See the Graphics Administration Guide for information on pixel resolution and refresh rates for these and other devices. Supported Visuals The following visuals are supported by IVL on the HCRX-8 in the overlay planes: PseudoColor (depth 8) HCRX-8. The following visuals are supported by IVL on the HCRX-8 in the image planes: PseudoColor (depth 8) The following visuals are supported by IVL on the HCRX-24 in the overlay planes: PseudoColor (depth 8) HCRX-24.
By default, the default visual (where the root window and default color map reside) is in the overlay planes. Also by default, the overlay planes have the default X11 color map permanently locked into one hardware color map, and the second hardware color map is available for applications to use. Changing the Default Visual. You can change this default mode by moving the default visual into the image planes. Doing this will limit the number of hardware color maps available to you.
Unlike the HCRX-8 devices, overlay transparency is available by default on the HCRX-24 devices, and using overlay transparency on the HCRX-24 devices does not change the number of available hardware color maps. Overlay Transparency with HCRX-24 Devices. To create an overlay color map that supports transparency, create the color map using the visual that has transparency in its SERVER_OVERLAY_VISUALS property.
Image Visualization Accelerator Device Description This section describes behavior that is speci c to HCRX devices with Image Visualization Accelerator (IVX) hardware. See the \HCRX Family Device Descriptions" section for general information on these devices. Note that IVX is supported on the HCRX-8 and HCRX-24 devices. IVX is not supported on the HCRX-8Z, VISUALIZE-8, HCRX-24Z, and VISUALIZE-24 devices. Device Description 5 IVX accelerates many image processing operations in IVL.
Performance Hints Clip Rectangles The performance of IVX will degrade as four or more clip rectangles obscure your image. This can be caused by software-speci ed clip boundaries or overlapping windows. If these conditions exist, multiple passes will be required to draw the same image. Software versus Hardware-Accelerated Paths As previously mentioned, HCRX devices with IVX hardware will use the accelerated hardware implementation of IVL whenever possible.
FINAL TRIM SIZE : 7.5 in x 9.
A Appendix A: Quick Syntax Summary for IVL IVL Rendering Routines glClear(mask) glClearColor( red, green, blue, alpha) glColorTableEXT(target, internalFormat, width, format, type, *table) glColorTableParameterEXTfv( target, pname, *params) glColorTableParameterEXTiv( target, pname, *params) glConvolutionFilter2DEXT(target, internalFormat, width, height, format, type, *image) glConvolutionParameterfEXT( target, pname, param) glConvolutionParameterfvEXT(target, pname, *params) glConvolutionParameteriEXT( tar
glGetBooleanv(pname, *params) glGetColorTableEXT( target, format, type, *table) glGetColorTableParameterfvEXT( target, pname, *params) glGetColorTableParameterivEXT( target, pname, *params) glGetConvolutionFilterEXT( target, format, type, *image) glGetConvolutionParameterfvEXT( target, pname, *params) glGetConvolutionParameterivEXT( target, pname, *params) glGetDoublev( pname, *params) GLenum glGetError(void) glGetFloatv( pname, *params) glGetImageTransformParameterfvHP( target, pname, *params) glGetImageTr
glRasterPos2i(x, y) glRasterPos2iv(*v) glReadBuffer( mode) glReadPixels( x, y, width, height, format, type, *pixels) glScissor( x, y, width, height) GLX Utility Routines XVisualInfo* glXChooseVisual(*dpy, screen, *attribList) GLXContext glXCreateContext(* dpy, *vis, shareList, direct) GLXPixmap glXCreateGLXPixmap(*dpy, *vis, pixmap) glXDestroyContext(*dpy, ctx) glXDestroyGLXPixmap(* dpy, pix) int glXGetConfig(*dpy, *vis, attrib, *value) Bool glXMakeCurrent(* dpy, drawable, ctx) Bool glXQueryExtension(* dp
FINAL TRIM SIZE : 7.5 in x 9.
B Appendix B: HP-IVL Reference This portion of the document contains the reference pages for all the IVL routines. B Appendix B: HP-IVL Reference FINAL TRIM SIZE : 7.5 in x 9.
glClear Clear bu ers to preset values. C Specification void glClear(GLbitfield mask) Parameters mask Bitwise OR of masks that indicate the bu ers to be cleared. The only supported value for mask is GL_COLOR_BUFFER_BIT. Description glClear sets the drawing area of the window to values previously selected by glClearColor. The pixel ownership test and the scissor test a ect the operation of glClear. The scissor box bounds the cleared region.
glClear Associated Gets glGet (GL_COLOR_CLEAR_VALUE) See Also glClearColor , glDrawBuffer , glGet, glScissor. B Appendix B: HP-IVL Reference FINAL TRIM SIZE : 7.5 in x 9.
glClearColor Specify color values used for clearing the color bu ers. C Specification void glClearColor(GLclampf GLclampf GLclampf GLclampf red, green, blue, alpha) Parameters red , green , blue , alpha Specify the red, green, blue, and alpha values used when the color bu ers are cleared. Description glClearColor speci es the red , green , blue , and alpha values used by glClear to clear the color bu ers. Values speci ed by glClearColor are clamped to the range [0,1].
glColorTableEXT glColorTableEXT De ne a color lookup table. C Specification void glColorTableEXT(GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table) Parameters target internalFormat width format Must be GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP. The internal format of the color table.
glColorTableEXT type The type of the pixel data in table . The allowable values are GL_UNSIGNED_BYTE and GL_UNSIGNED_SHORT. Pointer to the pixel data that will be processed to build the color table. table Description glColorTableEXT is part of the EXT_color_table extension. At present, only the subset of EXT_color_table needed to support HP_image_transform has been implemented. If target is GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP, glColorTableEXT builds a color lookup table from an array of pixels.
glColorTableEXT Finally, the red, green, blue, alpha, and/or luminance components of the resulting pixels are stored in the color table. They form a one-dimensional table with indices in the range [0, width 01]. Notes For GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP, width must be a power of two. The combination of format GL_RGBA and type GL_UNSIGNED_SHORT is not supported in this release. Errors GL_INVALID_ENUM is generated if target is not one of the allowable values.
glColorTableParameter*vEXT Set color lookup table parameters. C Specification void glColorTableParameterfvEXT(GLenum target, GLenum pname, const GLfloat *params) void glColorTableParameterivEXT(GLenum target, GLenum pname, const GLint *params) Parameters target The target color table. Must be pname The symbolic name of a color lookup table parameter. Must be either GL_COLOR_TABLE_SCALE_EXT or GL_COLOR_TABLE_BIAS_EXT. A pointer to an array where the values of the parameters are stored.
glColorTableParameter*vEXT The pname argument must be GL_COLOR_TABLE_BIAS_EXT to set the bias terms. The params argument points to an array of four values, which are the bias terms for red, green, blue, and alpha, in that order. Calling glColorTableEXT whenever a table is loaded will result in applying the scale and bias values to the color lookup table values. The post-image transform color lookup table is speci ed by glColorTableEXT, using GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP as the target.
glConvolutionFilter2DEXT De ne a two-dimensional convolution lter. C Specification void glConvolutionFilter2DEXT(GLenum GLenum GLsizei GLsizei GLenum GLenum const GLvoid target, internalFormat, width, height, format, type, *image) Parameters target internalFormat width height format type image B Must be GL_CONVOLUTION_2D_EXT. The internal format of the convolution lter kernel. The allowable values are GL_LUMINANCE and GL_RGBA. The width of the pixel array referenced by image .
glConvolutionFilter2DEXT The R, G, B, and A components of each pixel are next scaled by the four 2D GL_CONVOLUTION_FILTER_SCALE_EXT parameters and biased by the four 2D GL_CONVOLUTION_FILTER_BIAS_EXT parameters. (The scale and bias parameters are set by glConvolutionParameterEXT using the GL_CONVOLUTION_2D_EXT target and the names GL_CONVOLUTION_FILTER_SCALE_EXT and GL_CONVOLUTION_FILTER_BIAS_EXT.
glConvolutionFilter2DEXT glGetConvolutionParameterEXT using target GL_CONVOLUTION_2D_EXT and name GL_MAX_CONVOLUTION_WIDTH_EXT. GL_INVALID_VALUE is generated if height is less than zero or greater than the maximum supported value. This value may be queried with glGetConvolutionParameterEXT using target GL_CONVOLUTION_2D_EXT and name GL_MAX_CONVOLUTION_HEIGHT_EXT. GL_INVALID_ENUM is generated if format is not one of the allowable values.
glConvolutionParameter*EXT glConvolutionParameter*EXT Set convolution parameters. C Specification (for Single-Value Attributes) void glConvolutionParameterfEXT(GLenum target, GLenum pname, GLfloat param) void glConvolutionParameteriEXT(GLenum target, GLenum pname, GLint param) Parameters target pname param The target for the convolution parameter. Must be GL_CONVOLUTION_2D_EXT. The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE_EXT. The parameter value.
glConvolutionParameter*EXT Parameters target pname params The target for the convolution parameter. Must be GL_CONVOLUTION_2D_EXT. The parameter to be set. Must be one of GL_CONVOLUTION_FILTER_SCALE_EXT, GL_CONVOLUTION_FILTER_BIAS_EXT, GL_CONVOLUTION_BORDER_MODE_EXT, GL_CONVOLUTION_BORDER_COLOR_HP. The parameter value. If pname is GL_CONVOLUTION_BORDER_MODE_EXT, params must be one of: GL_REDUCE_EXT , GL_IGNORE_BORDER_HP , GL_CONSTANT_BORDER_HP , GL_WRAP_BORDER_HP, or GL_REPLICATE_BORDER_HP.
glConvolutionParameter*EXT applied to convolution lter values whenever the convolution lter is set using glConvolutionFilter2DEXT. GL_CONVOLUTION_FILTER_BIAS_EXT If used, values pointed at by params become the current convolution lter bias values for the speci ed target. The convolution lter bias values are applied to convolution lter values whenever the convolution lter is set using glConvolutionFilter2DEXT.
glConvolutionParameter*EXT on the top and bottom edges will be the same as the corresponding pixels in the source image. GL_CONSTANT_BORDER_HP If the convolution border mode is GL_CONSTANT_BORDER_HP, the output image has the same dimensions as the source image, but the current convolution border color will be used as input for the convolution operation wherever no source image pixels exist. (This occurs in the Cw columns along the left and right edges and the Ch rows on the top and bottom edges.
glConvolutionParameter*EXT Defaults For each potential target, the default convolution lter bias values are: Default Values (1, 1, 1, 1) (0, 0, 0, 0) (0, 0, 0, 0) pname GL_CONVOLUTION_FILTER_SCALE_EXT GL_CONVOLUTION_FILTER_BIAS_EXT GL_CONVOLUTION_BORDER_COLOR_HP The default convolution border mode is GL_REDUCE_EXT. Errors GL_INVALID_ENUM is generated if target is not one of the allowable values. GL_INVALID_ENUM is generated if pname is not one of the allowable values.
glCopyPixels Copy pixels in the frame bu er. C Specification void glCopyPixels(GLint GLint GLsizei GLsizei GLenum x, y, width, height, type) Parameters x, y width , height type Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied. Specify the dimensions of the rectangular region of pixels to be copied. Both must be non-negative. Speci es the type of source bu er (color, depth, or stencil). Only the symbolic constant GL_COLOR is allowed.
glCopyPixels The type argument speci es the type of data to be copied. The only currently allowable value for type is GL_COLOR. Details for this data type are as follows: GL_COLOR RGBA colors are read from the bu er currently speci ed as the read source bu er (see glReadBuffer). The red, green, blue, and alpha components of each pixel that is read are converted to an internal oating-point format with unspeci ed precision. The conversion maps the largest representable component value to 1.
glCopyPixels Notes Modes speci ed by glPixelStore have no e ect on the operation of glCopyPixels. Errors GL_INVALID_ENUM is generated if type is not an accepted value. GL_INVALID_VALUE is generated if either width or height is negative.
glDrawBuffer glDrawBuffer Specify which color bu ers are to be drawn into. C Specification void glDrawBuffer(GLenum mode) Parameters mode Speci es which bu ers are to be drawn into. Symbolic constants GL_FRONT_LEFT, GL_BACK_LEFT, GL_FRONT, and GL_BACK are accepted. Description When colors are written to the frame bu er, they are written into the color bu ers speci ed by glDrawBuffer. The speci cations are as follows: GL_FRONT_LEFT Only the front left color bu er is written.
glDrawBuffer Defaults The default value of mode is GL_FRONT for single-bu ered contexts, and GL_BACK for double-bu ered contexts. Notes Stereo is not supported in the rst release of IVL. Hence, GL_FRONT_LEFT is equivalent to GL_FRONT, and GL_BACK_LEFT is equivalent to GL_BACK. Use the bu er names that allow your application to work properly should it ever be run on a system that supports stereo windows. Non-stereo applications will typically use GL_FRONT and GL_BACK.
glDrawPixels glDrawPixels Write a block of pixels to the frame bu er. C Specification void glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) Parameters width , height format type pixels Specify the dimensions of the pixel rectangle that will be written into the frame bu er. Speci es the format of the pixel data. Symbolic constants GL_RGBA and GL_LUMINANCE are accepted. Speci es the data type for pixels .
glDrawPixels to the next four-byte boundary. The four-byte row alignment is speci ed by glPixelStore with argument GL_UNPACK_ALIGNMENT, and it can be set to one, two, four, or eight bytes. Other pixel store parameters specify the number of bytes the read pointer should be advanced prior to reading the rst row of pixels, and the number of bytes to advance the read pointer after reading each row. Refer to the glPixelStore reference page for details on these options.
glDrawPixels GL_LUMINANCE is the current raster position, and the pixel was the i th pixel in the j th row. These pixel fragments are then written to the frame bu er. As pixels are written, they are subjected to the pixel ownership test and, if enabled, the scissor test. Each pixel is a single luminance component.
glDrawPixels See Also glColorTableEXT, glConvolutionParameterEXT, glCopyPixels, glEnable, glGet, glImageTransformParameterHP, glPixelStore, glPixelTransfer, glRasterPos, glReadPixels, glScissor. B B-26 Appendix B: HP-IVL Reference FINAL TRIM SIZE : 7.5 in x 9.
glEnable, glDisable glEnable, glDisable Enable or disable IVL capabilities. C Specification void glEnable(GLenum cap) void glDisable(GLenum cap) Parameters cap Speci es a symbolic constant indicating an IVL capability. Description glEnable and glDisable enable and disable various capabilities. Use glIsEnabled or glGet to determine the current setting of any capability.
glEnable, glDisable Errors GL_INVALID_ENUM is generated if cap is not one of the values listed above. See Also glColorTableEXT, glConvolutionFilter2DEXT, glImageTransformParameterHP, glIsEnabled, glScissor. B B-28 Appendix B: HP-IVL Reference FINAL TRIM SIZE : 7.5 in x 9.
glFinish glFinish Block until all IVL execution is complete. C Specification void glFinish(void void) Description glFinish does not return until the e ects of all previously called IVL commands are complete. Such e ects include all changes to IVL state, all changes to connection state, and all changes to the frame bu er contents. Notes glFinish may take more time than desired, since it must block until all rendering is completed. Whenever possible, use glFlush instead. See Also glFlush.
glFlush Force execution of IVL commands in nite time. C Specification void glFlush(void void) Description Implementations of IVL on di erent platforms may bu er commands in several di erent locations, including network bu ers and the graphics accelerator itself. glFlush empties all of these bu ers, causing all issued commands to be executed as quickly as they are accepted by the actual rendering engine.
glGet*v glGet*v Return the value or values of a selected parameter. C Specification void glGetBooleanv(GLenum pname, GLboolean *params) void glGetDoublev(GLenum pname, GLdouble *params) void glGetFloatv(GLenum pname, GLfloat *params) void glGetIntegerv(GLenum pname, GLint *params) Parameters pname params Speci es the parameter value to be returned. The symbolic constants in the list below are accepted. Returns the value or values of the speci ed parameter.
glGet*v maps 1.0 to the most positive representable integer value, and 01.0 to the most negative representable integer value. If glGetFloatv or glGetDoublev is called, Boolean values are returned as GL_TRUE or GL_FALSE, and integer values are converted to oating-point values. The following symbolic constants are accepted by pname : GL_ALPHA_BITS params returns one value, the number of alpha bitplanes in each color bu er.
glGet*v GL_GREEN_BITS params returns one value, the number of green bitplanes in each color bu er. GL_PACK_ALIGNMENT params returns one value, the byte alignment used for writing pixel data to memory. See glPixelStore . GL_PACK_ROW_LENGTH params returns one value, the row length used for writing pixel data to memory. See glPixelStore. GL_PACK_SKIP_PIXELS params returns one value, the number of pixel locations skipped before the rst pixel is written into memory. See glPixelStore.
glGet*v GL_POST_CONVOLUTION_RED_BIAS_EXT params returns a single value, the bias term to be added to red immediately after convolution. See glConvolutionFilter2DEXT. GL_POST_CONVOLUTION_RED_SCALE_EXT params returns a single value, the scale factor to be applied to red immediately after post-convolution scaling. See glConvolutionFilter2DEXT. GL_READ_BUFFER params returns one value, a symbolic constant indicating which color bu er is selected for reading. See glReadPixels .
glGet*v GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP params returns a single value indicating whether the post-image transformation color lookup table is enabled. See glColorTableEXT. GL_IMAGE_TRANSFORM_2D_HP params returns a single value indicating whether the 2D image transformation operation is enabled. See glImageTransformParameterHP. Many of the Boolean parameters can also be queried more easily using glIsEnabled . Errors GL_INVALID_ENUM is generated if pname is not an accepted value.
glGetColorTableEXT Retrieve the contents of a color lookup table. C Specification void glGetColorTableEXT(GLenum GLenum GLenum GLvoid target, format, type, *table) Parameters target format Must be GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP. The format in which the lookup table values are to be returned. The allowable values are GL_LUMINANCE and GL_RGBA. The data type in which the lookup table value are to be returned. The allowable values are GL_UNSIGNED_BYTE and GL_UNSIGNED_SHORT.
glGetColorTableEXT Internal Component red green blue alpha luminance Resulting Component red green blue alpha red Notes The combination of a format of GL_RGBA and a type of GL_UNSIGNED_SHORT is not currently supported. Errors GL_INVALID_ENUM is generated if target is not one of the allowable values. GL_INVALID_ENUM is generated if format is not one of the allowable values. GL_INVALID_ENUM is generated if type is not one of the allowable values.
glGetColorTableParameter*vEXT Get color lookup table parameters. C Specification void glGetColorTableParameterfvEXT(GLenum target, GLenum pname, GLfloat *params) void glGetColorTableParameterivEXT(GLenum target, GLenum pname, GLint *params) Parameters target The target color table. Must be pname The symbolic name of a color lookup table parameter.
glGetColorTableParameter*vEXT Description glGetColorTableParameterEXT is part of the EXT_color_table extension, which adds several color lookup tables to the pixel transfer path. At present, only the subset of EXT_color_table needed to support the HP_image_transform extension has been implemented. glGetColorTableParameterEXT retrieves the color table scale and bias parameters set by glColorTableParameterEXT, as well as the format and size parameters set by glColorTableEXT.
glGetColorTableParameter*vEXT Errors GL_INVALID_ENUM is generated if target or pname is not an acceptable value. See Also glColorTableEXT, glColorTableParameterEXT. B B-40 Appendix B: HP-IVL Reference FINAL TRIM SIZE : 7.5 in x 9.
glGetConvolutionFilterEXT glGetConvolutionFilterEXT Get current 2D convolution lter kernel. C Specification void glGetConvolutionFilterEXT(GLenum target, GLenum format, GLenum type, GLvoid *image) Parameters target format type image The lter to be retrieved. Must be GL_CONVOLUTION_2D_EXT. Format of the output image. Must be one of GL_RGBA or GL_LUMINANCE . Data type of components in the output image. Must be GL_FLOAT. Pointer to storage for the output image.
glGetConvolutionFilterEXT Internal Resulting Component Component red red green green blue blue alpha alpha luminance red Errors GL_INVALID_ENUM is generated if target is not one of the allowable values. GL_INVALID_ENUM is generated if format is not one of the allowable values. GL_INVALID_ENUM is generated if type is not one of the allowable values. Associated Gets glGetConvolutionParameterEXT See Also glConvolutionFilter2DEXT, glConvolutionParameterEXT, glGetConvolutionParameterEXT.
glGetConvolutionParameter*vEXT glGetConvolutionParameter*vEXT Get convolution parameters. C Specification void glGetConvolutionParameterfvEXT(GLenum target, GLenum pname, GLfloat *params) void glGetConvolutionParameterivEXT(GLenum target, GLenum pname, GLint *params) Parameters target pname params The lter whose parameters are to be retrieved. Must be GL_CONVOLUTION_2D_EXT. The parameter to be retrieved.
glGetConvolutionParameter*vEXT Description glGetConvolutionParameterEXT retrieves convolution parameters. The target argument determines which convolution lter is queried, while pname determines which parameter is returned: GL_CONVOLUTION_BORDER_MODE_EXT The convolution border mode. See glConvolutionParameterEXT for a list of border modes. GL_CONVOLUTION_FILTER_SCALE_EXT The current lter scale factors.
glGetConvolutionParameter*vEXT Errors GL_INVALID_ENUM is generated if target is not one of the allowable values. GL_INVALID_ENUM is generated if pname is not one of the allowable values. See Also glConvolutionFilter2DEXT, glConvolutionParameterEXT, glGetConvolutionFilterEXT. B Appendix B: HP-IVL Reference FINAL TRIM SIZE : 7.5 in x 9.
glGetError Return error information. C Specification GLenum glGetError(void void) Description glGetError returns the value of the error ag. Each detectable error is assigned a numeric code and symbolic name. When an error occurs, the error ag is set to the appropriate error code value. No other errors are recorded until glGetError is called, the error code is returned, and the ag is reset to GL_NO_ERROR.
glGetError GL_INVALID_OPERATION The speci ed operation is not allowed in the current state. The o ending command is ignored, having no side e ect other than to set the error ag. GL_OUT_OF_MEMORY There is not enough memory left to execute the command. The state of IVL is unde ned, except for the state of the error ags, after this error is recorded. GL_TABLE_TOO_LARGE_EXT The implementation cannot accommodate a table of the size requested by glColorTableEXT.
glGetImageTransformParameter*vHP Get image transformation parameters. C Specification void glGetImageTransformParameterfvHP(GLenum target, GLenum pname, GLfloat *params) void glGetImageTransformParameterivHP(GLenum target, GLenum pname, GLint *params) Parameters target The target image transformation. Must be GL_IMAGE_TRANSFORM_2D_HP. The parameter to be queried.
glGetImageTransformParameter*vHP Description glGetImageTransformParameterHP is part of the HP_image_transform exten- sion, which adds image scaling, rotation, translation, and window level mapping to the pixel transfer path. glGetImageTransformParameterHP retrieves the image transformation parameters set by glImageTransformParameterHP. The target argument must be GL_IMAGE_TRANSFORM_2D_HP. The pname argument may be one of the symbolic constants in the following table.
glGetString Returns a string describing the current IVL connection. C Specification const GLubyte * glGetString(GLenum name) Parameters name Speci es a symbolic constant, one of GL_VENDOR, GL_RENDERER, GL_VERSION, or GL_EXTENSIONS. Description glGetString returns a pointer to a static string describing some aspect of the current IVL connection. The name argument can be one of the following: GL_VENDOR Returns the company responsible for this OpenGL implementation.
glGetString The GL_VERSION string begins with a version number. The version number is of the form hmajor number i.hminor number i or hmajor number i.hminor number i.hrelease number i. Vendor-speci c information may follow the version number. Its format depends on the implementation, but a space always separates the version number and the vendor-speci c information. All strings are null-terminated. Notes If an error is generated, glGetString returns zero.
glImageTransformParameter*HP Set image transformation parameters. C Specification (for Single-Value Attributes) void glImageTransformParameterfHP(GLenum target, GLenum pname, GLfloat param) void glImageTransformParameteriHP(GLenum target, GLenum pname, GLint param) Parameters target pname B param B-52 The target image transformation. Must be GL_IMAGE_TRANSFORM_2D_HP. The parameter to be set.
glImageTransformParameter*HP C Specification (for Multiple-Value Attributes) void glImageTransformParameterfvHP(GLenum target, GLenum pname, const GLfloat *params) void glImageTransformParameterivHP(GLenum target, GLenum pname, const GLint *params) Parameters target pname params The target image transformation. Must be GL_IMAGE_TRANSFORM_2D_HP. The parameter to be set.
glImageTransformParameter*HP Description glImageTransformParameterHP is part of the HP_image_transform extension, which adds image scaling, rotation, translation, and window level mapping to the pixel transfer path. Parameter values GL_IMAGE_SCALE_X_HP and GL_IMAGE_SCALE_Y_HP establish the scaling factors.
glImageTransformParameter*HP about the origin by the speci ed angle. Next, the image is translated by Rx in the x direction and Ry in the y direction. Finally, the scaled and rotated image is translated by the speci ed translation factors. Resampling occurs after the scaling/rotation/translation operations have been applied.
glImageTransformParameter*HP Errors GL_INVALID_ENUM is generated if target or pname is not an acceptable value. GL_INVALID_ENUM is generated if pname is GL_IMAGE_MAG_FILTER_HP and the speci ed parameter value is not one of GL_NEAREST, GL_LINEAR, or GL_CUBIC_HP. GL_INVALID_ENUM is generated if pname is GL_IMAGE_MIN_FILTER_HP and the speci ed parameter value is not one of GL_NEAREST, GL_LINEAR, or GL_CUBIC_HP.
glIsEnabled glIsEnabled Test whether a capability is enabled. C Specification GLboolean glIsEnabled(GLenum cap) Parameters cap Speci es a symbolic constant indicating an IVL capability. Description glIsEnabled returns GL_TRUE if cap is an enabled capability and returns GL_FALSE otherwise. The following capabilities are accepted for cap : GL_CONVOLUTION_2D_EXT See glConvolutionFilter2DEXT. GL_SCISSOR_TEST See glScissor.
glIsEnabled Errors GL_INVALID_ENUM is generated if cap is not an accepted value. See Also glConvolutionFilter2DEXT, glEnable, glImageTransformParameterHP, glScissor. B B-58 Appendix B: HP-IVL Reference FINAL TRIM SIZE : 7.5 in x 9.
glPixelStore* glPixelStore* Set pixel storage modes. C Specification void glPixelStoref(GLenum pname, GLfloat param) void glPixelStorei(GLenum pname, GLint param) Parameters pname param Speci es the symbolic name of the parameter to be set. Four values a ect the packing of pixel data into memory: GL_PACK_ROW_LENGTH , GL_PACK_SKIP_PIXELS , GL_PACK_SKIP_ROWS, and GL_PACK_ALIGNMENT.
glPixelStore* pixel data is returned to client memory, and are therefore signi cant only for glReadPixels commands. They are as follows: GL_PACK_ROW_LENGTH If greater than zero, GL_PACK_ROW_LENGTH de nes the number of pixels in a row.
glPixelStore* GL_UNPACK_ROW_LENGTH If greater than zero, GL_UNPACK_ROW_LENGTH de nes the number of pixels in a row.
glPixelStore* pname Type GL_PACK_ROW_LENGTH GL_PACK_SKIP_ROWS GL_PACK_SKIP_PIXELS GL_PACK_ALIGNMENT GL_UNPACK_ROW_LENGTH GL_UNPACK_SKIP_ROWS GL_UNPACK_SKIP_PIXELS GL_UNPACK_ALIGNMENT integer integer integer integer integer integer integer integer Initial Value 0 0 0 4 0 0 0 4 Valid Range [0,1) [0,1) [0,1) 1, 2, 4, or 8 [0,1) [0,1) [0,1) 1, 2, 4, or 8 glPixelStoref can be used to set any pixel store parameter. Likewise, glPixelStorei can also be used to set any of the pixel store parameters.
glPixelTransfer* glPixelTransfer* Set pixel transfer modes. C Specification void glPixelTransferf(GLenum pname, GLfloat param) void glPixelTransferi(GLenum pname, GLint param) Parameters pname Speci es the symbolic name of the pixel transfer parameter to be set.
glPixelTransfer* Pixel transfer operations are used to modify the values of pixels as they are transferred by a copy, read, or store operation. Color pixels are made up of four oating-point values with unspeci ed mantissa and exponent sizes, scaled such that 0.0 represents zero intensity and 1.0 represents full intensity. In the rst release of IVL, the only pixel transfer operation that is de ned is the post-convolution scale and bias.
glPixelTransfer* glPixelTransferi can be used to set any of the pixel transfer parameters. The param argument is converted to oating point before being assigned to real-valued parameters. Errors GL_INVALID_ENUM is generated if pname is not an accepted value.
glRasterPos* Specify the raster position for pixel operations. C Specification (Discrete Coordinate Values) void glRasterPos2i(GLint x, GLint y) Parameters x, y Specify the x and y object coordinates (if present) for the raster position. C Specification (Vector of Coordinate Values) void glRasterPos2iv(const GLint *v) Parameters v Speci es a pointer to an array of two elements, specifying x and y coordinates, respectively. Description IVL maintains the current position in window coordinates.
glRasterPos* and the GL_CURRENT_RASTER_POSITION_VALID ag is set. If the vertex is culled, then the valid bit is cleared and the current raster position and its associated data are unde ned. Defaults Initially, the current raster position has (x,y,z,w) set to (0,0,0,1), and the valid bit is set. Notes The raster position is modi ed by glRasterPos.
glReadBuffer Select a color bu er source for pixels. C Specification void glReadBuffer(GLenum mode) Parameters mode Speci es a color bu er. Accepted values are GL_FRONT_LEFT, GL_BACK_LEFT, GL_FRONT, and GL_BACK. Description glReadBuffer speci es a color bu er as the source for subsequent glCopyPixels and glReadPixels commands. The mode argument can be one of four prede ned values.
glReadBuffer Errors GL_INVALID_ENUM is generated if mode is not one of the accepted values. GL_INVALID_OPERATION is generated if mode speci es a bu er that does not exist. Associated Gets glGet (GL_READ_BUFFER) See Also glCopyPixels , glDrawBuffer , glReadPixels . B Appendix B: HP-IVL Reference FINAL TRIM SIZE : 7.5 in x 9.
glReadPixels Read a block of pixels from the frame bu er. C Specification void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) Parameters x, y width , height format type pixels Specify the window coordinates of the rst pixel that is read from the frame bu er. This location is the lower left corner of a rectangular block of pixels. Specify the dimensions of the pixel rectangle.
glReadPixels glReadPixels returns values from each pixel with lower left-hand corner at (x +i , y +j ) for 0
glReadPixels Notes For this release, the combination of format GL_RGBA and type GL_UNSIGNED_SHORT is not supported. Values for pixels that lie outside the window connected to the current GL context are unde ned. If an error is generated, no change is made to the contents of pixels . Errors GL_INVALID_ENUM is generated if format or type is not an accepted value. GL_INVALID_VALUE is generated if either width or height is negative. See Also glCopyPixels, glDrawPixels, glPixelStore, glReadBuffer.
glScissor glScissor De ne the scissor box. C Specification void glScissor(GLint GLint GLsizei GLsizei x, y, width, height) Parameters x, y width , height Specify the lower left corner of the scissor box. Initially (0,0). Specify the width and height of the scissor box. When an IVL context is rst attached to a window, width and height are set to the dimensions of that window. Description The glScissor routine de nes a rectangle, called the scissor box, in window coordinates.
glScissor Errors GL_INVALID_VALUE is generated if either width or height is negative. Associated Gets glGet (GL_SCISSOR_BOX) glIsEnabled (GL_SCISSOR_TEST) See Also glDisable, glEnable. B B-74 Appendix B: HP-IVL Reference FINAL TRIM SIZE : 7.5 in x 9.
glX.Intro glX.Intro Introduction to IVL in the X window system. Overview The Image Visualization Library (IVL) is a high-performance 2-D-oriented renderer. It is available in the X window system through the GLX extension. (The initial IVL implementation includes a subset of the GLX calls de ned for use with the OpenGL API.) Use glXQueryExtension to establish whether the GLX extension is supported by an X server. GLX extended servers make a subset of their visuals available for IVL rendering.
glX.Intro Notes A color map must be created and passed to XCreateWindow . See the example code above. A GLX context must be created and attached to an X drawable before IVL commands can be executed. IVL commands issued while no context/drawable pair is current are ignored. Exposure events indicate that all bu ers associated with the speci ed window may be damaged and should be repainted.
glX.Intro { } return (e->type == MapNotify) && (e->xmap.window == (Window)arg); int main (int argc, char ** argv) { Display * dpy; XVisualInfo * vis; Colormap cmap; XSetWindowAttributes swa; Window win; GLXContext ctx; XEvent event; int swap_flag = FALSE; /* Get a connection. */ dpy = XOpenDisplay(0); /* Get an appropriate visual.
glX.Intro /* Connect the context to the window. */ ``glXMakeCurrent'' (dpy, win, ctx); /* Clear the buffer. */ ``glClearColor'' (1, 1, 0, 1); ``glClear'' (GL_COLOR_BUFFER_BIT); ``glFlush'' (); if (swap_flag) ``glXSwapBuffers'' (dpy, win); } /* Wait a while. */ sleep (10); See Also glXCreateContext, glXCreateGLXPixmap, glXDestroyContext, glXGetConfig, glXSwapBuffers, XCreateColormap, XCreateWindow, XSync. B B-78 Appendix B: HP-IVL Reference FINAL TRIM SIZE : 7.5 in x 9.
glXChooseVisual glXChooseVisual Return a visual that matches speci ed attributes. C Specification XVisualInfo* glXChooseVisual(Display *dpy, int screen, int *attribList) Parameters dpy screen attribList Speci Speci Speci pairs. es the connection to the X server. es the screen number. es a list of Boolean attributes and integer attribute/value The last attribute must be None.
glXChooseVisual GLX_DOUBLEBUFFER If present, only double-bu ered visuals are considered. Otherwise, only singlebu ered visuals are considered. GLX_RED_SIZE Must be followed by a non-negative minimum size speci cation. If this value is zero, the smallest available red bu er is preferred. Otherwise, the largest available red bu er of at least the minimum size is preferred. GLX_GREEN_SIZE Must be followed by a non-negative minimum size speci cation.
glXChooseVisual Examples attribList = {GLX_RGBA, GLX_RED_SIZE, 4, GLX_GREEN_SIZE, 4, GLX_BLUE_SIZE, 4, None}; Speci es a single-bu ered RGBA visual in the normal frame bu er, not an overlay or underlay bu er. The returned visual supports at least four bits each of red, green, and blue, and possibly no bits of alpha. It does not support doublebu ering. Notes XVisualInfo is de ned in Xutil.h. It is a structure that includes visual, visual ID, screen, and depth elements.
glXCreateContext Create a new GLX rendering context. C Specification GLXContext glXCreateContext(Display XVisualInfo GLXContext Bool *dpy, *vis, shareList, direct) Parameters dpy vis shareList Speci es the connection to the X server. Speci es the visual that de nes the frame bu er resources available to the rendering context. It is a pointer to an XVisualInfo structure, not a visual ID or a pointer to a Visual. Speci es the context with which to share display lists.
glXCreateContext implementations. However, direct rendering contexts cannot be shared outside a single process, and they may not support rendering to GLX pixmaps. Notes XVisualInfo is de ned in Xutil.h. It is a structure that includes visual, visual ID, screen, and depth elements. A process is a single execution environment, implemented in a single address space, consisting of one or more threads.
glXCreateGLXPixmap Create an o -screen GLX rendering area. C Specification GLXPixmap glXCreateGLXPixmap(Display *dpy, XVisualInfo *vis, Pixmap pixmap) Parameters dpy vis pixmap Speci es the connection to the X server. Speci es the visual that de nes the structure of the rendering area. It is a pointer to an XVisualInfo structure, not a visual ID or a pointer to a Visual. Speci es the X pixmap that will be used as the front left color bu er of the o -screen rendering area.
glXCreateGLXPixmap Notes XVisualInfo is de ned in Xutil.h. It is a structure that includes visual, visual ID, screen, and depth elements. Errors BadMatch is generated if the depth of pixmap does not match the GLX_BUFFER_SIZE value of vis , or if pixmap was not created with respect to the same screen as vis . BadValue is generated if vis is not a valid XVisualInfo pointer (e.g., if the GLX implementation does not support this visual). BadPixmap is generated if pixmap is not a valid pixmap.
glXDestroyContext Destroy a GLX context. C Specification void glXDestroyContext(Display *dpy, GLXContext ctx) Parameters dpy ctx Speci es the connection to the X server. Speci es the GLX context to be destroyed. Description If the speci ed GLX rendering context ctx is not current to any thread, glXDestroyContext destroys it immediately. Otherwise, ctx is destroyed when it is no longer current to any thread. In either case, the resource ID referenced by ctx is freed immediately.
glXDestroyGLXPixmap glXDestroyGLXPixmap Destroy a GLX pixmap. C Specification void glXDestroyGLXPixmap(Display *dpy, GLXPixmap pix) Parameters dpy pix Speci es the connection to the X server. Speci es the GLX pixmap to be destroyed. Description If the speci ed GLX pixmap, pix , is not current to any client, glXDestroyGLXPixmap destroys it immediately. Otherwise, pix is destroyed when it is no longer current to any client. In either case, the resource ID is freed immediately.
glXGetConfig Return information about GLX visuals. C Specification int glXGetConfig(Display XVisualInfo int int *dpy, *vis, attrib, *value) Parameters dpy vis Speci es the connection to the X server. Speci es the visual to be queried. It is a pointer to an XVisualInfo structure, not a visual ID or a pointer to a Visual. Speci es the visual attribute to be returned. Returns the requested value.
glXGetConfig GLX_RGBA True if the visual supports RGBA rendering, False otherwise. GLX_DOUBLEBUFFER True if color bu ers exist in front/back pairs that can be swapped, False otherwise. GLX_RED_SIZE Number of bits of red stored in each color bu er. Unde ned if GLX_RGBA is False. GLX_GREEN_SIZE Number of bits of green stored in each color bu er. Unde ned if GLX_RGBA is False. GLX_BLUE_SIZE Number of bits of blue stored in each color bu er. Unde ned if GLX_RGBA is False.
glXGetConfig Errors GLX_NO_EXTENSION is returned if dpy does not support the GLX extension. GLX_BAD_SCREEN is returned if the screen of vis does not correspond to a screen. GLX_BAD_ATTRIB is returned if attrib is not a valid GLX attribute. GLX_BAD_VISUAL is returned if vis doesn't support GLX and an attribute other than GLX_USE_GL is requested. See Also glXChooseVisual, glXCreateContext. B B-90 Appendix B: HP-IVL Reference FINAL TRIM SIZE : 7.5 in x 9.
glXMakeCurrent glXMakeCurrent Attach a GLX context to a window or a GLX pixmap. C Specification Bool glXMakeCurrent(Display *dpy, GLXDrawable drawable, GLXContext ctx) Parameters dpy drawable ctx Speci es the connection to the X server. Speci es a GLX drawable. Must be either an X window ID or a GLX pixmap ID. Speci es a GLX rendering context that is to be attached to drawable .
glXMakeCurrent glXMakeCurrent returns True if it is successful, False otherwise. If False is returned, the previously current rendering context and drawable (if any) remain unchanged. Notes A process is a single-execution environment, implemented in a single address space, consisting of one or more threads. A thread is one of a set of subprocesses that share a single address space, but maintain separate program counters, stack spaces, and other related global data.
glXQueryExtension glXQueryExtension Indicate whether the GLX extension is supported. C Specification Bool glXQueryExtension(Display *dpy, int *errorBase, int *eventBase) Parameters dpy errorBase eventBase Speci es the connection to the X server. Returns the base error code of the GLX server extension. Returns the base event code of the GLX server extension. Description glXQueryExtension returns True if the X server of connection dpy supports the GLX extension, False otherwise.
glXSwapBuffers Exchange front and back bu ers. C Specification void glXSwapBuffers(Display *dpy, GLXDrawable drawable) Parameters dpy drawable Speci es the connection to the X server. Speci es the drawable whose bu ers are to be swapped. Description glXSwapBuffers promotes the contents of the back bu er of drawable to become the contents of the front bu er of drawable . The contents of the back bu er then become unde ned.
glXSwapBuffers Errors GLX_BAD_DRAWABLE is generated if drawable is not a valid GLX drawable. GLX_BAD_CURRENT_WINDOW is generated if dpy and drawable are respectively the display and drawable associated with the current context of the calling thread/process, and drawable identi es a window that is no longer valid. See Also glFlush. B Appendix B: HP-IVL Reference FINAL TRIM SIZE : 7.5 in x 9.
FINAL TRIM SIZE : 7.5 in x 9.
Glossary Glossary API Application Programming Interface. The API is the set of subroutine calls that is available for use by an application programmer. Back Bu er The undisplayed bu er in a double-bu er pair. See double-bu ering; compare with front bu er. Bitplane A rectangular array of bits mapped one-to-one with pixels. The frame bu er is a stack of bitplanes. Client State IVL state that is not stored in the rendering context. For example, the current drawable and the current rendering context.
Glossary Color Map A hardware implementation of a color look-up table. The frame bu er hardware uses each 8-bit pixel value as an index into this table when refreshing the physical display. Color Model The set of rules for manipulating color values in a processing system. IVL can be described as using an RGBA color model since it is based on processing pixel values with red, green, blue, and alpha components. Color Table An array that is used in a color look-up operation.
Glossary Current Drawable The X window or GLX pixmap that contains the bu ers that will be used for all subsequent rendering operations. Current Draw Bu er The bu er that is the target of all subsequent pixel-write operations. This term is sometimes shortened to \draw bu er". Current Raster Position The location at which to draw a pixel rectangle. This value is in window coordinates. This term is sometimes shortened to \raster position".
Glossary Filter Another name for Convolution Filter. Fragment A data structure containing pixel information which is a product of the pixel rasterization operation. A fragment consists of a color value and the coordinate of the frame bu er location at which that color value is to be written. Fragment Operations Operations that are applied to a fragment prior to writing the fragment's color value into the frame bu er.
Glossary pixel values are stored as luminance (one-component) values, and GL_RGBA, which indicates that pixel values are stored as red, green, blue, and alpha (four-component) values. Image Transform The stage of the IVL pixel processing pipeline that provides support for image scaling (zoom), rotating, translation (pan), and interpolation. Image Type The storage unit for each component of a pixel. Pixel components may be either GL_UNSIGNED_BYTE or GL_UNSIGNED_SHORT.
Glossary Machine Data Type The data types that are \natural" for a computer architecture. The machine data types for a workstation may include signed and unsigned 8-bit values, signed and unsigned 16-bit values, signed and unsigned 32-bit values, 32-bit oating point values, and 64-bit oating point values. Manhattan Distance The distance between two points on a grid addressed by integer coordinates. This distance is the sum of the horizontal distance plus the vertical distance between the two points.
Glossary Pixel Rasterization The process by which the pixels of an image are converted to fragments, each corresponding to a pixel in the frame bu er. Pixel Rectangle A rectangular array of pixels, either in client memory or in the frame bu er. Used synonymously with \image". Pixel Transfer A set of operations that are applied whenever pixels are transferred from one place to another in the IVL environment. The operations include color table lookup, convolution, and image transformation.
Glossary Reconstruction The process that maps the discrete image samples computed by resampling into a continuous surface. In this process, pixel values between the sample points are computed using a method such as bilinear or bicubic interpolation. Compare with Resampling. Rendering Context The data structure that encapsulates server state information. The majority of IVL state is stored in the rendering context. Resampling The process of transforming a sampled image from one coordinate system to another.
Glossary Single-Bu ering A mode in which the same bu er is used simultaneously for drawing and displaying an image. In this mode, animations may reveal slight halting between frames. Compare with double-bu ering. Stereoscopic Window A window that contains both a left eye view and a right eye view to support stereo viewing. When the proper viewing equipment is used, the user will see a three-dimensional, stereo image. Subimage A rectangular portion of a larger image.
FINAL TRIM SIZE : 7.5 in x 9.
Index Index A Abstract Machine, 2-10 Angle of Rotation, 5-10 API, Glossary-1 Architecture Hardware and Software, 2-9 Attributes, 3-6 Audience and Scope, 0-2 B Back Bu er, Glossary-1 Bitplane, Glossary-1 Bu er Back, Glossary-1 Color, Glossary-1 Draw, Glossary-3 Frame, Glossary-4 Front, Glossary-4 Logical, Glossary-5 Read, Glossary-7 C CDE and VUE, 1-3 Client State, Glossary-1 Clipping, Glossary-1 Clip Rectangles, 5-11 Color Bu er, Glossary-1 Color Map, Glossary-2 Color Map Management, 5-4, 5-7 Color Mode
GL_COLOR_TABLE_SCALE_EXT, B-6, GL_FLOAT, B-10, B-41 GL_FRONT, B-21, B-22, B-68 GL_FRONT_LEFT, B-21, B-22, B-68 GL_GREEN_BITS, B-32 GL_IGNORE_BORDER_HP, B-13, B-14, GL_COLOR_TABLE_WIDTH_EXT, B-38, GL_IMAGE_CUBIC_WEIGHT_HP, B-48, GL_CONSTANT_BORDER_HP , B-13, B-14, GL_IMAGE_MAG_FILTER_HP, B-48, GL_CONVOLUTION_2D_EXT , B-10, B-11, GL_IMAGE_MIN_FILTER_HP, B-48, GL_COLOR_TABLE_LUMINANCE _SIZE_EXT, B-38, B-39 GL_COLOR_TABLE_RED_SIZE_EXT , B-38, B-39 B-8, B-38, B-39 B-39 B-15, B-16, B-17 B-12, B-13, B-
Index GL_LUMINANCE, B-5, B-6, B-10, B-11, B-23, B-25, B-36, B-41, B-70, B-71 GL_LUMINANCE12_EXT, B-5 GL_LUMINANCE16_EXT, B-5 GL_LUMINANCE4_EXT, B-5, B-6 GL_LUMINANCE8_EXT, B-5 GL_MAX_CONVOLUTION_HEIGHT_EXT, B-12, B-43, B-44 GL_MAX_CONVOLUTION_WIDTH_EXT, B-11, B-43, B-44 GL_NEAREST, B-52, B-53, B-55, B-56 GL_NO_ERROR, B-46 GL_OUT_OF_MEMORY , B-47 GL_PACK_ALIGNMENT, B-33, B-59, B-60, B-61, B-62 GL_PACK_ROW_LENGTH, B-33, B-59, B-60, B-61, B-62, B-71 GL_PACK_SKIP_PIXELS, B-33, B-59, B-60, B-61, B-62
GL_UNPACK_SKIP_ROWS, B-34, B-59, B-61, B-62 GL_UNSIGNED_BYTE , B-5, B-23, B-36, B-70, B-71 GL_UNSIGNED_SHORT , B-5, B-7, B-23, B-25, B-36, B-37, B-70, B-71, B-72 GL_VENDOR, B-50 GL_VERSION, B-50 GL_WRAP_BORDER_HP , B-13, B-14, B-16, B-17 GLX_ALPHA_SIZE, B-80, B-88, B-89 GLX_BAD_ATTRIB, B-90 GLX_BAD_CONTEXT, B-86, B-92 GLX_BAD_CURRENT_WINDOW , B-92, B-95 GLX_BAD_DRAWABLE , B-92, B-95 GLX_BAD_PIXMAP, B-87 GLX_BAD_SCREEN, B-90 GLX_BAD_VISUAL, B-90 GLX_BLUE_SIZE, B-80, B-88, B-89 GLX_BUFFER_SIZE, B-81, B-8
Index Organization, 2-5 Resolution, 2-22 Writing, 2-17 Front Bu er, Glossary-4 G General Performance Hints, 3-13 GL_ALPHA_BITS constant, B-32 GL_BACK constant, B-21, B-22, B-68 GL_BACK_LEFT constant, B-21, B-22, B-68 GL_BLUE_BITS constant, B-32 GL_COLOR_BUFFER_BIT constant, B-2 GL_COLOR_CLEAR_VALUE constant, B-3, B-4, B-32 GL_COLOR constant, B-18, B-19 GL_COLOR_TABLE_ALPHA_SIZE_EXT constant, B-38, B-39 GL_COLOR_TABLE_BIAS_EXT constant, B-6, B-8, B-38, B-39 GL_COLOR_TABLE_BLUE_SIZE_EXT constant, B-38,
GL_IMAGE_MAG_FILTER_HP constant, B-48, B-49, B-52, B-53, B-54, B-56 GL_IMAGE_MIN_FILTER_HP constant, B-48, B-49, B-52, B-53, B-54, B-56 GL_IMAGE_ROTATE_ANGLE_HP constant, B-48, B-49, B-52, B-53, B-54 GL_IMAGE_ROTATE_ORIGIN_X_HP constant, B-48, B-49, B-52, B-53, B-54 GL_IMAGE_ROTATE_ORIGIN_Y_HP constant, B-48, B-49, B-52, B-53, B-54 GL_IMAGE_SCALE_X_HP constant, B-48, B-49, B-52, B-53, B-54 GL_IMAGE_SCALE_Y_HP constant, B-48, B-49, B-52, B-53, B-54 GL_IMAGE_TRANSFORM_2D_HP constant, B-27, B-35, B-48, B-4
Index GL_POST_IMAGE_TRANSFORM_ COLOR_TABLE_HP constant, B-5, B-6, B-7, B-8, B-9, B-27, B-34, B-36, B-38, B-39, B-57 GL_READ_BUFFER constant, B-34, B-69 GL_RED_BITS constant, B-34 GL_REDUCE_EXT constant, B-13, B-14, B-15, B-17 GL_RENDERER constant, B-50 GL_REPLICATE_BORDER_HP constant, B-13, B-14, B-16, B-17 GL_RGB10_A2_EXT constant, B-5 GL_RGB5_A1_EXT constant, B-5 GL_RGBA12_EXT constant, B-5 GL_RGBA16_EXT constant, B-5 GL_RGBA2_EXT constant, B-5 GL_RGBA4_EXT constant, B-5 GL_RGBA8_EXT constant, B-5, B-6
H Hardware Architecture, 2-9 HCRX-24, 5-7 HCRX-24 Description, 5-6 HCRX-8, 5-7 HCRX-8 Description, 5-6 HCRX Family Device Descriptions, 5-5 High-Level IVL Overview, 2-7 HP Image Library, 2-3 HP-PHIGS, 2-3 I If You Have Incompatible Software, 1-4 Image, Glossary-4 Data Formatting, 3-12 Transform, 2-21 Image Format, Glossary-4 Image Library, 2-3 Image Transform, Glossary-5 Image Type, Glossary-5 Image Visualization Accelerator Device Description, 5-10 Imaging Operations, 3-6 Implementation Restrictions, 3-1
Index Overlay Transparency, 5-4, 5-8 Overlay Transparency with HCRX-24 Devices, 5-9 Overlay Transparency with HCRX-8 Devices, 5-8 P Performance Hints, 5-11 Performance Hints for Workstations with IVX Hardware, 3-13 Performance Hints for Workstations without IVX Hardware, 3-14 Performance Tuning Tips, 3-13 PEX, 2-3 Pipeline Stages, 2-12 Pixel Component, Glossary-6 Ownership Test, Glossary-6 Rasterization, 2-16, Glossary-7 Rectangle, Glossary-7 Transfer, 2-16, 2-17, Glossary-7 Unpack, 2-12 Unpacking, 3-9, G
Supported Data Formats, 3-8 Synchronization, 4-8 System Window Coordinate, 2-7 T Table Color, Glossary-2 Transform Image, Glossary-5 Type Image, Glossary-5 U uname Command, 1-4 Underlays, 3-10 Unpack Pixels, 2-12 Using Pixmaps, 4-8 Using SD-UX, 1-1 Using the glFinish Routine, 4-8 Using the glFlush Routine, 4-9 Using the graphinfo Command, 1-6 Using the uname Command, 1-4 Using the what Command, 1-4 Index-10 V Viewing IVL Documentation with Web Browsers, 0-4 Visual Default, 5-8 Type, Glossary-9 X, Glos