Interface CloneableSmartAsset
- All Superinterfaces:
Cloneable
- All Known Implementing Classes:
ArmatureDebugger
,ArmatureNode
,AssetLinkNode
,AudioNode
,BatchNode
,BitmapText
,CameraNode
,Geometry
,GeometryGroupNode
,InstancedGeometry
,InstancedNode
,LightNode
,Material
,Node
,ParticleEmitter
,Picture
,SimpleBatchNode
,SkeletonDebugger
,Spatial
,StatsView
,TerrainGrid
,TerrainPatch
,TerrainQuad
,Texture
,Texture2D
,Texture3D
,TextureArray
,TextureCubeMap
CloneableSmartAsset
interface allows use
of cloneable smart asset management.
Smart asset management requires cooperation from the AssetKey
.
In particular, the AssetKey should return WeakRefCloneAssetCache
in its
AssetKey.getCacheType()
method. Also smart assets MUST
create a clone of the asset and cannot return the same reference,
e.g. createClone(someAsset)
!= someAsset
.
If the AssetManager.loadAsset(com.jme3.asset.AssetKey)
method
is called twice with the same asset key (equals() wise, not necessarily reference wise)
then both assets will have the same asset key set (reference wise) via
AssetKey()
, then this asset key
is used to track all instances of that asset. Once all clones of the asset
are garbage collected, the shared asset key becomes unreachable and at that
point it is removed from the smart asset cache.
-
Method Summary
Modifier and TypeMethodDescriptionclone()
Creates a clone of the asset.getKey()
Returns the asset key that is used to track this asset for garbage collection.void
Set by theAssetManager
to track this asset.
-
Method Details
-
clone
CloneableSmartAsset clone()Creates a clone of the asset. Please seeObject.clone()
for more info on how this method should be implemented.- Returns:
- A clone of this asset. The cloned asset cannot reference equal this asset.
-
setKey
Set by theAssetManager
to track this asset. Only clones of the asset has this set, the original copy that was loaded has this key set to null so that only the clones are tracked for garbage collection.- Parameters:
key
- The AssetKey to set
-
getKey
AssetKey getKey()Returns the asset key that is used to track this asset for garbage collection.- Returns:
- the asset key that is used to track this asset for garbage collection.
-