---
name: "icetGLDrawFrame"
section: "3"
platform: "linux"
package: "paraview"
version: "5.13.2+dfsg-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/icetGLDrawFrame"
---

# icetGLDrawFrame(3)

## NAME

**icetGLDrawFrame -- renders and composites a frame using OpenGL**

## Synopsis

**#include \<IceTGL.h\>**

| |
| --- |
| void **icetGLDrawFrame**( void ); |

## Description

**Initiates a frame draw using the current OpenGL transformation matrices** **(modelview and projection).**

**Before IceT may render an image, the tiled display needs to be defined** **(using icetAddTile),** **the drawing function needs to be set (using** **icetGLDrawCallback),** **and composite strategy must be set (using** **icetStrategy).** **The single image sub-strategy may also optionally** **be set (using icetSingleImageStrategy).**

**All processes in the current IceT context must call** **icetGLDrawFrame** **for it to complete.**

**The OpenGL projection matrix and modelview matrix must be set using** **glLoadMatrix** **or a number of other functions. Likewise,** **the OpenGL background color must be set with** **glClearColor.** **IceT will use the matrices to determine** **what pixels need to be rendered and composited. IceT will also modify** **the projection matrix to project onto (or in between) tiles.**

**If ICET\_GL\_DISPLAY** **is enabled, then the fully composited image** **is written back to the OpenGL framebuffer for display. It is the** **application's responsibility to synchronize the processes and swap front** **and back buffers. If the OpenGL background color is set to something** **other than black, ICET\_GL\_DISPLAY\_COLORED\_BACKGROUND** **should** **also be enabled. Displaying with** **ICET\_GL\_DISPLAY\_COLORED\_BACKGROUND** **disabled may be slightly** **faster (depending on graphics hardware) but can result in black** **rectangles in the background. If ICET\_GL\_DISPLAY\_INFLATE** **is** **enabled and the size of the renderable window (determined by the current** **OpenGL viewport) is greater than that of the tile being displayed, then** **the image will first be \`\`inflated'' to the size of the actual display.** **This inflation will be assisted by texture hardware if** **ICET\_GL\_DISPLAY\_INFLATE\_WITH\_HARDWARE** **is on. If** **ICET\_GL\_DISPLAY\_INFLATE** **is disabled, the image is drawn at its** **original resolution at the lower left corner of the display.**

**The image remaining in the frame buffer is undefined if** **ICET\_GL\_DISPLAY** **is disabled or the process is not displaying a** **tile.**

## Errors

- **ICET\_INVALID\_OPERATION**

   **Raised if the icetGLInitialize** **has not been called or if the** **drawing callback has not been set. Also can be raised if** **icetGLDrawFrame** **is called recursively, probably from within the** **drawing callback.**

- **ICET\_OUT\_OF\_MEMORY**

   **Not enough memory left to hold intermittent frame buffers and other** **temporary data.**

**icetGLDrawFrame** **may also indirectly raise an error if there is an** **issue with the strategy or callback.**

## Warnings

**None.**

## Bugs

**If compositing with color blending on, the image returned may have a** **black background instead of the** *background\_color* **requested. This** **can be corrected by blending the returned image over the desired** **background. This will be done for you if the** **ICET\_CORRECT\_COLORED\_BACKGROUND** **is on.**

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

## See Also

*icetAddTile***(3),** *icetBoundingBox***(3),** *icetBoundingVertices***(3),** *icetDrawFrame***(3),** *icetGLDrawCallback***(3),** *icetSingleImageStrategy***(3),** *icetStrategy***(3)**
