Skip to content
Snippets Groups Projects
Commit e77ac4ca authored by Aimee Linden's avatar Aimee Linden
Browse files

Merge

parents dea12663 d3db9dd2
No related branches found
No related tags found
No related merge requests found
......@@ -79,6 +79,8 @@
// format changes. JC
const U32 INDRA_OBJECT_CACHE_VERSION = 14;
// Format string used to construct filename for the object cache
static const char OBJECT_CACHE_FILENAME[] = "objects_%d_%d.slc";
extern BOOL gNoRender;
......@@ -323,13 +325,25 @@ LLViewerRegion::~LLViewerRegion()
delete mEventPoll;
LLHTTPSender::clearSender(mHost);
saveCache();
saveObjectCache();
std::for_each(mObjectPartition.begin(), mObjectPartition.end(), DeletePointer());
}
void LLViewerRegion::loadCache()
const std::string LLViewerRegion::getObjectCacheFilename(U64 mHandle) const
{
std::string filename;
U32 region_x, region_y;
grid_from_region_handle(mHandle, &region_x, &region_y);
filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,
llformat(OBJECT_CACHE_FILENAME, region_x, region_y));
return filename;
}
void LLViewerRegion::loadObjectCache()
{
if (mCacheLoaded)
{
......@@ -341,9 +355,8 @@ void LLViewerRegion::loadCache()
LLVOCacheEntry *entry;
std::string filename;
filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,"") + gDirUtilp->getDirDelimiter() +
llformat("objects_%d_%d.slc",U32(mHandle>>32)/REGION_WIDTH_UNITS, U32(mHandle)/REGION_WIDTH_UNITS );
std::string filename = getObjectCacheFilename(mHandle);
LL_DEBUGS("ObjectCache") << filename << LL_ENDL;
LLFILE* fp = LLFile::fopen(filename, "rb"); /* Flawfinder: ignore */
if (!fp)
......@@ -414,7 +427,7 @@ void LLViewerRegion::loadCache()
}
void LLViewerRegion::saveCache()
void LLViewerRegion::saveObjectCache()
{
if (!mCacheLoaded)
{
......@@ -427,9 +440,8 @@ void LLViewerRegion::saveCache()
return;
}
std::string filename;
filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,"") + gDirUtilp->getDirDelimiter() +
llformat("objects_%d_%d.slc", U32(mHandle>>32)/REGION_WIDTH_UNITS, U32(mHandle)/REGION_WIDTH_UNITS );
std::string filename = getObjectCacheFilename(mHandle);
LL_DEBUGS("ObjectCache") << filename << LL_ENDL;
LLFILE* fp = LLFile::fopen(filename, "wb"); /* Flawfinder: ignore */
if (!fp)
......@@ -1454,7 +1466,7 @@ void LLViewerRegion::unpackRegionHandshake()
// Now that we have the name, we can load the cache file
// off disk.
loadCache();
loadObjectCache();
// After loading cache, signal that simulator can start
// sending data.
......
......@@ -99,9 +99,8 @@ public:
~LLViewerRegion();
// Call this after you have the region name and handle.
void loadCache();
void saveCache();
void loadObjectCache();
void saveObjectCache();
void sendMessage(); // Send the current message to this region's simulator
void sendReliableMessage(); // Send the current message to this region's simulator
......@@ -330,6 +329,9 @@ public:
LLDynamicArray<LLUUID> mMapAvatarIDs;
private:
// determine the cache filename for the region from the region handle
const std::string LLViewerRegion::getObjectCacheFilename(U64 mHandle) const;
// The surfaces and other layers
LLSurface* mLandp;
......@@ -404,7 +406,7 @@ private:
// Cache ID is unique per-region, across renames, moving locations,
// etc.
LLUUID mCacheID;
typedef std::map<std::string, std::string> CapabilityMap;
CapabilityMap mCapabilities;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment