public ShaderResourceView GetTexture(string name) { if (LoadedTexturesByName.TryGetValue(name, out var result)) { return(result); } throw new FileNotFoundException($"Texture by name: {name} not found"); }
public void AddOrUpdateTexture(string name, ShaderResourceView texture) { lock (_sync) { if (LoadedTexturesByName.TryGetValue(name, out var res)) { res.Dispose(); } LoadedTexturesByName[name] = texture; LoadedTexturesByPtrs[texture.NativePointer] = texture; } }
public void DisposeTexture(string name) { lock (_sync) { if (LoadedTexturesByName.TryGetValue(name, out var texture)) { LoadedTexturesByPtrs.Remove(texture.NativePointer); LoadedTexturesByName.Remove(name); texture.Dispose(); } else { DebugWindow.LogError($"({nameof(DisposeTexture)}) Texture {name} not found.", 10); } } }