icetGet(3) get an IceT state parameter

Synopsis

#include <IceT.h>

void icetGetDoublev(IceTEnumpname,
IceTDouble *params );

void icetGetFloatv(IceTEnumpname,
IceTFloat *params );

void icetGetIntegerv(IceTEnumpname,
IceTInt *params );

void icetGetBooleanv(IceTEnumpname,
IceTBoolean *params );

void icetGetEnumv(IceTEnumpname,
IceTEnum *params );

void icetGetBitFieldv(IceTEnumpname,
IceTBitField *params );

void icetGetPointerv(IceTEnumpname,
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_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.