FIRE-14479 / FIRE-15173: Don't perform texture refresh on default textures

Ansariel 2015-02-23 13:28:24 +01:00
parent 68fac728eb
commit 2845768d16
5 changed files with 38 additions and 41 deletions

View File

@ -390,3 +390,26 @@ std::string FSCommon::getAvatarNameByDisplaySettings(const LLAvatarName& av_name
}
return name;
}
bool FSCommon::isDefaultTexture(const LLUUID& asset_id)
{
if (asset_id == LL_DEFAULT_WOOD_UUID ||
asset_id == LL_DEFAULT_STONE_UUID ||
asset_id == LL_DEFAULT_METAL_UUID ||
asset_id == LL_DEFAULT_GLASS_UUID ||
asset_id == LL_DEFAULT_FLESH_UUID ||
asset_id == LL_DEFAULT_PLASTIC_UUID ||
asset_id == LL_DEFAULT_RUBBER_UUID ||
asset_id == LL_DEFAULT_LIGHT_UUID ||
asset_id == LLUUID("5748decc-f629-461c-9a36-a35a221fe21f") || // UIImgWhiteUUID
asset_id == LLUUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903") || // UIImgTransparentUUID
asset_id == LLUUID("f54a0c32-3cd1-d49a-5b4f-7b792bebc204") || // UIImgInvisibleUUID
asset_id == LLUUID("6522e74d-1660-4e7f-b601-6f48c1659a77") || // UIImgDefaultEyesUUID
asset_id == LLUUID("7ca39b4c-bd19-4699-aff7-f93fd03d3e7b") || // UIImgDefaultHairUUID
asset_id == LLUUID("5748decc-f629-461c-9a36-a35a221fe21f") // UIImgDefault for all clothing
)
{
return true;
}
return false;
}

View File

@ -78,6 +78,8 @@ namespace FSCommon
LLSD populateGroupCount();
std::string getAvatarNameByDisplaySettings(const LLAvatarName& av_name);
bool isDefaultTexture(const LLUUID& asset_id);
};
#endif // FS_COMMON_H

View File

@ -64,6 +64,7 @@
#include "llfloaterreg.h"
#include "llappviewer.h"
#include "fscommon.h"
#include <boost/algorithm/string_regex.hpp>
@ -489,7 +490,7 @@ void FSFloaterObjectExport::addPrim(LLViewerObject* object, bool root)
LLTextureEntry *checkTE = object->getTE(i);
LL_DEBUGS("export") << "Checking texture number " << (S32)i
<< ", ID " << checkTE->getID() << LL_ENDL;
if (defaultTextureCheck(checkTE->getID())) // <FS:CR> Check against default textures
if (FSCommon::isDefaultTexture(checkTE->getID())) // <FS:CR> Check against default textures
{
LL_DEBUGS("export") << "...is a default texture." << LL_ENDL;
prim["texture"].append(checkTE->asLLSD());
@ -705,30 +706,6 @@ void FSFloaterObjectExport::saveFormattedImage(LLPointer<LLImageFormatted> mForm
removeRequestedTexture(id);
}
bool FSFloaterObjectExport::defaultTextureCheck(const LLUUID asset_id)
{
if (asset_id == LL_DEFAULT_WOOD_UUID ||
asset_id == LL_DEFAULT_STONE_UUID ||
asset_id == LL_DEFAULT_METAL_UUID ||
asset_id == LL_DEFAULT_GLASS_UUID ||
asset_id == LL_DEFAULT_FLESH_UUID ||
asset_id == LL_DEFAULT_PLASTIC_UUID ||
asset_id == LL_DEFAULT_RUBBER_UUID ||
asset_id == LL_DEFAULT_LIGHT_UUID ||
asset_id == LLUUID("5748decc-f629-461c-9a36-a35a221fe21f") || // UIImgWhiteUUID
asset_id == LLUUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903") || // UIImgTransparentUUID
asset_id == LLUUID("f54a0c32-3cd1-d49a-5b4f-7b792bebc204") || // UIImgInvisibleUUID
asset_id == LLUUID("6522e74d-1660-4e7f-b601-6f48c1659a77") || // UIImgDefaultEyesUUID
asset_id == LLUUID("7ca39b4c-bd19-4699-aff7-f93fd03d3e7b") || // UIImgDefaultHairUUID
asset_id == LLUUID("5748decc-f629-461c-9a36-a35a221fe21f") // UIImgDefault for all clothing
)
{
LL_DEBUGS("export") << "Using system texture for " << asset_id << LL_ENDL;
return true;
}
return false;
}
void FSFloaterObjectExport::inventoryChanged(LLViewerObject* object, LLInventoryObject::object_list_t* inventory, S32 serial_num, void* user_data)
{
uuid_vec_t::iterator v_iter = std::find(mInventoryRequests.begin(), mInventoryRequests.end(), object->getID());

View File

@ -116,7 +116,6 @@ private:
void onIdle();
void removeRequestedAsset(LLUUID asset_uuid);
bool defaultTextureCheck(const LLUUID asset_id);
LLSD mManifest;
std::map<LLUUID, FSAssetResourceData> mRequestedTexture;

View File

@ -2901,10 +2901,15 @@ class LLEditParticleSource : public view_listener_t
}
};
// ## Zi: Texture Refresh
// <FS:Zi> Texture Refresh
void destroy_texture(const LLUUID& id) // will be used by the texture refresh functions below
{
LLViewerFetchedTexture* tx=LLViewerTextureManager::getFetchedTexture(id);
if (id.isNull() || id == IMG_DEFAULT || FSCommon::isDefaultTexture(id))
{
return;
}
LLViewerFetchedTexture* tx = LLViewerTextureManager::getFetchedTexture(id);
if (tx)
{
tx->clearFetchedResults();
@ -2931,24 +2936,15 @@ class LLObjectTexRefresh : public view_listener_t
if (!node->isTESelected(i)) continue;
LLViewerTexture* img = node->getObject()->getTEImage(i);
if (img->getID() != ((LLViewerTexture*)(LLViewerFetchedTexture::sDefaultImagep))->getID())
{
faces_per_texture[img->getID()].push_back(i);
}
faces_per_texture[img->getID()].push_back(i);
if (node->getObject()->getTE(i)->getMaterialParams().notNull())
{
LLViewerTexture* norm_img = node->getObject()->getTENormalMap(i);
if (norm_img->getID() != ((LLViewerTexture*)(LLViewerFetchedTexture::sDefaultImagep))->getID())
{
faces_per_texture[norm_img->getID()].push_back(i);
}
faces_per_texture[norm_img->getID()].push_back(i);
LLViewerTexture* spec_img = node->getObject()->getTESpecularMap(i);
if (spec_img->getID() != ((LLViewerTexture*)(LLViewerFetchedTexture::sDefaultImagep))->getID())
{
faces_per_texture[spec_img->getID()].push_back(i);
}
faces_per_texture[spec_img->getID()].push_back(i);
}
}
@ -3016,7 +3012,7 @@ class LLAvatarTexRefresh : public view_listener_t
return true;
}
};
// ## Zi: Texture Refresh
// </FS:Zi> Texture Refresh
class LLObjectReportAbuse : public view_listener_t
{