mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-19 19:39:30 -06:00
Do not use padding for temporal VIIRS for faster loading
This commit is contained in:
@@ -143,7 +143,7 @@ void MemoryAwareTileCache::clear() {
|
||||
void MemoryAwareTileCache::createDefaultTextureContainers() {
|
||||
for (int id = 0; id < layergroupid::NUM_LAYER_GROUPS; id++) {
|
||||
TileTextureInitData initData =
|
||||
LayerManager::getTileTextureInitData(layergroupid::GroupID(id));
|
||||
LayerManager::getTileTextureInitData(layergroupid::GroupID(id), true);
|
||||
assureTextureContainerExists(initData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ namespace {
|
||||
const char* keySettings = "Settings";
|
||||
const char* keyAdjustment = "Adjustment";
|
||||
const char* KeyBlendMode = "BlendMode";
|
||||
const char* KeyPadTiles = "PadTiles";
|
||||
|
||||
static const openspace::properties::Property::PropertyInfo TypeInfo = {
|
||||
"Type",
|
||||
@@ -104,7 +105,11 @@ Layer::Layer(layergroupid::GroupID id, const ghoul::Dictionary& layerDict)
|
||||
layerDict.getValue(keyEnabled, enabled);
|
||||
_enabled.setValue(enabled);
|
||||
|
||||
TileTextureInitData initData = LayerManager::getTileTextureInitData(_layerGroupId);
|
||||
bool padTiles = true;
|
||||
layerDict.getValue<bool>(KeyPadTiles, padTiles);
|
||||
|
||||
TileTextureInitData initData = LayerManager::getTileTextureInitData(_layerGroupId,
|
||||
padTiles);
|
||||
_padTilePixelStartOffset = initData.tilePixelStartOffset();
|
||||
_padTilePixelSizeDifference = initData.tilePixelSizeDifference();
|
||||
|
||||
|
||||
@@ -117,6 +117,7 @@ void LayerManager::reset(bool includeDisabled) {
|
||||
}
|
||||
|
||||
TileTextureInitData LayerManager::getTileTextureInitData(layergroupid::GroupID id,
|
||||
bool padTiles,
|
||||
size_t preferredTileSize)
|
||||
{
|
||||
switch (id) {
|
||||
@@ -124,34 +125,34 @@ TileTextureInitData LayerManager::getTileTextureInitData(layergroupid::GroupID i
|
||||
size_t tileSize = preferredTileSize ? preferredTileSize : 64;
|
||||
return TileTextureInitData(tileSize, tileSize, GL_FLOAT,
|
||||
ghoul::opengl::Texture::Format::Red,
|
||||
true,
|
||||
padTiles,
|
||||
TileTextureInitData::ShouldAllocateDataOnCPU::Yes);
|
||||
}
|
||||
case layergroupid::GroupID::ColorLayers: {
|
||||
size_t tileSize = preferredTileSize ? preferredTileSize : 512;
|
||||
return TileTextureInitData(tileSize, tileSize, GL_UNSIGNED_BYTE,
|
||||
ghoul::opengl::Texture::Format::BGRA, false);
|
||||
ghoul::opengl::Texture::Format::BGRA, padTiles);
|
||||
}
|
||||
case layergroupid::GroupID::Overlays: {
|
||||
size_t tileSize = preferredTileSize ? preferredTileSize : 512;
|
||||
return TileTextureInitData(tileSize, tileSize, GL_UNSIGNED_BYTE,
|
||||
ghoul::opengl::Texture::Format::BGRA, false);
|
||||
ghoul::opengl::Texture::Format::BGRA, padTiles);
|
||||
}
|
||||
case layergroupid::GroupID::NightLayers: {
|
||||
size_t tileSize = preferredTileSize ? preferredTileSize : 512;
|
||||
return TileTextureInitData(tileSize, tileSize, GL_UNSIGNED_BYTE,
|
||||
ghoul::opengl::Texture::Format::BGRA, false);
|
||||
ghoul::opengl::Texture::Format::BGRA, padTiles);
|
||||
}
|
||||
case layergroupid::GroupID::WaterMasks: {
|
||||
size_t tileSize = preferredTileSize ? preferredTileSize : 512;
|
||||
return TileTextureInitData(tileSize, tileSize, GL_UNSIGNED_BYTE,
|
||||
ghoul::opengl::Texture::Format::BGRA, false);
|
||||
ghoul::opengl::Texture::Format::BGRA, padTiles);
|
||||
}
|
||||
default: {
|
||||
ghoul_assert(false, "Unknown layer group ID");
|
||||
size_t tileSize = preferredTileSize ? preferredTileSize : 512;
|
||||
return TileTextureInitData(tileSize, tileSize, GL_UNSIGNED_BYTE,
|
||||
ghoul::opengl::Texture::Format::BGRA, false);
|
||||
ghoul::opengl::Texture::Format::BGRA, padTiles);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public:
|
||||
void reset(bool includingDisabled = false);
|
||||
|
||||
static TileTextureInitData getTileTextureInitData(layergroupid::GroupID id,
|
||||
size_t preferredTileSize = 0);
|
||||
bool padTiles, size_t preferredTileSize = 0);
|
||||
|
||||
static bool shouldPerformPreProcessingOnLayergroup(layergroupid::GroupID id);
|
||||
void onChange(std::function<void(void)> callback);
|
||||
|
||||
@@ -49,6 +49,7 @@ namespace {
|
||||
const char* KeyFilePath = "FilePath";
|
||||
const char* KeyBasePath = "BasePath";
|
||||
const char* KeyPreCacheLevel = "PreCacheLevel";
|
||||
const char* KeyPadTiles = "PadTiles";
|
||||
|
||||
static const openspace::properties::Property::PropertyInfo FilePathInfo = {
|
||||
"FilePath",
|
||||
@@ -98,8 +99,12 @@ DefaultTileProvider::DefaultTileProvider(const ghoul::Dictionary& dictionary)
|
||||
LDEBUG("Default pixel size overridden: " << pixelSize);
|
||||
tilePixelSize = static_cast<int>(pixelSize);
|
||||
}
|
||||
|
||||
_padTiles = true;
|
||||
dictionary.getValue<bool>(KeyPadTiles, _padTiles);
|
||||
|
||||
TileTextureInitData initData(LayerManager::getTileTextureInitData(
|
||||
_layerGroupID, tilePixelSize));
|
||||
_layerGroupID, _padTiles, tilePixelSize));
|
||||
_tilePixelSize.setValue(initData.dimensionsWithoutPadding().x);
|
||||
|
||||
_performPreProcessing =
|
||||
@@ -136,7 +141,7 @@ void DefaultTileProvider::update() {
|
||||
if (_asyncTextureDataProvider->shouldBeDeleted()) {
|
||||
_asyncTextureDataProvider = nullptr;
|
||||
TileTextureInitData initData(LayerManager::getTileTextureInitData(
|
||||
_layerGroupID, _tilePixelSize));
|
||||
_layerGroupID, _padTiles, _tilePixelSize));
|
||||
initAsyncTileDataReader(initData);
|
||||
}
|
||||
}
|
||||
@@ -149,7 +154,7 @@ void DefaultTileProvider::reset() {
|
||||
}
|
||||
else {
|
||||
TileTextureInitData initData(LayerManager::getTileTextureInitData(
|
||||
_layerGroupID, _tilePixelSize));
|
||||
_layerGroupID, _padTiles, _tilePixelSize));
|
||||
initAsyncTileDataReader(initData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,6 +86,7 @@ private:
|
||||
std::string _basePath;
|
||||
int _preCacheLevel;
|
||||
bool _performPreProcessing;
|
||||
bool _padTiles;
|
||||
};
|
||||
|
||||
} // namespace openspace::globebrowsing::tileprovider
|
||||
|
||||
@@ -43,7 +43,8 @@ namespace {
|
||||
namespace openspace::globebrowsing::tileprovider {
|
||||
|
||||
SizeReferenceTileProvider::SizeReferenceTileProvider(const ghoul::Dictionary& dictionary)
|
||||
: TextTileProvider(LayerManager::getTileTextureInitData(layergroupid::GroupID::ColorLayers))
|
||||
: TextTileProvider(
|
||||
LayerManager::getTileTextureInitData(layergroupid::GroupID::ColorLayers, false))
|
||||
, _backgroundTile(Tile::TileUnavailable)
|
||||
{
|
||||
_fontSize = 50;
|
||||
|
||||
@@ -32,7 +32,8 @@ namespace openspace::globebrowsing::tileprovider {
|
||||
|
||||
TileIndexTileProvider::TileIndexTileProvider(const ghoul::Dictionary&)
|
||||
: TextTileProvider(LayerManager::getTileTextureInitData(
|
||||
layergroupid::GroupID::ColorLayers
|
||||
layergroupid::GroupID::ColorLayers,
|
||||
false
|
||||
))
|
||||
{}
|
||||
|
||||
|
||||
@@ -29,8 +29,6 @@
|
||||
#include <ghoul/logging/logmanager.h>
|
||||
|
||||
namespace {
|
||||
const char* _loggerCat = "TileProviderByLevel";
|
||||
|
||||
const char* KeyProviders = "LevelTileProviders";
|
||||
const char* KeyMaxLevel = "MaxLevel";
|
||||
const char* KeyTileProvider = "TileProvider";
|
||||
|
||||
@@ -28,13 +28,14 @@
|
||||
|
||||
namespace openspace::globebrowsing {
|
||||
|
||||
const glm::ivec2 TileTextureInitData::TilePixelStartOffset = glm::ivec2(-2);
|
||||
const glm::ivec2 TileTextureInitData::TilePixelSizeDifference = glm::ivec2(4);
|
||||
const glm::ivec2 TileTextureInitData::TilePixelStartOffset = glm::ivec2(-1);
|
||||
const glm::ivec2 TileTextureInitData::TilePixelSizeDifference = glm::ivec2(2);
|
||||
|
||||
TileTextureInitData::TileTextureInitData(size_t width, size_t height, GLenum glType,
|
||||
Format textureFormat, bool padTiles, ShouldAllocateDataOnCPU shouldAllocateDataOnCPU)
|
||||
: _glType(glType)
|
||||
, _ghoulTextureFormat(textureFormat)
|
||||
, _padTiles(padTiles)
|
||||
, _shouldAllocateDataOnCPU(shouldAllocateDataOnCPU)
|
||||
{
|
||||
_tilePixelStartOffset = padTiles ? TilePixelStartOffset : glm::ivec2(0);
|
||||
@@ -59,6 +60,7 @@ TileTextureInitData::TileTextureInitData(const TileTextureInitData& original)
|
||||
original.dimensionsWithoutPadding().y,
|
||||
original.glType(),
|
||||
original.ghoulTextureFormat(),
|
||||
original._padTiles,
|
||||
original.shouldAllocateDataOnCPU() ? ShouldAllocateDataOnCPU::Yes : ShouldAllocateDataOnCPU::No)
|
||||
{ };
|
||||
|
||||
|
||||
@@ -87,6 +87,7 @@ private:
|
||||
size_t _bytesPerLine;
|
||||
size_t _totalNumBytes;
|
||||
bool _shouldAllocateDataOnCPU;
|
||||
bool _padTiles;
|
||||
};
|
||||
|
||||
} // namespace openspace::globebrowsing
|
||||
|
||||
Reference in New Issue
Block a user