pfuTextureManager(3pf) OpenGL Performer 3.2.2 libpfutil C++ Reference Pages
NAMEpfuTextureManager - Class for managing texture lists
FUNCTION SPECIFICATION
#include <Performer/pfutil/pfuTextureManager.h>
pfuTextureManager::pfuTextureManager(void);
pfuTextureManager::~pfuTextureManager(void);
int pfuTextureManager::getTextureMemoryAvailable(void);
int pfuTextureManager::getTextureMemoryUsed(void);
float pfuTextureManager::getTextureMemoryUsedPercent(void);
pfuTexList *
pfuTextureManager::addTextureList(pfList *texList,
const char *name, pfTexture *default);
pfuTexList * pfuTextureManager::addTextureList(pfNode *node,
const char *name, pfTexture *default);
pfuTexList * pfuTextureManager::addTextureList(pfList *texList,
const char *name);
pfuTexList * pfuTextureManager::addTextureList(pfNode *node,
const char *name);
void pfuTextureManager::deleteTextureList(pfuTexList *tlist);
void pfuTextureManager::load(pfuTexList *texList);
float pfuTextureManager::load(pfuTexList *texList,
float deadline);
void pfuTextureManager::unload(pfuTexList *texList);
void pfuTextureManager::loadUnload(pfuTexList *loadList,
pfuTexList *unloadList);
int pfuTextureManager::getTextureMemorySize(void);
float pfuTextureManager::getTextureMemoryUsage(void);
int pfuTextureManager::willFit(pfuTexList *texList);
float pfuTextureManager::isListLoaded(pfuTexList *texList);
void pfuTextureManager::Print(int level);
Page 1
pfuTextureManager(3pf) OpenGL Performer 3.2.2 libpfutil C++ Reference Pages
DESCRIPTIONpfuTextureManager provides management of textures through texture lists.
Lists are created by either passing a pfList of pfTextures to
addTextureList or a pfNode, from which the Texture Manager will find all
textures. A master list is kept internally and the Texture Manager
attempts to resolve ambiguities of load and unload requests. Further,
the Texture Manager allows "trickle" loads, that is, partial loads of a
list allowing the loading of a texture list to be amortized over several
frames.
pfuTextureManager::getTextureMemoryAvailable(void) returns the size of
unused texture memory in bytes.
pfuTextureManager::getTextureMemoryUsed(void) return size in bytes of the
texture memory used by the textures that the TextureManager if managing.
pfuTextureManager::getTextureMemoryUsedPercent(void) returns a percentage
(0.0 to 100.0 of texture memory used by textures that the Texture Manager
is managing.
pfuTextureManager::*addTextureList(pfList *texList, const char *name,
pfTexture *default) adds a texture list to be managed from a pfList of
pfTextures texList. name is an arbitary name that is used for
identifying the texture list in a Print. default is a pfTexture whose
image will be substituded in the case of an unload. This way, no
textures will be accidentally loaded if something is drawn which
references the texture. addTextureList returns a
pfTextureManager::pfuTexList type which is solely used to pass to
deleteTextureList, load, unload, loadUnload, willFit, and isListLoaded.
pfuTextureManager::*addTextureList(pfNode *node, const char *name,
pfTexture *default) adds a texture list to be managed based on a pfNode
node. name is an arbitary name that is used for identifying the texture
list in a Print. default is a pfTexture whose image will be substituded
in the case of an unload. This way, no textures will be accidentally
loaded if something is drawn which references the texture.
addTextureList returns a pfTextureManager::pfuTexList type which is
solely used to pass to deleteTextureList, load, unload, loadUnload,
willFit, and isListLoaded.
pfuTextureManager::*addTextureList(pfList *texList, const char *name)
adds a texture list to be managed based on a pfList texList of
pfTextures. name is an arbitary name that is used for identifying the
texture list in a Print. This version does not supply a default texture
and it is therefore possible to accidentally load a texture outside of
the Texture Manager's control if the object is drawn. addTextureList
returns a pfTextureManager::pfuTexList type which is solely used to pass
to deleteTextureList, load, unload, loadUnload, willFit, and
isListLoaded.
Page 2
pfuTextureManager(3pf) OpenGL Performer 3.2.2 libpfutil C++ Reference Pages
pfuTextureManager::*addTextureList(pfNode *node, const char *name) adds a
texture list based on a pfNode node. name is an arbitary name that is
used for identifying the texture list in a Print. This version does not
supply a default texture and it is therefore possible to accidentally
load a texture outside of the Texture Manager's control if the object is
drawn. addTextureList returns a pfTextureManager::pfuTexList type which
is solely used to pass to deleteTextureList, load, unload, loadUnload,
willFit, and isListLoaded.
pfuTextureManager::deleteTextureList(pfuTexList *tlist) deletes a texture
list from the group of lists the Texture Manager is managing.
pfuTextureManager::load(pfuTexList *texList) loads the list referred to
by texList to texture memory. This must be called from the DRAW process.
pfuTextureManager::load(pfuTexList *texList, float deadline) loads as
much of the texture list referred to by texList to texture memory as it
can before deadline, and returns a value between 0.0f and 1.0f indicating
the level of completion. This function can be called multiple times
until it returns 1.0f. This is useful when there is a need to load a
large list of textures. The load may be amortized over several frames.
This function can only be called in the DRAW process.
pfuTextureManager::unload(pfuTexList *texList) unload a texture list from
texture memory. If a default texture is associated with this list, it
will point the image pointers of all of the list of pfTextures to the
default texture image.
pfuTextureManager::loadUnload(pfuTexList *loadList, pfuTexList
*unloadList) effects a load of loadlist and an unload of unloadList in
one operation. This is useful when loadList and unloadList that have
textures in common to avoid unloading and reloading the common textures.
pfuTextureManager::getTextureMemorySize(void) returns the size of texture
memory in bytes.
pfuTextureManager::getTextureMemoryUsage(void) returns the size of
texture memory in bytes used by textures managed by the texture manager.
pfuTextureManager::willFit(pfuTexList *texList) returns a boolean
indicating whether texList will all fit in texture memory.
pfuTextureManager::isListLoaded(pfuTexList *texList) returns a boolean
indicating whether all pfTextures in texList are loaded in texture
memory.
pfuTextureManager::Print(int level) prints a formated message about
managed textures and lists and is useful for debuggin or observing the
Texture Manager's behavior. Three levels are currently supported: 1)
prints only the name of each texture list, it's overall size and a
fraction indicating the level of residence in texture memory, 2) a more
comprehensive list of each list, including status of individual texture
Page 3
pfuTextureManager(3pf) OpenGL Performer 3.2.2 libpfutil C++ Reference Pages
on the list, and 3) a more verbose description.
SEE ALSOpfTexture(3pf)
Page 4