icetGet(3)

NAME

icetGet -- get an IceT state parameter

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 or icetCompositeImage, 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, icetCompositeImage, 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, icetCompositeImage, 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 or icetCompositeImage. 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, icetCompositeImage, 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, icetCompositeImage, 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, icetCompositeImage, 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, icetCompositeImage, 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, icetCompositeImage, 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, icetCompositeImage, 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_INTERLACE_TIME
     The total time, in seconds, spent in copying pixels to interlace images for better load balancing during the last call to icetDrawFrame, icetCompositeImage, or icetGLDrawFrame. Stored as a double.

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. Always set to 0.0 after a call to icetCompositeImage. 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, icetCompositeImage, 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, icetCompositeImage, 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, icetCompositeImage, 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, icetCompositeImage, 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, icetCompositeImage, or icetGLDrawFrame contains pixels. Each process has its own value. If the last call to icetDrawFrame, icetCompositeImage, 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

icetIsEnabled(3), icetGetStrategyName(3)