mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-04-23 12:39:24 -05:00
Feature/globals handling (#1352)
* Cleaner handling of global state * Prevent Lua memory corruption (closes #982) * Initialize glfw first thing to prevent weird joystick loading bug during startup
This commit is contained in:
@@ -511,7 +511,7 @@ void GlobeBrowsingModule::goToChunk(const globebrowsing::RenderableGlobe& globe,
|
||||
};
|
||||
|
||||
// Compute altitude
|
||||
const glm::dvec3 cameraPosition = global::navigationHandler.camera()->positionVec3();
|
||||
const glm::dvec3 cameraPosition = global::navigationHandler->camera()->positionVec3();
|
||||
SceneGraphNode* globeSceneGraphNode = dynamic_cast<SceneGraphNode*>(globe.owner());
|
||||
if (!globeSceneGraphNode) {
|
||||
LERROR(
|
||||
@@ -545,7 +545,7 @@ void GlobeBrowsingModule::goToGeodetic2(const globebrowsing::RenderableGlobe& gl
|
||||
{
|
||||
using namespace globebrowsing;
|
||||
|
||||
const glm::dvec3 cameraPosition = global::navigationHandler.camera()->positionVec3();
|
||||
const glm::dvec3 cameraPosition = global::navigationHandler->camera()->positionVec3();
|
||||
SceneGraphNode* globeSceneGraphNode = dynamic_cast<SceneGraphNode*>(globe.owner());
|
||||
if (!globeSceneGraphNode) {
|
||||
LERROR("Error when going to Geodetic2");
|
||||
@@ -585,7 +585,7 @@ void GlobeBrowsingModule::goToGeodetic3(const globebrowsing::RenderableGlobe& gl
|
||||
state.position = positionModelSpace;
|
||||
state.up = slightlyNorth;
|
||||
|
||||
global::navigationHandler.setNavigationStateNextFrame(state);
|
||||
global::navigationHandler->setNavigationStateNextFrame(state);
|
||||
}
|
||||
|
||||
glm::dquat GlobeBrowsingModule::lookDownCameraRotation(
|
||||
@@ -624,7 +624,7 @@ GlobeBrowsingModule::castFocusNodeRenderableToGlobe()
|
||||
using namespace globebrowsing;
|
||||
|
||||
const Renderable* renderable =
|
||||
global::navigationHandler.orbitalNavigator().anchorNode()->renderable();
|
||||
global::navigationHandler->orbitalNavigator().anchorNode()->renderable();
|
||||
|
||||
if (!renderable) {
|
||||
return nullptr;
|
||||
|
||||
@@ -53,7 +53,7 @@ int addLayer(lua_State* L) {
|
||||
const std::string& layerGroupName = ghoul::lua::value<std::string>(L, 2);
|
||||
|
||||
// Get the node and make sure it exists
|
||||
SceneGraphNode* n = global::renderEngine.scene()->sceneGraphNode(globeName);
|
||||
SceneGraphNode* n = global::renderEngine->scene()->sceneGraphNode(globeName);
|
||||
if (!n) {
|
||||
return ghoul::lua::luaError(L, "Unknown globe name: " + globeName);
|
||||
}
|
||||
@@ -105,7 +105,7 @@ int deleteLayer(lua_State* L) {
|
||||
lua_pop(L, 3);
|
||||
|
||||
// Get the node and make sure it exists
|
||||
SceneGraphNode* n = global::renderEngine.scene()->sceneGraphNode(globeName);
|
||||
SceneGraphNode* n = global::renderEngine->scene()->sceneGraphNode(globeName);
|
||||
if (!n) {
|
||||
return ghoul::lua::luaError(L, "Unknown globe name: " + globeName);
|
||||
}
|
||||
@@ -220,7 +220,7 @@ int goToChunk(lua_State* L) {
|
||||
return ghoul::lua::luaError(L, "Identifier must be a RenderableGlobe");
|
||||
}
|
||||
|
||||
global::moduleEngine.module<GlobeBrowsingModule>()->goToChunk(*globe, x, y, level);
|
||||
global::moduleEngine->module<GlobeBrowsingModule>()->goToChunk(*globe, x, y, level);
|
||||
|
||||
ghoul_assert(lua_gettop(L) == 0, "Incorrect number of items left on stack");
|
||||
return 0;
|
||||
@@ -243,7 +243,7 @@ int goToGeo(lua_State* L) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
n = global::navigationHandler.orbitalNavigator().anchorNode();
|
||||
n = global::navigationHandler->orbitalNavigator().anchorNode();
|
||||
if (!n) {
|
||||
return ghoul::lua::luaError(L, "No anchor node is set.");
|
||||
}
|
||||
@@ -267,13 +267,13 @@ int goToGeo(lua_State* L) {
|
||||
}
|
||||
|
||||
if (nArguments == parameterOffset + 2) {
|
||||
global::moduleEngine.module<GlobeBrowsingModule>()->goToGeo(
|
||||
global::moduleEngine->module<GlobeBrowsingModule>()->goToGeo(
|
||||
*globe, latitude, longitude
|
||||
);
|
||||
}
|
||||
else if (nArguments == parameterOffset + 3) {
|
||||
const double altitude = ghoul::lua::value<double>(L, parameterOffset + 3);
|
||||
global::moduleEngine.module<GlobeBrowsingModule>()->goToGeo(
|
||||
global::moduleEngine->module<GlobeBrowsingModule>()->goToGeo(
|
||||
*globe,
|
||||
latitude,
|
||||
longitude,
|
||||
@@ -305,7 +305,7 @@ int getGeoPosition(lua_State* L) {
|
||||
return ghoul::lua::luaError(L, "Identifier must be a RenderableGlobe");
|
||||
}
|
||||
|
||||
GlobeBrowsingModule& mod = *(global::moduleEngine.module<GlobeBrowsingModule>());
|
||||
GlobeBrowsingModule& mod = *(global::moduleEngine->module<GlobeBrowsingModule>());
|
||||
glm::vec3 pos = mod.cartesianCoordinatesFromGeo(
|
||||
*globe,
|
||||
latitude,
|
||||
@@ -322,15 +322,15 @@ int getGeoPosition(lua_State* L) {
|
||||
int getGeoPositionForCamera(lua_State* L) {
|
||||
ghoul::lua::checkArgumentsAndThrow(L, 0, "lua::getGeoPositionForCamera");
|
||||
|
||||
GlobeBrowsingModule* module = global::moduleEngine.module<GlobeBrowsingModule>();
|
||||
GlobeBrowsingModule* module = global::moduleEngine->module<GlobeBrowsingModule>();
|
||||
const RenderableGlobe* globe = module->castFocusNodeRenderableToGlobe();
|
||||
if (!globe) {
|
||||
return ghoul::lua::luaError(L, "Focus node must be a RenderableGlobe");
|
||||
}
|
||||
|
||||
const glm::dvec3 cameraPosition = global::navigationHandler.camera()->positionVec3();
|
||||
const glm::dvec3 cameraPosition = global::navigationHandler->camera()->positionVec3();
|
||||
const SceneGraphNode* anchor =
|
||||
global::navigationHandler.orbitalNavigator().anchorNode();
|
||||
global::navigationHandler->orbitalNavigator().anchorNode();
|
||||
const glm::dmat4 inverseModelTransform = glm::inverse(anchor->modelTransform());
|
||||
const glm::dvec3 cameraPositionModelSpace =
|
||||
glm::dvec3(inverseModelTransform * glm::dvec4(cameraPosition, 1.0));
|
||||
@@ -357,7 +357,7 @@ int loadWMSCapabilities(lua_State* L) {
|
||||
std::string globe = ghoul::lua::value<std::string>(L, 2);
|
||||
std::string url = ghoul::lua::value<std::string>(L, 3);
|
||||
|
||||
global::moduleEngine.module<GlobeBrowsingModule>()->loadWMSCapabilities(
|
||||
global::moduleEngine->module<GlobeBrowsingModule>()->loadWMSCapabilities(
|
||||
std::move(name),
|
||||
std::move(globe),
|
||||
std::move(url)
|
||||
@@ -378,7 +378,7 @@ int removeWMSServer(lua_State* L) {
|
||||
ghoul::lua::PopValue::Yes
|
||||
);
|
||||
|
||||
global::moduleEngine.module<GlobeBrowsingModule>()->removeWMSServer(name);
|
||||
global::moduleEngine->module<GlobeBrowsingModule>()->removeWMSServer(name);
|
||||
|
||||
ghoul_assert(lua_gettop(L) == 0, "Incorrect number of items left on stack");
|
||||
return 0;
|
||||
@@ -393,7 +393,7 @@ int capabilities(lua_State* L) {
|
||||
ghoul::lua::PopValue::Yes
|
||||
);
|
||||
GlobeBrowsingModule::Capabilities cap =
|
||||
global::moduleEngine.module<GlobeBrowsingModule>()->capabilities(name);
|
||||
global::moduleEngine->module<GlobeBrowsingModule>()->capabilities(name);
|
||||
|
||||
lua_newtable(L);
|
||||
for (unsigned long i = 0; i < cap.size(); ++i) {
|
||||
|
||||
@@ -48,7 +48,7 @@ AsyncTileDataProvider::AsyncTileDataProvider(std::string name,
|
||||
{
|
||||
ZoneScoped
|
||||
|
||||
_globeBrowsingModule = global::moduleEngine.module<GlobeBrowsingModule>();
|
||||
_globeBrowsingModule = global::moduleEngine->module<GlobeBrowsingModule>();
|
||||
performReset(ResetRawTileDataReader::No);
|
||||
}
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ DashboardItemGlobeLocation::DashboardItemGlobeLocation(
|
||||
, _fontName(FontNameInfo, KeyFontMono)
|
||||
, _fontSize(FontSizeInfo, DefaultFontSize, 10.f, 144.f, 1.f)
|
||||
, _significantDigits(SignificantDigitsInfo, 4, 1, 12)
|
||||
, _font(global::fontManager.font(KeyFontMono, 10))
|
||||
, _font(global::fontManager->font(KeyFontMono, 10))
|
||||
{
|
||||
documentation::testSpecificationAndThrow(
|
||||
Documentation(),
|
||||
@@ -127,12 +127,12 @@ DashboardItemGlobeLocation::DashboardItemGlobeLocation(
|
||||
|
||||
|
||||
_fontName.onChange([this]() {
|
||||
_font = global::fontManager.font(_fontName, _fontSize);
|
||||
_font = global::fontManager->font(_fontName, _fontSize);
|
||||
});
|
||||
addProperty(_fontName);
|
||||
|
||||
_fontSize.onChange([this]() {
|
||||
_font = global::fontManager.font(_fontName, _fontSize);
|
||||
_font = global::fontManager->font(_fontName, _fontSize);
|
||||
});
|
||||
addProperty(_fontSize);
|
||||
|
||||
@@ -148,7 +148,7 @@ DashboardItemGlobeLocation::DashboardItemGlobeLocation(
|
||||
addProperty(_significantDigits);
|
||||
updateFormatString();
|
||||
|
||||
_font = global::fontManager.font(_fontName, _fontSize);
|
||||
_font = global::fontManager->font(_fontName, _fontSize);
|
||||
_buffer.resize(128);
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@ void DashboardItemGlobeLocation::render(glm::vec2& penPosition) {
|
||||
|
||||
using namespace globebrowsing;
|
||||
|
||||
const SceneGraphNode* n = global::navigationHandler.orbitalNavigator().anchorNode();
|
||||
const SceneGraphNode* n = global::navigationHandler->orbitalNavigator().anchorNode();
|
||||
if (!n) {
|
||||
return;
|
||||
}
|
||||
@@ -166,7 +166,7 @@ void DashboardItemGlobeLocation::render(glm::vec2& penPosition) {
|
||||
return;
|
||||
}
|
||||
|
||||
const glm::dvec3 cameraPosition = global::navigationHandler.camera()->positionVec3();
|
||||
const glm::dvec3 cameraPosition = global::navigationHandler->camera()->positionVec3();
|
||||
const glm::dmat4 inverseModelTransform = glm::inverse(n->modelTransform());
|
||||
const glm::dvec3 cameraPositionModelSpace =
|
||||
glm::dvec3(inverseModelTransform * glm::dvec4(cameraPosition, 1.0));
|
||||
|
||||
@@ -132,12 +132,12 @@ GdalWrapper::GdalWrapper(size_t maximumCacheSize, size_t maximumMaximumCacheSize
|
||||
}
|
||||
|
||||
void GdalWrapper::setGdalProxyConfiguration() {
|
||||
if (global::configuration.httpProxy.usingHttpProxy) {
|
||||
const std::string address = global::configuration.httpProxy.address;
|
||||
const unsigned int port = global::configuration.httpProxy.port;
|
||||
const std::string user = global::configuration.httpProxy.user;
|
||||
const std::string password = global::configuration.httpProxy.password;
|
||||
std::string auth = global::configuration.httpProxy.authentication;
|
||||
if (global::configuration->httpProxy.usingHttpProxy) {
|
||||
const std::string address = global::configuration->httpProxy.address;
|
||||
const unsigned int port = global::configuration->httpProxy.port;
|
||||
const std::string user = global::configuration->httpProxy.user;
|
||||
const std::string password = global::configuration->httpProxy.password;
|
||||
std::string auth = global::configuration->httpProxy.authentication;
|
||||
std::transform(
|
||||
auth.begin(),
|
||||
auth.end(),
|
||||
|
||||
@@ -444,7 +444,7 @@ void GlobeLabelsComponent::initialize(const ghoul::Dictionary& dictionary,
|
||||
}
|
||||
|
||||
void GlobeLabelsComponent::initializeFonts() {
|
||||
_font = openspace::global::fontManager.font(
|
||||
_font = openspace::global::fontManager->font(
|
||||
"Mono",
|
||||
static_cast<float>(_labelsFontSize),
|
||||
ghoul::fontrendering::FontManager::Outline::Yes,
|
||||
@@ -562,7 +562,7 @@ bool GlobeLabelsComponent::readLabelsFile(const std::string& file) {
|
||||
strncpy(lEntry.feature, token.c_str(), 256);
|
||||
|
||||
GlobeBrowsingModule* _globeBrowsingModule =
|
||||
global::moduleEngine.module<openspace::GlobeBrowsingModule>();
|
||||
global::moduleEngine->module<openspace::GlobeBrowsingModule>();
|
||||
lEntry.geoPosition = _globeBrowsingModule->cartesianCoordinatesFromGeo(
|
||||
*_globe,
|
||||
lEntry.latitude,
|
||||
|
||||
@@ -205,7 +205,7 @@ glm::dvec3 GlobeTranslation::position(const UpdateData&) const {
|
||||
return _position;
|
||||
}
|
||||
|
||||
GlobeBrowsingModule& mod = *(global::moduleEngine.module<GlobeBrowsingModule>());
|
||||
GlobeBrowsingModule& mod = *(global::moduleEngine->module<GlobeBrowsingModule>());
|
||||
|
||||
if (_useHeightmap) {
|
||||
glm::vec3 groundPos = mod.cartesianCoordinatesFromGeo(
|
||||
|
||||
@@ -444,7 +444,7 @@ void RawTileDataReader::initialize() {
|
||||
throw ghoul::RuntimeError("File path must not be empty");
|
||||
}
|
||||
|
||||
GlobeBrowsingModule& module = *global::moduleEngine.module<GlobeBrowsingModule>();
|
||||
GlobeBrowsingModule& module = *global::moduleEngine->module<GlobeBrowsingModule>();
|
||||
|
||||
std::string content = _datasetFilePath;
|
||||
if (module.isWMSCachingEnabled()) {
|
||||
|
||||
@@ -284,7 +284,7 @@ ChunkTileVector tilesAndSettingsUnsorted(const LayerGroup& layerGroup,
|
||||
#if defined(__APPLE__) || (defined(__linux__) && defined(__clang__))
|
||||
ChunkTileVector tilesAndSettings;
|
||||
#else
|
||||
ChunkTileVector tilesAndSettings(&global::memoryManager.TemporaryMemory);
|
||||
ChunkTileVector tilesAndSettings(&global::memoryManager->TemporaryMemory);
|
||||
#endif
|
||||
for (Layer* layer : layerGroup.activeLayers()) {
|
||||
if (layer->tileProvider()) {
|
||||
@@ -764,12 +764,12 @@ void RenderableGlobe::deinitialize() {
|
||||
|
||||
void RenderableGlobe::deinitializeGL() {
|
||||
if (_localRenderer.program) {
|
||||
global::renderEngine.removeRenderProgram(_localRenderer.program.get());
|
||||
global::renderEngine->removeRenderProgram(_localRenderer.program.get());
|
||||
_localRenderer.program = nullptr;
|
||||
}
|
||||
|
||||
if (_globalRenderer.program) {
|
||||
global::renderEngine.removeRenderProgram(_globalRenderer.program.get());
|
||||
global::renderEngine->removeRenderProgram(_globalRenderer.program.get());
|
||||
_globalRenderer.program = nullptr;
|
||||
}
|
||||
|
||||
@@ -1813,8 +1813,8 @@ void RenderableGlobe::recompileShaders() {
|
||||
//
|
||||
// Create local shader
|
||||
//
|
||||
global::renderEngine.removeRenderProgram(_localRenderer.program.get());
|
||||
_localRenderer.program = global::renderEngine.buildRenderProgram(
|
||||
global::renderEngine->removeRenderProgram(_localRenderer.program.get());
|
||||
_localRenderer.program = global::renderEngine->buildRenderProgram(
|
||||
"LocalChunkedLodPatch",
|
||||
absPath("${MODULE_GLOBEBROWSING}/shaders/localrenderer_vs.glsl"),
|
||||
absPath("${MODULE_GLOBEBROWSING}/shaders/renderer_fs.glsl"),
|
||||
@@ -1842,8 +1842,8 @@ void RenderableGlobe::recompileShaders() {
|
||||
//
|
||||
// Create global shader
|
||||
//
|
||||
global::renderEngine.removeRenderProgram(_globalRenderer.program.get());
|
||||
_globalRenderer.program = global::renderEngine.buildRenderProgram(
|
||||
global::renderEngine->removeRenderProgram(_globalRenderer.program.get());
|
||||
_globalRenderer.program = global::renderEngine->buildRenderProgram(
|
||||
"GlobalChunkedLodPatch",
|
||||
absPath("${MODULE_GLOBEBROWSING}/shaders/globalrenderer_vs.glsl"),
|
||||
absPath("${MODULE_GLOBEBROWSING}/shaders/renderer_fs.glsl"),
|
||||
@@ -2128,9 +2128,11 @@ void RenderableGlobe::calculateEclipseShadows(ghoul::opengl::ProgramObject& prog
|
||||
casterPos *= KM_TO_M; // converting to meters
|
||||
|
||||
const std::string source = shadowConf.source.first;
|
||||
SceneGraphNode* sourceNode = global::renderEngine.scene()->sceneGraphNode(source);
|
||||
SceneGraphNode* sourceNode =
|
||||
global::renderEngine->scene()->sceneGraphNode(source);
|
||||
const std::string caster = shadowConf.caster.first;
|
||||
SceneGraphNode* casterNode = global::renderEngine.scene()->sceneGraphNode(caster);
|
||||
SceneGraphNode* casterNode =
|
||||
global::renderEngine->scene()->sceneGraphNode(caster);
|
||||
|
||||
const double sourceRadiusScale = std::max(
|
||||
glm::compMax(sourceNode->scale()),
|
||||
|
||||
@@ -265,7 +265,7 @@ void RingsComponent::initializeGL() {
|
||||
|
||||
try {
|
||||
//global::renderEngine.removeRenderProgram(_geometryOnlyShader.get());
|
||||
_geometryOnlyShader = global::renderEngine.buildRenderProgram(
|
||||
_geometryOnlyShader = global::renderEngine->buildRenderProgram(
|
||||
"RingsGeomOnlyProgram",
|
||||
absPath("${MODULE_GLOBEBROWSING}/shaders/rings_geom_vs.glsl"),
|
||||
absPath("${MODULE_GLOBEBROWSING}/shaders/rings_geom_fs.glsl")
|
||||
@@ -298,10 +298,10 @@ void RingsComponent::deinitializeGL() {
|
||||
_textureFile = nullptr;
|
||||
_texture = nullptr;
|
||||
|
||||
global::renderEngine.removeRenderProgram(_shader.get());
|
||||
global::renderEngine->removeRenderProgram(_shader.get());
|
||||
_shader = nullptr;
|
||||
|
||||
global::renderEngine.removeRenderProgram(_geometryOnlyShader.get());
|
||||
global::renderEngine->removeRenderProgram(_geometryOnlyShader.get());
|
||||
_geometryOnlyShader = nullptr;
|
||||
}
|
||||
|
||||
@@ -410,7 +410,7 @@ void RingsComponent::update(const UpdateData& data) {
|
||||
}
|
||||
|
||||
_sunPosition = glm::normalize(
|
||||
global::renderEngine.scene()->sceneGraphNode("Sun")->worldPosition() -
|
||||
global::renderEngine->scene()->sceneGraphNode("Sun")->worldPosition() -
|
||||
data.modelTransform.translation
|
||||
);
|
||||
}
|
||||
@@ -488,8 +488,8 @@ void RingsComponent::compileShadowShader() {
|
||||
dict.setValue("nShadowSamples", std::to_string(_nShadowSamples - 1));
|
||||
|
||||
try {
|
||||
global::renderEngine.removeRenderProgram(_shader.get());
|
||||
_shader = global::renderEngine.buildRenderProgram(
|
||||
global::renderEngine->removeRenderProgram(_shader.get());
|
||||
_shader = global::renderEngine->buildRenderProgram(
|
||||
"RingsProgram",
|
||||
absPath("${MODULE_GLOBEBROWSING}/shaders/rings_vs.glsl"),
|
||||
absPath("${MODULE_GLOBEBROWSING}/shaders/rings_fs.glsl"),
|
||||
|
||||
@@ -205,7 +205,7 @@ ShadowComponent::ShadowComponent(const ghoul::Dictionary& dictionary)
|
||||
_dynamicDepthTextureRes = false;
|
||||
}
|
||||
else {
|
||||
glm::ivec2 renderingResolution = global::renderEngine.renderingResolution();
|
||||
glm::ivec2 renderingResolution = global::renderEngine->renderingResolution();
|
||||
_shadowDepthTextureWidth = renderingResolution.x * 2;
|
||||
_shadowDepthTextureHeight = renderingResolution.y * 2;
|
||||
_dynamicDepthTextureRes = true;
|
||||
@@ -413,7 +413,7 @@ void ShadowComponent::end() {
|
||||
|
||||
if (_viewDepthMap) {
|
||||
if (!_renderDMProgram) {
|
||||
_renderDMProgram = global::renderEngine.buildRenderProgram(
|
||||
_renderDMProgram = global::renderEngine->buildRenderProgram(
|
||||
"ShadowMappingDebuggingProgram",
|
||||
absPath("${MODULE_GLOBEBROWSING}/shaders/smviewer_vs.glsl"),
|
||||
absPath("${MODULE_GLOBEBROWSING}/shaders/smviewer_fs.glsl")
|
||||
@@ -442,9 +442,9 @@ void ShadowComponent::end() {
|
||||
void ShadowComponent::update(const UpdateData&) {
|
||||
ZoneScoped
|
||||
|
||||
_sunPosition = global::renderEngine.scene()->sceneGraphNode("Sun")->worldPosition();
|
||||
_sunPosition = global::renderEngine->scene()->sceneGraphNode("Sun")->worldPosition();
|
||||
|
||||
glm::ivec2 renderingResolution = global::renderEngine.renderingResolution();
|
||||
glm::ivec2 renderingResolution = global::renderEngine->renderingResolution();
|
||||
if (_dynamicDepthTextureRes && ((_shadowDepthTextureWidth != renderingResolution.x) ||
|
||||
(_shadowDepthTextureHeight != renderingResolution.y)))
|
||||
{
|
||||
|
||||
@@ -191,7 +191,7 @@ bool initTexturesFromLoadedData(DefaultTileProvider& t) {
|
||||
void initialize(TextTileProvider& t) {
|
||||
ZoneScoped
|
||||
|
||||
t.font = global::fontManager.font("Mono", static_cast<float>(t.fontSize));
|
||||
t.font = global::fontManager->font("Mono", static_cast<float>(t.fontSize));
|
||||
t.fontRenderer = ghoul::fontrendering::FontRenderer::createDefault();
|
||||
t.fontRenderer->setFramebufferSize(glm::vec2(t.initData.dimensions));
|
||||
glGenFramebuffers(1, &t.fbo);
|
||||
@@ -235,7 +235,7 @@ Tile tile(TextTileProvider& t, const TileIndex& tileIndex) {
|
||||
t.fontRenderer->render(*t.font, t.textPosition, t.text, t.textColor);
|
||||
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO);
|
||||
global::renderEngine.openglStateCache().resetViewportState();
|
||||
global::renderEngine->openglStateCache().resetViewportState();
|
||||
//glViewport(viewport[0], viewport[1], viewport[2], viewport[3]);
|
||||
|
||||
tile = Tile{ texture, std::nullopt, Tile::Status::OK };
|
||||
@@ -556,7 +556,7 @@ DefaultTileProvider::DefaultTileProvider(const ghoul::Dictionary& dictionary)
|
||||
|
||||
type = Type::DefaultTileProvider;
|
||||
|
||||
tileCache = global::moduleEngine.module<GlobeBrowsingModule>()->tileCache();
|
||||
tileCache = global::moduleEngine->module<GlobeBrowsingModule>()->tileCache();
|
||||
name = "Name unspecified";
|
||||
if (dictionary.hasKeyAndValue<std::string>("Name")) {
|
||||
name = dictionary.value<std::string>("Name");
|
||||
@@ -635,7 +635,7 @@ TextTileProvider::TextTileProvider(TileTextureInitData initData, size_t fontSize
|
||||
{
|
||||
ZoneScoped
|
||||
|
||||
tileCache = global::moduleEngine.module<GlobeBrowsingModule>()->tileCache();
|
||||
tileCache = global::moduleEngine->module<GlobeBrowsingModule>()->tileCache();
|
||||
}
|
||||
|
||||
|
||||
@@ -649,7 +649,7 @@ SizeReferenceTileProvider::SizeReferenceTileProvider(const ghoul::Dictionary& di
|
||||
|
||||
type = Type::SizeReferenceTileProvider;
|
||||
|
||||
font = global::fontManager.font("Mono", static_cast<float>(fontSize));
|
||||
font = global::fontManager->font("Mono", static_cast<float>(fontSize));
|
||||
|
||||
if (dictionary.hasKeyAndValue<glm::dvec3>(sizereferenceprovider::KeyRadii)) {
|
||||
ellipsoid = dictionary.value<glm::dvec3>(sizereferenceprovider::KeyRadii);
|
||||
@@ -1220,9 +1220,9 @@ int update(TileProvider& tp) {
|
||||
case Type::TemporalTileProvider: {
|
||||
TemporalTileProvider& t = static_cast<TemporalTileProvider&>(tp);
|
||||
if (t.successfulInitialization) {
|
||||
TileProvider* newCurrent = getTileProvider(t, global::timeManager.time());
|
||||
if (newCurrent) {
|
||||
t.currentTileProvider = newCurrent;
|
||||
TileProvider* newCurr = getTileProvider(t, global::timeManager->time());
|
||||
if (newCurr) {
|
||||
t.currentTileProvider = newCurr;
|
||||
}
|
||||
if (t.currentTileProvider) {
|
||||
update(*t.currentTileProvider);
|
||||
|
||||
Reference in New Issue
Block a user