diff --git a/indra/newview/fscommon.cpp b/indra/newview/fscommon.cpp index fc1b8e93b6..df2326b1e8 100644 --- a/indra/newview/fscommon.cpp +++ b/indra/newview/fscommon.cpp @@ -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; +} diff --git a/indra/newview/fscommon.h b/indra/newview/fscommon.h index f19afcc303..c9e9780643 100644 --- a/indra/newview/fscommon.h +++ b/indra/newview/fscommon.h @@ -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 diff --git a/indra/newview/fsfloaterexport.cpp b/indra/newview/fsfloaterexport.cpp index 0c9cdcf5a8..418d163356 100644 --- a/indra/newview/fsfloaterexport.cpp +++ b/indra/newview/fsfloaterexport.cpp @@ -64,6 +64,7 @@ #include "llfloaterreg.h" #include "llappviewer.h" +#include "fscommon.h" #include @@ -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())) // Check against default textures + if (FSCommon::isDefaultTexture(checkTE->getID())) // 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 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()); diff --git a/indra/newview/fsfloaterexport.h b/indra/newview/fsfloaterexport.h index 4faceacb50..c1db65229b 100644 --- a/indra/newview/fsfloaterexport.h +++ b/indra/newview/fsfloaterexport.h @@ -116,7 +116,6 @@ private: void onIdle(); void removeRequestedAsset(LLUUID asset_uuid); - bool defaultTextureCheck(const LLUUID asset_id); LLSD mManifest; std::map mRequestedTexture; diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 821d3d2e48..e744356721 100755 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -2901,10 +2901,15 @@ class LLEditParticleSource : public view_listener_t } }; -// ## Zi: Texture Refresh +// 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 +// Texture Refresh class LLObjectReportAbuse : public view_listener_t {