Cogs.Core
Classes | Public Member Functions | Public Attributes | Protected Attributes | Private Attributes | List of all members
Cogs::RasterSource Class Referenceabstract
Inheritance diagram for Cogs::RasterSource:
Cogs::BridgeRasterSource

Classes

struct  Processing
 

Public Member Functions

std::vector< RasterLevel > & getLevels ()
 
const std::vector< RasterLevel > & getLevels () const
 
int getTileWidth () const
 
int getTileHeight () const
 
virtual void requestTile (const TileLoadRequest &request)=0
 
void lock ()
 
void unlock ()
 
TextureHandle loadTexture (const unsigned char *data, const int width, const int height, const TextureFormat format, const size_t size)
 
void releaseTexture (TextureHandle texture, const size_t size)
 
RasterTilegetTile (const RasterTileIdentifier &identifier)
 
RasterTilegetTile (const size_t id)
 
void loadTileData (RasterTile *tile, size_t requestGeneration, std::vector< uint8_t > &data, TextureHandle textureHandle, TextureFormat format, size_t size)
 
void invalidateTile (const RasterTileIdentifier &id, InvalidationFlags::EInvalidationFlags flags=InvalidationFlags::InvalidateParents)
 
void cancelActiveRequests ()
 Cancels all active requests.
 
void purgeCache ()
 Purge all cache, including resident data.
 
void purgeResidentCache ()
 Purge tile data resident in memory and on the GPU.
 
void purgeOldData ()
 Purges orphaned tile data that has been replaced with new contents.
 
void releaseTileData (RasterTileData &tileData)
 Release the given tile data.
 
bool tryGetTextureHandle (const RasterTile *tile, TextureHandle &handle)
 
void updateTileUsage (const RasterTile *tile)
 
void refTile (RasterTile *tile)
 
void unrefTile (RasterTile *tile)
 
void removeTileUsageData (size_t code)
 
void removeTile (RasterTile *tile)
 
void evictLruTile ()
 
RasterTileDatagetTileData (RasterTile *tile)
 
virtual void allocateTileStorage (const size_t textureSize, std::vector< uint8_t > &buffer)=0
 
virtual void deallocateTileStorage (std::vector< uint8_t > &buffer)=0
 
void addSubscriber (struct RasterSourceSubscription *handler)
 
void removeSubscriber (struct RasterSourceSubscription *handler)
 
bool hasProcessingRequests () const
 

Public Attributes

struct Cogs::RasterSource::Processing processing
 
std::unordered_set< struct RasterSourceSubscription * > subscribers
 
std::mutex subscriberMutex
 
IGraphicsDevicedevice = nullptr
 
std::atomic< size_t > textureBufferSize = 0
 
TextureFormat format = TextureFormat::Unknown
 
bool isHeight = false
 
float minZ = 0
 
float maxZ = 0
 
std::string name
 
std::atomic< size_t > generation = 0
 

Protected Attributes

std::vector< RasterLevellevels
 
int tileLongitudePosts = 0
 
int tileLatitudePosts = 0
 
TextureHandle invalidTileHandle
 

Private Attributes

std::map< size_t, RasterTileactiveTiles
 
std::map< size_t, RasterTileDataresidentTiles
 
std::vector< RasterTileDataoldTileData
 
std::list< size_t > lruList
 
std::map< size_t, std::list< size_t >::iterator > lruMap
 
std::mutex readyMutex
 

Detailed Description

Definition at line 46 of file RasterSource.h.

Constructor & Destructor Documentation

◆ ~RasterSource()

Cogs::RasterSource::~RasterSource ( )
virtual

Definition at line 17 of file RasterSource.cpp.

Member Function Documentation

◆ addSubscriber()

void Cogs::RasterSource::addSubscriber ( struct RasterSourceSubscription handler)
inline

Definition at line 103 of file RasterSource.h.

◆ cancelActiveRequests()

void Cogs::RasterSource::cancelActiveRequests ( )

Cancels all active requests.

Cancel all active requests. Any data received that was requested prior to a call to this method will be discarded when received.

All results returned from working requests will be discarded upon return.

Definition at line 229 of file RasterSource.cpp.

◆ evictLruTile()

void Cogs::RasterSource::evictLruTile ( )

Definition at line 135 of file RasterSource.cpp.

◆ getLevels() [1/2]

std::vector< RasterLevel > & Cogs::RasterSource::getLevels ( )
inline

Definition at line 51 of file RasterSource.h.

◆ getLevels() [2/2]

const std::vector< RasterLevel > & Cogs::RasterSource::getLevels ( ) const
inline

Definition at line 52 of file RasterSource.h.

◆ getTile() [1/2]

Cogs::RasterTile * Cogs::RasterSource::getTile ( const RasterTileIdentifier identifier)

Definition at line 32 of file RasterSource.cpp.

◆ getTile() [2/2]

Cogs::RasterTile * Cogs::RasterSource::getTile ( const size_t  id)

Definition at line 58 of file RasterSource.cpp.

◆ getTileData()

Cogs::RasterTileData * Cogs::RasterSource::getTileData ( RasterTile tile)

Definition at line 221 of file RasterSource.cpp.

◆ getTileHeight()

int Cogs::RasterSource::getTileHeight ( ) const
inline

Definition at line 55 of file RasterSource.h.

◆ getTileWidth()

int Cogs::RasterSource::getTileWidth ( ) const
inline

Definition at line 54 of file RasterSource.h.

◆ hasProcessingRequests()

bool Cogs::RasterSource::hasProcessingRequests ( ) const
inline

Definition at line 106 of file RasterSource.h.

◆ invalidateTile()

void Cogs::RasterSource::invalidateTile ( const RasterTileIdentifier id,
InvalidationFlags::EInvalidationFlags  flags = InvalidationFlags::InvalidateParents 
)

Definition at line 189 of file RasterSource.cpp.

◆ loadTexture()

Cogs::TextureHandle Cogs::RasterSource::loadTexture ( const unsigned char *  data,
const int  width,
const int  height,
const TextureFormat  format,
const size_t  size 
)

Definition at line 268 of file RasterSource.cpp.

◆ loadTileData()

void Cogs::RasterSource::loadTileData ( RasterTile tile,
size_t  requestGeneration,
std::vector< uint8_t > &  data,
TextureHandle  textureHandle,
TextureFormat  format,
size_t  size 
)

Definition at line 152 of file RasterSource.cpp.

◆ lock()

void Cogs::RasterSource::lock ( )
inline

Definition at line 59 of file RasterSource.h.

◆ purgeCache()

void Cogs::RasterSource::purgeCache ( )

Purge all cache, including resident data.

Remove all tile data from the cache of this source.

Definition at line 237 of file RasterSource.cpp.

◆ purgeOldData()

void Cogs::RasterSource::purgeOldData ( )

Purges orphaned tile data that has been replaced with new contents.

Definition at line 291 of file RasterSource.cpp.

◆ purgeResidentCache()

void Cogs::RasterSource::purgeResidentCache ( )

Purge tile data resident in memory and on the GPU.

Remove all tile data from this source resident on the GPU.

Definition at line 253 of file RasterSource.cpp.

◆ refTile()

void Cogs::RasterSource::refTile ( RasterTile tile)

Definition at line 97 of file RasterSource.cpp.

◆ releaseTexture()

void Cogs::RasterSource::releaseTexture ( TextureHandle  texture,
const size_t  size 
)

Definition at line 274 of file RasterSource.cpp.

◆ releaseTileData()

void Cogs::RasterSource::releaseTileData ( RasterTileData tileData)

Release the given tile data.

Definition at line 280 of file RasterSource.cpp.

◆ removeSubscriber()

void Cogs::RasterSource::removeSubscriber ( struct RasterSourceSubscription handler)
inline

Definition at line 104 of file RasterSource.h.

◆ removeTile()

void Cogs::RasterSource::removeTile ( RasterTile tile)

Definition at line 120 of file RasterSource.cpp.

◆ removeTileUsageData()

void Cogs::RasterSource::removeTileUsageData ( size_t  code)

Definition at line 129 of file RasterSource.cpp.

◆ tryGetTextureHandle()

bool Cogs::RasterSource::tryGetTextureHandle ( const RasterTile tile,
TextureHandle handle 
)

Definition at line 63 of file RasterSource.cpp.

◆ unlock()

void Cogs::RasterSource::unlock ( )
inline

Definition at line 60 of file RasterSource.h.

◆ unrefTile()

void Cogs::RasterSource::unrefTile ( RasterTile tile)

Definition at line 111 of file RasterSource.cpp.

◆ updateTileUsage()

void Cogs::RasterSource::updateTileUsage ( const RasterTile tile)

Definition at line 76 of file RasterSource.cpp.

Member Data Documentation

◆ activeTiles

std::map<size_t, RasterTile> Cogs::RasterSource::activeTiles
private

Definition at line 145 of file RasterSource.h.

◆ device

IGraphicsDevice* Cogs::RasterSource::device = nullptr

Definition at line 121 of file RasterSource.h.

◆ format

TextureFormat Cogs::RasterSource::format = TextureFormat::Unknown

Definition at line 125 of file RasterSource.h.

◆ generation

std::atomic<size_t> Cogs::RasterSource::generation = 0

Definition at line 134 of file RasterSource.h.

◆ invalidTileHandle

TextureHandle Cogs::RasterSource::invalidTileHandle
protected

Definition at line 142 of file RasterSource.h.

◆ isHeight

bool Cogs::RasterSource::isHeight = false

Definition at line 127 of file RasterSource.h.

◆ levels

std::vector<RasterLevel> Cogs::RasterSource::levels
protected

Definition at line 137 of file RasterSource.h.

◆ lruList

std::list<size_t> Cogs::RasterSource::lruList
private

Definition at line 149 of file RasterSource.h.

◆ lruMap

std::map<size_t, std::list<size_t>::iterator> Cogs::RasterSource::lruMap
private

Definition at line 150 of file RasterSource.h.

◆ maxZ

float Cogs::RasterSource::maxZ = 0

Definition at line 130 of file RasterSource.h.

◆ minZ

float Cogs::RasterSource::minZ = 0

Definition at line 129 of file RasterSource.h.

◆ name

std::string Cogs::RasterSource::name

Definition at line 132 of file RasterSource.h.

◆ oldTileData

std::vector<RasterTileData> Cogs::RasterSource::oldTileData
private

Definition at line 147 of file RasterSource.h.

◆ readyMutex

std::mutex Cogs::RasterSource::readyMutex
private

Definition at line 152 of file RasterSource.h.

◆ residentTiles

std::map<size_t, RasterTileData> Cogs::RasterSource::residentTiles
private

Definition at line 146 of file RasterSource.h.

◆ subscriberMutex

std::mutex Cogs::RasterSource::subscriberMutex

Definition at line 119 of file RasterSource.h.

◆ subscribers

std::unordered_set<struct RasterSourceSubscription *> Cogs::RasterSource::subscribers

Definition at line 118 of file RasterSource.h.

◆ textureBufferSize

std::atomic<size_t> Cogs::RasterSource::textureBufferSize = 0

Definition at line 123 of file RasterSource.h.

◆ tileLatitudePosts

int Cogs::RasterSource::tileLatitudePosts = 0
protected

Definition at line 140 of file RasterSource.h.

◆ tileLongitudePosts

int Cogs::RasterSource::tileLongitudePosts = 0
protected

Definition at line 139 of file RasterSource.h.


The documentation for this class was generated from the following files: