comparison Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp @ 1670:24462a259d8d

comment
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 19 Nov 2020 19:20:45 +0100
parents d82a141e08d7
children 2c2512918a0f
comparison
equal deleted inserted replaced
1669:d82a141e08d7 1670:24462a259d8d
1261 1261
1262 class PrefetchItem 1262 class PrefetchItem
1263 { 1263 {
1264 private: 1264 private:
1265 size_t cursorIndex_; 1265 size_t cursorIndex_;
1266 bool isFull_; 1266 bool isFullQuality_;
1267 1267
1268 public: 1268 public:
1269 PrefetchItem(size_t cursorIndex, 1269 PrefetchItem(size_t cursorIndex,
1270 bool isFull) : 1270 bool isFullQuality) :
1271 cursorIndex_(cursorIndex), 1271 cursorIndex_(cursorIndex),
1272 isFull_(isFull) 1272 isFullQuality_(isFullQuality)
1273 { 1273 {
1274 } 1274 }
1275 1275
1276 size_t GetCursorIndex() const 1276 size_t GetCursorIndex() const
1277 { 1277 {
1278 return cursorIndex_; 1278 return cursorIndex_;
1279 } 1279 }
1280 1280
1281 bool IsFull() const 1281 bool IsFullQuality() const
1282 { 1282 {
1283 return isFull_; 1283 return isFullQuality_;
1284 } 1284 }
1285 }; 1285 };
1286 1286
1287 1287
1288 std::unique_ptr<IObserver> observer_; 1288 std::unique_ptr<IObserver> observer_;
1314 void ScheduleNextPrefetch() 1314 void ScheduleNextPrefetch()
1315 { 1315 {
1316 while (!prefetchQueue_.empty()) 1316 while (!prefetchQueue_.empty())
1317 { 1317 {
1318 size_t cursorIndex = prefetchQueue_.front().GetCursorIndex(); 1318 size_t cursorIndex = prefetchQueue_.front().GetCursorIndex();
1319 bool isFull = prefetchQueue_.front().IsFull(); 1319 bool isFullQuality = prefetchQueue_.front().IsFullQuality();
1320 prefetchQueue_.pop_front(); 1320 prefetchQueue_.pop_front();
1321 1321
1322 const std::string sopInstanceUid = frames_->GetInstanceOfFrame(cursorIndex).GetSopInstanceUid(); 1322 const std::string sopInstanceUid = frames_->GetInstanceOfFrame(cursorIndex).GetSopInstanceUid();
1323 unsigned int frameNumber = frames_->GetFrameNumberInInstance(cursorIndex); 1323 unsigned int frameNumber = frames_->GetFrameNumberInInstance(cursorIndex);
1324 1324
1325 { 1325 {
1326 FramesCache::Accessor accessor(*cache_, sopInstanceUid, frameNumber); 1326 FramesCache::Accessor accessor(*cache_, sopInstanceUid, frameNumber);
1327 if (!accessor.IsValid() || 1327 if (!accessor.IsValid() ||
1328 (isFull && accessor.GetQuality() == 0)) 1328 (isFullQuality && accessor.GetQuality() == 0))
1329 { 1329 {
1330 if (isFull) 1330 if (isFullQuality)
1331 { 1331 {
1332 ScheduleLoadFullDicomFrame(cursorIndex, PRIORITY_NORMAL, true); 1332 ScheduleLoadFullDicomFrame(cursorIndex, PRIORITY_NORMAL, true);
1333 } 1333 }
1334 else 1334 else
1335 { 1335 {
1336 ScheduleLoadRenderedFrame(cursorIndex, PRIORITY_NORMAL, true); 1336 ScheduleLoadRenderedFrame(cursorIndex, PRIORITY_NORMAL, true);
1337 } 1337 }
1338 return; 1338
1339 return; // We have found a new frame to cache, stop the lookup loop
1339 } 1340 }
1340 } 1341 }
1341 } 1342 }
1342 } 1343 }
1343 1344