Skip to content

Commit ace7df2

Browse files
committed
No preloading
1 parent 76d5e1d commit ace7df2

File tree

1 file changed

+36
-21
lines changed
  • modules/ViewerController/src/main/java/org/janelia/workstation/controller/tileimagery

1 file changed

+36
-21
lines changed

modules/ViewerController/src/main/java/org/janelia/workstation/controller/tileimagery/TileServer.java

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ public enum LoadStatus {
4444
private LoadStatus loadStatus = LoadStatus.UNINITIALIZED;
4545

4646
// One thread pool to load minimal representation of volume
47-
private final TexturePreFetcher minResPreFetcher; //!!!! = new TexturePreFetcher(MIN_RES_TILE_LOADER_CONCURRENCY, MIN_RES_TILE_LOADER_CONCURRENCY);
47+
private TexturePreFetcher minResPreFetcher;
4848
// One thread pool to load current and prefetch textures
49-
private final TexturePreFetcher futurePreFetcher; //!!!! = new TexturePreFetcher(MIN_RES_TILE_LOADER_CONCURRENCY, HIGHER_RES_TILE_LOADER_CONCURRENCY);
49+
private TexturePreFetcher futurePreFetcher;
5050

5151
// Refactoring 6/12/2013
5252
private SharedVolumeImage sharedVolumeImage;
@@ -63,9 +63,6 @@ public enum LoadStatus {
6363
private Set<TileIndex> currentDisplayTiles = new HashSet<>();
6464

6565
public TileServer(SharedVolumeImage sharedVolumeImage, JadeStorageAttributes storageAttributes) {
66-
this.minResPreFetcher = new TexturePreFetcher(MIN_RES_TILE_LOADER_CONCURRENCY, MIN_RES_TILE_LOADER_CONCURRENCY);
67-
this.futurePreFetcher = new TexturePreFetcher(MIN_RES_TILE_LOADER_CONCURRENCY, HIGHER_RES_TILE_LOADER_CONCURRENCY);
68-
6966
setSharedVolumeImage(sharedVolumeImage.setTileLoaderProvider(new BlockTiffOctreeTileLoaderProvider() {
7067
int concurrency = HIGHER_RES_TILE_LOADER_CONCURRENCY;
7168

@@ -76,8 +73,6 @@ public BlockTiffOctreeLoadAdapter createLoadAdapter(String baseURI) {
7673
}
7774
}));
7875

79-
minResPreFetcher.setTextureCache(getTextureCache());
80-
futurePreFetcher.setTextureCache(getTextureCache());
8176
queueDrainedListener = new StatusUpdateListener() {
8277
@Override
8378
public void update() {
@@ -99,8 +94,14 @@ private void startMinResPreFetch() {
9994
if (!sharedVolumeImage.isLoaded()) {
10095
return;
10196
}
97+
if (minResPreFetcher == null) {
98+
minResPreFetcher = new TexturePreFetcher(MIN_RES_TILE_LOADER_CONCURRENCY, MIN_RES_TILE_LOADER_CONCURRENCY);
99+
minResPreFetcher.setTextureCache(getTextureCache());
100+
minResPreFetcher.setLoadAdapter(sharedVolumeImage.getLoadAdapter());
101+
} else {
102+
minResPreFetcher.clear();
103+
}
102104
// queue load of all low resolution textures
103-
minResPreFetcher.clear();
104105
TileFormat format = sharedVolumeImage.getLoadAdapter().getTileFormat();
105106
List<MinResSliceGenerator> generators = new ArrayList<>();
106107
if (format.isHasXSlices()) {
@@ -158,17 +159,18 @@ public void clearCache() {
158159
if (textureIds != null) {
159160
textureCache.getHistoryCache().storeObsoleteTextureIds(textureIds); // so old texture ids can get deleted next draw
160161
}
161-
minResPreFetcher.setTextureCache(textureCache);
162-
futurePreFetcher.setTextureCache(textureCache);
162+
if (minResPreFetcher != null) {
163+
minResPreFetcher.setTextureCache(textureCache);
164+
}
165+
if (futurePreFetcher != null) {
166+
futurePreFetcher.setTextureCache(textureCache);
167+
}
163168
for (ViewTileManager vtm : viewTileManagers) {
164169
vtm.clear();
165170
vtm.setTextureCache(textureCache);
166171
}
167-
if (!VolumeCache.useVolumeCache()) {
168-
startMinResPreFetch();
169-
}
170172
}
171-
173+
172174
public TileSet createLatestTiles() {
173175
TileSet result = new TileSet();
174176
for (ViewTileManager vtm : viewTileManagers) {
@@ -258,7 +260,17 @@ private void rearrangeLoadQueue(TileSet currentTiles) {
258260
}
259261
updateLoadStatus();
260262

261-
futurePreFetcher.clear();
263+
if (!VolumeCache.useVolumeCache()) {
264+
startMinResPreFetch();
265+
}
266+
267+
if (futurePreFetcher == null) {
268+
futurePreFetcher = new TexturePreFetcher(MIN_RES_TILE_LOADER_CONCURRENCY, HIGHER_RES_TILE_LOADER_CONCURRENCY);
269+
futurePreFetcher.setTextureCache(getTextureCache());
270+
futurePreFetcher.setLoadAdapter(sharedVolumeImage.getLoadAdapter());
271+
} else {
272+
futurePreFetcher.clear();
273+
}
262274

263275
Set<TileIndex> cacheableTextures = new HashSet<TileIndex>();
264276
int maxCacheable = (int) (0.90 * getTextureCache().getFutureCache().getMaxSize());
@@ -415,8 +427,14 @@ public void componentHidden(ComponentEvent e) {
415427
}
416428

417429
public void stop() {
418-
minResPreFetcher.clear();
419-
futurePreFetcher.clear();
430+
if (minResPreFetcher != null) {
431+
minResPreFetcher.clear();
432+
minResPreFetcher = null;
433+
}
434+
if (futurePreFetcher != null) {
435+
futurePreFetcher.clear();
436+
futurePreFetcher = null;
437+
}
420438
}
421439

422440
//-------------------------------------------IMPLEMENTS VolumeLoadListener
@@ -425,11 +443,8 @@ public void volumeLoaded(URL url) {
425443
if (sharedVolumeImage == null) {
426444
return;
427445
}
428-
// Initialize pre-fetchers
429-
minResPreFetcher.setLoadAdapter(sharedVolumeImage.getLoadAdapter());
430-
futurePreFetcher.setLoadAdapter(sharedVolumeImage.getLoadAdapter());
431446
clearCache();
432-
refreshCurrentTileSet();
447+
// refreshCurrentTileSet();
433448
}
434449

435450
}

0 commit comments

Comments
 (0)