mirror of
https://github.com/Almamu/linux-wallpaperengine.git
synced 2025-09-14 13:56:48 +08:00
Catch readTexture exceptions on CTextureCache::resolve so multi-background setups can properly lookup files...
This might need further improvements to use a texture cache by background instead of globally... Signed-off-by: Alexis Maiquez <almamu@almamu.com>
This commit is contained in:
parent
a713ad001a
commit
0387ebc588
@ -24,21 +24,34 @@ const ITexture* CTextureCache::resolve (const std::string& filename)
|
|||||||
// search for the texture in all the different containers just in case
|
// search for the texture in all the different containers just in case
|
||||||
for (auto it : this->getContext ().getApp ().getBackgrounds ())
|
for (auto it : this->getContext ().getApp ().getBackgrounds ())
|
||||||
{
|
{
|
||||||
const ITexture* texture = it.second->getContainer ()->readTexture (filename);
|
try
|
||||||
|
{
|
||||||
|
const ITexture* texture = it.second->getContainer ()->readTexture (filename);
|
||||||
|
|
||||||
this->store (filename, texture);
|
this->store (filename, texture);
|
||||||
|
|
||||||
return texture;
|
return texture;
|
||||||
|
}
|
||||||
|
catch (CAssetLoadException& ex)
|
||||||
|
{
|
||||||
|
// ignored, this happens if we're looking at the wrong background
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->getContext ().getApp ().getDefaultBackground () != nullptr)
|
if (this->getContext ().getApp ().getDefaultBackground () != nullptr)
|
||||||
{
|
{
|
||||||
const ITexture* texture =
|
try
|
||||||
this->getContext ().getApp ().getDefaultBackground ()->getContainer ()->readTexture (filename);
|
{
|
||||||
|
const ITexture* texture = this->getContext ().getApp ().getDefaultBackground ()->getContainer ()->readTexture (filename);
|
||||||
|
|
||||||
this->store (filename, texture);
|
this->store (filename, texture);
|
||||||
|
|
||||||
return texture;
|
return texture;
|
||||||
|
}
|
||||||
|
catch (CAssetLoadException& ex)
|
||||||
|
{
|
||||||
|
// ignored, this happens if we're looking at the wrong background
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw CAssetLoadException (filename, "Cannot find file");
|
throw CAssetLoadException (filename, "Cannot find file");
|
||||||
|
Loading…
Reference in New Issue
Block a user