TexturePool
from panda3d.core import TexturePool
- class TexturePool
Bases:
This is the preferred interface for loading textures from image files. It unifies all references to the same filename, so that multiple models that reference the same textures don’t waste texture memory unnecessarily.
Inheritance diagram
- static add_texture(texture: Texture)
Adds the indicated already-loaded texture to the pool. The texture must have a filename set for its name. The texture will always replace any previously-loaded texture in the pool that had the same filename.
- static clear_fake_texture_image()
Restores normal behavior of loading the textures actually requested.
- static clear_filters()
Stops all
TexturePoolFilter
objects from operating on this pool.
- property filters Sequence[TexturePoolFilter]
Returns the nth texture pool filter registered.
- static find_all_textures(name: str) TextureCollection
Returns the set of all textures found in the pool that match the indicated name (which may contain wildcards).
- static find_texture(name: str) Texture
Returns the first texture found in the pool that matches the indicated name (which may contain wildcards). Returns the texture if it is found, or NULL if it is not.
- static garbage_collect() int
Releases only those textures in the pool that have a reference count of exactly 1; i.e. only those textures that are not being used outside of the pool. Returns the number of textures released.
- static get_alpha_scale_map() Texture
Returns a standard Texture object that has been created with
Texture.generate_alpha_scale_map()
.This Texture object is used internally by Panda to apply an alpha scale to an object (instead of munging its vertices) when gsg->get_alpha_scale_via_texture() returns true.
- static get_fake_texture_image() Filename
Returns the filename that was specified with a previous call to
set_fake_texture_image()
.
- get_filter(i: int) TexturePoolFilter
Returns the nth texture pool filter registered.
- static get_global_ptr() TexturePool
Initializes and/or returns the global pointer to the one
TexturePool
object in the system.
- static get_normalization_cube_map(size: int) Texture
Returns a standard Texture object that has been created with
Texture.generate_normalization_cube_map()
. This Texture may be shared by any application code requiring a normalization cube map. It will be at least as large as the specified size, though it may be larger.
- static get_texture(filename: Filename, alpha_filename: Filename, primary_file_num_channels: int, alpha_file_channel: int, read_mipmaps: bool) Texture
Returns the texture that has already been previously loaded, or NULL otherwise.
- static get_texture(filename: Filename, primary_file_num_channels: int, read_mipmaps: bool) Texture
Returns the texture that has already been previously loaded, or NULL otherwise.
- static has_fake_texture_image() bool
Returns true if fake_texture_image mode has been enabled, false if we are in the normal mode.
- static has_texture(filename: Filename) bool
Returns true if the texture has ever been loaded, false otherwise.
- is_filter_registered(tex_filter: TexturePoolFilter) bool
Checks whether the given
TexturePoolFilter
object is currently registered in the texture pool or not.
- static list_contents()
Lists the contents of the texture pool to cout
- static list_contents(out: ostream)
Lists the contents of the texture pool to the indicated output stream.
- static load_2d_texture_array(filename_pattern: Filename, read_mipmaps: bool, options: LoaderOptions) Texture
Loads a 2-D texture array that is specified with a series of n pages, all numbered in sequence, and beginning with index 0. The filename should include a sequence of one or more hash characters (“#”) which will be filled in with the index number of each level.
If read_mipmaps is true, the filename should contain an additional hash mark. The first hash mark will be filled in with the mipmap level number, and the second with the index number of each 2-d level.
- static load_3d_texture(filename_pattern: Filename, read_mipmaps: bool, options: LoaderOptions) Texture
Loads a 3-D texture that is specified with a series of n pages, all numbered in sequence, and beginning with index 0. The filename should include a sequence of one or more hash characters (“#”) which will be filled in with the index number of each level.
If read_mipmaps is true, the filename should contain an additional hash mark. The first hash mark will be filled in with the mipmap level number, and the second with the index number of each 3-d level.
- static load_cube_map(filename_pattern: Filename, read_mipmaps: bool, options: LoaderOptions) Texture
Loads a cube map texture that is specified with a series of 6 pages, numbered 0 through 5. The filename should include a sequence of one or more hash characters (“#”) which will be filled in with the index number of each pagee.
If read_mipmaps is true, the filename should contain an additional hash mark. The first hash mark will be filled in with the mipmap level number, and the second with the face number, 0 through 5.
- static load_texture(filename: Filename, alpha_filename: Filename, primary_file_num_channels: int, alpha_file_channel: int, read_mipmaps: bool, options: LoaderOptions) Texture
Loads the given filename up into a texture, if it has not already been loaded, and returns the new texture. If a texture with the same filename was previously loaded, returns that one instead. If the texture file cannot be found, returns NULL.
If read_mipmaps is true, both filenames should contain a hash mark (‘#’), which will be filled in with the mipmap level number; and the texture will be defined with a series of images, two for each mipmap level.
- static load_texture(filename: Filename, primary_file_num_channels: int, read_mipmaps: bool, options: LoaderOptions) Texture
Loads the given filename up into a texture, if it has not already been loaded, and returns the new texture. If a texture with the same filename was previously loaded, returns that one instead. If the texture file cannot be found, returns NULL.
If read_mipmaps is true, the filename should contain a hash mark (‘#’), which will be filled in with the mipmap level number; and the texture will be defined with a series of images, one for each mipmap level.
- static make_texture(extension: str) Texture
Creates a new Texture object of the appropriate type for the indicated filename extension, according to the types that have been registered via register_texture_type().
- register_filter(tex_filter: TexturePoolFilter) bool
Records a
TexturePoolFilter
object that may operate on texture images as they are loaded from disk.
- static rehash()
Should be called when the model-path changes, to blow away the cache of texture pathnames found along the model-path.
- static release_all_textures()
Releases all textures in the pool and restores the pool to the empty state.
- static release_texture(texture: Texture)
Removes the indicated texture from the pool, indicating it will never be loaded again; the texture may then be freed. If this function is never called, a reference count will be maintained on every texture every loaded, and textures will never be freed.
The texture’s name should not have been changed during its lifetime, or this function may fail to locate it in the pool.
- static set_fake_texture_image(filename: Filename)
Sets a bogus filename that will be loaded in lieu of any textures requested from this point on.
- unregister_filter(tex_filter: TexturePoolFilter) bool
Stops a
TexturePoolFilter
object from operating on this pool.
- static verify_texture(filename: Filename) bool
Loads the given filename up into a texture, if it has not already been loaded, and returns true to indicate success, or false to indicate failure. If this returns true, it is guaranteed that a subsequent call to
load_texture()
with the same texture name will return a valid Texture pointer.