7 #include <unordered_map>
71 bool _usedLastFrame =
false;
139 int32_t _currentSize;
142 std::unordered_map<const Tile*, TileOcclusionRendererProxy*>
143 _tileToOcclusionProxyMappings;
A pool of TileOcclusionRendererProxy objects. Allows quick remapping of tiles to occlusion renderer p...
void destroyPool()
Destroy the pool.
TileOcclusionRendererProxyPool(int32_t maximumPoolSize)
Constructs a new instance.
virtual ~TileOcclusionRendererProxyPool()
Destroys this pool.
const TileOcclusionRendererProxy * fetchOcclusionProxyForTile(const Tile &tile, int32_t currentFrame)
Get the TileOcclusionRendererProxy mapped to the tile. Attempts to create a new mapping if one does n...
void pruneOcclusionProxyMappings()
Prunes the occlusion proxy mappings and removes any mappings that were unused the last frame....
virtual TileOcclusionRendererProxy * createProxy()=0
Create a TileOcclusionRendererProxy.
virtual void destroyProxy(TileOcclusionRendererProxy *pProxy)=0
Destroy a TileOcclusionRendererProxy that is done being used.
An interface for client renderers to use to represent tile bounding volumes that should be occlusion ...
virtual TileOcclusionState getOcclusionState() const =0
Get the occlusion state for this tile. If this is OcclusionUnavailable, the traversal may decide to w...
virtual void reset(const Tile *pTile)=0
Reset this proxy to target a new tile. If nullptr, this proxy is back in the pool and will not be use...
Classes that implement the 3D Tiles standard.
@ Occluded
The tile's bounding volume is known by the renderer to be occluded.
@ OcclusionUnavailable
The renderer does not yet know if the tile's bounding volume is occluded or not.
@ NotOccluded
The tile's bounding volume is known by the renderer to be visible.