Commit 9e6f53e1 authored by Andy Cedilnik's avatar Andy Cedilnik

Initial import

parents
.git* export-ignore
# Id
#
## Copyright 2003 Sandia Coporation
## 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.
#
CMAKE_MINIMUM_REQUIRED(VERSION 1.6)
PROJECT(ICET C)
# Set the current ICE-T version.
SET(ICET_MAJOR_VERSION 0)
SET(ICET_MINOR_VERSION 4)
SET(ICET_VERSION "${ICET_MAJOR_VERSION}.${ICET_MINOR_VERSION}")
# Set output paths.
SET(LIBRARY_OUTPUT_PATH ${ICET_BINARY_DIR}/bin CACHE PATH
"Output directory for building all libraries.")
SET(EXECUTABLE_OUTPUT_PATH ${ICET_BINARY_DIR}/bin CACHE PATH
"Output directory for building all executable.")
MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH)
SET(ICET_LIBRARY_DIR ${LIBRARY_OUTPUT_PATH}/${CMAKE_CFG_INTDIR})
SET(ICET_EXECUTABLE_DIR ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR})
SET(C_TEST_PATH ${EXECUTABLE_OUTPUT_PATH})
# Turn shared libraries on or off.
OPTION(BUILD_SHARED_LIBS "Build ICE-T with shared libraries." OFF)
SET(ICET_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
# Configure testing support.
INCLUDE(${CMAKE_ROOT}/Modules/Dart.cmake)
IF (BUILD_TESTING)
ENABLE_TESTING()
ENDIF (BUILD_TESTING)
IF (CMAKE_BUILD_TYPE MATCHES "Debug")
ADD_DEFINITIONS(-DDEBUG)
ENDIF (CMAKE_BUILD_TYPE MATCHES "Debug")
# Configure OpenGL support.
INCLUDE(${CMAKE_ROOT}/Modules/FindOpenGL.cmake)
IF (OPENGL_FOUND)
INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
LINK_LIBRARIES(${OPENGL_LIBRARIES})
ELSE (OPENGL_FOUND)
MESSAGE(SEND_ERROR "Could not find OpenGL, which is required to compile ICE-T.")
ENDIF (OPENGL_FOUND)
# Configure MPI support.
INCLUDE (${CMAKE_ROOT}/Modules/FindMPI.cmake)
MARK_AS_ADVANCED(CLEAR MPI_INCLUDE_PATH)
MARK_AS_ADVANCED(CLEAR MPI_LIBRARY)
MARK_AS_ADVANCED(CLEAR MPI_EXTRA_LIBRARY)
IF (MPI_INCLUDE_PATH)
INCLUDE_DIRECTORIES(${MPI_INCLUDE_PATH})
ELSE (MPI_INCLUDE_PATH)
MESSAGE(SEND_ERROR "Could not find MPI includes, which is required to compile ICE-T.")
ENDIF (MPI_INCLUDE_PATH)
IF (MPI_LIBRARY)
LINK_LIBRARIES(${MPI_LIBRARY})
ELSE (MPI_LIBRARY)
MESSAGE(SEND_ERROR "Could not find MPI library, which is required to compile ICE-T.")
ENDIF (MPI_LIBRARY)
IF (MPI_EXTRA_LIBRARY)
LINK_LIBRARIES(${MPI_EXTRA_LIBRARY})
ENDIF (MPI_EXTRA_LIBRARY)
# Configure MPI testing support.
IF (BUILD_TESTING)
FIND_PROGRAM(ICET_MPIRUN_EXE NAMES mpirun lamexec)
SET(ICET_MPI_PREFLAGS "-np 2" CACHE STRING "Flags used by MPI start program.")
SET(ICET_MPI_POSTFLAGS "" CACHE STRING "Flags used by MPI start program.")
SET(ICET_MPI_MAX_NUMPROCS "2" CACHE STRING "Maximum number of processors available to run parallel applications.")
MARK_AS_ADVANCED(ICET_MPIRUN_EXE ICET_MPI_PREFLAGS ICET_MPI_POSTFLAGS ICET_MPI_MAX_NUMPROCS)
SEPARATE_ARGUMENTS(ICET_MPI_PREFLAGS)
SEPARATE_ARGUMENTS(ICET_MPI_POSTFLAGS)
ENDIF (BUILD_TESTING)
# Add options to select install directory.
# IF (WIN32)
# SET(ICET_DEFAULT_INSTALL_PREFIX "C:/Program Files/ICE-T")
# ELSE (WIN32)
# SET(ICET_DEFAULT_INSTALL_PREFIX "/usr/local")
# ENDIF (WIN32)
# SET(ICET_INSTALL_PREFIX ${ICET_DEFAULT_INSTALL_PREFIX} CACHE PATH "Directory under which all ICE-T files are installed.")
# Configure files with settings for use by the build.
CONFIGURE_FILE(${ICET_SOURCE_DIR}/src/include/GL/ice-t_config.h.in
${ICET_BINARY_DIR}/src/include/GL/ice-t_config.h)
# Point to ICE-T include files.
INCLUDE_DIRECTORIES(${ICET_SOURCE_DIR}/src/include)
INCLUDE_DIRECTORIES(${ICET_BINARY_DIR}/src/include)
SUBDIRS(src)
IF (BUILD_TESTING)
SUBDIRS(tests)
ENDIF (BUILD_TESTING)
# Save the CMake settings so another project can import them. Loaded by:
# INCLUDE(${CMAKE_ROOT}/Modules/CMakeImportBuildSettings.cmake)
# CMAKE_IMPORT_BUILD_SETTINGS(<build_file>)
INCLUDE(${CMAKE_ROOT}/Modules/CMakeExportBuildSettings.cmake)
CMAKE_EXPORT_BUILD_SETTINGS(${ICET_BINARY_DIR}/ICETBuildSettings.cmake)
INSTALL_FILES(${ICET_INSTALL_PREFIX}/lib .cmake ICETBuildSettings)
# Allow local additions to this file without CVS conflicts.
INCLUDE(${ICET_BINARY_DIR}/LocalUserOptions.cmake OPTIONAL)
INCLUDE(${ICET_SOURCE_DIR}/LocalUserOptions.cmake OPTIONAL)
** -*- text -*- *************************************************************
**
** Revision history of ICE-T.
**
** Copyright 2003 Sandia Coporation
** 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.
**
*****************************************************************************
Revision 0.4: Abstracted the image formats a bit. ICE-T can now perform
a composite on just the depth buffer. This is useful when creating
shadow buffers. This should also make it easier to implement
image-only compositing for parallel volume rendering.
Abstracted the communications layer such that it is no longer
dependent on MPI. Of course, using MPI is still supported and is
the only communications layer currently provided (although the user
can potentially make his own).
Removed icetInit, which only called icetCreateContext to make a
"default" context. The only real consiquence of this change is
that ICE-T can now be placed in a state where it has no current
context. This could lead to seg-faults if the user does not set
another context as current and then tries to use ICE-T, but this is
an erroneous use of ICE-T anyway.
Changed build system to use CMake instead of autoconf.
The library has been split into three parts: libicet, libicet_mpi,
and libicet_strategies (mostly for convenience with the CMake build
processes). The major consequence (besides obvious linker flags)
is that a default strategy is no longer set.
Revision 0.3: Added the ability to render tiles smaller then the actual
display window and then inflate the image back onto the tiles.
Also changed the convention of how the projection matrix is set
from using set functions or callbacks to simply setting it before
calling icetDrawFrame. The projection matrix is restored before
icetDrawFrame returns.
Removed clunky icetDisplayNodes function. Display nodes are now
specified in icetAddTile.
Problems that appeared in revision 0.2 seem to be mostly fixed
now. Added a check in the uncompress and compare compressed
functions to make sure there are no buffer overruns. Adds a bit of
overhead, but seems to have stopped an occasional seg fault that
probably occurred when MPI dorked the data.
Revision 0.2: A whole host of fixes. Added a regression testing suite.
Current version seems quite stable except for intermittent problems
with split strategy under Myrinet. Probably either race condition
or Myrinet/MPI bug.
Revision 0.1: Semi-stable after movement from MTIC to ICE-T and building
autoconf scripts for use on Win32 rather than MSVC project files.
Found some issues with split and reduce strategies after moving to
Myrinet.
** -*- text -*- *************************************************************
**
** README and installation instructions for ICE-T
**
** Author: Kenneth Moreland (kmorel@sandia.gov)
**
** Copyright 2003 Sandia Coporation
** 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.
**
*****************************************************************************
Welcome to the ICE-T build process. ICE-T uses CMake to automatically
tailor itself to your system, so compiling should be relatively painless.
Before building ICE-T you will need to install CMake on your system. You
can get CMake from www.cmake.org.
Once CMake is installed and the ICE-T source is extracted, run the
interactive CMake configuration tool. On UNIX, run ccmake. On Win32, run
the CMake program on the desktop or in the start menu. Note that when
using the interactive configuration tool, you will need to ``configure''
several times before you can generate the build files. This is because as
more information is retrieved, futher options are revealed. Optionally,
you may ``cmake -i'' for a Q/A form of the tool.
After CMake generates build files, compile the applications as applicable
for your system.
.\" -*- nroff -*-
.ig
Documentation for the Image Composition Engine for Tiles (ICE-T).
Copyright (C) 2000-2002 Sandia National Laboratories
Id
..
.TH icetAddTile 3 "April 14, 2003" "Sandia National Labs" "ICE-T Reference"
.SH NAME
.B icetAddTile
\- add a tile to the logical display.
.SH SYNOPSIS
.nf
.B #include <GL/ice-t.h>
.sp
.BI "int icetAddTile(GLint " x ", GLint " y ","
.BI " GLsizei " width ", GLsizei " height ","
.BI " int " display_rank ");"
.fi
.SH DESCRIPTION
Adds a tile to the tiled display. Every process, whether actually
displaying a tile or not, must declare the tiles in the display and which
processes drive them with
.BR icetResetTiles " and " icetAddTile .
Thus, each process calls
.B icetAddTile
once for each tile in the display, and all processes must declare them in
the same order.
.PP
The parameters
.IR x ", " y ", " width ", and " height
define the tiles viewport in the logical global display much in the same
way
.B glViewport
declares a region in a physical display.
.B ICE-T
places no limits on the extents of the logical global display. That is,
there are no limits on the values of
.IR x " and " y .
They can extend as far as they want in both the positive and negative
directions.
.PP
.B ICE-T
will project its images onto the region of the logical global display that
just covers all of the tiles. Therefore, shifting all the tiles in the
logical global display by the same amount will have no real overall
effect.
.PP
The
.I display_rank
parameter identifies the rank of the process that will be displaying the
given tile. It is assumed that the output of the rendering window of the
given process is projected onto the space in a tiled display given by
.IR x ", " y ", " width ", and " height .
Each tile must have a valid rank (between
.BR 0 " and " ICET_NUM_PROCESSORS - 1 ).
Furthermore, no process may be displaying more than one tile.
.SH RETURN VALUE
Returns the index of the tile created.
.SH ERRORS
.TP 20
.B ICET_INVALID_VALUE
Raised if
.I display_rank
is not a valid processor rank or
.I display_rank
is already assigned to another tile. If this error is raised, nothing is
done and -1 is returned.
.SH WARNINGS
None.
.SH BUGS
.B icetAddTile
will let you add tiles of different sizes, but the use of different sized
tiles is not yet supported. The user should try to make sure that all
tiles are of the same size.
.PP
All processes must specify the same tiles in the same order.
.B ICE-T
will assume this even though it is not explicitly detected or enforced.
.SH COPYRIGHT
Copyright \(co 2003 Sandia Corporation
.br
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.
.SH SEE ALSO
.BR icetResetTiles ", " icetDisplayNodes
\" These are emacs settings that go at the end of the file.
\" Local Variables:
\" writestamp-format:"%B %e, %Y"
\" writestamp-prefix:"3 \""
\" writestamp-suffix:"\" \"Sandia National Labs\""
\" End:
.\" -*- nroff -*-
.ig
Documentation for the Image Composition Engine for Tiles (ICE-T).
Copyright (C) 2000-2002 Sandia National Laboratories
Id
..
.TH icetBoundingBox* 3 "March 12, 2003" "Sandia National Labs" "ICE-T Reference"
.SH NAME
.B icetBoundingBox*
\- set bounds of geometry.
.SH SYNOPSIS
.nf
.B #include <GL/ice-t.h>
.sp
.BI "void icetBoundingBoxd(GLdouble " x_min ", GLdouble " x_max ","
.BI " GLdouble " y_min ", GLdouble " y_max ","
.BI " GLdouble " z_min ", GLdouble " z_max ");"
.br
.BI "void icetBoundingBoxf(GLfloat " x_min ", GLfloat " x_max ","
.BI " GLfloat " y_min ", GLfloat " y_max ","
.BI " GLfloat " z_min ", GLfloat " z_max ");"
.fi
.SH DESCRIPTION
Establishes the bounds of the geometry as contained in an axis-aligned box
with the given extents.
.PP
.IR icetBoundingBoxd " and " icetBoundingBoxf
are really just convience functions. They create an array of the 8 corner
vertices and set the bounding vertices appropriately. See
.B icetBoundingVertices
for more information.
.SH ERRORS
None.
.SH WARNINGS
None.
.SH BUGS
None known.
.SH COPYRIGHT
Copyright \(co 2003 Sandia Corporation
.br
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.
.SH SEE ALSO
.BR icetBoundingVertices
\" These are emacs settings that go at the end of the file.
\" Local Variables:
\" writestamp-format:"%B %e, %Y"
\" writestamp-prefix:"3 \""
\" writestamp-suffix:"\" \"Sandia National Labs\""
\" End:
.\" -*- nroff -*-
.ig
Documentation for the Image Composition Engine for Tiles (ICE-T).
Copyright (C) 2000-2002 Sandia National Laboratories
Id
..
.TH icetBoundingVertices 3 "March 12, 2003" "Sandia National Labs" "ICE-T Reference"
.SH NAME
.B icetBoundingVertices
\- set bounds of geometry.
.SH SYNOPSIS
.nf
.B #include <GL/ice-t.h>
.sp
.BI "void icetBoundingVertices(GLint " size ", GLenum " type ", GLsizei " stride ","
.BI " GLsizei " count ", const GLvoid *" pointer ");"
.fi
.SH DESCRIPTION
.B icetBoundingVertices
is used to tell
.B ICE-T
what the bounds of the geometry drawn by the callback registered with
.B icetDrawFunc
are. The bounds are assumed to be the convex hull of the vertices given.
The user should take care to make sure that the drawn geometry actually
does fit within the convex hull, or the data may be culled in unexpected
ways.
.B ICE-T
runs most efficiently when the bounds given are tight (match the actual
volume of the data well) and when the number of vertices given is minimal.
.PP
The
.I size
parameter specifies the number of coordinates given for each vertex.
Coordinates are given in X-Y-Z-W order. Any Y or Z coordinate not given
(because
.I size
is less than 3) is assumed to be 0.0, and any W coordinate not given
(because
.I size
is less than 4) is assumed to be 1.0.
.PP
The
.I type
parameter specifies in what data type the coordinates are given. Valid
.IR type s
are
.BR ICET_SHORT ", " ICET_INT ", " ICET_FLOAT ", and " ICET_DOUBLE ,
which correspond to types
.BR GLshort ", " GLint ", " GLfloat ", and " GLdouble ,
respectively.
.PP
The
.I stride
parameter specifies the offset between consecutive vertices in bytes. If
.I stride
is 0, the array is assumed to be tightly packed.
.PP
The
.I count
parameter specifies the number of vertices to set.
.PP
The
.I pointer
parameter is an array of vertices with the first vertex starting at the
first byte.
.SH ERRORS
.TP 20
.B ICET_INVALID_VALUE
Raised if
.I type
is not one of
.BR ICET_SHORT ", " ICET_INT ", " ICET_FLOAT ", or " ICET_DOUBLE .
.SH WARNINGS
None.
.SH BUGS
None known.
.SH COPYRIGHT
Copyright \(co 2003 Sandia Corporation
.br
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.
.SH SEE ALSO
.BR icetDrawFunc ", " icetBoundingBox*
\" These are emacs settings that go at the end of the file.
\" Local Variables:
\" writestamp-format:"%B %e, %Y"
\" writestamp-prefix:"3 \""
\" writestamp-suffix:"\" \"Sandia National Labs\""
\" End:
.\" -*- nroff -*-
.ig
Documentation for the Image Composition Engine for Tiles (ICE-T).
Copyright (C) 2000-2002 Sandia National Laboratories
Id
..
.TH icetCopyState 3 "June 12, 2003" "Sandia National Labs" "ICE-T Reference"
.SH NAME
.B icetCopyState
\- copy state machine of one context to another.
.SH SYNOPSIS
.nf
.B #include <GL/ice-t.h>
.sp
.BI "void icetCopyState(IceTContext " dest ", const IceTContext " src ");"
.fi
.SH DESCRIPTION
The
.B icetCopyState
function replaces the state of
.I dest
with the current state of
.IR src .
This function can be used to quickly duplicate a context.
.PP
The
.B IceTCommunicator
object associated with
.I dest
is
.I not
changed (nor can it ever be). Consequently, the state values of
.BR ICET_RANK " and " ICET_NUM_PROCESSORS
are not copied either, since they are directly tied to the
.B IceTCommunicator
object. However, every other state parameter is copied.
.SH ERRORS
None.
.SH WARNINGS
None.
.SH BUGS
The state is copied blindly. It is therefore possible to copy states that
are invalid for a context's communicator. For example, a display rank may
not refer to a valid process id.
.SH NOTES
Behavior is undefined if
.IR dest " or " src
has never been created or has already been destroyed.
.SH COPYRIGHT
Copyright \(co 2003 Sandia Corporation
.br
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.
.SH SEE ALSO
.BR icetCreateContext ", " icetGetContext ", " icetSetContext
\" These are emacs settings that go at the end of the file.
\" Local Variables:
\" writestamp-format:"%B %e, %Y"
\" writestamp-prefix:"3 \""
\" writestamp-suffix:"\" \"Sandia National Labs\""
\" End:
.\" -*- nroff -*-
.ig
Documentation for the Image Composition Engine for Tiles (ICE-T).
Copyright (C) 2000-2002 Sandia National Laboratories
Id
..
.TH icetCreateContext 3 "June 2, 2003" "Sandia National Labs" "ICE-T Reference"
.SH NAME
.B icetCreateContext
\- creates a new context.
.SH SYNOPSIS
.nf
.B #include <GL/ice-t.h>
.sp
.BI "IceTContext icetCreateContext(IceTCommunicator " comm ");"
.fi
.SH DESCRIPTION
The
.B icetCreateContext
creates a new context, makes it current, and returns a handle to the new
context.
.PP
Like OpenGL, the ICE-T engine behaves like a large state
machine. The parameters for engine operation is held in the current
state. The entire state is encapsulated in a context. Each new context
contains its own copy of the state.
.PP
It is therefore possible to change the entire current state of ICE-T by
simply switch contexts. Switching contexts is much faster than trying to
change many state parameters.
.SH ERRORS
None
.SH WARNINGS
None
.SH BUGS
It may be tempting to use contexts to run different ICE-T operations on
separate program threads. Although certainly possible, great care must be
taken. First of all, all threads will share the same context. Second of
all, ICE-T is not thread safe. Therefore, a multi-threaded program would
have to run all ICE-T commands in `critical sections' to ensure that the
correct context is being used, and the methods execute safely in general.
.SH NOTES
.B icetCreateContext
duplicates the communicator
.IR comm .
Thus, to avoid deadlocks on certain implementations (such as MPI), the user
level program should call
.B icetCreateContext
on all processes with the same
.I comm
object at about the same time.
.SH COPYRIGHT
Copyright \(co 2003 Sandia Corporation
.br
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.
.SH SEE ALSO
.BR icetDestroyContext ", " icetGetContext ", "
.BR icetSetContext ", " icetCopyState ", " icetGet
\" These are emacs settings that go at the end of the file.
\" Local Variables:
\" writestamp-format:"%B %e, %Y"
\" writestamp-prefix:"3 \""
\" writestamp-suffix:"\" \"Sandia National Labs\""
\" End:
.\" -*- nroff -*-
.ig
Documentation for the Image Composition Engine for Tiles (ICE-T).
Copyright (C) 2000-2003 Sandia National Laboratories
Id
..
.TH icetCreateMPICommunicator 3 "May 19, 2003" "Sandia National Labs" "ICE-T Reference"
.SH NAME
.B icetCreateMPICommunicator
\- Converts an MPI communicator to an
.B ICE-T
communicator.
.SH SYNOPSIS
.nf
.B #include <GL/ice-t_mpi.h>
.sp
.BI "IceTCommunicator icetCreateMPICommunicator(MPI_Comm " mpi_comm ");"
.fi
.SH DESCRIPTION
.B ICE-T
requires a communicator in order to perform correctly. An application is
free to build its own communicator, but many will simply prefer to use MPI,
which is a well established parallel communication tool. Thus,
.B ICE-T
comes with an implementation of
.B IceTCommunicator
that uses the MPI communication layer underneath.
.PP
.B icetCreateMPICommunicator
is used to create an
.B IceTCommunicator
that uses the
.I mpi_comm
MPI communication object. The resulting
.B IceTCommunicator
shares the same process group and process rank as the original MPI_Comm
communicator.
.PP
.I mpi_comm
is duplicated, which has two consiquences. First, all process in
.IR mpi_comm 's
group may need to call
.B icetCreateMPICommunicator
in order for any of them to proceed (depending on the MPI implementation).
Second,
.I mpi_comm
and the resulting
.B IceTCommunicator
are decoupled from each other. Communications in one cannot affect
another. Also, one communicator may be destroyed without affecting the
other.
.SH RETURN VALUE
An
.B IceTCommunicator
with the same processor group and rank as
.IR mpi_comm .
The communicator may be destroyed with a call to
.BR icetDestroyMPICommunicator .
.SH ERRORS
None.
.SH WARNINGS
None.
.SH BUGS
All MPI errors are ignored.
.B ICE-T
assumes that any error will cause the program to exit or be handled by the
user application.
.SH COPYRIGHT
Copyright \(co 2003 Sandia Corporation
.br
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.
.SH SEE ALSO
.BR icetDestroyMPICommunicator ", " icetCreateContext
\" These are emacs settings that go at the end of the file.
\" Local Variables:
\" writestamp-format:"%B %e, %Y"
\" writestamp-prefix:"3 \""
\" writestamp-suffix:"\" \"Sandia National Labs\""
\" End:
.\" -*- nroff -*-
.ig
Documentation for the Image Composition Engine for Tiles (ICE-T).
Copyright (C) 2000-2002 Sandia National Laboratories
Id
..
.TH icetDestroyContext 3 "May 15, 2003" "Sandia National Labs" "ICE-T Reference"
.SH NAME
.B icetDestroyContext
\- delete a context
.SH SYNOPSIS
.nf
.B #include <GL/ice-t.h>
.sp
.BI "void icetDeleteContext(IceTContext " context ");"
.fi
.SH DESCRIPTION
Frees the memory required to hold the state of
.I context
and removes
.I context
from existence.
.SH ERRORS
None.
.SH WARNINGS
None.
.SH BUGS
.B icetDestroyContext
will happily delete the current context for you, but subsequent calls to
most other
.B ICE-T
functions will probably result in seg-faults unless you make another
context current with
.BR icetCreateContext " or " icetSetContext .
The most notable execptions are the
.B icet*Context
functions themselves, which will work correctly without a proper current
context.