summaryrefslogtreecommitdiff
path: root/indra/llappearance/llwearable.cpp
AgeCommit message (Collapse)Author
2015-01-28MAINT-4744: Eliminate viewer dependency on (old) GNU libstdc++.Nat Goodspeed
To be more accurate, this changeset doesn't actually eliminate the dependency: it eliminates the use cases for the llifstream / llofstream feature that requires it. Currently you can construct an llifstream or llofstream from an open LLFILE* file handle (or, except on Windows, an int file descriptor). But rather than containing a streambuf implementation based on FILE*, llfile.h relies on the fact that the Windows std::filebuf happens to support that as a nonstandard extension; also on a nonstandard GNU extension __gnu_cxx::stdio_filebuf<char>. To move from GNU libstdc++ to clang's libc++ (the direction on Mac), we could code a streambuf that supports FILE*. But before doing that, it's worth asking whether anyone actually uses this questionable feature. In fact there were only two methods: LLWearable::exportFile() and importFile() -- and only one call to either, in LLViewerWearable::saveNewAsset(). The code in saveNewAsset() opened the LLFILE* immediately before calling exportFile(), meaning we could reasonably push the open operation down into exportFile(). That logic was complex anyway due to the need for the caller to close the LLFILE* regardless of the success of the exportFile(). Change LLWearable::exportFile() and importFile() to accept a std::string filename rather than an open LLFILE*. Change LLViewerWearable::saveNewAsset() to simply call exportFile(filename) rather than horsing around with an LLFILE* handle. (This improves the code in another way too: it encapsulates the need to open the relevant file in binary mode. Previously, each caller had to remember to do that.) To prevent inadvertent reintroduction of ll[io]fstream(LLFILE*) code, add llstream_LLFILE preprocessor macro (default 0) to control access to the relevant constructors. Also suppress rdbuf() override, the only method whose signature references llstdio_filebuf.
2014-06-02Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-drtvwr-365.Stinson Linden
2014-05-14MAINT-4009: Patching a leak of LLVisualParam derived objects that were being ↵Stinson Linden
leaked because the LLWearable class was not destroying itself properly.
2014-05-14MAINT-4009: Patching the final leak of LLViewerFetchedTexture objects ↵Stinson Linden
occurring because the LLWearable class was not properly destroying itself.
2014-05-13sunshine-external merge WIPBrad Payne (Vir Linden)
2013-09-19SH-3455 WIP - removing bake upload codeBrad Payne (Vir Linden)
2013-08-09second phase summer cleaningRichard Linden
replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc.
2013-07-18SH-4297 WIP interesting: viewer-interesting starts loading cached scene lateRichard Linden
dependency cleanup - removed a lot of unecessary includes
2013-03-11llinventory merge fixesprep
2013-03-11mergeprep
2013-02-28SH-3798 FIX avatar skins look dullNyx Linden
Wearable parsing error caused last texture in some assets to fail to parse. Parser now does not throw an error if the wearable does not end in a newline
2013-02-14SH-3803 FIX Missing Wearable reported in sunshine viewerNyx Linden
Newly refactored wearable parsing did not account for extra whitespace cleanly. Updated the code to handle extra blank lines in the wearable assets.
2012-10-17more param location logging, added wearable type info to dumpArchetypeXMLBrad Payne (Vir Linden)
2012-10-15additional debugging info, including tracking where visual params liveBrad Payne (Vir Linden)
2012-09-27Merge sunshine-internal -> sunshine-experimentalDon Kjer
2012-09-20Partial rewrite of llifstream and llofstream (Windows implementation ↵Don Kjer
pending). Moved more functionality from llviewerwearable to llwearable
2012-09-13Merge sunshine -> sunshine-experimentalDon Kjer
2012-09-11SH-3264 Moved over a few more items to llappearanceNyx (Neal Orman)
moved over: isWearingWearableType wearable::writeToAvatar wearable::mTEMap (stores LocalTextureObject*) more from wearable::import/export wearable::createVisualParams, etc
2012-09-03Renamed LLVOAvatarDefines to LLAvatarAppearanceDefinesDon Kjer
2012-09-03Cleanup of llappearance refactor file definition order for easier diff'ingDon Kjer
2012-09-03Extracted texture baking system into llappearance library.Don Kjer
2012-08-21SH-3261 SH-3324 WIP Starting extraction of wearable/appearance librariesNyx (Neal Orman)
First pass at cmake configs, and starting to try to move wearable class. Things are broken, checkpointing work to collaborate.