Man Linux: Main Page and Category List


       icetCreateContext -- creates a new context.


       #include <GL/ice-t.h>

       IceTContext icetCreateContext(   IceTCommunicator   comm  );


       The icetCreateContext function creates a new context, makes it current,
       and returns a handle to the new context. The handle returned is of type
       IceTContext.   This  is  an  opaque  type  that  should  not be handled
       directly, but rather simply passed to other IceT functions.

       Like OpenGL ,the IceT 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 state.

       It  is therefore possible to change the entire current state of IceT by
       simply switch contexts. Switching contexts is much  faster,  and  often
       more convenient, than trying to change many state parameters.






       It  may be tempting to use contexts to run different IceT 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, IceT is not thread safe. Therefore,  a  multi-threaded  program
       would  have  to  run all IceT commands in `critical sections' to ensure
       that the correct context is being used, and the methods execute  safely
       in general.


       icetCreateContext  duplicates  the  communicator  comm.  Thus, to avoid
       deadlocks on certain implementations (such  as  MPI),  the  user  level
       program  should  call  icetCreateContext on all processes with the same
       comm object at about the same time.


       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

       icetDestroyContext(3),      icetGetContext(3),       icetSetContext(3),
       icetCopyState(3), icetGet(3)

IceT Reference                 January 31, 2007           icetCreateContext(3)