summaryrefslogtreecommitdiff
path: root/indra/llimage
AgeCommit message (Collapse)Author
2019-08-12DRTVWR-493: Streamline LLParamSingleton, LLLockedSingleton.Nat Goodspeed
Simplify LLSingleton::SingletonLifetimeManager to SingletonInitializer: that struct has not been responsible for deletion ever since LLSingletonBase acquired dependency-ordered deleteAll(). Move SingletonData::mInitState changes from SingletonLifetimeManager to constructSingleton() method. Similarly, constructSingleton() now sets SingletonData::mInstance instead of making its caller store the pointer. Add variadic arguments to LLSingleton::constructSingleton() so we can reuse it for LLParamSingleton. Add finishInitializing() method to encapsulate logic reused for getInstance()'s INITIALIZING and DELETED cases. Make LLParamSingleton a subclass of LLSingleton, just as LLLockedSingleton is a subclass of LLParamSingleton. Make LLParamSingleton a friend of LLSingleton, so it can access private members of LLSingleton without also granting access to any DERIVED_CLASS subclass. This eliminates the need for protected getInitState(). LLParamSingleton::initParamSingleton() reuses LLSingleton::constructSingleton() and finishInitializing(). Its getInstance() method completely replaces LLSingleton::getInstance(): in most EInitStates, LLParamSingleton::getInstance() is an error. Use a std::mutex to serialize calls to LLParamSingleton::initParamSingleton() and getInstance(). While LLSingleton::getInstance() relies on the "initialized exactly once" guarantee for block-scope static declarations, LLParamSingleton cannot rely on the same mechanism. LLLockedSingleton is now a very succinct subclass of LLParamSingleton -- they have very similar functionality. Giving the LLSINGLETON() macro variadic arguments eliminates the need for a separate LLPARAMSINGLETON() macro, while continuing to support existing usage.
2019-07-25DRTVWR-493 LLImage to LLParamSingletonandreykproductengine
2019-01-14SL-10291 Replace apr_mutex with standard C++11 functionalityandreykproductengine
2018-07-27MAINT-8923 Better allocation failure handlingandreykproductengine
2018-07-26MAINT-8923 Better allocation failure handling, createGLTexture crashesandreykproductengine
2018-01-30MAINT-8091 Removed deprecated and unused private memory poolingAndrey Kleshchev
2018-01-17Merged in lindenlab/viewer-releaseAndreyL ProductEngine
2018-01-10MAINT-8167 Fixed uploading JPEG image from Unicode directory failsandreykproductengine
2017-12-05MAINT-2124 Texture allocation issuesandreykproductengine
2017-11-29DRTVWR-418: Merge from latest viewer-releaseNat Goodspeed
2017-11-27MAINT-8028 Fixed memory leak in allocateDataSize()andreykproductengine
2017-10-27Merged from viewer-lynxandreykproductengine
2017-10-11Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-08-16merge changes for DRTVWR-439Oz Linden
2017-06-12Fixed line endings for llpngwrapper.cppandreykproductengine
2017-06-06[SL-711] - Eliminate some overheads in texturecache.ruslantproductengine
- Eliminate memory overhead when need duplicated scaled image. - Small improvement in LLImageBase::getCodecFromExtension()
2017-05-31STORM-2148 Crash on trying to save texture file(s) to computer from inventorypavelkproductengine
2017-02-23DRTVWR-418: Fix a round of compile errors surfaced by -std=c++11.Nat Goodspeed
These are mostly things that were in fact erroneous, but accepted by older compilers. This changeset has not yet been built with Visual Studio 2013 or Linux gcc, even with -std=c++11. This changeset has not been built *without* -std=c++11. It should be used in conjunction with a corresponding change to LL_BUILD_DARWIN_BASE_SWITCHES in viewer-build-variables/variables. This is a work in progress. We do not assert that this changeset completes the work needed to turn on -std=c++11, even on the Mac.
2017-02-03Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2016-12-08MAINT-6729 Additional fix for crash in LLImageGL::analyzeAlpha()AndreyL ProductEngine
2016-10-19MAINT-6818 Fix for LLImageBase::allocateData crashAndreyL ProductEngine
2016-09-16MergeRider Linden
2016-09-06merge changes for exception handlingOz Linden
2016-09-06paren fixOz Linden
2016-09-06add run time error checking to LLImageRaw::scaleOz Linden
2016-08-29Merged in andreyl_productengine/viewer-427AndreyL ProductEngine
2016-08-25MAINT-6476 VOB - User can add any size image to an Outfit Gallery outfit folderspavelkproductengine
2016-08-17MAINT-5011: Derive image-load exceptions from LLContinueError.Nat Goodspeed
Failure to load an image shouldn't crash the whole viewer.
2016-08-17Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2016-08-17MAINT-5011: Use LLTHROW() instead of plain BOOST_THROW_EXCEPTION().Nat Goodspeed
A level of preprocessor indirection lets us later change the implementation if desired.
2016-08-09MAINT-6618 More checksAndreyL ProductEngine
2016-08-09MAINT-6618 Fixed the crash in LLImageRaw::scale() + some additional checksAndreyL ProductEngine
2016-08-05Buildfix: brought back LINDEN_J2C_COMMENT_PREFIXAndreyL ProductEngine
2016-07-27MAINT-4327/MAINT-6584 Supress the crash on memory allocation error when ↵AndreyL ProductEngine
decoding J2C images
2016-07-22MAINT-6584: Convert LLImage class hierarchy to standard 'bool'Nat Goodspeed
instead of legacy BOOL.
2016-07-21MAINT-6584: Streamline static LLImageJ2C implementation API.Nat Goodspeed
Specifically, remove unused function pointer types CreateLLImageJ2CFunction, DestroyLLImageJ2CFunction and EngineInfoLLImageJ2CFunction. Also eliminate static fallbackDestroyLLImageJ2CImpl() and fallbackEngineInfoLLImageJ2CImpl(), leaving only static fallbackCreateLLImageJ2CImpl(). We do need a factory function to instantiate the appropriate LLImageJ2CImpl subclass, so leave the fallbackCreateLLImageJ2CImpl() link seam in place. However, given that every known LLImageJ2CImpl subclass is cheap to instantiate, make getEngineInfo() a pure virtual method on that subclass: the static LLImageJ2C::getEngineInfo() method can temporarily construct an instance to query. While we're at it, make getEngineInfo() return std::string like LLImageJ2C::getEngineInfo(). It's ridiculous that fallbackEngineInfoLLImageJ2CImpl() implementations constructed a static std::string and returned its c_str(), only to have LLImageJ2C::getEngineInfo() construct ANOTHER std::string from the returned const char*. fallbackDestroyLLImageJ2CImpl() never did anything useful: it merely deleted the passed LLImageJ2CImpl subclass pointer as the specific subclass type. But since LLImageJ2CImpl's destructor is virtual, LLImageJ2C's destructor could simply delete the stored LLImageJ2CImpl*. In fact, make mImpl a boost::scoped_ptr<LLImageJ2CImpl> so we don't even have to delete it manually.
2016-07-19MAINT-5011: Introduce LLException base class for viewer exceptions.Nat Goodspeed
This also introduces LLContinueError for exceptions which should interrupt some part of viewer processing (e.g. the current coroutine) but should attempt to let the viewer session proceed. Derive all existing viewer exception classes from LLException rather than from std::runtime_error or std::logic_error. Use BOOST_THROW_EXCEPTION() rather than plain 'throw' to enrich the thrown exception with source file, line number and containing function.
2016-07-14MAINT-5011: Per NickyD, put PngError in anonymous namespace.Nat Goodspeed
2016-07-13MAINT-5011: Wrap thrown png_const_charp in new PngError classNat Goodspeed
derived from std::runtime_error.
2016-04-22x64: Do not use a union of LLColor4U. Especially having the two pointer in ↵Nicky
there will blow up the struct to at least 8 byte, which will break VBO packing as this class needs to be 4 byte in size. (transplanted from 847df86d6b5daa69dcfc428df18876a9c1e8bef6)
2015-11-10remove execute permission from many files that should not have itOz Linden
2015-08-04MAINT-5343 (Viewer sometimes crashes when updating a local tga texture when ↵ruslantproductengine
RLE or BMP compression is disabled - LLImageTGA::decodeTruecolorNonRle)
2015-05-05Hotfix for build on OSX with -Werror,-Wtautological-compareruslantproductengine
2015-04-28Merge viewer-release, become version 3.7.29Mnikolenko ProductEngine
2015-04-13merge changes for 3.7.27-releaseOz Linden
2015-04-10restore the ll[io]fstream because we need them as wrappers on Windows for ↵Oz Linden
wide char paths; on other platforms they are now just typedefs to the std classes
2015-04-07replace llifstream and llofstream with std::ifstream and std::ofstream ↵Oz Linden
respectively
2015-04-07convert llifstream and llofstream to std::ifstream and std::ofstream ↵Oz Linden
respectively
2015-02-24merge changes for 3.7.25-releaseOz Linden
2015-02-23MAINT-4329 FIXED LLImageRaw::scale() scales each image *twice* for no ↵ruslantproductengine
apparent reason Linux & OS X compile error fix