icetInputOutputBuffers(3) set IceT composition mode.


#include <GL/ice-t.h>

void icetInputOutputBuffers(GLenuminputs,
GLenumoutputs );


icetInputOutputBuffers sets what OpenGL frame buffers IceT reads and generates. During a call to icetDrawFrame, IceT reads the input buffers directly from OpenGL after it performs a callback to the draw function (set by icetDrawFunc). Output buffers are stored internally after the call to icetDrawFrame finishes. The output buffers can be retrieved with calls to the icetGetColorBuffer and icetGetDepthBuffer functions. In addition, if the color buffer output is on and ICET_DISPLAY is enabled, the color buffer is also written back to the OpenGL frame buffer before icetDrawFrame returns.

Both inputs and outputs are or'ed values of one or more of the following flags:


 Reads/generates color data.  Color data is stored in RGBA or BGRA format. Each channel is 8-bits, resulting in a 32-bit word when combined together. Each 32-bit color value is always aligned on 32-bit word boundaries for faster computation.

 Reads/generates depth data.  Depth data is stored as 32-bit unsigned integers.

The current values of the input and output buffers are stored in the ICET_INPUT_BUFFERS and ICET_OUTPUT_BUFFERS state variables. By default, the ICET_INPUT_BUFFERS value is set to $(ICET_COLOR_BUFFER_BIT | ICET_DEPTH_BUFFER_BIT)$, and the ICET_OUTPUT_BUFFERS value is set to $ICET_COLOR_BUFFER_BIT$.

The composition operator IceT uses is defined by the inputs. If the depth buffer is an input, then Z comparison is performed. If the depth buffer is not an input, alpha blending is performed. Note that in the latter case, order of composition may matter and therefore not all composition strategies will work.



 An output was selected that is  not also an input or no outputs were selected at all.




Blending of colors cannot be used in conjunction with depth testing. Even with depth testing, the order of operation for color blending is important, so such a combination is not likely to be useful.


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.