---
name: "icetInputOutputBuffers"
section: "3"
platform: "linux"
package: "paraview"
version: "3.8.0-1+b1"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/icetInputOutputBuffers"
---

# icetInputOutputBuffers(3)

## NAME

**icetInputOutputBuffers -- set IceT composition mode.**

## Synopsis

**#include \<GL/ice-t.h\>**

| | | |
| --- | --- | --- |
| void **icetInputOutputBuffers**( | GLenum | *inputs*, |
|  | GLenum | *outputs* ); |

## Description

**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:**

- **ICET\_COLOR\_BUFFER\_BIT**

   **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.**

- **ICET\_DEPTH\_BUFFER\_BIT**

   **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.**

## Errors

- **ICET\_INVALID\_VALUE**

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

## Warnings

**None.**

## Bugs

**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

**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.**

## See Also

*icetGetColorBuffer***(3),** *icetGetDepthBuffer***(3),** *icetDrawFrame***(3)**
