Panda3D
Public Types | Static Public Member Functions | Public Attributes | List of all members
TextureStagePool Class Reference

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. More...

#include "textureStagePool.h"

Public Types

enum  Mode { M_none, M_name, M_unique }
 

Static Public Member Functions

static int garbage_collect ()
 Releases only those TextureStages in the pool that have a reference count of exactly 1; i.e. More...
 
static Mode get_mode ()
 
static TextureStageget_stage (TextureStage *temp)
 Returns a TextureStage pointer that represents the same TextureStage described by temp, except that it is a shared pointer. More...
 
static void list_contents (std::ostream &out)
 Lists the contents of the TextureStage pool to the indicated output stream. More...
 
static void release_all_stages ()
 Releases all TextureStages in the pool and restores the pool to the empty state. More...
 
static void release_stage (TextureStage *temp)
 Removes the indicated TextureStage from the pool. More...
 
static void set_mode (Mode mode)
 
static void write (std::ostream &out)
 Lists the contents of the TextureStage pool to the indicated output stream. More...
 

Public Attributes

 get_mode
 Returns the fundamental operating mode of the TextureStagePool. More...
 
 set_mode
 Specifies the fundamental operating mode of the TextureStagePool. More...
 

Detailed Description

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.

Definition at line 32 of file textureStagePool.h.

Member Function Documentation

◆ garbage_collect()

int TextureStagePool::garbage_collect ( )
inlinestatic

Releases only those TextureStages in the pool that have a reference count of exactly 1; i.e.

only those TextureStages that are not being used outside of the pool. Returns the number of TextureStages released.

Definition at line 82 of file textureStagePool.I.

◆ get_stage()

TextureStage * TextureStagePool::get_stage ( TextureStage temp)
inlinestatic

Returns a TextureStage pointer that represents the same TextureStage 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).

Definition at line 31 of file textureStagePool.I.

Referenced by PT().

◆ list_contents()

void TextureStagePool::list_contents ( std::ostream &  out)
inlinestatic

Lists the contents of the TextureStage pool to the indicated output stream.

Definition at line 90 of file textureStagePool.I.

◆ release_all_stages()

void TextureStagePool::release_all_stages ( )
inlinestatic

Releases all TextureStages in the pool and restores the pool to the empty state.

Definition at line 48 of file textureStagePool.I.

◆ release_stage()

void TextureStagePool::release_stage ( TextureStage temp)
inlinestatic

Removes the indicated TextureStage from the pool.

Definition at line 39 of file textureStagePool.I.

◆ write()

void TextureStagePool::write ( std::ostream &  out)
static

Lists the contents of the TextureStage pool to the indicated output stream.

Definition at line 31 of file textureStagePool.cxx.

Member Data Documentation

◆ get_mode

TextureStagePool::Mode TextureStagePool::get_mode
inline

Returns the fundamental operating mode of the TextureStagePool.

See set_mode().

Definition at line 46 of file textureStagePool.h.

◆ set_mode

void TextureStagePool::set_mode
inline

Specifies the fundamental operating mode of the TextureStagePool.

If this is M_none, each call to get_stage() returns the same TextureStage pointer that was passed in (the pool is effectively disabled). If this is M_name, each call to get_stage() returns the last TextureStage passed in with the same name, whether it has different properties or not. If this is M_unique, then each call to get_stage() returns only TextureStages with identical properties.

Definition at line 46 of file textureStagePool.h.


The documentation for this class was generated from the following files: