List of patches used in the Cool VL Viewer v1.25.0:
Here is the exhaustive list of patches applied to the original Snowglobe sources to build the Cool VL Viewer v1.25.0.40. The many additional code changes in the Cool VL Viewer v1.26 are listed in details in the announcement forums (since the changes are not provided any more as individual patches, it would be unpractical to list them here).
- Patches by me (released under GPL v2 or v3 license):
AllowCopyWornAttachments: re-enables the Copy feature for worn attachments in the inventory. Fixes the VWR-13316 bug. This patch is included inside the ItemLinksSupport patch to prevent mutual conflicts.
AllowDiscardForCreator: enables the "Discard" button in the notecards that you created and that are given to you with llGiveInventory(). Fixes the VWR-2290 bug.
AllowInvisibleTextureInPicker_v2: adds an "Invisible" button in the texture picker for easy building of invisible prims (those prims which hide avatar body parts).
AnimationOffsetAdjust: allows to adjust the Z offset of the avatar (actually its bounding box height) so that animations height can be corrected. This offset is a volatile setting (not preserved over sessions) and can be changed in real time from a new spinner in the "Movement controls" floater.
AwayTimeout: removes an obscure (well hidden in the Advanced menu) setting (AllowIdleAFK), replacing it with the possibility to set the AFKTimeout setting (Preferences floater, General tab, Away Timeout setting) to 0 so to disable completely the auto-AFK feature. Also allows to set the timeout to up to 999 seconds (instead of 600) and optimizes this part of the code (ran at every iteration inside the idling loop) for speed.
BetterBeacons_v2: this patch allows to add filtering of beacons based on objects owner (anyone's, others' or yours), to highlight attachments, to mark with beacons either all sound sources (like in the official viewer) or only object sound sources, and to let beacons always on.
BetterMiniMap: bugfixes and workaround (for avatars above 1020m of altitude, a special tracking dot is used instead of stupidely reporting them as being at 0m of altitude), improvements ("Rotate with avatar" toggle in the context menu) and togglable reversal to T-like tracking dots (former OldTrackingDotsInMinimap patch).
BetterPreferencesGraphics_v3: adds the "Max non-impostors" settings to the custom graphics preferences panel, the "Object-object occlusion" and "Stream VBO" settings to the hardware graphic settings floater, as well as an explanation as to why some settings are disabled in the latter.
CameraConstraints: When DisableCameraConstraints is set to TRUE, this patch further disables the camera constraints: 1.- on the minimum zoom distance to avatars (and in particular their attachments). 2.- on the maximum zoom out distance, allowing it to equal the draw distance in all circumstances (used to be further limited by the sim width, i.e. 256m while the draw distance can go up to 512m). When the new CameraIgnoreCollisions debug setting is set to TRUE, it also disables the automatic move of the camera out of objects whenever it collides with them.
ChattingObjectsLink_v4: this patch adds a link on the name of objects which emit text on local chat, much like what happens in the official viewer when they emit IMs to you. It is possible to disable this feature (default behaviour) or to turn it on for others' objects or any object (i.e. yours included), via the LinksForChattingObjects debug setting.
CleanerLogMessages: this patch fixes a bug to get rid of the unwanted "LLError::NoClassInfo::" prefixes in the log messages, and disables the DEBUG log level for shaders in the logcontrol.xml file (probably a left over from a Snowglobe RC candidate).
CommonDateAndTimeFormats_v3: allows to configure the time and date formats and to use them coherently everywhere in the viewer (fixes VWR-721 among others).
CPUhungrySearch_v2: prevents the search floater to keep eating up CPU power to 100% after the floater is closed (with the X close button: this also has the effect of forgetting the search result, but you still can toggle the floater visibility from the toolbar of with CTRL F without closing it). Work around for SNOW-416.
CrashEmptyingTrashFix: this patch fixes the crashes that sometimes occur because of a race condition when emptying the trash just after you deleted a folder from the inventory.
DecoupledMapAndSearchShowEvents: fixes a problem with "Show mature" and "Show adult" events settings not being decoupled between the events search tab and the world map (unlike "Show PG" which is already properly decoupled). This patch is included in the RevertToOldMap patch (see below).
DefaultSaveLoadDirectory: use the HOME directory by default for saving pictures or uploading pictures, animations and sounds, instead of the viewer installation directory.
DrawDistanceInCameraControls: Adds a draw distance spinner in the camera controls floater, for easy adjustements.
FetchInventoryOnLogin_v2: allows to fetch and cache the inventory in the background upon login (prevents "loading..." delays later on, when opening rarely used folders in your inventory).
FixedFastTimerView: cleans up the Fast Timers view, removing the useless and badly positioned minimize button and floater title, moving the close button in the right place and making it actually functional, and preventing the tree containing the list of the fast timer names to overflow the bottom edge of the floater.
FloaterGroupTitles_v4: Implements a Group Titles floater (invoked from the pie menu, by right-clicking on your avatar and selecting "Ttiles...") which allows to quickly and easily choose and set the title (and corresponding group) for your avatar.
FmodNoGccWarnings: allows to compile v1.25 (Snowglobe v1.5 based) with gcc v4.2 or later.
GtkFilePickerFilterLoadXML: fixes a bug with the GTK file picker when trying to load a XML file (the *.xml filter was not set).
getGeometryVolumeCrashFix: fixes a crash that may occur randomly in LLFace::getGeometryVolume() during rezzing.
getInventoryItemByAssetCrashFix: fixes an OpenSim specific crash that may occur when editing prim textures.
HideNotificationsInChat: allows to optionally prevent the notifications (those small messages appearing in a blue box on the lower right corner of the viewer window) to show and be logged in the main chat.
HideTeleportProgress: allows to optionally hide the teleport progress screen, by setting HideTeleportProgress to TRUE.
IllegalAttachmentPoints: allows to properly display attachments on avatars which user is running a hacked viewer providing illegal attachment points. The illegal points not being standardized, your mileage may vary depending on which viewer the others are using around you. This patch is designed to be compatible with the Emerald viewer since it is the other most widespread viewer in SL. This patch also allows to enable the said illegal attachment points in the Cool VL Viewer (by setting the AllowIllegalAttachPoints debug setting to TRUE and restarting the viewer): it is however only intended for debug and test purposes, please DO NOT use illegal attachment points on your avatar: this would make it appear weird to 99.9% of the residents around you (the official viewer doesn't support this), and can even make other users to crash (see the UnknownJointsCrashFix patch below), getting yourself considered as a griefer... You have been warned !
ImprovedBuildTools_v3: reduces increments for texture offsets to 0.05 in the build tools floater, allows 100% transparency, extends the slice parameters down to 0.02% (for max slice) and up to 0.98% (for min slice), and adds a check button to toggle the drag distance limiting on or off.
InventoryDoubleClickActions_v3: defines double-click actions in inventory for objects (wear as attachments or remove if already worn), and clothes/body parts (wear when not worn, or remove when worn). Implements the VWR-1752 and part of the VWR-1825 features.
InventoryFetchDescendentsLogSpam: prevents log spam while fetching the inventory.
BetterLandmarkFloater: restores the "Discard" button in the new landmarks floater (fixes the VWR-3616 regression) and makes the floater remember its position on screen (instead of always opening at the same, non-configurable position). The patch also gets rid of some dead code, saving quite a few kilobytes of useless code in the final executable.
LargePrims_v2: allows to build large prims (up to 256m large) in OpenSim.
LayersetWithoutCompositeLogSpam: prevents lag-generating log spam when encountering layer sets without composite.
LLImageGLNoLogSpam: prevents log spam (which could occur once per frame and gets throttled to once per second) while watching some videos with unrecognized alpha channel.
LLHandMotionOnUpdateCrashFix: fixes a crash bug that may occur just when uploading animations with unknown hand motions.
MaxNetworkBandwidth: unleashes the maximum network bandwidth, preventing the repetitive throttling by the viewer (which slows down rezing compared to what it can be on high speed connections). Note: setting the max bandwidth to 4Mbps or so should be more than enough as I never saw more than 2.5 Mbps used by the viewer (the bandwidth is also limited server side anyway as it depends on the number of residents in the sim and on the network link speed for this sim).
MinimizedFloatersConfigurableStacking: allows to stack minimized floaters either bottom to top or top to bottom, and left to right or right to left, and to limit the portion of the screen width used for stacking to a fraction of the total width.
MinorLogMessagesCleanup: fixes a couple of log messages.
MoonBrightness: corrects the brightness of the moon, allowing to actually see it, especially when it's close to the horizon.
MoreMutingChoicesInObjectInfo: allows to mute by object UUID and by object name (in excess of the already existing object owner muting) from the Object IM Info floater.
MouseLookFocusSwitchQuirk: Fixes quirks with the SL viewer window focus switching not properly restoring mouse-look and resetting the camera zoom level (fixes VWR-14666 among others).
MUposeStyleAndOOCautoClose_v2: allows to use the MUCK/MUSH/MUX/MUD pose style (VWR-3093) and allows to auto-close double-parenthesis (Out Of Character) chat/IM poses. This patch includes the TextHistoryOnSendIMbutton patch (see below) to prevent mutual conflicts.
NewNotecardSaveButton_v2: adds a "Save" button to new/received notecards. This patch is now included inside the BetterNotecardFloater patch.
NewScriptFunctions_v7: adds support for compiling and highlighting the new script functions of viewer 2 (note that the new media script functions yet do not have any effect in viewer 1.25 or older) and of SL servers v1.38, v1.40 and Le Tigre Beta (these 100% server-side functions also work with v1.25 and older viewers). Also implements display names related functions, and implements the viewer side code for the AGENT_AUTOPILOT flag. NewScriptFunctions v4 also implements the full viewer v2 lscript library.
NoDuplicateLandmarkAssetRequest: sometimes, when opening a landmark folder, the viewer may attempt to send a burst of numerous (dozens) duplicate asset requests that are then rejected with as many warnings in the log as there are duplicates, causing an useless lag spike. This patch prevents the duplicate requests to happen at all.
NoMultipleLocaleWarnings: prevents messages such as "WARNING: LLLocale: Failed to set locale en_US.utf8" to appear hundreds of times in the log file (any locale loading failure now appears once only in the log).
NotifyOutWorldTransactions_v2: this patch allows to notify you about out-world transactions leading to a change in your L$ balance in the same way as you are notified when you pay or get paid in-world.
NoVoiceWarningSpam: prevents tons of messages about voice capability not being supported to appear in the log file when logged on an OpenSim grid.
NoFpsStatsWhenNotFocused: there are two minor bugs regarding FPS stats logged into SecondLife.log: first, it got a duplicated debug settings for the stats repetition delay (10s and 60s. This patch keeps the 60s setting), and second, it keeps logging stats while the viewer window is not focused (which is stupid since the viewer voluntarily lowers its FPS rate while unfocused): this patch fixes these minor issues..
NumberOfDecimalsInTools_v2: this patch allows to adjust the number of decimals for the position, size and rotation parameters of the "Object" tab in the build tools floater. The number of decimals can be adjusted from 0 to 5 via the DecimalsForTools debug setting (defaults to 3).
PreDecodedUIsounds_v2: better pre-fetches of UI sounds on login to reduce the delay when an UI sound is played for the first time in a session or, if you got the corresponding *.dsf files in a skins/default/sounds/ directory of the installed viewer, uses those instead. v2 also adds a "Decode all UI sounds" option in "Advanced" -> "UI" so to play and force the decoding of all UI sounds that have not yet been decoded.
PrivateLookAt: adds a PrivateLookAt setting to prevent your avatar to focus its eyes and point its arm to objects or avatars beyond 20m of distance (since this is usually unwanted or simply random (hovering mouse cursor in the background). This also to defeats the spying tools developed in some viewers (they can display where everyone is looking at).
ProperObjectsMute: fixes the broken objects muting code (especially for muting attachments), replaces and contains my MuteBlueDialogs patch (mutes the blue dialogs coming from items or pertaining to avatars you muted) and adds actual muting for objects IMs.
ReinstateOldSearchTabs_v3: reinstates the "All (Old)" search tab as well as the old style (non-web) Groups search tab (why the Hell LL keeps making things harder and slower with searches ?). the v2 of this patch also automatically removes the "All (web)" and "Showcase" tabs when you connect on another grid than SecondLife's, since these search tabs are relevant to SL only.
RendererCachedControls_v2: replaces costly gSavedSettings.get*() calls with faster cached controls static variables in the renderer path to speed up the code a tiny bit (around 1% gain). Also fixes issues, when RunMultipleThreads was off, that could cause useless 5ms sleep time per second (the RunMultipleThreads mode is also now the default, since it provides the smoothest experience on most systems). This patch needs for the FixedLLSD patch to be present as well.
ReportMetrics: Since the reportMetric feature was obviously never fully implemented, this patch at least gives a meaningful log info line whenever LLAssetStoreage::reportMetric() is called, providing the message it attempted to pass to the inexistant (never initialized) "metrics_recipient".
RevertToOldMap_v3: Reverts the worldmap of Snowglobe to the one of viewer v1.23.5 so to restore full OpenSim compatibility while still allowing to use level 1 (one sim per texture) web-based map tiles in SL and future compatible OpenSim grids. This patch also includes the DecoupledMapAndSearchShowEvents patch (see above).
RevertUIchanges_v16: this (large) patch reinstates the "old" (pre-voice) UI and adds some more features:
The chat input line, Gestures combo and Say/Shout buttons are removed from the chat history floater (this feature can be disabled by setting "UseOldChatHistory" to FALSE and restarting the viewer).
The friends list and the groups list are back as separate floaters that can both be shown simultaneously. As a bonus the Groups list floater also remembers its size and position (just like the friends list always did). The friends list also shows whether your friends allow you or not to see their online status or to search for them on the map.
The toolbar is back to its old self (no distracting and cryptic icons and "fly buttons"), with the "Friends" button back into business, as well as (for those among you "old" enough to remember), the "Groups" button (if you don't like it, it can be hidden by setting "ShowGroupsButton" to FALSE and restarting the viewer).
The overlay bar (chat input line, buttons and volume/media remote controls) is back to its old self, with a few bonuses: the volume remote buttons stack nicely and "smartly" to the right above the chatbar (or toolbar if the chatbar is hidden), depending on which is actually needed (media, music and voice remotes are hidden by default and shown only when needed). The master volume button was also made smaller (slider removed: only the tiny button allowing to open the volume sliders panel is shown) and smarter (it is only shown whenever one of the music, media or voice are enabled/playing, but it can be shown permanently like it used to do in v1.18.6 by setting "HideMasterRemote" to FALSE).
Includes the StatusBarIcons patch (but allows to switch back to the new status bar icons, by setting "UseOldStatusbarIcons" to FALSE).
Allows the proper fonctionning of the packets loss and bandwidth tooltips.
Reverts to the default chat colors and behaviours of pre-v1.21 viewers.
Removes the extra spacing between message lines in the chat console (unless "DisableMessagesSpacing" is set to FALSE).
The order of the options in the "attachment" and "self" pie menus is reverted to what it always has been.
The monospacing font is reverted to profontwindows, since DejaVuMono is way too large and does not scale down properly.
The IM tabs may be configured to stack vertically.
NOTE: this patch comes along with one more zip file (slviewer-0-v12320-RevertMonoSpaceFont-artwork-patch.zip) which is to be uncompressed after the main artwork zip file: if you are using the cmake-SL utility, this is done automatically.
SaveTextureAsFileExtension: fixes a problem with textures being saved without the proper .tga filename extension.
SearchDescAndCreator: based on an idea (badly) implemented in the Emerald viewer and rewritten from scratch, this patch allows to search the inventory for matching words in item names (default and normal behaviour) and/or item description and/or item creator.
SecondLifeDetection: detects whether the viewer is connected in Second Life or not. Needed by some other patches.
ShowTextureUUIDwhenPermitted: allows to show the texture UUIDs via the "Advanced/Client -> Rendering -> selected texture Info" feature for the objects you own and you created (for Second Life grids) or that are full perms (for other grids). Needs the SecondLifeDetection patch (see above).
SimulatorVersionNotification_v2: improves the notification message about simulator version changes and allows to disable them entirely with the "NotifyServerVersion" debug setting.
SoundPreviewCrashFix: fixes a crash bug occurring when trying to preview a sound item in the reloading contents of a prim.
SpeedRez_v2: "speeds up" rezzing (actually rez closer objects first) on login and teleports, by temporarily reducing the draw distance to 32m and stepping it back up to its original value at a regular interval of time after login/TP. This feature is enbaled when the SpeedRez variable is set to TRUE, and the interval may be adjusted via the SpeedRezInterval variable (defaults to 20s).
SpoofMouseLook: Adds an "Advanced" -> "Character" -> "Spoof Mouse-Look Mode" (non-persistent) setting to allow spoofing the mouse-look mode when clueless (not to say "stupid") scripts want you to stay in this mode to keep working while you have other programs windows to deal with on your screen (and can't therefore allow the viewer to keep grabbing the mouse forever, forcing you to cancel mouse-look)...
StatusBarIcons: this patch is now included in the RevertUIchanges patch: it reverts a number of status bar icons (no-push, no-fly, no-build, no-script, voice...) to the old, much more readable and discernible ones (does LL have any clue about what accessibility means, even for non-disabled persons ?... Obviously not !). This patch comes along with a zip file (slviewer-0-v11900-statusbar-artwork-patch.zip) which is to be uncompressed after the main artwork zip file: if you are using the cmake-SL utility, this is done automatically.
StutteringLagAndBugsInAudioEngine_v3: prevents audio buffer reallocation log messages to be written several times per second to the hard disk (messages are throttled to 1 per second when this happens), and fixes a bug inducing terrible viewer lag and sound "stuttering" when too many software channels get allocated (only seen in areas with an insane number of sound sources), and with some other fixes.
UnknownJointsCrashFix_v2: fixes some crashes that can occur when encountering avatars wearing objects on illegal attachment points.
VS2005: this patch is to be applied for Windows builds with VS2005 only. It changes a few things in the code and adds a "winbuild.bat" file which helps some building the viewer.
UnmappedVertexBuffersLogSpam_v2: when unmapped vertex buffers exist and the viewer frees them, it also issues a warning in the log. The problem is that sometimes hundreds of such warnings can be issued in a second, loading unnecessarily the disk I/O routines. This patch prevents such spam to happen.
ViewerInventoryItemUpdateServerCrash: fixes a crash bug that was recently exposed, apparently due to the new SL asset or sim server versions and that could occur when copying an item in the inventory and immediately renaming it.
WebFetchInventoryDescendentsNoLogSpam: prevents log warning messages during inventory fetches to be written dozen of times to the hard disk (only one message is now emitted in a given sim, since this is just a harmless warning about a missing optional capability of the sim server).
WindAudioToggle: automatically toggles the wind sound effect generator on and off, as appropriate and depending on the sound settings (off when either the master volume or the ambient sound volume are muted, or when their product is so small that wind won't be heard anyway), and on demand, via a new advanced setting (Advanced/World/Disable Wind Audio). It has been said that the wind audio generation routine was eating up processing power and could impact your FPS rate... Well, now you can check if it does for you (no noticeable difference for me, so it might as well be a placebo effect...).
CoolPreferences_v30: this patch adds a "Cool features" tab to the Preferences panel and allows to switch on and off the various features of the Cool VL Viewer without having to use the geeky "Debug settings" (hey !... but I'm a geek !). If you build your own viewer, please note that it only makes sense to apply this patch "as is" if all the patches of the Cool VL Viewer have been applied.
CoolVLViewerBranding: this patch takes care of proper branding of the viewer. It comes along with one zip file (slviewer-0-v*-Branding-artwork-patch.zip) which is to be uncompressed after the main artwork zip file: if you are using the cmake-SL utility, this is done automatically..
Collaborative work (patches that I either helped to improve or that I ammended significantly):
AreaSearch_v4: allows to search for objects around you, based on their name and/or description and/or owner and/or creator. This patch is based on "jcool410" 's area search feature implemented in Emerald, but was largely modified by me to fix bugs, alleviate the load on the servers when a search is performed, reduce the viewer-side lag when the list of objects is updated and reduce the amount of memory this feature uses and avoiding as well the large memory leak it got... Oh, I also prettified the floater, cleaned it up and added some useful info to it.
AvatarNameInWindowTitle_v2: based on a patch by Lance Corrimal (improved and extended to Windows and MacOS-X builds by me), this patch shows the name of the avatar you connected with in the viewer window title (and in the corresponding button of the desktop task bar).
AvatarSizeInAppearance_v2: based on a feature from the Meerkat viewer, suppresses the less precise (off by one inch) size indicator from the shape tab, and replaces it with a size indicator in the floater itself, thus visible as well when the shoes tab is selected (shoes height do affect the avatar size). In v2, I also added the shoes height (also substracting it from the avatar height so to get the actual avatar height, not counting shoes) and the foot to pelvis height (useful to find the numbers to pass to @adjustheight).
BetterFloaterAvatarProfile_v2: this patch allows to view the SL and RL pictures at full size, shows the key of avatars in the "My Notes" tab of the Profile panel (features from Phoenix with changes and improvements by me), prevents the "Kick"/"(Un)Freeze"/"CSR" buttons (shown when "View Admin Options" is on) to interfere with other fields in some profile tabs (they are now only shown in the 2nd Life tab) and makes the floater remember its position instead of always showing in the center of the screen (the last two features by me).
BetterDebugSettings_v2: makes the debug settings available from the login screen (code by Siana Gearz), saves the floater position and allows up to 1024 characters (instead of 255) per string variable (by me). v2 also adds a variable names filter, inspired from McCabe Maxsted's search feature (as implemented in Imprudence).
BetterFloaterInspect_v2 (by Hazim Gazov): based on code from Hazim Gazov, with bug fixes and improvements by me, this patch implements a better Inspect floater, with last owner, scripts number and inventory items numbers reports per primitive.
BetterNotecardFloater_v4: this patch includes some of my former patches for the notecard floater, as well as the search/replace feature adapated from Kitty Barnett's own patch for Emerald. I also added a fix for the preview script floater (missing action on the "Deselect" entry of the Edit menu).
ForceSitOnGround_v2: based on a feature seen in the Emerald viewer, but reimplemented from scratch by me, this patch allows to sit down anywhere "on the ground" (and not just on actual land ground). Adds a new "Sit On Ground" entry in the "World" menu, bound to a new CTRL ALT SHIFT S shortcut.
HighlightPostsWithOwnName_v5: based on code from Elektra of the Imprudence viewer team but rewritten from scratch, this patch highlights text chat posts and/or group chat IMs containing either your first or last name, or configurable nicknames (i.e. any word part of a list you can configure). I added the last name match, the display name match (can be toggled off), the arbitrary number of nicknames, changed the code to use much faster string comparisons, and implemented the nicknames as per-account settings.
HTMLlinksInGroupNotices_v2: based on a patch by Kadah Coba which makes the HTML links clickable in group notices and expanded by me to show clickable links as well in the group notices history.
LinuxShortcuts: based on a patch by Khyota Wulluf, this improved patch changes some shortcuts which collide with Linux console switching keys (CTRL ALT Fn shortcuts are turned into CTRL SHIFT Fn). See VWR-2085.
OblongSculptiesDetails: based on a patch by Nicholaz Beresford, this patch increases the level of details (LOD) for oblong sculpties (sculpties using a sculpt texture with different width and height) when necessary.
MediaFilter_v5: based on code by Sione Lomu with a couple of bugfixes by Tonya Souther, this improved patch brings media and streaming audio URLs filtering (to prevent IP ripping by so-called security systems which violate the SL TOS by catching your IP and associating your various avatars with it, thus violating your anonimity). Beside empowering your viewer with allow/deny/blacklist/whitelist functions per domain, this improved patch makes the difference between external servers (domains names filtering) and in-world servers (scripted objects with built-in HTTP servers), and resolves domains IPs to list them and match them against listed IPs. I also fixed various bugs, security holes and shortcomings, refactored the code and improved it, and added a whitelist/blacklist erasing function.
MoreGridsDynamic_v8: with code from JB Kraft, Robin Cornelius and Imprudence and with bugfixes and improvements by me. This patch implements dynamic grids list loading (from grids.xml) to allow choosing between SecondLife and OpenSim grids from the login screen (VWR-7531).
ObjectBackup_v8: this patch implements an export/import feature for full perm objects you own and created (only the primitives and textures are exported and imported). It allows to backup and restore objects, as well as to transfer them from one grid to another. The code is borrowed from the Meerkat viewer, with bugs fixed, improvements (proper floater, export and import prim names and descriptions, proper error reporting), up-port to SG by me. Needs the SecondLifeDetection patch (see above).
PreviewAnimInWorld_v2: based on code from the Emerald viewer, this patch allows to preview the animations on your own avatar (instead of on a dummy) prior to uploading them. Unlike in Emerald, this feature does not screw up your avatar (letting it stuck in the previewed animation) and can be switched on or off with the PreviewAnimInWorld variable (defaults to FALSE, i.e. off).
PlayTypingSoundToggle based on a feature of the Emerald viewer: adds a PlayTypingSound toggle setting to disable it when avatars (yours and others') type in chat.
Radar_v9: based on a patch by Dale Glass and the Emerald team ("avatar list" feature), this heavily modified patch implements a low lag radar floater and display names support.
RenderVertexBufferTweaks: based on code from Singularity viewer which includes a backport of the v2 viewer RenderUseStreamVBO setting (useful to speed up rendering on ATI cards) by Shyotl Kuhr and a performance tweak (activated by setting the RenderBlankAllocatedVBO to FALSE) by Siana Gearz, for both of which I modified the debug settings update code to make it (very slightly) faster. The graphic preferences code for the RenderUseStreamVBO setting is entirely by me and part of the BetterPreferencesGraphics patch.
RestrainedLove_v207e: based on a patch by Marine Kelley, this improved patch implements the RestrainedLove features. Set the "RestrainedLove" flag to TRUE, and restart the viewer to turn it into a RestrainedLove viewer. See the RestrainedLove Readme and the RestrainedLove API for more details.
RezWithLandGroupWhenPossible_v3 based on code from Emerald, allows (when the RezWithLandGroup setting is set to TRUE) to rez object with land group when possible (i.e. if your avatar belongs to that group). I optimized the code and added support for SHIFT-dragging copies of edited objects. Also in the v3 of this patch, the possibility to build on no-build parcels provided you got the build power in the parcel group (code borrowed from Imprudence and optimized by me).
ShiftEscResetsCameraView_v3: allows to reset the camera view with SHIFT ESC and does not close the chat input line when doing so. v3 (by me) goes further by avoiding accidental cross-talk (SHIFT ESC taken as ESC) with some UI elements and floaters, and by allowing to exit mouse-look mode only via SHIFT ESC (again avoiding cross-talk with the chat input line closing via ESC).
TeleportHistory_v5: based on a patch by Zi Ree, this patch adds a teleport history floater (VWR-7913). I debugged the code, added the Parcel column to the list, made the timestamp format coherent with the configured preferences (see the CommonDateAndTimeFormats patch above), and improved the floater. v5 also adds the history list saving over sessions (code borrowed from Phoenix with bugfix by me), allows to log the departure location and to optionally disable the "Completed teleport from ..." messages in the chat log (code by me).
TemporaryTextureUpload_v3: allows to upload temporary textures and snapshots for free on grids charging for permanent ones (the resulting temporary asset is detroyed on log off). This patch is based on original code from Emerald (unknown author) and that I refined further (bug fix, "[temp] " name prefix and "Temporary asset" description for temporary items in inventory, hiding of the "Temporary (free)" checkbox for texture and snapshot uploads when done on grids for which they are already free, and automatical opening of the uploaded texture).
VisitedLandmarks_v2: based on a patch by Zi Ree, this patch fixes a long standing bug (dating back from 2007) with landmarks icon failing to turn red after the first use of the LM and with the position beacon failing to appear on arrival (VWR-7896). I made it so the icon is also changed in real time in the inventory.
"Trivial" backports (these patches were created by me but only contain differences between older and newer versions of the viewer (no code added/changed by me beside "trivial" adaptations to the older code), i.e. the actual authors of the fixes are Lindens or orther JIRA contributors):
AllowEventHostingGroupPower: backport from v2.3, allowing to set the "Event Hosting on group-owned parcels" power for group members.
AutoMaxGroups_v3: backport from v2.3 of automatic maximum groups limit setting, with added code by me to further raise the limit to 100 groups for OpenSim grids.
AlphaAndTattooSupport_v10: backport from v2.0 of the new Alpha and Tattoo wearables support (with not so trivial adaptations by me). NOTE: this patch comes along with one zip file (slviewer-0-v*-AlphaAndTattooSupport-patch.zip) which is to be uncompressed after the main artwork zip file: if you are using the cmake-SL utility, this is done automatically.
BlurryAndGreyTextures_v13: backport from v2 of various fixes to the blurry and grey textures problem as well to the HTTP textures fetch worker and texture cache issues encountered in Snowglobe v1, together with additional fixes by me (among which the blurry attachments textures fix), an anti-hiccup algorithm for texture cache purging (largely inspired from Nicholaz Beresford's old TextureCacheHiccup patch), and one fix by Max Fox and another by Siana Gearz. Now also implements three Advanced settings/action in Advanced -> Rendering ("Boost Attachments Textures", enabled by default, and "Full Res Textures", disabled by default, and the "Reload selected textures" action to force-reload the textures of any selected object), and the former "HTTP Get Texture" advanced setting was moved to the Network tab of the Preferences floater, together with a new setting allowing to change the maximum number of simultaneous HTTP requests during fetches. Oh, also I added a fix in v11 that at last allows to properly rez animating textures (they stay blurry unless you zoom extra close to them, in Snowglobe and Snowtorm)
CorruptedChunkSizeInUploadedWavCrashFix: backport from v2 of a fix to an infinite loop bug that occurred when uploading a wav file with corrupted chunk size.
DeadObjectsFixes_v2: backport from v2 of some fixes (among which a couple of potential crash bugs) dealing with dead objects.
DeRuthing: backport from v2.3 of its de-Ruthing (avatar un-clouding) feature, with an additional bug fix by me.
DisplayNamesSupport_v7: backport from v2.3 of display names support for avatar labels, tooltips, chat, active speakers panels, IM panels, online notification, friends list, windows title and profile.
FixedLLSD: backport from v2 of fixes to quirks in LLSD implementation. Also implements workarounds for remaining compilation-time cast failures (to F32, by Siana Gearz, and to U32, by me) that affected cached controls: this patch is needed by newer patches that make use of LLCachedControl<F32> and LLCachedControl<U32>.
FloaterRegionDebugConsole_v3: backport from a v2 of the new region debug console (AKA "sim console") feature, with improvements by me (resizable floater with persistent position and size over sessions, keyboard-independant shortcut (CTRL SHIFT C) to open the floater, hint message on console opening, etc).
GPUtable_v2: adds the newest video cards to the gpu_table.txt file to avoid the "unsupported video card" dialog for cards that actually work just fine.
GroupCreationDuringGroupUpdateCrashFix: backport from v2 of a crash bug that could occur while creating a new group while the members list for another group was loading.
ImageGLPickMaskCrashFix_v2: backport from v2.0 of a fix for crashes sometimes occurring when touching or zooming with the camera on rezzing objects.
ItemLinksAndMultipleAttachmentsSupport_v6: backport from v2.0 of the inventory item links and multiple attachments support (with not so trivial adaptations by me). NOTE: this patch comes along with one zip file (slviewer-0-v*-ItemLinksSupport-patch.zip) which is to be uncompressed after the main artwork zip file: if you are using the cmake-SL utility, this is done automatically.
LLFontCrash_v3: backport from v2.0 of a fix for a crash bug when changing the hardware graphic options and UI size under Linux together with more work arounds from me. Note that since this is merely a work around and since it seems to result in quirks for the rare persons not experiencing this crash under Linux, you may disable it by commenting out the "export LL_OPENGL_RESTART_CRASH_BUG=x" line in the wrapper script ("snowglobe" script).
LLHttpClientFixes: backport from v2 of two fixes (bad header parsing and memory leak) to LLHttpClient.
LLViewerObjectCrashFixes: backport from v2 of two fixes for potential crash bugs in LLViewerObject.
MessageTemplateUpdates: backport from SnowStorm, updating the message templates (no real functional change, mostly cosmetic).
NewCertificates: updates the security certificates used for SSL connections.
NewPrebuiltLibraries_v3: plugs a security hole by using a newer Ogg/Vorbis prebuilt library.
NoObscuredURLs: backport from SnowStorm of the removal of the now useless (deprecated) "Hide URL" feature for parcel media and streaming audio URLs.
ParcelEncroachmentSupport: backport from v2 allowing to return objects encroaching your parcels, provided parcel encroachment returns are enabled in the sim server (use the Region Debug Console to find out if they are).
resetViewPotentialCrashFix: backport from v2 of a fix for a rare crash bug that could occur while resetting the camera view.
SLPluginAndMediaFixes_v5: backport from v2.0 of various fixes for SLPlugin, plus a fix by me for the media auto-play bug, and a workaround under Linux for CPU overloading by plugins.
UnavailableVBOcrashFix: backport from v2 of a fix to a crash bug that can occur when trying to reset to the default graphic settings on cards without VBO support.
Patches by Aleric Inglewood:
CallingCardInNotecardCrashFix: fixes a crash bug that occurred when opening a notecard containing a calling card.
ErrorMarkersLogMessages: fixes quirks in post-crash session log messages.
FeatureManagerQuirks: fixes a couple of quirks in the graphic card feature manager code.
SymbolsAndConstantsNoDuplicate: prevents some common constants and symbols to appear multiple times in the final, linked executable.
ViewerImageReadBackRawImageNull: work around for a crash with some, corrupted textures (SNOW-169).
Patches by Armin Weatherwax:
llstringCrashFix: fixes a potential crash bug in llstring.cpp.
VectorizeFixes: fixes a crash bug in the SSE2 vectorization path. Since this crash is now fixed, I also made it so that skin vectorization is now enabled by default.
Patches by Gigs Taggart:
Duckwalk: cosmetic patch for the "duck walk" of AO-less avatars (VWR-1603).
LostConnectionOnLogin: fixes spurious "crashes" (disconnections) on login (VWR-8783).
Patches by Nicholaz Beresford:
DebugSettingsShortcutCtrlAltS: adds a keyboard shortcut (CTRL ALT S) to pop up the Debug Settings panel.
LpecRpecSwapped: fixes the ATTACH_LPEC/ATTACH_RPEC wrong (swapped) constants in the LSL editor (SVC-580).
PossibleCrashDragAndDrop: fixes a potential crash (VWR-2003).
PossibleCrashGroupVoting: fixes a potential crash (VWR-2543).
Patches by Qarl Linden:
AlignTool_v2: adds an Align tool to the building tools floater. v2 also got a couple of contributed improvements borrowed from Imprudence/Phoenix/Singularity viewer teams (if anyone recognizes his/her code, please let me know so that I can name them here).
GrassAndTreeSelection: makes selecting grass and tree objects much easier.
Patches by Shyotl Kuhr:
ATIrenderStarsFixes: fixes cosmetic issues in stars rendering with ATI cards.
NotecardBadLengthPossibleCrashFix: fixes a potential crash that could happen when opening a malformed/corrupted notecard.
URLrequestPossibleCrashFix: fixes a potential crash that could happen when starting an URL request.
Patches by Siana Gearz:
lineSegmentIntersectFix: fixes a potential cause for a crash bug. This is actually a backport from Snowglobe v2 that Siana spotted.
llimageFixes: fixes a potential crash bug and improves performances in one particular case.
OfferTeleportToAnyone: allows to offer teleport from the profile floater to anyone (instead of only people in your friends list or whom avatar is around).
Patches by Thickbrick Sleaford:
DebugGLCrashFix: fixes crash in Advanced -> Rendering -> Debug GL.
PngImageIgnoreBackground: fixes the uploading issues with PNG images having a background color set.
Miscellaneous patches:
AudioZeroMasterVolumeStartupQuirk (by Jonathan Yap): fixes a quirk that may make the viewer to fail to set the volume on launch to its last saved setting.
BinaryAndBugs (by Kathrine Jasma): fixes a couple of bugs with the logical "and" being wrongly used in place of the binary "and".
ContextMenuTextEntry_v2 (Unknown author): this code, which was extracted from Imprudence viewer (itself having extracted it from Emerald), implements a clipboard actions context menu for line and text editors.
CrashOnWearableSaveDialog (by Zi-Ree): Fixes a rare crash bug sometimes occurring while editing a corrupted wearable item.
FriendshipAndCallingcardOffersIgnoreButton (by McCabe Maxsted): adds an "Ignore" button to friendship and calling cards proposal dialogs (VWR-4826).
HighFPSwithSlowLinkLag (by Zwagoth Klaar): helps preventing lag spikes on high performance computers with poor Internet uplink bandwidth. Fixes VWR-1488. Note that only half of the proposed patch on the JIRA is actually used here, since the other half introduces annoying delays each time your avatar starts walking/running.
LinuxProxyEnvVariables (by Lance Corrimal): Fixes an issue with proxy settings of the Snowglobe viewer colliding with the settings held in the system environment variables.
LLSelectMgrGetGridCrashFix (Tom Meta): fix for a crash bug in LLSelectMgr::getGrid().
llTextBox (Unknown author): this patch is based on code from the Phoenix viewer and implements full support for the llTextBox() LSL function.
LocalRulerAlignment (by Jacek Antonelli): Fixes a problem with the edit tools in "Local" ruler mode (VWR-1852).
MiddleMouseButtonCopyPaste_v2 (by Armin Weatherwax and Tofu Linden): implements the middle-button mouse paste feature under Linux. With a bugfix by me and another from McCabe Maxsted. Implements VWR-8436.
RevokePermissionsOnStandUp (unknown author, comes from Emerald): allows to revoke on standing up the permissions granted when your avatar sat on an object.
SendParcelSelectObjectsWrongReturnType (by Carjay McGinnis): fixes a wrong type which triggers warnings in the log file (VWR-9620).
ShiftReturnWhisper (unknown author): implements whispers for avatars via SHIFT+ENTER in the chatbar. Now included in the RevertUIchanges patch to prevent mutual conflicts.
StuckGroupProposalArchives (by Dale Glass): fixes a problem with group proposal archives viewing (VWR-12532).
TextEditorPossibleCrash (unkown author. Borrowed from Imprudence code): fixes potential crashes in the text editor widget.
TextHistoryOnSendIMbutton (by Aimee Trescothick): Fixes a bug which prevents the IMs from being stored into the line editor history when using the Send IM button instead of ENTER (VWR-14267). This patch is integrated with the MUposeStyleAndOOCautoClose_v3 patch (see above) to prevent mutual conflicts.