MaterialPool
from panda3d.core import MaterialPool
- class MaterialPool
Bases:
DTOOL_SUPER_BASE
The MaterialPool (there is only one in the universe) serves to unify different pointers to the same Material, so we do not (a) waste memory with many different Material objects that are all equivalent, and (b) waste time switching the graphics engine between different Material states that are really the same thing.
The idea is to create a temporary Material representing the lighting state you want to apply, then call get_material(), passing in your temporary Material. The return value will either be a new Material object, or it may be the the same object you supplied; in either case, it will have the same value.
Inheritance diagram
- __init__(*args, **kwargs)
- garbageCollect()
C++ Interface: garbage_collect()
- /**
Releases only those materials in the pool that have a reference count of
exactly 1; i.e. only those materials that are not being used outside of
the pool. Returns the number of materials released.
*/
- garbage_collect()
C++ Interface: garbage_collect()
- /**
Releases only those materials in the pool that have a reference count of
exactly 1; i.e. only those materials that are not being used outside of
the pool. Returns the number of materials released.
*/
- getMaterial()
C++ Interface: get_material(Material temp)
- /**
Returns a Material pointer that represents the same material described by
temp, except that it is a shared pointer.
Each call to get_material() passing an equivalent Material 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).
*/
- get_material()
C++ Interface: get_material(Material temp)
- /**
Returns a Material pointer that represents the same material described by
temp, except that it is a shared pointer.
Each call to get_material() passing an equivalent Material 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).
*/
- listContents()
C++ Interface: list_contents(ostream out)
- /**
Lists the contents of the material pool to the indicated output stream.
*/
- list_contents()
C++ Interface: list_contents(ostream out)
- /**
Lists the contents of the material pool to the indicated output stream.
*/
- releaseAllMaterials()
C++ Interface: release_all_materials()
- /**
Releases all materials in the pool and restores the pool to the empty
state.
*/
- releaseMaterial()
C++ Interface: release_material(Material temp)
- /**
Removes the indicated material from the pool.
*/
- release_all_materials()
C++ Interface: release_all_materials()
- /**
Releases all materials in the pool and restores the pool to the empty
state.
*/