icetSetColorFormat(3) IceT Reference icetSetColorFormat(3)NAME
icetSetColorFormat,icetSetDepthFormat-- specifies the buffer formats for IceT to use when creating images
Synopsis
#include <IceT.h>
void icetSetColorFormat( IceTEnum color_format );
void icetSetDepthFormat( IceTEnum depth_format );
Description
When IceT creates image objects, it uses the formats specified by icetSetColorFormatand icetSetDepthFormat.These will be the formats of
images passed to drawing callbacks (specified by icetDrawCallback or icetGLDrawCallback) and of images returned from frame drawing func-
tions (icetDrawFrame or icetGLDrawFrame).
The following color_formats are valid for use in icetSetColorFormat.
ICET_IMAGE_COLOR_RGBA_UBYTE
Each entry is an RGBA color tuple. Each component is valued in the range from 0 to 255 and is stored as an 8-bit integer. The buf-
fer will always be allocated on memory boundaries such that each color value can be treated as a single 32-bit integer.
ICET_IMAGE_COLOR_RGBA_FLOAT
Each entry is an RGBA color tuple. Each component is in the range from 0.0 to 1.0 and is stored as a 32-bit float.
ICET_IMAGE_COLOR_NONE
No color values are stored in the image.
The following depth_formats are valid for use in icetSetDepthFormat.
ICET_IMAGE_DEPTH_FLOAT
Each entry is in the range from 0.0 (near plane) to 1.0 (far plane) and is stored as a 32-bit float.
ICET_IMAGE_DEPTH_NONE
No depth values are stored in the image.
The color and depth formats are stored in the ICET_COLOR_FORMAT and ICET_DEPTH_FORMAT state variables, respectively.
Errors
ICET_INVALID_OPERATION
icetSetColorFormator icetSetDepthFormatwas called while IceT was drawing a frame. This probably means that you called icetSetColor-
Format in a drawing callback. You cannot do that. Call this function before starting the draw operation.
ICET_INVALID_ENUM
The color_format or depth_format given is invalid.
Warnings
None.
Bugs
None known.
Notes
Calling either icetSetColorFormator icetSetDepthFormatdoes not change the format of any existing images. It only changes any subsequently
created images.
The color format must be set before calling either icetDrawFrame or icetGLDrawFrame. Doing otherwise would create inconsistencies in the
images created and composed together.
Copyright
Copyright (C)2010 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 AlsoicetImageGetColorFormat(3), icetImageGetDepthFormat(3)IceT Reference August 9, 2010 icetSetColorFormat(3)
Check Out this Related Man Page
icetImageCopyColor(3) IceT Reference icetImageCopyColor(3)NAME
icetImageCopyColor,icetImageCopyDepth-- retrieve pixel data from image
Synopsis
#include <IceT.h>
void icetImageCopyColorub( const IceTImage image,
IceTUByte * color_buffer,
IceTEnum color_format );
void icetImageCopyColorf( const IceTImage image,
IceTFloat * color_buffer,
IceTEnum color_format );
void icetImageCopyDepthf( const IceTImage image,
IceTFloat * depth_buffer,
IceTEnum depth_format );
Description
The icetImageCopyColorsuite of functions retrieve color data from images and the icetImageCopyDepthfunctions retrieve depth data from
images. Each function takes a pointer to an existing buffer that must be large enough to hold all pixels in the image. The data from the
images is copied into these buffers, performing format conversions as necessary. Because data is copied into the provided buffer, subse-
quently changing values in the buffer has no effect on the image object (as opposed to the behavior of icetImageGetColorand icetImageGet-
Depth).
The pixel data is always tightly packed in horizontal major order. Color data that comprises tuples such as RGBA have the components for
each pixel packed together in that order. The first entry in the array corresponds to the pixel in the lower left corner of the image. The
next entry is immediately to the right of the first pixel, and so on. The dimensions of the array can be retrieved with the icetIm-
ageGetWidthand icetImageGetHeightfunctions.
Each of these functions provides a typed version of the image data array. They can only succeed if the type the request matches the type
specified by the color_format or depth_format argument. It is an error, for example, to request unsigned byte color data for a floating
point color format. Although specifying the format may be redundant (it could be implied by the type being retrieved), IceT requires it for
completeness and to support possible future data formats.
Use icetImageCopyColorubto retrieve an array of 8-bit unsigned bytes. Using this function is only valid if color_format is
ICET_IMAGE_COLOR_RGBA_UBYTE.
Use icetImageCopyColorfto retrieve an array of floating point color values. Using this function is only valid if color_format is
ICET_IMAGE_COLOR_RGBA_FLOAT.
Use icetImageGetDepthfto retrieve an array of floating point depth values. Using this function is only valid if depth_format is
ICET_IMAGE_DEPTH_FLOAT.
Errors
ICET_INVALID_OPERATION
The image object does not have a color or depth buffer from which to copy data.
ICET_INVALID_ENUM
The requested color_format or depth_format is incompatible with the type of the buffer.
Warnings
None.
Bugs
None known.
Copyright
Copyright (C)2010 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 AlsoicetImageGetColor(3), icetImageGetDepth(3)IceT Reference September 20, 2010 icetImageCopyColor(3)