Synopsis

#include <IceT.h>

void icetGetDoublev( IceTEnum pname,
IceTDouble * params );
void icetGetFloatv( IceTEnum pname,
IceTFloat * params );
void icetGetIntegerv( IceTEnum pname,
IceTInt * params );
void icetGetBooleanv( IceTEnum pname,
IceTBoolean * params );
void icetGetEnumv( IceTEnum pname,
IceTEnum * params );
void icetGetBitFieldv( IceTEnum pname,
IceTBitField * params );
void icetGetPointerv( IceTEnum pname,
IceTVoid ** params );

Description

Like OpenGL ,the operation of IceT is defined by a large state machine. Also like OpenGL ,the state parameters can be retrieved through the icetGet functions. Each function takes a symbolic constant, pname, which identifies the state parameter to retrieve. They also each take an array, params, which will be filled with the values in pname. It is the calling application's responsibility to ensure that params is big enough to hold all the data.

State Parameters

The following list identifies valid values for pname and a description of the associated state parameter.

ICET_BACKGROUND_COLOR

The color that IceT is currently assuming is the background color. It is an RGBA value that is stored as four floating point values. This value is set either to the last value passed to icetDrawFrame, the OpenGL background color if icetGLDrawFrame was called, or to black for color blending. (The correct background color is restored later.)

ICET_BACKGROUND_COLOR_WORD

The same as ICET_BACKGROUND_COLOR except that each component is stored as 8-bit RGBA values and packed in a 4-byte integer. The idea is to rapidly fill the background of color buffers.

ICET_BLEND_TIME

The total time, in seconds, spent in performing color blending of images during the last call to icetDrawFrame or icetGLDrawFrame. Stored as a double. An alias for this value is ICET_COMPARE_TIME.

ICET_BUFFER_READ_TIME

The total time, in seconds, spent copying buffer data and reading from OpenGL buffers during the last call to icetDrawFrame or icetGLDrawFrame. Stored as a double.

ICET_BUFFER_WRITE_TIME

The total time, in seconds, spent writing to OpenGL buffers during the last call to icetGLDrawFrame. Always set to 0.0 after a call to icetDrawFrame. Stored as a double.

ICET_BYTES_SENT

The total number of bytes sent by the calling process for transferring image data during the last call to icetDrawFrame or icetGLDrawFrame. Stored as an integer.

ICET_COLLECT_TIME

The total time spent in collecting image fragments to display processes during the last call to icetDrawFrame or icetGLDrawFrame.

ICET_COLOR_FORMAT

The color format of images to be created by the rendering subsystem and composited by IceT .Use icetSetColorFormat to set the color format. Use icetImageGetColorFormat to safely get the color format for a particular image.

ICET_COMPARE_TIME

The total time, in seconds, spent in performing Z comparisons of images during the last call to icetDrawFrame or icetGLDrawFrame. Stored as a double. An alias for this value is ICET_BLEND_TIME.

ICET_COMPOSITE_MODE

The composite mode set by icetCompositeMode. A single entry stored as an IceTEnum.

ICET_COMPOSITE_ORDER

The order in which images are to be composited if ICET_ORDERED_COMPOSITE is enabled and the current strategy supports ordered compositing. The parameter contains ICET_NUM_PROCESSES entries. The value of this parameter is set with icetCompositeOrder. If the element of index i in the array is set to j, then there are i images ``on top'' of the image generated by process j.

ICET_COMPOSITE_TIME

The total time, in seconds, spent in compositing during the last call to icetDrawFrame or icetGLDrawFrame. Equal to $ICET_TOTAL_DRAW_TIME - ICET_RENDER_TIME - ICET_BUFFER_READ_TIME - ICET_BUFFER_WRITE_TIME$. Stored as a double.

ICET_COMPRESS_TIME

The total time, in seconds, spent in compressing image data using active pixel encoding during the last call to icetDrawFrame or icetGLDrawFrame. Stored as a double.

ICET_DATA_REPLICATION_GROUP

An array of process ids. There are ICET_DATA_REPLICATION_GROUP_SIZE entries in the array. IceT assumes that all processes in the list will create the exact same image with their draw functions (set with icetDrawCallback or icetGLDrawCallback). The local process id (ICET_RANK) will be part of this list.

ICET_DATA_REPLICATION_GROUP_SIZE

The length of the ICET_DATA_REPLICATION_GROUP array.

ICET_DEPTH_FORMAT

The depth format of images to be created by the rendering subsystem and composited by IceT .Use icetSetDepthFormat to set the depth format. Use icetImageGetDepthFormat to safely get the depth format for a particular image.

ICET_DIAGNOSTIC_LEVEL

The diagnostics flags set with icetDiagnostics.

ICET_DISPLAY_NODES

An array of process ranks. The size of the array is equal to the number of tiles (ICET_NUM_TILES). The $i^{th}$ entry is the rank of the process that is displaying the tile described by the $i^{th}$ entry in ICET_TILE_VIEWPORTS.

ICET_DRAW_FUNCTION

A pointer to the drawing callback function, as set by icetDrawCallback.

ICET_FRAME_COUNT

The number of times icetDrawFrame or icetGLDrawFrame has been called for the current context.

ICET_GEOMETRY_BOUNDS

An array of vertices whose convex hull bounds the drawn geometry. Set with icetBoundingVertices or icetBoundingBox. Each vertex has three coordinates and are tightly packed in the array. The size of the array is $3 * ICET_NUM_BOUNDING_VERTS$.

ICET_GLOBAL_VIEWPORT

Defines a viewport in an infinite logical display that covers all tile viewports (listed in ICET_TILE_VIEWPORTS). The viewport, like an OpenGL viewport, is given as the integer four-tuple $<x, y, width, height >$.x and y are placed at the leftmost and lowest position of all the tiles, and width and height are just big enough for the viewport to cover all tiles.

ICET_MAGIC_K

The target k value used when compositing with the radix-k single image strategy.

ICET_MAX_IMAGE_SPLIT

The target number of maximum image splits to be performed by compositing strategies.

ICET_NUM_BOUNDING_VERTS

The number of bounding vertices listed in the ICET_GEOMETRY_BOUNDS parameter.

ICET_NUM_TILES

The number of tiles in the defined display. Basically equal to the number of times icetAddTile was called after the last icetResetTiles.

ICET_NUM_PROCESSES

The number of processes in the parallel job as given by the IceTCommunicator object associated with the current context.

ICET_PHYSICAL_RENDER_HEIGHT

The height of the images generated by the rendering system. This is set to the OpenGL viewport height by icetGLDrawFrame or otherwise by explicitly setting it with icetPhysicalRenderSize or otherwise implicitly to the largest tile height specified with icetAddTile.

ICET_PHYSICAL_RENDER_WIDTH

The width of the images generated by the rendering system. This is set to the OpenGL viewport width by icetGLDrawFrame or otherwise by explicitly setting it with icetPhysicalRenderSize or otherwise implicitly to the largest tile width specified with icetAddTile.

ICET_PROCESS_ORDERS

Basically, the inverse of ICET_COMPOSITE_ORDER. The parameter contains ICET_NUM_PROCESSES entries. If the element of index i in the array is set to j, then there are j images ``on top'' of the image generated by process i.

ICET_RANK

The rank of the process as given by the IceTCommunicator object associated with the current context.

ICET_RENDER_TIME

The total time, in seconds, spent in the drawing callback during the last call to icetDrawFrame or icetGLDrawFrame. Stored as a double.

ICET_SINGLE_IMAGE_STRATEGY

The single image sub-strategy set with icetSingleImageStrategy. Use icetGetSingleImageStrategyName to get a user-readable name for the single image strategy.

ICET_STRATEGY

The strategy set with icetStrategy. Use icetGetStrategyName to get a user-readable name for the strategy.

ICET_STRATEGY_SUPPORTS_ORDERING

Is true if and only if the current strategy supports ordered compositing.

ICET_TILE_DISPLAYED

The index of the tile the local process is displaying. The index will correspond to the tile entry in the ICET_DISPLAY_NODES and ICET_TILE_VIEWPORTS arrays. If set to $0 <= i < ICET_NUM_PROCESSES$, then the $i^{th}$ entry of ICET_DISPLAY_NODES is equal to ICET_RANK. If the local process is not displaying any tile, then ICET_TILE_DISPLAYED is set to -1.

ICET_TILE_MAX_HEIGHT

The maximum height of any tile.

ICET_TILE_MAX_WIDTH

The maximum width of any tile.

ICET_TILE_VIEWPORTS

A list of viewports in the logical global display defining the tiles. Each viewport is the four-tuple $<x, y, width, height >$defining the position and dimensions of a tile in pixels, much like a viewport is defined in OpenGL .The size of the array is $4 * ICET_NUM_TILES$. The viewports are listed in the same order as the tiles were defined with icetAddTile.

ICET_TOTAL_DRAW_TIME

Time spent in the last call to icetDrawFrame or icetGLDrawFrame. This includes all the time to render, read back, compress, and composite images. Stored as a double.

ICET_VALID_PIXELS_NUM

In conjunction with ICET_VALID_PIXELS_OFFSET, gives the range of valid pixels for the last image returned from icetDrawFrame or icetGLDrawFrame. Given the arrays of pixels returned with the icetImageGetColor and icetImageGetDepth functions, the valid pixels start at the pixel indexed by ICET_VALID_PIXELS_OFFSET and continue for ICET_VALID_PIXELS_NUM. The tile to which these pixels belong are captured in the ICET_VALID_PIXELS_TILE state variable. If the last call to icetDrawFrame or icetGLDrawFrame did not return pixels for the local process, ICET_VALID_PIXELS_NUM is set to 0. This state variable is only useful when ICET_COLLECT_IMAGES is off. If on, it can be assumed that all display processes contain all pixels in the image (ICET_VALID_PIXELS_NUM is the number of pixels in the image), and all other processes have no pixel data.

ICET_VALID_PIXELS_OFFSET

In conjunction with ICET_VALID_PIXELS_NUM, gives the range of valid pixels for the last image returned from icetDrawFrame or icetGLDrawFrame. Given the arrays of pixels returned with the icetImageGetColor and icetImageGetDepth functions, the valid pixels start at the pixel indexed by ICET_VALID_PIXELS_OFFSET and continue for ICET_VALID_PIXELS_NUM. The tile to which these pixels belong are captured in the ICET_VALID_PIXELS_TILE state variable. This state variable is only useful when ICET_COLLECT_IMAGES is off. If on, it can be assumed that all display processes contain all pixels in the image (ICET_VALID_PIXELS_OFFSET is 0), and all other processes have no pixel data.

ICET_VALID_PIXELS_TILE

Gives the tile for which the last image returned from icetDrawFrame or icetGLDrawFrame contains pixels. Each process has its own value. If the last call to icetDrawFrame or icetGLDrawFrame did not return pixels for the local process, then this state variable is set to -1. This state variable is only useful when ICET_COLLECT_IMAGES is off. If on, it can be assumed that all display processes have valid pixels for their respective display tiles, and all other processes have no pixel data.

In addition, if you are using the OpenGL layer (i.e., have called icetGLInitialize), these variables, defined in IceTGL.h, are also available.

ICET_GL_DRAW_FUNCTION

A pointer to the OpenGL drawing callback function, as set by icetGLDrawCallback.

ICET_GL_READ_BUFFER

The OpenGL buffer to read from (and write to). Set with icetGLSetReadBuffer.

Errors

ICET_BAD_CAST

The state parameter requested is of a type that cannot be cast to the output type.

ICET_INVALID_ENUM

pname is not a valid state parameter.

Warnings

None.

Bugs

None known.

Notes

Not every state variable is documented here. There is a set of parameters used internally by IceT or are more appropriately retrieved with other functions such as icetIsEnabled.

Copyright

Copyright (C)2003 Sandia Corporation

Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software.

This source code is released under the New BSD License.

See Also