Skip to content

Commit

Permalink
add methods to clear the MaterialManager Material cache so that shade…
Browse files Browse the repository at this point in the history
…rs can be edited and reloaded at runtime. (#111)

Co-authored-by: Mark B. Allan <Mark.B.Allan@nasa.gov>
  • Loading branch information
mallanmba and mallan authored Nov 15, 2023
1 parent 7df2f1d commit 4660ffe
Showing 1 changed file with 24 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -255,4 +255,28 @@ public static String inject(String program, final String line) {
sb.append(program.substring(firstLF + 1));
return sb.toString();
}

/**
* Clear the contents of the material cache
*/
public void clearMaterialCache() {
_materialCache.clear();
}

/**
* Remove a specific material from the cache.
* Useful for editing a material or shader and re-loading at runtime.
* @return true if the material was successfully removed from the cache.
*/
public boolean clearMaterialCacheItem(final String materialUrl) {
final ResourceSource key = ResourceLocatorTool.locateResource(ResourceLocatorTool.TYPE_MATERIAL, materialUrl);
if (key == null) {
return false;
}
if (!_materialCache.containsKey(key)) {
return false;
}
var value = _materialCache.get(key);
return _materialCache.remove(key, value);
}
}

0 comments on commit 4660ffe

Please sign in to comment.