Man Linux: Main Page and Category List


       icetStrategy -- set the strategy used to composite images.


       #include <GL/ice-t.h>

       void icetStrategy(   IceTStrategy   strategy  );


       The  IceT  API  comes  packaged with several algorithms for compositing
       images. The algorithm to use is determined  by  selecting  a  strategy.
       The  strategy  is  selected  with  icetStrategy.   A  strategy  must be
       selected before icetDrawFrame is called.

       The strategy is of type IceTStrategy.  This is an  opaque  type.  There
       are  no  conventions to create or change an IceTStrategy, but there are
       several predefined strategies to select from. They are:

               Basically applies a  ``traditional''  single  tile  composition
              (such  as  binary  swap)  to  each  tile  in the order they were
              defined. Because each process must take part in the  composition
              of  each  tile  regardless  of  whether  they draw into it, this
              strategy is usually very inefficient when compositing  for  more
              than tile. It is provided mostly for comparative purposes.

               As each process renders an image for a tile, that image is sent
              directly to the  process  that  will  display  that  tile.  This
              usually  results in a few processes receiving and processing the
              majority of the data, and is therefore  usually  an  inefficient

               Like  ICET_STRATEGY_DIRECT, except that the tiles are split up,
              and each process is assigned a piece of a tile  in  such  a  way
              that  each process receives and handles about the same amount of
              data. This strategy is often very  efficient,  but  due  to  the
              large  amount  of  messages passed, it has not proven to be very
              scalable or robust.

               A two phase algorithm. In the  first  phase,  tile  images  are
              redistributed such that each process has one image for one tile.
              In the second phase, a ``traditional'' single  tile  composition
              is performed for each tile. Since each process contains an image
              for  only  one  tile,  all   these   compositions   may   happen
              simultaneously.  This  is  a well rounded strategy that seems to
              perform well in a wide variety of applications.

               An  extension  to  the  binary   tree   algorithm   for   image
              composition.  Sets up a `virtual' composition tree for each tile
              image. Processes that belong to  multiple  trees  (because  they
              render  to  more  than  one  tile)  are allowed to float between
              trees.  This strategy is not quite  as  well  load  balanced  as
              ICET_STRATEGY_REDUCE  or  ICET_STRATEGY_SPLIT, but has very well
              behaved network communication.

       Not  all  of  the  strategies  support   ordered   image   composition.
       support   ordered   image   composition.     ICET_STRATEGY_SPLIT    and
       ICET_STRATEGY_VTREE  do  not support ordered image composition and will
       ignore ICET_ORDERED_COMPOSITE if it is enabled.






       Use the ICET_STRATEGY_SPLIT strategy with care. It  has  proven  to  be
       unreliable  on  several high-speed interconnects. Avoid using it at all
       in a production application.


       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

       icetDrawFrame(3), icetGetStrategyName(3)

IceT Reference                 February 13, 2008               icetStrategy(3)