Cogs.Core
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
Cogs::ClipmapManager Class Reference

Public Member Functions

void setRasterSources (const RasterSourcePtr &terrainSource, const std::vector< RasterSourcePtr > &imagerySources)
 
void setClipmapParameters (const ClipmapParameters *clipmapParameters)
 
void setCustomParameters (const unsigned char *data, int count)
 
void initialize (IGraphicsDevice *device)
 
void updateSharedDevice (IGraphicsDevice *device)
 
void initializeGeometry ()
 
void initializeLevels ()
 
void initializeBackgroundLevels ()
 
void cleanupLevels ()
 
void detachResponseHandlers ()
 
void update ()
 
size_t preRender (RenderContext &renderContext)
 
void renderDepth (RenderContext &renderContext, size_t maxLevel)
 
void render (RenderContext &renderContext, size_t maxLevel)
 
void renderOcean (RenderContext &renderContext, size_t maxLevel)
 
void postRender (RenderContext &renderContext)
 
void renderDebugOverlays (RenderContext &renderContext)
 
void getTerrainMetrics (TerrainMetrics *metrics) const
 
void invalidateRasterSource (RasterSource *rasterSource, bool clearContents)
 
void invalidateTile (RasterSource *rasterSource, const RasterTileIdentifier &id)
 
bool updateRequired () const
 
bool isInitialized () const
 
float getNearestSample ()
 

Public Attributes

WorldOptions worldOptions
 
UpdateOptions updateOptions
 
RenderOptions renderOptions
 
DebugOptions debugOptions
 
bool effectsNeedUpdate = false
 
RenderContext previousContext
 
ClipmapRenderer clipmapRenderer
 
ClipmapDepthQuery depthQuery
 
OceanRenderer oceanRenderer
 
bool oceanActive = false
 
std::vector< ClipmapLevelterrainLevels
 
std::vector< std::vector< ClipmapLevel > > imagery
 
std::vector< ClipmapLevelnormalLevels
 
ClipmapLevel backgroundLevel
 
std::vector< ClipmapLevelbackgroundImagery
 
ClipmapLevel backgroundNormalLevel
 
bool backgroundNeedsUpdate = false
 
std::vector< bool > imageryEnabled
 
ClipmapGeometry clipmapGeometry
 
bool geometryNeedsUpdate = true
 
RasterSourceSubscription terrainSource
 
std::vector< RasterSourceSubscriptionimagerySources
 
bool sourcesNeedUpdate = false
 
ClipmapParameters parameters
 

Private Member Functions

size_t calculateCenterAndMaxLevel (RenderContext &renderContext)
 
void updateOriginInTextures (ClipmapLevel &level)
 
void requestTileLoads (RenderContext &renderContext, const size_t maxLevel)
 
void updateClipmapLevels (RenderContext &renderContext, const WorldOptions &worldOptions, const size_t maxLevel)
 
void updateClipmapLevel (RenderContext &renderContext, const WorldOptions &worldOptions, ClipmapLevel &level, ClipmapLevel &coarserLevel, bool normal)
 
void updateBackgroundLevel (RenderContext &renderContext, const WorldOptions &worldOptions)
 
void preloadLevelZeroTiles ()
 
void updateMipmaps (size_t maxLevel, IGraphicsDevice *device)
 
void touch ()
 
void clearLevels (RasterSource *rasterSource, bool clearContents)
 
RenderTexture createTexture (const size_t width, const size_t height, const TextureFormat textureFormat, const bool mipmapping=false, glm::vec4 clearColor=glm::vec4(0, 0, 0, 0))
 
void destroyTexture (RenderTexture &texture)
 

Private Attributes

IGraphicsDevicedevice = nullptr
 
ClipmapUpdater updater
 
NormalUpdater normalUpdater
 
ClipmapState clipmapState
 
TerrainMetrics metrics = {}
 
int missingTileRegions = 1
 
std::vector< size_t > missingImageryTileRegions
 
size_t lastMaxLevel = 0
 
bool needsUpdate = false
 
bool initialized = false
 
float nearestSample = 0
 
bool first = true
 

Detailed Description

Definition at line 19 of file ClipmapManager.h.

Constructor & Destructor Documentation

◆ ClipmapManager()

Cogs::ClipmapManager::ClipmapManager ( )

Definition at line 26 of file ClipmapManager.cpp.

◆ ~ClipmapManager()

Cogs::ClipmapManager::~ClipmapManager ( )

Definition at line 31 of file ClipmapManager.cpp.

Member Function Documentation

◆ calculateCenterAndMaxLevel()

size_t Cogs::ClipmapManager::calculateCenterAndMaxLevel ( RenderContext renderContext)
private

Definition at line 1186 of file ClipmapManager.cpp.

◆ cleanupLevels()

void Cogs::ClipmapManager::cleanupLevels ( )

Definition at line 283 of file ClipmapManager.cpp.

◆ clearLevels()

void Cogs::ClipmapManager::clearLevels ( RasterSource rasterSource,
bool  clearContents 
)
private

Definition at line 1405 of file ClipmapManager.cpp.

◆ createTexture()

Cogs::RenderTexture Cogs::ClipmapManager::createTexture ( const size_t  width,
const size_t  height,
const TextureFormat  textureFormat,
const bool  mipmapping = false,
glm::vec4  clearColor = glm::vec4(0, 0, 0, 0) 
)
private

Definition at line 1443 of file ClipmapManager.cpp.

◆ destroyTexture()

void Cogs::ClipmapManager::destroyTexture ( RenderTexture texture)
private

Definition at line 1452 of file ClipmapManager.cpp.

◆ detachResponseHandlers()

void Cogs::ClipmapManager::detachResponseHandlers ( )

Definition at line 316 of file ClipmapManager.cpp.

◆ getNearestSample()

float Cogs::ClipmapManager::getNearestSample ( )

Definition at line 1519 of file ClipmapManager.cpp.

◆ getTerrainMetrics()

void Cogs::ClipmapManager::getTerrainMetrics ( TerrainMetrics metrics) const

Definition at line 908 of file ClipmapManager.cpp.

◆ initialize()

void Cogs::ClipmapManager::initialize ( IGraphicsDevice device)

Definition at line 75 of file ClipmapManager.cpp.

◆ initializeBackgroundLevels()

void Cogs::ClipmapManager::initializeBackgroundLevels ( )

Definition at line 220 of file ClipmapManager.cpp.

◆ initializeGeometry()

void Cogs::ClipmapManager::initializeGeometry ( )

Definition at line 101 of file ClipmapManager.cpp.

◆ initializeLevels()

void Cogs::ClipmapManager::initializeLevels ( )

Definition at line 128 of file ClipmapManager.cpp.

◆ invalidateRasterSource()

void Cogs::ClipmapManager::invalidateRasterSource ( RasterSource rasterSource,
bool  clearContents 
)

Definition at line 913 of file ClipmapManager.cpp.

◆ invalidateTile()

void Cogs::ClipmapManager::invalidateTile ( RasterSource rasterSource,
const RasterTileIdentifier id 
)

Definition at line 934 of file ClipmapManager.cpp.

◆ isInitialized()

bool Cogs::ClipmapManager::isInitialized ( ) const
inline

Definition at line 54 of file ClipmapManager.h.

◆ postRender()

void Cogs::ClipmapManager::postRender ( RenderContext renderContext)

Definition at line 874 of file ClipmapManager.cpp.

◆ preloadLevelZeroTiles()

void Cogs::ClipmapManager::preloadLevelZeroTiles ( )
private

Definition at line 1378 of file ClipmapManager.cpp.

◆ preRender()

size_t Cogs::ClipmapManager::preRender ( RenderContext renderContext)

Definition at line 354 of file ClipmapManager.cpp.

◆ render()

void Cogs::ClipmapManager::render ( RenderContext renderContext,
size_t  maxLevel 
)

Definition at line 626 of file ClipmapManager.cpp.

◆ renderDebugOverlays()

void Cogs::ClipmapManager::renderDebugOverlays ( RenderContext renderContext)

Definition at line 1470 of file ClipmapManager.cpp.

◆ renderDepth()

void Cogs::ClipmapManager::renderDepth ( RenderContext renderContext,
size_t  maxLevel 
)

Definition at line 459 of file ClipmapManager.cpp.

◆ renderOcean()

void Cogs::ClipmapManager::renderOcean ( RenderContext renderContext,
size_t  maxLevel 
)

Definition at line 745 of file ClipmapManager.cpp.

◆ requestTileLoads()

void Cogs::ClipmapManager::requestTileLoads ( RenderContext renderContext,
const size_t  maxLevel 
)
private

Definition at line 1163 of file ClipmapManager.cpp.

◆ setClipmapParameters()

void Cogs::ClipmapManager::setClipmapParameters ( const ClipmapParameters clipmapParameters)

Definition at line 57 of file ClipmapManager.cpp.

◆ setCustomParameters()

void Cogs::ClipmapManager::setCustomParameters ( const unsigned char *  data,
int  count 
)

Definition at line 70 of file ClipmapManager.cpp.

◆ setRasterSources()

void Cogs::ClipmapManager::setRasterSources ( const RasterSourcePtr &  terrainSource,
const std::vector< RasterSourcePtr > &  imagerySources 
)

Definition at line 38 of file ClipmapManager.cpp.

◆ touch()

void Cogs::ClipmapManager::touch ( )
inlineprivate

Definition at line 107 of file ClipmapManager.h.

◆ update()

void Cogs::ClipmapManager::update ( )

Definition at line 327 of file ClipmapManager.cpp.

◆ updateBackgroundLevel()

void Cogs::ClipmapManager::updateBackgroundLevel ( RenderContext renderContext,
const WorldOptions worldOptions 
)
private

Definition at line 1081 of file ClipmapManager.cpp.

◆ updateClipmapLevel()

void Cogs::ClipmapManager::updateClipmapLevel ( RenderContext renderContext,
const WorldOptions worldOptions,
ClipmapLevel level,
ClipmapLevel coarserLevel,
bool  normal 
)
private

Definition at line 1003 of file ClipmapManager.cpp.

◆ updateClipmapLevels()

void Cogs::ClipmapManager::updateClipmapLevels ( RenderContext renderContext,
const WorldOptions worldOptions,
const size_t  maxLevel 
)
private

Definition at line 976 of file ClipmapManager.cpp.

◆ updateMipmaps()

void Cogs::ClipmapManager::updateMipmaps ( size_t  maxLevel,
IGraphicsDevice device 
)
private

Definition at line 1148 of file ClipmapManager.cpp.

◆ updateOriginInTextures()

void Cogs::ClipmapManager::updateOriginInTextures ( ClipmapLevel level)
private

Definition at line 971 of file ClipmapManager.cpp.

◆ updateRequired()

bool Cogs::ClipmapManager::updateRequired ( ) const
inline

Definition at line 52 of file ClipmapManager.h.

◆ updateSharedDevice()

void Cogs::ClipmapManager::updateSharedDevice ( IGraphicsDevice device)

Definition at line 1459 of file ClipmapManager.cpp.

Member Data Documentation

◆ backgroundImagery

std::vector<ClipmapLevel> Cogs::ClipmapManager::backgroundImagery

Definition at line 78 of file ClipmapManager.h.

◆ backgroundLevel

ClipmapLevel Cogs::ClipmapManager::backgroundLevel

Definition at line 77 of file ClipmapManager.h.

◆ backgroundNeedsUpdate

bool Cogs::ClipmapManager::backgroundNeedsUpdate = false

Definition at line 80 of file ClipmapManager.h.

◆ backgroundNormalLevel

ClipmapLevel Cogs::ClipmapManager::backgroundNormalLevel

Definition at line 79 of file ClipmapManager.h.

◆ clipmapGeometry

ClipmapGeometry Cogs::ClipmapManager::clipmapGeometry

Definition at line 84 of file ClipmapManager.h.

◆ clipmapRenderer

ClipmapRenderer Cogs::ClipmapManager::clipmapRenderer

Definition at line 67 of file ClipmapManager.h.

◆ clipmapState

ClipmapState Cogs::ClipmapManager::clipmapState
private

Definition at line 119 of file ClipmapManager.h.

◆ debugOptions

DebugOptions Cogs::ClipmapManager::debugOptions

Definition at line 61 of file ClipmapManager.h.

◆ depthQuery

ClipmapDepthQuery Cogs::ClipmapManager::depthQuery

Definition at line 68 of file ClipmapManager.h.

◆ device

IGraphicsDevice* Cogs::ClipmapManager::device = nullptr
private

Definition at line 114 of file ClipmapManager.h.

◆ effectsNeedUpdate

bool Cogs::ClipmapManager::effectsNeedUpdate = false

Definition at line 63 of file ClipmapManager.h.

◆ first

bool Cogs::ClipmapManager::first = true
private

Definition at line 131 of file ClipmapManager.h.

◆ geometryNeedsUpdate

bool Cogs::ClipmapManager::geometryNeedsUpdate = true

Definition at line 85 of file ClipmapManager.h.

◆ imagery

std::vector<std::vector<ClipmapLevel> > Cogs::ClipmapManager::imagery

Definition at line 74 of file ClipmapManager.h.

◆ imageryEnabled

std::vector<bool> Cogs::ClipmapManager::imageryEnabled

Definition at line 82 of file ClipmapManager.h.

◆ imagerySources

std::vector<RasterSourceSubscription> Cogs::ClipmapManager::imagerySources

Definition at line 88 of file ClipmapManager.h.

◆ initialized

bool Cogs::ClipmapManager::initialized = false
private

Definition at line 129 of file ClipmapManager.h.

◆ lastMaxLevel

size_t Cogs::ClipmapManager::lastMaxLevel = 0
private

Definition at line 126 of file ClipmapManager.h.

◆ metrics

TerrainMetrics Cogs::ClipmapManager::metrics = {}
private

Definition at line 121 of file ClipmapManager.h.

◆ missingImageryTileRegions

std::vector<size_t> Cogs::ClipmapManager::missingImageryTileRegions
private

Definition at line 124 of file ClipmapManager.h.

◆ missingTileRegions

int Cogs::ClipmapManager::missingTileRegions = 1
private

Definition at line 123 of file ClipmapManager.h.

◆ nearestSample

float Cogs::ClipmapManager::nearestSample = 0
private

Definition at line 130 of file ClipmapManager.h.

◆ needsUpdate

bool Cogs::ClipmapManager::needsUpdate = false
private

Definition at line 127 of file ClipmapManager.h.

◆ normalLevels

std::vector<ClipmapLevel> Cogs::ClipmapManager::normalLevels

Definition at line 75 of file ClipmapManager.h.

◆ normalUpdater

NormalUpdater Cogs::ClipmapManager::normalUpdater
private

Definition at line 117 of file ClipmapManager.h.

◆ oceanActive

bool Cogs::ClipmapManager::oceanActive = false

Definition at line 71 of file ClipmapManager.h.

◆ oceanRenderer

OceanRenderer Cogs::ClipmapManager::oceanRenderer

Definition at line 70 of file ClipmapManager.h.

◆ parameters

ClipmapParameters Cogs::ClipmapManager::parameters

Definition at line 91 of file ClipmapManager.h.

◆ previousContext

RenderContext Cogs::ClipmapManager::previousContext

Definition at line 65 of file ClipmapManager.h.

◆ renderOptions

RenderOptions Cogs::ClipmapManager::renderOptions

Definition at line 60 of file ClipmapManager.h.

◆ sourcesNeedUpdate

bool Cogs::ClipmapManager::sourcesNeedUpdate = false

Definition at line 89 of file ClipmapManager.h.

◆ terrainLevels

std::vector<ClipmapLevel> Cogs::ClipmapManager::terrainLevels

Definition at line 73 of file ClipmapManager.h.

◆ terrainSource

RasterSourceSubscription Cogs::ClipmapManager::terrainSource

Definition at line 87 of file ClipmapManager.h.

◆ updateOptions

UpdateOptions Cogs::ClipmapManager::updateOptions

Definition at line 59 of file ClipmapManager.h.

◆ updater

ClipmapUpdater Cogs::ClipmapManager::updater
private

Definition at line 116 of file ClipmapManager.h.

◆ worldOptions

WorldOptions Cogs::ClipmapManager::worldOptions

Definition at line 58 of file ClipmapManager.h.


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