From 4411e0150bdde1082864740061ed5d12b8d8e2ec Mon Sep 17 00:00:00 2001 From: ElonOlsson Date: Tue, 24 Aug 2021 15:07:07 -0400 Subject: [PATCH] now shows first img of sequence before sequence if enabled instead of random img --- .../renderableplanetimevaryingimage.cpp | 17 ++++++++--------- .../rendering/renderableplanetimevaryingimage.h | 1 + 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/base/rendering/renderableplanetimevaryingimage.cpp b/modules/base/rendering/renderableplanetimevaryingimage.cpp index d01d191ee0..13cce5abf8 100644 --- a/modules/base/rendering/renderableplanetimevaryingimage.cpp +++ b/modules/base/rendering/renderableplanetimevaryingimage.cpp @@ -164,17 +164,13 @@ void RenderablePlaneTimeVaryingImage::initialize() { return; } extractTriggerTimesFromFileNames(); - computeSequenceEndTime(); - - _textureFiles.resize(_sourceFiles.size()); - if (!_isLoadingLazily) { - loadTexture(); - } + computeSequenceEndTime(); } void RenderablePlaneTimeVaryingImage::initializeGL() { RenderablePlane::initializeGL(); + _textureFiles.resize(_sourceFiles.size()); for (size_t i = 0; i < _sourceFiles.size(); ++i) { _textureFiles[i] = ghoul::io::TextureReader::ref().loadTexture( absPath(_sourceFiles[i]).string() @@ -184,6 +180,9 @@ void RenderablePlaneTimeVaryingImage::initializeGL() { _textureFiles[i]->setFilter(ghoul::opengl::Texture::FilterMode::Linear); _textureFiles[i]->purgeFromRAM(); } + if (!_isLoadingLazily) { + loadTexture(); + } } bool RenderablePlaneTimeVaryingImage::extractMandatoryInfoFromDictionary() { @@ -230,7 +229,7 @@ void RenderablePlaneTimeVaryingImage::deinitializeGL() { } void RenderablePlaneTimeVaryingImage::bindTexture() { - if (_texture) { + if (_texture && !_textureIsDirty) { _texture->bind(); } } @@ -244,7 +243,7 @@ void RenderablePlaneTimeVaryingImage::update(const UpdateData& data) { } const double currentTime = data.time.j2000Seconds(); - const bool isInInterval = (currentTime >= _startTimes[0]) && + bool isInInterval = (currentTime >= _startTimes[0]) && (currentTime < _sequenceEndTime); if (isInInterval) { const size_t nextIdx = _activeTriggerTimeIndex + 1; @@ -261,7 +260,7 @@ void RenderablePlaneTimeVaryingImage::update(const UpdateData& data) { } else { // not in interval => set everything to false - _activeTriggerTimeIndex = 0; + _activeTriggerTimeIndex = -1; _needsUpdate = false; } diff --git a/modules/base/rendering/renderableplanetimevaryingimage.h b/modules/base/rendering/renderableplanetimevaryingimage.h index 670e794f9e..9543d1ce4a 100644 --- a/modules/base/rendering/renderableplanetimevaryingimage.h +++ b/modules/base/rendering/renderableplanetimevaryingimage.h @@ -53,6 +53,7 @@ public: protected: virtual void bindTexture() override; + //virtual void unbindTexture() override; private: void loadTexture();