Replace 'Save Texture As...' in File menu with 'Save Preview As...',
since it's used for textures, sounds, animations, notecards and scripts,
which ever type you have open at the moment.
This fix addresses
http://code.google.com/p/singularity-viewer/issues/detail?id=12
Bug fix in LLPreviewAnim::gotAssetForSave_continued: the if()
that tests if the result from the filepicker can be used was
accidently negated, mostly causing a crash when cancelling an
animation preview download (open animation, File -> Save Texture As..),
and canceling the save when a filename is picked.
The lifetime of AIFileUpload is actually till the very end
of the main(), causing it's member mPicker to be reused.
This leads to problems. When someone tries to open a file picker
for a file upload of the same time before the previous filepicker
called the callback function (ie, when two filepickers are
opened at the same time, or when the plugin crashes).
With this fix it is possible to open any number of file pickers.
Finally, for linux, LLFastTimers was using assembly with gives
rather random results on multicore machines. Since AIStateMachine
is using this for wait timing, it had a negative effect on
how well the file picker worked (the last message wasn't flushed
for several seconds).
Call AIFilePicker::create() instead of new AIFilePicker.
Renamed deleteMe() to kill() and bs_deleted to bs_killed.
Only default to auto destruct when created with create(true),
otherwise kill() has to be called explicitely.
Also removed some code from the Mac/windows code in
indra/plugins/filepicker/llfilepicker.cpp that shouldn't
be in there anymore (send_agent_pause/resume and updating
the LLFrameTimer stuff).
Also upgrade the file picker filters with the new extensions found
in the orginal file picker code of Singularity.
Also improve AIFilePicker a bit: added hasFilename() and now
deleting the statemachine automatically by default: it's no longer
needed to call deleteMe from the callback.
This commit contains all changes, except those in indra/media_plugins
(which was renamed to indra/plugins) and indra/llplugin.
However, it does contain the (new) file
indra/plugins/filepicker/basic_plugin_filepicker.cpp
LL has since removed high-res snapshots using render targets. I find this change to be favorable, as rendertargets were very finicky to get working with anti-aliasing. Also, deferred rendering uses many rendertargets that depend on screen resolution. Changing resolution every screenshot is.. not very awesome.
There is some deviation from LL's viewer. I've kept the old tiled glow pass enabled for non-deferred, as it fixes issues with tile edges truncating glow propogation. However, this does no work with deferred yet. I need to pin down why. I assume using binding one of the RenderTargets is required for deferred.
Additionally, the usage of a RenderTarget for snapshots is what prevented me from fully enabling my supersampling settings. Now that that hurdle is gone, I consider including this new setting by default to be safe enough.
And a note: Do not remove the 'tiling' variable when merging with v2 changes, as singu's glow pass is 'special'. There are other fixes absent from LL's viewer that require knowing if the render is tiled or not. (water reflections/cloud freezing)
Need to test:
localassetbrowser
preview related floaters
hgfloatertexteditor
maps
media textures! Currently very hacky
web browser
alpha masks on avatars
bumpmaps
Are all sky components appearing?
LLViewerDynamicTexture (texture baking, browser, animated textures, anim previews, etc)
Snapshot related features
Customize avatar
vfs floater
UI textures in general
Texture priority issues