Changed the array's from C array's to std::array's... old habits die hard.
Also clarified a set of comments.
Fixed up white spaces being added. Visual studio 2022 is inserting them and not sure why.
Added table to show horizonal size X vertical size counts
Added table to show discard level vs size counts
Added -1 as a valid discard level (this was causing possible crashes by not handling)
Added extra # of discard levels to handle larger texture sizes (2048 can scale down to 7, 4096 to 8 and invalid sizes can go +1 more)
Fixed out of bounds and possible buffer overflow issue due to getCurrentDiscard having -1 to > MAX_DISCARD_LEVEL + 1 be outputs.
Follow up from FIRE-33157. Some mesh bodies and avatars have joint offsets that appear in items rigged to those models, however, those offsets should not be imported. This feature adds a setting that enables/disables (off by default) the loading of joint offsets.
Added fix for not reading enough LLImageJ2K data from the cache to save to file.
Issue is caused by hard coded data size of 999,999 used for the amount of data to read from the cache.
Used the LLImageJ2C::calcDataSizeJ2C to properly calculate the amount of data to read from the cache.
Reverted added code for the LLFace::switchTexture to update the texture being passed in to use the existing texture boost and max virtual size as the mTexture[ch] may be NULL or invalid due to being deleted.
Reverted change to the LLViewerTextureList's updateImageFetchTextures which was intended to skip processing UI textures to downscale as they don't need to be changed, but the problem is if a new local texture is created it does not get processed.
There were five files which had float values assigned which were missing the "f" on them so they are in fact a doubles.
These get treated as errors when you change the floating point compile options from Fast to Precise or Strict as the fast path turns them from doubles to floats and suppresses the warnings.
Added new boost levels for Tree, Grass and Light textures (More for tracking as they have custom hard coded values for the mPixelArea which causes issues with loading of sizes.
Added adjustments for the calcPixelArea and calcImportanceToCamera as well as getTextureVirtualSize
Added virtual texture size updates for Media textures
Added code to scale down off screen textures (saves a lot of texture VRAM.
Added additional features for the LLViewerTextureList::Dump
Only issue is server controlled textures which animate tend to load low quality, then upscale as well as Sculpted Volume's which force textures to reload.
This merges in the V1.0 poser + changes since the last beta
* a UI refactor (from angeldark raymaker)
* unified undo/redo history (angeldark raymaker)
* toggle to allow enable/disable of visual manipulator (beq)
* undo/redo keyboard accelerator support (ctrl-z/ctrl-y)
* improved focus loss/gain handing
TODO: when another tool is used (edit tools) the floater still thinks visuals are active, toggling it fixes this but it can be handled better