TextureStagePool
-
class TextureStagePool
The TextureStagePool (there is only one in the universe) serves to unify different pointers to the same
TextureStage
, mainly to help developers use a common pointer to access things that are loaded from different model files.It runs in one of three different modes, according to
set_mode()
. See that method for more information.Inheritance diagram
-
int garbage_collect(void)
Releases only those
TextureStages
in the pool that have a reference count of exactly 1; i.e. only thoseTextureStages
that are not being used outside of the pool. Returns the number ofTextureStages
released.
-
Mode get_mode(void)
Returns the fundamental operating mode of the
TextureStagePool
. Seeset_mode()
.
-
TextureStage *get_stage(TextureStage *temp)
Returns a
TextureStage
pointer that represents the sameTextureStage
described by temp, except that it is a shared pointer.Each call to get_stage() passing an equivalent
TextureStage
pointer will return the same shared pointer.If you modify the shared pointer, it will automatically disassociate it from the pool.
Also, the return value may be a different pointer than that passed in, or it may be the same pointer. In either case, the passed in pointer has now been sacrificed to the greater good and should not be used again (like any other PointerTo, it will be freed when the last reference count is removed).
-
void list_contents(std::ostream &out)
Lists the contents of the
TextureStage
pool to the indicated output stream.
-
void release_all_stages(void)
Releases all
TextureStages
in the pool and restores the pool to the empty state.
-
void release_stage(TextureStage *temp)
Removes the indicated
TextureStage
from the pool.
-
void set_mode(TextureStagePool::Mode mode)
Specifies the fundamental operating mode of the
TextureStagePool
.If this is M_none, each call to
get_stage()
returns the sameTextureStage
pointer that was passed in (the pool is effectively disabled). If this is M_name, each call toget_stage()
returns the lastTextureStage
passed in with the same name, whether it has different properties or not. If this is M_unique, then each call toget_stage()
returns onlyTextureStages
with identical properties.
-
static void write(std::ostream &out)
Lists the contents of the
TextureStage
pool to the indicated output stream.
-
int garbage_collect(void)