Commit Graph

197 Commits (b3a549b8b5e01809b2dd2006d6bf92a7a4d6baf7)

Author SHA1 Message Date
Ansariel debb86fb57 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/cmake/CMakeLists.txt
#	indra/cmake/Discord.cmake
#	indra/newview/llappviewer.cpp
#	indra/newview/llfloaterpreference.cpp
#	indra/newview/llspeakers.cpp
#	indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
2025-08-01 00:03:48 +02:00
Erik Kundiman afcc64cb07
Rich Presence support using Discord Social SDK (#4457)
* Rich Presence support using Discord Social SDK

Download DiscordSocialSdk-1.4.9649.zip from
https://discord.com/developers/applications/1394782217405862001/social-sdk/downloads
Add -DUSE_DISCORD:BOOL=ON to your cmake line.
The Discord app needs to be set to be a public client in the OAuth2 tab.
All Discord-related code are contained within one file, llstartup.cpp,
and other classes access it through some opaque layer, static functions,
otherwise we'd get these "duplicate symbol" linking errors.

* Move Discord-related code to llappviewer.cpp

The doFrame is the one called over and over again, so running the
Discord callbacks from there shouldn't have one extra function
overhead, while running the Discord initialisation is only once so
it's much more okay to have the extra function overhead there.

* panel_preferences_privacy tabs

Add tab and checkboxes for discord social SDK integration options to panel_preferences_privacy.xml

* Shorten Discord-related local variable names

* Connect to Discord now through privacy tab

Now the access token is saved the way passwords are saved, but
without a username, so we can have some persistence without having
to implement an OAuth2 backend server cause we would have to store
those tokens there anyway still, and it's just simpler to not go
that way. Discord Social SDK doesn't have a helper for sending code
to a custom server anyway, that we would have to have some
asynchronous HTTP requestor ready.
Show location check button gets enabled only when Discord
integration is enabled, though it's not functioning yet.

* Location for Discord Rich Presence Activity State

I was going to use LLAgentUI::buildLocationString but there's no
location format that shows only region and coords without having
to have the parcel name empty, so I copied buildLocationString
implementation in the case of LOCATION_FORMAT_NO_MATURITY but when
the parcel name is empty.
I had to make updateDiscordActivity check agent's ID and the
existence of agent avatar pointer first before trying to set
Activity Details or State, cause I like the "Show location" button
be checkable not only after online when both the ID & pointer will
have existed. I think this way is simpler than programmatically
enabling the "Show location" button after the user is logged in.
I put a trigger to Activity update somewhere after the user is
logged in for now, not yet after a TP.
The elapsed time gets reset whenever Activity is updated for now,
but I'll try to make elapsed time extended instead.
No Party for now, because I couldn't find a way to make a Party
shown without showing its CurrentSize (I could still get away not
showing its MaxSize by setting it to 0), so the State (location)
is shown above the elapsed time, not on the right of it.
I'll try to figure out to get some representative numbers for its
CurrentSize & MaxSize next.
Also no privacy on hiding the username for now, until the UI is
ready.

* Update Rich Presence location on region change

I had to find a spot in source code where it doesn't cause a crash
(it did in LLAgent::setRegion), but I'm not removing the one in
llstartup.cpp because on login, the one in llviewermessage.cpp
gets only the placeholder coords (10, 10, 10).

* Show display name too on Discord Rich Presence

Avatar name cache can be used right away upon login now after I
moved the update call to the end of PRECACHE section in llstartup.

* Show Discord Rich Presence Activity Party

By setting CurrentSize to the number of people within chat radius,
and MaxSize to the number of people within near range.

* Call updateDiscordActivity too in Discord init

so when the user enables the integration after being logged in,
the init can show the name and location right away.

* Discord Rich Presence: Hide name & connect to llappviewer.cpp

Add option to show/hide avatar name in privacy panel & connect rich presense directly to llappviewer.cpp

* Discord time elapsed not reset on region change

Time elapses right after viewer launch even before login.
Plus parameter name change in header to make it the same as in
implementation.

* Cache bool setting retrievals in updateDiscordActivity

As suggested by Andrey Kleschev.
getBOOL and getF32 are expensive, so using `static LLCachedControl<>`
is the way to do it in llappviewer.cpp.

* Check Discord creds existence before getting token

as suggested by Andrey Kleshchev, anticipating external factors
such as user moving settings from another PC.

* Tracy visibility for looped Discord function calls

As suggested by Andrey Kleshchev. They likely can get pricey so
they need to be visible in the profiler.

* Discord-related error handling/logging

plus delay saving Discord credentials to only after the access
token is successfully updated on Discord, and try to disconnect
from Discord when the integration gets disabled regardless whether
there are credentials to delete or not and whether there's an
access token to revoke or not.

* Use getAvatars already called for Discord Party numbers

so we don't have to make any extra getAvatars calls just for this,
as it's pricy in crowds, and we'll just be piggybacking
`updateSpeakerList` and `updateNearbyList`.

* Assemble Discord Activity Details only once

by saving it to a static global string for reuse.

* Remove updateDiscordActivity call in startup loop

The State field (region & coords) is updated well enough without it
now.

* Rename handleDiscordSocial to toggleDiscordIntegration

* Update Discord Activity only when integration is enabled

No need to check setting for the status change callback one,
because getting there would need to be connected to Discord first,
which in turn needs the integration to be enabled first.

---------

Co-authored-by: Secret Foxtail <remmy@megapahit.net>
2025-07-31 08:54:39 -07:00
Ansariel 1cca913ba7 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/cmake/CMakeLists.txt
#	indra/llprimitive/lldaeloader.cpp
#	indra/llprimitive/llmodelloader.cpp
#	indra/llrender/llgl.h
#	indra/llrender/llrender.h
#	indra/llui/llurlentry.cpp
#	indra/llui/llurlentry.h
#	indra/newview/llviewerdisplay.cpp
#	indra/newview/llvoavatar.cpp
2024-09-13 18:54:12 +02:00
Rye Mutt b713f56d07
Replace glh_linear usage with GLM (#2554) 2024-09-12 11:22:10 -05:00
Ansariel 02680c6a8f Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/Boost.cmake
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/llaudio/llaudiodecodemgr.cpp
#	indra/llxml/llxmltree.cpp
#	indra/newview/llappviewer.cpp
#	indra/newview/llfloaterworldmap.cpp
#	indra/newview/llfloaterworldmap.h
#	indra/newview/llgesturemgr.cpp
#	indra/newview/llinventorygallerymenu.cpp
#	indra/newview/llpanelgroup.cpp
#	indra/newview/llpanelgroup.h
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/viewer_manifest.py
2024-07-30 12:32:41 +02:00
Rye Mutt 3e322df4fb Replace liburiparser with boost::url 2024-07-29 13:33:12 +03:00
Ansariel 9a2b83b294 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llcommon/llmemory.cpp
#	indra/llmessage/CMakeLists.txt
#	indra/llmessage/llfiltersd2xmlrpc.cpp
#	indra/newview/lldebugview.cpp
#	indra/newview/lldrawpoolbump.cpp
#	indra/newview/llheroprobemanager.cpp
#	indra/newview/llnetmap.cpp
#	indra/newview/llslurl.cpp
#	indra/newview/llsurface.cpp
#	indra/newview/lltextureview.cpp
#	indra/newview/llversioninfo.cpp
#	indra/newview/llviewertexture.cpp
#	indra/newview/llviewertexturelist.h
#	indra/newview/llviewerwindow.cpp
#	indra/newview/llvlcomposition.cpp
#	indra/newview/llvoiceclient.cpp
#	indra/newview/llworld.cpp
#	indra/newview/llxmlrpctransaction.cpp
#	indra/newview/skins/default/xui/da/floater_about.xml
#	indra/newview/skins/default/xui/de/floater_about.xml
#	indra/newview/skins/default/xui/de/menu_viewer.xml
#	indra/newview/skins/default/xui/en/floater_about.xml
#	indra/newview/skins/default/xui/es/floater_about.xml
#	indra/newview/skins/default/xui/es/menu_viewer.xml
#	indra/newview/skins/default/xui/fr/floater_about.xml
#	indra/newview/skins/default/xui/it/floater_about.xml
#	indra/newview/skins/default/xui/it/menu_viewer.xml
#	indra/newview/skins/default/xui/ja/menu_viewer.xml
#	indra/newview/skins/default/xui/pl/menu_viewer.xml
#	indra/newview/skins/default/xui/pt/floater_about.xml
#	indra/newview/skins/default/xui/pt/menu_viewer.xml
#	indra/newview/skins/default/xui/ru/floater_about.xml
#	indra/newview/skins/default/xui/ru/menu_viewer.xml
#	indra/newview/skins/default/xui/tr/floater_about.xml
#	indra/newview/skins/default/xui/tr/menu_viewer.xml
#	indra/newview/skins/default/xui/zh/floater_about.xml
#	indra/newview/skins/default/xui/zh/menu_viewer.xml
#	scripts/messages/message_template.msg.sha1
2024-07-02 18:08:57 +02:00
Alexander Gavriliuk 2ea5ac0c43 #1111 Remove xmlrpc-epi 2024-07-01 20:20:04 +02:00
Ansariel e33d2fad5f Merge branch 'master' of https://bitbucket.org/Ansariel/phoenix-firestorm-gltf-development
# Conflicts:
#	indra/newview/llimview.h
#	indra/newview/llpanelpeople.h
#	indra/newview/llpanelvoicedevicesettings.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/llvoavatar.h
#	indra/newview/llvoicechannel.cpp
#	indra/newview/llvoicechannel.h
#	indra/newview/llvoiceclient.cpp
#	indra/newview/llvoiceclient.h
#	indra/newview/llvoicevivox.cpp
#	indra/newview/llvoicevivox.h
2024-06-21 19:10:44 +02:00
Roxie Linden 5e60392c27 Merge branch 'develop' of github.com:secondlife/viewer into roxie/webrtc-voice 2024-06-13 14:59:28 -07:00
Ansariel da75fdd7be Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm
# Conflicts:
#	autobuild.xml
2024-06-12 11:37:17 +02:00
Roxie Linden ed34782283 Merge branch 'main' of github.com:secondlife/viewer into roxie/webrtc-voice 2024-06-11 18:43:34 -07:00
Brad Linden a1f49564d6 Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into brad/merge-maint-a-to-dev 2024-05-23 11:31:19 -07:00
Ansariel ea5ead6f4a Merge remote-tracking branch 'FS600/master'
# Conflicts:
#	doc/contributions.txt
#	indra/llimage/tests/llimageworker_test.cpp
#	indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
2024-05-23 18:15:07 +02:00
Ansariel 1b67dd855c Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-A
# Conflicts:
#	autobuild.xml
#	indra/cmake/CMakeLists.txt
#	indra/cmake/GoogleMock.cmake
#	indra/llaudio/llaudioengine_fmodstudio.cpp
#	indra/llaudio/llaudioengine_fmodstudio.h
#	indra/llaudio/lllistener_fmodstudio.cpp
#	indra/llaudio/lllistener_fmodstudio.h
#	indra/llaudio/llstreamingaudio_fmodstudio.cpp
#	indra/llaudio/llstreamingaudio_fmodstudio.h
#	indra/llcharacter/llmultigesture.cpp
#	indra/llcharacter/llmultigesture.h
#	indra/llimage/llimage.cpp
#	indra/llimage/llimagepng.cpp
#	indra/llimage/llimageworker.cpp
#	indra/llimage/tests/llimageworker_test.cpp
#	indra/llmessage/tests/llmockhttpclient.h
#	indra/llprimitive/llgltfmaterial.h
#	indra/llrender/llfontfreetype.cpp
#	indra/llui/llcombobox.cpp
#	indra/llui/llfolderview.cpp
#	indra/llui/llfolderviewmodel.h
#	indra/llui/lllineeditor.cpp
#	indra/llui/lllineeditor.h
#	indra/llui/lltextbase.cpp
#	indra/llui/lltextbase.h
#	indra/llui/lltexteditor.cpp
#	indra/llui/lltextvalidate.cpp
#	indra/llui/lltextvalidate.h
#	indra/llui/lluictrl.h
#	indra/llui/llview.cpp
#	indra/llwindow/llwindowmacosx.cpp
#	indra/newview/app_settings/settings.xml
#	indra/newview/llappearancemgr.cpp
#	indra/newview/llappearancemgr.h
#	indra/newview/llavatarpropertiesprocessor.cpp
#	indra/newview/llavatarpropertiesprocessor.h
#	indra/newview/llbreadcrumbview.cpp
#	indra/newview/llbreadcrumbview.h
#	indra/newview/llbreastmotion.cpp
#	indra/newview/llbreastmotion.h
#	indra/newview/llconversationmodel.h
#	indra/newview/lldensityctrl.cpp
#	indra/newview/lldensityctrl.h
#	indra/newview/llface.inl
#	indra/newview/llfloatereditsky.cpp
#	indra/newview/llfloatereditwater.cpp
#	indra/newview/llfloateremojipicker.h
#	indra/newview/llfloaterimsessiontab.cpp
#	indra/newview/llfloaterprofiletexture.cpp
#	indra/newview/llfloaterprofiletexture.h
#	indra/newview/llgesturemgr.cpp
#	indra/newview/llgesturemgr.h
#	indra/newview/llimpanel.cpp
#	indra/newview/llimpanel.h
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llinventorybridge.h
#	indra/newview/llinventoryclipboard.cpp
#	indra/newview/llinventoryclipboard.h
#	indra/newview/llinventoryfunctions.cpp
#	indra/newview/llinventoryfunctions.h
#	indra/newview/llinventorygallery.cpp
#	indra/newview/lllistbrowser.cpp
#	indra/newview/lllistbrowser.h
#	indra/newview/llpanelobjectinventory.cpp
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llpanelprofile.h
#	indra/newview/llpreviewgesture.cpp
#	indra/newview/llsavedsettingsglue.cpp
#	indra/newview/llsavedsettingsglue.h
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llurllineeditorctrl.cpp
#	indra/newview/llvectorperfoptions.cpp
#	indra/newview/llvectorperfoptions.h
#	indra/newview/llviewerparceloverlay.cpp
#	indra/newview/llviewertexlayer.cpp
#	indra/newview/llviewertexturelist.cpp
#	indra/newview/macmain.h
#	indra/test/test.cpp
2024-05-22 19:04:52 +02:00
Ansariel 3da533c5eb Merge remote-tracking branch 'LGPL/master'
# Conflicts:
#	autobuild.xml
2024-05-20 23:46:53 +02:00
Roxie Linden 3a212d9608 Merge branch 'spaces-merge' into roxie/webrtc-voice 2024-05-20 12:59:59 -07:00
Ansariel 0ecfbc3de9 Merge remote-tracking branch 'LGPL/master'
# Conflicts:
#	autobuild.xml
#	indra/cmake/CMakeLists.txt
#	indra/cmake/GoogleMock.cmake
#	indra/llappearance/llwearable.cpp
#	indra/llcharacter/llmultigesture.cpp
#	indra/llcharacter/llmultigesture.h
#	indra/llimage/llimage.cpp
#	indra/llimage/llimagepng.cpp
#	indra/llimage/llimageworker.cpp
#	indra/llmessage/tests/llmockhttpclient.h
#	indra/llrender/llfontfreetype.cpp
#	indra/llui/llcombobox.cpp
#	indra/llui/llfolderview.cpp
#	indra/llui/llfolderviewmodel.h
#	indra/llui/lllineeditor.cpp
#	indra/llui/lllineeditor.h
#	indra/llui/lltextbase.cpp
#	indra/llui/lltextbase.h
#	indra/llui/lltexteditor.cpp
#	indra/llui/lltextvalidate.cpp
#	indra/llui/lltextvalidate.h
#	indra/llui/lluictrl.h
#	indra/llui/llview.cpp
#	indra/llwindow/llwindowmacosx.cpp
#	indra/newview/app_settings/settings.xml
#	indra/newview/llappearancemgr.cpp
#	indra/newview/llappearancemgr.h
#	indra/newview/llavatarpropertiesprocessor.h
#	indra/newview/llbreadcrumbview.cpp
#	indra/newview/llbreadcrumbview.h
#	indra/newview/llbreastmotion.cpp
#	indra/newview/llbreastmotion.h
#	indra/newview/llconversationmodel.h
#	indra/newview/lldensityctrl.cpp
#	indra/newview/lldensityctrl.h
#	indra/newview/llface.inl
#	indra/newview/llfloatereditsky.cpp
#	indra/newview/llfloatereditwater.cpp
#	indra/newview/llfloateremojipicker.h
#	indra/newview/llfloaterimsessiontab.cpp
#	indra/newview/llfloaterprofiletexture.cpp
#	indra/newview/llfloaterprofiletexture.h
#	indra/newview/llgesturemgr.cpp
#	indra/newview/llgesturemgr.h
#	indra/newview/llgroupactions.cpp
#	indra/newview/llimpanel.cpp
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llinventorybridge.h
#	indra/newview/llinventoryclipboard.cpp
#	indra/newview/llinventoryclipboard.h
#	indra/newview/llinventoryfunctions.cpp
#	indra/newview/llinventoryfunctions.h
#	indra/newview/llinventorygallery.cpp
#	indra/newview/lllistbrowser.cpp
#	indra/newview/lllistbrowser.h
#	indra/newview/llpaneleditwearable.cpp
#	indra/newview/llpanelobjectinventory.cpp
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llpreviewgesture.cpp
#	indra/newview/llsavedsettingsglue.cpp
#	indra/newview/llsavedsettingsglue.h
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llurllineeditorctrl.cpp
#	indra/newview/llvectorperfoptions.cpp
#	indra/newview/llvectorperfoptions.h
#	indra/newview/llviewermenu.cpp
#	indra/newview/llviewerparceloverlay.cpp
#	indra/newview/llviewertexlayer.cpp
#	indra/newview/llviewertexturelist.cpp
#	indra/newview/macmain.h
2024-05-16 14:10:55 +02:00
Ansariel 343aeeeb36 Merge remote-tracking branch 'LGPL/master'
# Conflicts:
#	doc/contributions.txt
#	indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
2024-05-16 02:11:51 +02:00
Andrey Lihatskiy d9153532b8 Merge branch 'main' into marchcat/x-mf-merge
# Conflicts:
#	doc/contributions.txt
#	indra/newview/llfloaterimagepreview.cpp
2024-05-15 12:51:21 +03:00
Ansariel 508ab2df1c Merge branch 'master' of https://bitbucket.org/Ansariel/phoenix-firestorm-600
# Conflicts:
#	indra/llimage/llimage.cpp
#	indra/llimage/llimage.h
#	indra/llmath/llvolume.cpp
#	indra/llmath/llvolume.h
#	indra/llprimitive/llgltfmaterial.h
#	indra/llrender/llshadermgr.cpp
#	indra/newview/lldynamictexture.cpp
#	indra/newview/llenvironment.cpp
#	indra/newview/llfetchedgltfmaterial.cpp
#	indra/newview/llfloaterimagepreview.h
#	indra/newview/llfloaterregioninfo.cpp
#	indra/newview/llfloaterregioninfo.h
#	indra/newview/llmaniprotate.cpp
#	indra/newview/llmaniptranslate.cpp
#	indra/newview/llselectmgr.cpp
#	indra/newview/llselectmgr.h
#	indra/newview/llsurface.cpp
#	indra/newview/llsurface.h
#	indra/newview/llsurfacepatch.cpp
#	indra/newview/lltexturectrl.cpp
#	indra/newview/lltexturectrl.h
#	indra/newview/lltinygltfhelper.cpp
#	indra/newview/llviewerdisplay.cpp
#	indra/newview/llviewerregion.cpp
#	indra/newview/llviewerwindow.cpp
#	indra/newview/llviewerwindow.h
#	indra/newview/llvlcomposition.cpp
#	indra/newview/llvlcomposition.h
#	indra/newview/llvovolume.cpp
#	indra/newview/pipeline.cpp
2024-05-10 12:40:19 +02:00
RunitaiLinden c6d752b880 Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into gltf-dev-maint-a-merge 2024-05-06 16:48:58 -05:00
Ansariel f4250bcfaf Merge branch 'release/materials_featurette' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/CMakeLists.txt
#	indra/newview/llmanip.cpp
#	indra/newview/llmaniptranslate.cpp
#	indra/newview/llselectmgr.h
#	indra/newview/pipeline.h
2024-04-24 22:05:15 +02:00
Rye Mutt e361671018
Port from OpenEXR to TinyEXR for reduced installer and library size (#1287) 2024-04-19 14:39:28 -05:00
Ansariel 4a5b1c1bc5 Merge branch 'DRTVWR-600-maint-A' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/CMakeLists.txt
#	indra/cmake/JsonCpp.cmake
#	indra/cmake/LLAddBuildTest.cmake
#	indra/llcommon/lluuid.cpp
#	indra/llcorehttp/CMakeLists.txt
#	indra/llmessage/CMakeLists.txt
#	indra/newview/llappviewer.cpp
#	indra/newview/llappviewerwin32.cpp
#	indra/newview/llfloaterimnearbychathandler.cpp
#	indra/newview/llpaneleditwearable.cpp
#	indra/newview/llpanelprofilepicks.cpp
#	indra/newview/llpreviewscript.cpp
#	indra/newview/llpreviewscript.h
#	indra/newview/llscripteditor.h
#	indra/newview/llviewerassetupload.cpp
#	indra/newview/llviewerdisplay.cpp
#	indra/newview/llviewermessage.cpp
#	indra/newview/llvoavatar.cpp
#	indra/test/CMakeLists.txt
#	indra/test/test.cpp
2024-04-12 03:28:00 +02:00
Rye Mutt 17e1f3692c
Port from JsonCPP to Boost.Json for json parsing and serializing (#1054) 2024-04-06 02:03:58 +03:00
Rye Mutt 53d4fcd359 Remove dead googlemock dependency and related setup code 2024-03-28 19:41:47 +02:00
Ansariel 5e75273b49 Merge branch 'webrtc-voice' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/00-Common.cmake
#	indra/newview/app_settings/settings.xml
#	indra/newview/llagent.cpp
#	indra/newview/llgroupactions.cpp
#	indra/newview/llimview.cpp
#	indra/newview/llpanelpeople.h
#	indra/newview/llvoavatar.cpp
#	indra/newview/llvoavatar.h
#	indra/newview/llvoiceclient.cpp
#	indra/newview/llvoiceclient.h
#	indra/newview/llvoicevivox.cpp
#	indra/newview/llvoicevivox.h
#	indra/newview/viewer_manifest.py
#	scripts/messages/message_template.msg.sha1
2024-03-19 17:09:42 +01:00
Ansariel b1a271c3aa Merge branch 'DRTVWR-591-maint-X' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/cmake/ICU4C.cmake
#	indra/llui/lltextbase.h
#	indra/llui/llview.h
#	indra/newview/CMakeLists.txt
#	indra/newview/llfloateremojipicker.cpp
#	indra/newview/llfloaterprofiletexture.cpp
#	indra/newview/llfloaterprofiletexture.h
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llpanelprofile.h
#	indra/newview/skins/default/xui/en/panel_profile_firstlife.xml
#	indra/newview/skins/default/xui/en/panel_profile_secondlife.xml
2024-03-17 17:53:34 +01:00
Henri Beauchamp 2f452d06e6 Proposal #2 to restore how UI/dialogs used to render by prioritizing fallback fonts.
With the emojis support, a new font was added, which not only provides emojis
but also fancy colorful replacements for UTF-8 characters that used to be
supported by our fallback (monochrome) fonts: this causes discrepancies and
unwanted/undesired changes in scripted objects menus (e.g. an empty circle or
square may render as a black, full one, a heart may render red instead of white),
not to mention the larger font size used by the emoji characters...

This patch restores the aspect of such menus/dialogs/UI elements with UTF-8
characters that *are* supported by the usual fallback fonts (fonts which may
also vary from one viewer to another, and from one OS to another), so that
everything keeps working/rendering as it always did so far, while not impairing
the use of new colorful emojis.

This second proposal ensures that:
- "genuine" emojis (in the 0x1f000-0x1ffff range), will *always* be rendered
  using the new emojis font (this solves, for example, the monochrome "yellow
  faces" issue seen with some characters in my first proposal).
- Special UTF-8 characters (in the 0x2000-0x32FF range) which have been used by
  scripters so far, will render as they used to, using the monochrome fallback
  fonts (this repairs scripted dialogs menus).
- Remaining special characters, that do not have a corresponding glyph in the
  monochrome font, but do have one in the emojis font, will use the latter font
  to render.

It also got the nice side-effect of removing the dependency on the ICU4C library.

Note however that the recent commit:
326055ba82
will need to be reverted to allow this patch to actually fix scripted dialogs.

Also, some cleanup might be needed in skins/default/xui/*/emoji_characters.xml to
remove from it the special UTF-8 characters that will no longer be rendered with
fanciful colors, but instead with the monochrome font glyphs.
2024-03-14 01:47:14 +02:00
Ansariel eb1ed3896f Merge branch 'main' of https://github.com/secondlife/viewer into DRTVWR-600-maint-A
# Conflicts:
#	autobuild.xml
#	indra/llrender/llfontbitmapcache.cpp
#	indra/llrender/llfontbitmapcache.h
#	indra/llrender/llfontfreetype.cpp
#	indra/llrender/llfontfreetype.h
#	indra/llrender/llfontgl.cpp
#	indra/llrender/llfontgl.h
#	indra/llui/llbutton.h
#	indra/llui/llfloater.cpp
#	indra/llui/llfloater.h
#	indra/llui/llfolderviewitem.cpp
#	indra/llui/lllineeditor.cpp
#	indra/llui/lllineeditor.h
#	indra/llui/llscrollcontainer.cpp
#	indra/llui/llscrollingpanellist.cpp
#	indra/llui/llscrollingpanellist.h
#	indra/llui/llscrolllistctrl.h
#	indra/llui/lltextbase.cpp
#	indra/llui/lltextbase.h
#	indra/llui/lltexteditor.cpp
#	indra/llui/lltexteditor.h
#	indra/llui/lluictrl.cpp
#	indra/llui/llview.cpp
#	indra/llui/llview.h
#	indra/newview/llchicletbar.h
#	indra/newview/llconversationlog.h
#	indra/newview/llfloaterimsessiontab.cpp
#	indra/newview/llfloaterimsessiontab.h
#	indra/newview/llfloateruipreview.cpp
#	indra/newview/llnavigationbar.h
#	indra/newview/llpaneltopinfobar.h
#	indra/newview/llpathfindingpathtool.h
#	indra/newview/lltextureview.cpp
#	indra/newview/lltoolbrush.h
#	indra/newview/lltoolcomp.h
#	indra/newview/lltooldraganddrop.h
#	indra/newview/lltoolface.h
#	indra/newview/lltoolfocus.h
#	indra/newview/lltoolindividual.h
#	indra/newview/lltoolobjpicker.h
#	indra/newview/lltoolpie.h
#	indra/newview/lltoolpipette.h
#	indra/newview/lltoolselectland.h
#	indra/newview/llviewermediafocus.h
#	indra/newview/llviewerparcelmediaautoplay.h
#	indra/newview/llviewerwindow.cpp
#	indra/newview/llvoicechannel.h
#	indra/newview/llvoicevivox.h
#	indra/newview/llworldmapview.cpp
2024-03-12 16:52:30 +01:00
Roxie Linden d67a3022d3 Merge branch 'main' of github.com:secondlife/viewer-private into roxie/webrtc-voice 2024-03-10 15:36:58 -07:00
Roxie Linden 0ae8bbaf5d Checkpoint WebRTC Voice 2024-02-08 18:34:00 -08:00
Andrey Kleshchev 762855f255 SL-19585 Try replacing fmod with openal
Since now VLC is responsible for played parcel media (should be since
SL-19042) should be possible to switch remaining audio to OpenAL with
no loss of functionality
2024-02-09 01:31:50 +02:00
Alexander Gavriliuk c9cd5631e4 Merge branch 'main' into DRTVWR-489 2023-12-05 03:37:06 +01:00
Ansariel ce7b2e96d0 Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm
# Conflicts:
#	doc/contributions.txt
#	indra/llcommon/llsdserialize.cpp
#	indra/llcommon/llsdserialize.h
#	indra/llinventory/llsettingssky.cpp
#	indra/newview/llpathfindingnavmesh.cpp
2023-05-18 12:25:20 +02:00
Ansariel 9825c45335 Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm
# Conflicts:
#	autobuild.xml
#	indra/cmake/CMakeLists.txt
#	indra/cmake/ViewerMiscLibs.cmake
#	indra/llcommon/CMakeLists.txt
#	indra/newview/CMakeLists.txt
2023-04-05 10:56:12 +02:00
Ansariel 337d2f984f Fix CMake files related to ICU4C 2023-04-04 03:32:40 +02:00
Ansariel 36fc36432d Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm
# Conflicts:
#	indra/cmake/CMakeLists.txt
2023-03-30 12:20:59 +02:00
Brad Linden a548c16989 Merge remote-tracking branch 'origin/main' into DRTVWR-559 2023-03-29 14:54:06 -07:00
Ansariel 2ff9900cd9 Merge branch 'DRTVWR-577-maint-S' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/llcommon/lluuid.cpp
#	indra/llprimitive/llmodel.cpp
#	indra/newview/llfilepicker.cpp
#	indra/newview/llfilepicker_mac.mm
#	indra/newview/skins/default/xui/da/floater_about.xml
#	indra/newview/skins/default/xui/de/floater_about.xml
#	indra/newview/skins/default/xui/en/floater_about.xml
#	indra/newview/skins/default/xui/es/floater_about.xml
#	indra/newview/skins/default/xui/fr/floater_about.xml
#	indra/newview/skins/default/xui/it/floater_about.xml
#	indra/newview/skins/default/xui/pt/floater_about.xml
#	indra/newview/skins/default/xui/ru/floater_about.xml
#	indra/newview/skins/default/xui/tr/floater_about.xml
#	indra/newview/skins/default/xui/zh/floater_about.xml
2023-02-03 20:57:40 +01:00
Henri Beauchamp 473ade2696 SL-19110 Fast hashing classes for use in place of the slow LLMD5, where speed matters. (#64)
This commit adds the HBXX64 and HBXX128 classes for use as a drop-in
replacement for the slow LLMD5 hashing class, where speed matters and
backward compatibility (with standard hashing algorithms) and/or
cryptographic hashing qualities are not required.
It also replaces LLMD5 with HBXX* in a few existing hot (well, ok, just
"warm" for some) paths meeting the above requirements, while paving the way for
future use cases, such as in the DRTVWR-559 and sibling branches where the slow
LLMD5 is used (e.g. to hash materials and vertex buffer cache entries), and
could be use such a (way) faster algorithm with very significant benefits and
no negative impact.

Here is the comment I added in indra/llcommon/hbxx.h:

// HBXXH* classes are to be used where speed matters and cryptographic quality
// is not required (no "one-way" guarantee, though they are likely not worst in
// this respect than MD5 which got busted and is now considered too weak). The
// xxHash code they are built upon is vectorized and about 50 times faster than
// MD5. A 64 bits hash class is also provided for when 128 bits of entropy are
// not needed. The hashes collision rate is similar to MD5's.
// See https://github.com/Cyan4973/xxHash#readme for details.
2023-01-31 22:04:14 +02:00
Henri Beauchamp 9438ef5f79
SL-19110 Fast hashing classes for use in place of the slow LLMD5, where speed matters. (#64)
This commit adds the HBXX64 and HBXX128 classes for use as a drop-in
replacement for the slow LLMD5 hashing class, where speed matters and
backward compatibility (with standard hashing algorithms) and/or
cryptographic hashing qualities are not required.
It also replaces LLMD5 with HBXX* in a few existing hot (well, ok, just
"warm" for some) paths meeting the above requirements, while paving the way for
future use cases, such as in the DRTVWR-559 and sibling branches where the slow
LLMD5 is used (e.g. to hash materials and vertex buffer cache entries), and
could be use such a (way) faster algorithm with very significant benefits and
no negative impact.

Here is the comment I added in indra/llcommon/hbxx.h:

// HBXXH* classes are to be used where speed matters and cryptographic quality
// is not required (no "one-way" guarantee, though they are likely not worst in
// this respect than MD5 which got busted and is now considered too weak). The
// xxHash code they are built upon is vectorized and about 50 times faster than
// MD5. A 64 bits hash class is also provided for when 128 bits of entropy are
// not needed. The hashes collision rate is similar to MD5's.
// See https://github.com/Cyan4973/xxHash#readme for details.
2023-01-31 18:42:51 +02:00
Ansariel 9e3079f859 Merge branch 'DRTVWR-489-emoji' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/llrender/llfontfreetype.cpp
#	indra/llrender/llfontregistry.cpp
#	indra/llui/lltextbase.cpp
#	indra/llui/lltextbase.h
#	indra/llui/lltexteditor.cpp
#	indra/newview/llviewermenu.cpp
#	indra/newview/llworldmapview.cpp
#	indra/newview/skins/default/xui/en/widgets/chat_editor.xml
2023-01-23 16:49:24 +01:00
Kitty Barnett 7ebaa2d2e5 Merge branch contribution/emoji into DRTVWR-489-emoji 2022-11-09 23:25:02 +01:00
Zi Ree 45aef2c318 Linux - make it compile on linux, gstreamer 0.1 for now, needs to be moved to 1.0, cef probably fails when compiled with volume catcher enabled 2022-09-20 19:29:39 +02:00
Ansariel 1fc3aaff9b Merge branch 'DRTVWR-568_cmake' of https://bitbucket.org/lindenlab/viewer
# Conflicts:
#	.gitignore
#	autobuild.xml
#	indra/CMakeLists.txt
#	indra/cmake/00-Common.cmake
#	indra/cmake/Boost.cmake
#	indra/cmake/BuildVersion.cmake
#	indra/cmake/CEFPlugin.cmake
#	indra/cmake/CMakeLists.txt
#	indra/cmake/CURL.cmake
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/cmake/DBusGlib.cmake
#	indra/cmake/DragDrop.cmake
#	indra/cmake/FMODSTUDIO.cmake
#	indra/cmake/FindHUNSPELL.cmake
#	indra/cmake/FindJsonCpp.cmake
#	indra/cmake/FindOpenJPEG.cmake
#	indra/cmake/FindURIPARSER.cmake
#	indra/cmake/FreeType.cmake
#	indra/cmake/GLH.cmake
#	indra/cmake/Hunspell.cmake
#	indra/cmake/JsonCpp.cmake
#	indra/cmake/LLKDU.cmake
#	indra/cmake/LLPhysicsExtensions.cmake
#	indra/cmake/LLPlugin.cmake
#	indra/cmake/LLWindow.cmake
#	indra/cmake/Linking.cmake
#	indra/cmake/MESHOPTIMIZER.cmake
#	indra/cmake/MediaPluginBase.cmake
#	indra/cmake/NGHTTP2.cmake
#	indra/cmake/OPENAL.cmake
#	indra/cmake/OpenGL.cmake
#	indra/cmake/OpenJPEG.cmake
#	indra/cmake/OpenSSL.cmake
#	indra/cmake/PNG.cmake
#	indra/cmake/Tracy.cmake
#	indra/cmake/UI.cmake
#	indra/cmake/Variables.cmake
#	indra/cmake/ViewerMiscLibs.cmake
#	indra/cmake/ZLIBNG.cmake
#	indra/cmake/bugsplat.cmake
#	indra/integration_tests/llui_libtest/CMakeLists.txt
#	indra/linux_crash_logger/CMakeLists.txt
#	indra/llaudio/CMakeLists.txt
#	indra/llcommon/CMakeLists.txt
#	indra/llcommon/llapp.cpp
#	indra/llcorehttp/CMakeLists.txt
#	indra/llimagej2coj/CMakeLists.txt
#	indra/llinventory/CMakeLists.txt
#	indra/llmath/CMakeLists.txt
#	indra/llmath/llcalcparser.h
#	indra/llmessage/CMakeLists.txt
#	indra/llprimitive/CMakeLists.txt
#	indra/llrender/CMakeLists.txt
#	indra/llrender/llglslshader.cpp
#	indra/llwindow/CMakeLists.txt
#	indra/media_plugins/CMakeLists.txt
#	indra/media_plugins/base/CMakeLists.txt
#	indra/newview/CMakeLists.txt
#	indra/newview/llappviewerwin32.cpp
#	indra/newview/llxmlrpclistener.cpp
#	indra/newview/llxmlrpctransaction.cpp
#	indra/newview/viewer_manifest.py
#	indra/test/CMakeLists.txt
2022-09-17 23:12:34 +02:00
Nicky Dasmijn 554717044f Rename MESHOPTIMIZER.cmake to Meshoptimizer.cmake as those caps honestly bug me. 2022-09-16 23:24:39 +02:00
Kitty Barnett 5440464a9c Merge branch 'contribution/emoji' 2022-08-28 00:08:38 +02:00
Beq 00875f93d0 Restore GLOD alongside MeshOpt 2022-07-31 22:11:35 +01:00