icetStrategy(3)
π icetStrategy(3) β IceT Reference π
okay bestie, gather round, because this one is literally the vibe-setter for how IceT composites your images. it's icetStrategy(3), she's from the IceT Reference, and she is the main character of your multi-tile render pipeline. let's get into it π«Ά
β¨ NAME β¨
icetStrategy β set the strategy used to composite images. that's it, that's the job, and she eats every time π
β¨ Synopsis β¨
#include <IceT.h>
void icetStrategy( IceTEnum strategy );
one function, one argument, infinite slay. no cap.
β¨ Description β¨
so here's the tea: the IceT API comes packaged with several algorithms for compositing images, and the algorithm you get is determined by selecting a strategy. you select it with icetStrategy. simple as that πΈ
π¨ IMPORTANT BESTIE ALERT π¨ a strategy must be selected beforeicetDrawFrame,icetCompositeImage, oricetGLDrawFrameis called. like, before. not during. before. periodt.
you pick a strategy from one of these provided enumerated values π
ICET_STRATEGY_SEQUENTIALβ basically applies a "traditional" single tile composition (such as binary swap) to each tile in the order they were defined. here's the catch tho: because each process must take part in the composition of each tile regardless of whether they draw into it, this strategy is usually inefficient when compositing for more than one tile. but it's recommended for the single tile case because it bypasses some of the communication necessary for the other multi-tile strategies. so like, one tile? iconic. many tiles? not it πICET_STRATEGY_DIRECTβ 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 strategy. it's giving "everyone dump your stuff on the same three people" πICET_STRATEGY_SPLITβ likeICET_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. so likeβ¦ fast but fragile, yk? π¦ICET_STRATEGY_REDUCEβ 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 multi-tile applications. (however, in the special case where only one tile is defined, the sequential strategy is probably better.) she's balanced, she's reliable, she's the moment πICET_STRATEGY_VTREEβ 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 asICET_STRATEGY_REDUCEorICET_STRATEGY_SPLIT, but has very well behaved network communication. lowkey the polite one of the group π
π the ordered composite situation π
not all of the strategies support ordered image composition, and this matters, so listen up:
ICET_STRATEGY_SEQUENTIAL,ICET_STRATEGY_DIRECT, andICET_STRATEGY_REDUCEdo support ordered image composition. βICET_STRATEGY_SPLITandICET_STRATEGY_VTREEdo not support ordered image composition and will ignoreICET_ORDERED_COMPOSITEif it is enabled. β
π§ sub-strategy moment π§
some of the strategies, namely ICET_STRATEGY_SEQUENTIAL and ICET_STRATEGY_REDUCE, use a sub-strategy that composites the image for a single tile. this single image strategy can also be specified with icetSingleImageStrategy. iykyk π
β¨ Errors β¨
ICET_INVALID_ENUMβ the strategy argument does not represent a valid strategy. bestie. bestie. that's not a strategy. π
β¨ Warnings β¨
None. flawless, no notes, we love to see it π
β¨ Bugs β¨
None known. she's bug-free and she knows it π
β¨ 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 β¨
icetCompositeImage(3), icetDrawFrame(3), icetGetStrategyName(3), icetGLDrawFrame(3), icetSingleImageStrategy(3)
go read those too, they're all in the friend group π«Ά
and that's the whole page babes β¨ this was the IceT Reference, dated September 26, 2014 β mwah, historic, iconic, no cap πππ¦
π¦ where this page comes from
- debian bookworm: paraview 5.11.0+dfsg-1+b1 Β· BSD-3-Clause
- debian trixie: paraview 5.13.2+dfsg-3 Β· BSD-3-Clause
- ubuntu jammy: paraview 5.10.0~rc1-1build3 Β· BSD-3-Clause
- ubuntu noble: paraview 5.11.2+dfsg-6build5 Β· BSD-3-Clause
- ubuntu questing: paraview 5.13.2+dfsg-3
- ubuntu resolute: paraview 6.0.1+dfsg1-7 Β· BSD-3-Clause
- ubuntu stonking: paraview 6.1.1+dfsg1-2build1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms