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_ABSOLUTE_FAR_DEPTH
The maximum possible value in
the depth buffer (i.e. the value in a cleared depth buffer), as stored
as an unsigned 32 bit integer. Usually, this is the expected
0xFFFFFFFF.
However, some systems that use buffer values with
24 bits or less cast the maximum value to something smaller.
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.
ICET_BACKGROUND_COLOR_WORD
The same as
ICET_BACKGROUND_COLOR
except that each component is stored as
8-bit values and packed in a 4-byte integer as specified by
ICET_COLOR_FORMAT.
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.
Stored as a double. An alias for this value is
ICET_COMPARE_TIME.
ICET_BUFFER_READ_TIME
The total time, in seconds, spent
reading from OpenGL buffers during the last call to
icetDrawFrame.
Stored as a double.
ICET_BUFFER_WRITE_TIME
The total time, in seconds, spent
writing to OpenGL buffers during the last 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.
Stored as an integer.
ICET_COLOR_BUFFER_VALID
True if a color buffer was
computed during the last call to icetDrawFrame
and is available
with a call to icetGetColorBuffer.
ICET_COLOR_FORMAT
The OpenGL symbolic constant
describing the format in which IceT reads and stores color buffers.
Currently always set to GL_RGBA,
GL_BGRA,
or
GL_BGRA_EXT.
ICET_COMPARE_TIME
The total time, in seconds, spent in
performing Z comparisons of images during the last call to
icetDrawFrame.
Stored as a double. An alias for this value is
ICET_BLEND_TIME.
ICET_COMPOSITE_ORDER
The order in which images are to be
composited if ICET_ORDERED_COMPOSITE
is enabled and the
current startegy 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.
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.
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
icetDrawFunc).
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_BUFFER_VALID
True if a depth buffer was
computed during the last call to icetDrawFrame
and is available
with a call to icetGetDepthBuffer.
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 icetDrawFunc.
ICET_INPUT_BUFFERS
A bitmask specifying the the buffers
which IceT will read from OpenGL and perform composition. The value
is set with icetInputOutputBuffers.
See the documentation of
that function for valid bit flags.
ICET_FRAME_COUNT
The number of times
icetDrawFrame
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. The viewports are listed in the same
order as the tiles were defined with icetAddTile.
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_OUTPUT_BUFFERS
A bitmask specifying the the buffers
which IceT will generate from composition. The value is set with
icetInputOutputBuffers.
See the documentation of that function
for valid bit flags.
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_READ_BUFFER
Set to the OpenGL symbolic constant
that IceT will use to read back buffers. Currently always set to
GL_BACK.
ICET_RENDER_TIME
The total time, in seconds, spent in
the drawing callback during the last call to icetDrawFrame.
Stored as a double.
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_VIEWPORT
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_PIXELS
The maximum number of pixels in
any tile. This number is actually set to
$(ICET_TILE_MAX_WIDTH
*ICET_TILE_MAX_HEIGHT)
+ ICET_NUM_PROCESSES$.
The
number of processes is added to provide sufficient padding such that
the max tile image may be divided evenly amongst any group of processes
without dropping any real pixels.
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$.
ICET_TOTAL_DRAW_TIME
Time spent in the last call to
icetDrawFrame.
Stored as a double.
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, there is a non-exclusive
license for use of this work by or on behalf of the U.S. Government.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that this Notice and any statement
of authorship are reproduced on all copies.