summaryrefslogtreecommitdiff
path: root/indra/llimage
AgeCommit message (Collapse)Author
2021-03-08Revert "Merge branch 'master' of https://bitbucket.org/lindenlab/viewer into ↵Brad Payne (Vir Linden)
DRTVWR-519" This reverts commit e61f485a04dc8c8ac6bcf6a24848359092884d14, reversing changes made to 00c47d079f7e958e473ed4083a7f7691fa02dcd5.
2021-02-03Merge with Master after Viewer releaseCallum Prentice
2020-09-17The folder where the disk cache lives was originally renamed from llvfs to ↵Callum Prentice
llcache but @henri's suggestion that that doesn't reflect the other files in the same place and it should be llfilesystem is a good one so I changed it over
2020-09-16First part of change to remove LLVFS from the Viewer. Consists of code ↵Callum Prentice
changes to remove LLVFS and LLVFSThread classes along with the associated source files. The existing llvfs folder is renamed to llcache. Also includes changes to CMake script in many places to reflect changes. Eventually, llvfile source file and class will be renamed but that is not in this change.
2020-07-21Merge branch 'master' into DRTVWR-513-maintAndrey Lihatskiy
# Conflicts: # indra/llcommon/llerror.cpp # indra/newview/llappviewerwin32.cpp # indra/newview/llimprocessing.cpp # indra/newview/llviewerjoystick.cpp
2020-05-29SL-13348 Thread crashing singleton #2Andrey Kleshchev
Reverted LLImage to singleton conversion
2020-05-06DRTVWR-476: Merge branch 'master' of lindenlab/viewer into DRTVWR-476-boost-1.72Nat Goodspeed
2020-03-25[DRTVWR-476] - fix compiler errors 32 bit windows buildAnchor
2019-11-27Downstream merge from lindenlab/viewer-lynxAndreyL ProductEngine
2019-11-12Merged in lindenlab/viewer-releaseAndreyL ProductEngine
2019-10-23SL-11727 Fix build warningsandreykproductengine
2019-09-10Merged in lindenlab/viewer-releaseandreykproductengine
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-08-05SL-10908 One more safeguardandreykproductengine
2019-07-25DRTVWR-493 LLImage to LLParamSingletonandreykproductengine
2019-05-15SL-11138 Bitmaps format support bugandreykproductengine
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.