protected class TextureAtlas.AtlasBackingStore
extends java.lang.Object
implements com.jogamp.opengl.util.packrect.BackingStoreManager
RectanglePacker
, and delegates calls from a JOGL rectangle packer to methods in this texture atlas.Modifier | Constructor and Description |
---|---|
protected |
AtlasBackingStore() |
Modifier and Type | Method and Description |
---|---|
boolean |
additionFailed(com.jogamp.opengl.util.packrect.Rect cause,
int attemptNumber) |
java.lang.Object |
allocateBackingStore(int w,
int h) |
void |
beginMovement(java.lang.Object oldBackingStore,
java.lang.Object newBackingStore) |
boolean |
canCompact() |
void |
deleteBackingStore(java.lang.Object backingStore) |
void |
endMovement(java.lang.Object oldBackingStore,
java.lang.Object newBackingStore) |
void |
move(java.lang.Object oldBackingStore,
com.jogamp.opengl.util.packrect.Rect oldLocation,
java.lang.Object newBackingStore,
com.jogamp.opengl.util.packrect.Rect newLocation) |
boolean |
preExpand(com.jogamp.opengl.util.packrect.Rect cause,
int attemptNumber) |
public boolean additionFailed(com.jogamp.opengl.util.packrect.Rect cause, int attemptNumber)
If this texture atlas is configured to evicts old elements, this attempts to remove the oldest one then exits, allowing the caller to attempt the addition again. This throws a WWRuntimeException if this texture atlas is not configured to evict old elements, or if there are no more elements to evict.
additionFailed
in interface com.jogamp.opengl.util.packrect.BackingStoreManager
WWRuntimeException
- if this backing store cannot fit the rectangle in its layout.public java.lang.Object allocateBackingStore(int w, int h)
Calls TextureAtlas.createBackingImage(int, int)
with the specified width and height.
allocateBackingStore
in interface com.jogamp.opengl.util.packrect.BackingStoreManager
public void beginMovement(java.lang.Object oldBackingStore, java.lang.Object newBackingStore)
Calls TextureAtlas.beginMoveEntries(java.awt.image.BufferedImage, java.awt.image.BufferedImage)
,
casting the specified backing stores to BufferedImages.
beginMovement
in interface com.jogamp.opengl.util.packrect.BackingStoreManager
public boolean canCompact()
Returns true
. The texture atlas can always attempt to expand or compact.
canCompact
in interface com.jogamp.opengl.util.packrect.BackingStoreManager
public void deleteBackingStore(java.lang.Object backingStore)
deleteBackingStore
in interface com.jogamp.opengl.util.packrect.BackingStoreManager
public void endMovement(java.lang.Object oldBackingStore, java.lang.Object newBackingStore)
Calls TextureAtlas.endMoveEntries(java.awt.image.BufferedImage, java.awt.image.BufferedImage)
,
casting the specified backing stores to BufferedImages.
endMovement
in interface com.jogamp.opengl.util.packrect.BackingStoreManager
public void move(java.lang.Object oldBackingStore, com.jogamp.opengl.util.packrect.Rect oldLocation, java.lang.Object newBackingStore, com.jogamp.opengl.util.packrect.Rect newLocation)
Calls TextureAtlas.moveEntry(java.awt.image.BufferedImage, com.jogamp.opengl.util.packrect.Rect,
java.awt.image.BufferedImage, com.jogamp.opengl.util.packrect.Rect)
, casting the specified backing stores to
BufferedImages.
move
in interface com.jogamp.opengl.util.packrect.BackingStoreManager
public boolean preExpand(com.jogamp.opengl.util.packrect.Rect cause, int attemptNumber)
Returns false
, indicating that the rectangle packer should just expand. When configured to do
so, texture atlas evicts old elements in additionFailed
if this texture atlas is full and the
addition would otherwise fail.
preExpand
in interface com.jogamp.opengl.util.packrect.BackingStoreManager