Commit Graph

105 Commits (afdcd356db0a496e8916645eeebc8a03755ee0bd)

Author SHA1 Message Date
Ansariel Hiller 9c3ce3dec7 Clean up LLUI and fix/add suggestions from VS (#2746)
# Conflicts:
#	indra/llui/lltextbase.h
#	indra/llui/lltexteditor.h
#	indra/llwindow/llwindowsdl.cpp
2025-04-18 01:45:11 +02:00
Rye d915cf17df Try to parallelize xcode builds further and add more headers to PCH to reduce build time 2025-03-12 18:37:27 +02:00
Rye Mutt 75455d101c
Convert LLUI and LLRender2D to LLSimpleton to reduce overhead during ui draw (#2202) 2024-08-06 16:21:19 +03:00
Rye Mutt b0e30477e9 Use heterogeneous comparison for string_view map finds in LLControl and convert controlExists to string_view 2024-07-01 22:25:56 -04:00
Brad Linden 7c42711ca3 Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into project/gltf_development 2024-06-10 16:22:12 -07:00
Ansariel cb3bd8865a Fix a bunch of uninitialized variable warnings that showed up in Visual Studio 2024-05-30 15:41:36 +02:00
Brad Linden 9f6849e081 Merge remote-tracking branch 'origin/project/gltf_development' into brad/merge-maint-a-to-dev 2024-05-23 11:35:23 -07:00
Dave Parks 03c4458bdc
#1392 GLTF Upload (#1394)
* #1392 WIP -- Functional texture upload, stubbed out .bin upload.

* #1392 GLTF Upload WIP -- Emulates successful upload

Successfully uploads texture
Emulates successful .gltf and .bin upload by injecting into local asset cache.
Emulates rez from inventory by setting sculpt ID of selected object
Currently fails in tinygltf parsing due to missing .bin

* Add missing notification

* Build fix

* #1392 Add boost::json .gltf reading support.

* #1392 boost::json GLTF writing prototype

* Create gltf/README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* #1392 Add ability to render directly from LL::GLTF::Material

* Fix for mac build

* Mac build fix

* #1392 AssetType and Inventory Type plumbing

* #1392 More sane error handling and scheduling of uploads.

* #1392 Actually attempt to upload glbin

* Mac build fix, upload nudge

* Mac build fix

* Fix glTF asset uploads to server

* Mac build fix (inline not static)

* More consistent inline

* Add glm, mac nudge.

* #1392 For consistency with spec, start using glm over glh:: and LLFoo

* Another attempt at placating Mac builds

* Another Mac nudge

* Mac build take 23

* #1392 Prune LLMatrix4a from GLTF namespace.

* #1392 Fix for orientation being off (glm::quat is wxyz, not xyzw)

* #1392 WIP -- Actually send the sculpt type and id, nudge readme and alpha rendering

* #1392 Working download!

* #1394 Add support for GLTFEnabled SimulatorFeature

* #1392 Review feedback

---------

Co-authored-by: Pepper Linden <3782201+rohvani@users.noreply.github.com>
2024-05-20 13:22:55 -05:00
Andrey Lihatskiy 38c2a5bde9 Merge branch 'marchcat/w-whitespace' into marchcat/x-ws-merge 2024-05-01 08:16:58 +03:00
Andrey Lihatskiy 1b68f71348 #824 Process source files in bulk: replace tabs with spaces, convert CRLF to LF, and trim trailing whitespaces as needed 2024-04-29 07:56:09 +03:00
Andrey Lihatskiy 27dae1d967 Merge branch 'DRTVWR-591-maint-X' into marchcat/591-x-pbr-merge
# Conflicts:
#	indra/llrender/llgl.cpp
#	indra/llrender/llvertexbuffer.cpp
#	indra/llui/llflatlistview.cpp
#	indra/newview/app_settings/settings.xml
#	indra/newview/lldrawpoolground.cpp
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llinventorygallery.cpp
#	indra/newview/llspatialpartition.cpp
#	indra/newview/llviewercontrol.cpp
#	indra/newview/llviewertexture.cpp
#	indra/newview/llvosky.cpp
#	indra/newview/skins/default/xui/en/menu_inventory.xml
2023-11-30 13:30:27 +02:00
Andrey Kleshchev 145a5ffe7f SL-15039 Prune unused preferences #3
DebugInventoryFilters
DebugShowXUINames
DebugSlshareLogTag
DebugStat****
DefaultBlankNormalTexture
DefaultObjectNormalTexture
DefaultObjectSpecularTexture
DefaultUploadCost
DisplayAvatarAgentTarget
DisplayChat
DisplayDebug
DisplayDebugConsole
DisplayIM
DisplayLinden
DisplayRegion
DragAndDropToolTipDelay
DragAndDropDistanceThreshold
DropShadowButton
DropShadowFloater
DropShadowSlider
DropShadowTooltip
UIImgWhiteUUID
UseEnvironmentFromRegion
UseDayCycle
WaterPresetName
SkyPresetName
DayCycleName
DestinationGuideHintTimeout
SidePanelHintTimeout
DisablePrecacheDelayAfterTeleporting
2023-09-22 19:28:23 +03:00
Brad Kittenbrink c9ef206e39 Beginning viewer side work for SL-17198 new asset and inventory types for Materials 2022-04-28 13:08:37 -07:00
Andrey Kleshchev 0d7f6d917a SL-13729 Performance of LLUI and LLRender2D #3 2020-09-18 17:27:12 +03:00
Andrey Kleshchev 177ad21ade SL-13729 Performance of LLUI and LLRender2D 2020-09-17 19:59:48 +03:00
Dave Houlton dc1453af9c Merge in from viewer-release 6.3.5 2019-11-13 16:46:27 -07:00
Nat Goodspeed 98be6e141c DRTVWR-493: Streamline LLParamSingleton, LLLockedSingleton.
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-12 09:44:56 -04:00
andreykproductengine c61d0f4297 DRTVWR-493 LLUI to LLParamSingleton 2019-08-10 15:31:03 +03:00
andreykproductengine 34d8200d0f DRTVWR-493 LLRender2D init cleanup 2019-08-10 09:01:54 +03:00
andreykproductengine adeee613c6 DRTVWR-493 LLRender2D to LLParamSingleton 2019-07-25 18:20:17 +03:00
Rider Linden 442bbfed34 Adding settings DAD type 2018-06-20 12:37:17 -07:00
Graham Linden graham@lindenlab.com cf460b13be De-duplicate sRGB conversion funcs from many shaders
and unify on using the version that works on OSX.

Add more logging to shader loading about fallbacks and loading succcess.

Add frag shaders for sharing sRGB and normal encode/decode via GL shader linkage.
2018-03-12 16:24:16 +01:00
Nat Goodspeed c92eb7e591 Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2016-08-30 11:36:06 -04:00
Oz Linden c8726aba30 remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
Nat Goodspeed 9f962c03bf MAINT-5232: Extract LLInitClass, LLDestroyClass from llui/llui.h
to a new llcommon/llinitdestroyclass.h.
This mechanism is so general -- but has so many related moving parts -- that
(a) it deserves to be in a header file all its own, instead of conflated with
llui.h, and (b) it should be in llcommon where anyone can use it. It has no
dependencies whatsoever on llui or anything viewer-specific.
In this very changeset we changed one #include "llui.h" whose comment admits
that it was only dragged in for LLDestroyClass.
2015-05-27 16:41:10 -04:00
andreykproductengine 6b40206279 MAINT-4086 FIXED Limit the number items "Replace Current Outfit" or "Wear" applies to 2014-07-01 18:33:23 +03:00
Richard Linden 17e9c872ad Automated merge with http://bitbucket.org/lindenlab/viewer-release 2013-11-11 19:17:49 -08:00
maksymsproductengine 63cc379c72 MAINT-3270 FIXED crash in LLControlCache<unsigned int>::LLControlCache: Control named RenderAutoMuteFunctionsnot found 2013-10-04 02:50:50 +03:00
Richard Linden e340009fc5 second phase summer cleaning
replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc.
2013-08-09 17:11:19 -07:00
Richard Linden a2e22732f1 Summer cleaning - removed a lot of llcommon dependencies to speed up build times
consolidated most indra-specific constants in llcommon under indra_constants.h
fixed issues with operations on mixed unit types (implicit and explicit)
made LL_INFOS() style macros variadic in order to subsume other logging methods
such as ll_infos
added optional tag output to error recorders
2013-07-30 19:13:45 -07:00
Richard Linden 0a96b47663 merge with viewer-release 2013-06-05 19:05:43 -07:00
Richard Linden 6b81b8629e Spring cleaning: removed unused .cpp and.h files, and cleaned up header dependencies 2013-05-05 17:45:35 -07:00
Oz Linden ddd5659f81 merge changes for DRTVWR-294 2013-04-19 10:11:29 -04:00
Graham Madarasz bf6182daa8 Update Mac and Windows breakpad builds to latest 2013-03-29 07:50:08 -07:00
Don Kjer 9150757c81 More fixes for gcc-4.6 breakage 2013-03-13 21:01:50 +00:00
Nyx Linden 1586107e87 SH-3944 WIP CHUI merge fixing
re-introduced don's refactor of low-level openGL calls pulling out of llui
and putting them into llrender. Took the new code from their updated versions
from the CHUI merge, but put them in a place accessible to appearance utility.
2013-03-12 22:34:15 +00:00
Richard Linden a441664c10 SH-3275 WIP interesting Update viewer metrics system to be more flexible
fast timer bars render correctly
2013-01-31 00:50:54 -08:00
Gilbert Gonzales c418d61627 CHUI-667 Upon exit from DND mode, a maximum of one sound should be played. Solution. Added a deferred sound class which will have sound id's added to it and upon unmuting the deferred sounds will be played. 2013-01-25 17:47:36 -08:00
Xiaohong Bao 8315e97453 Merge 2013-01-08 14:50:31 -07:00
William Todd Stinson 67bc42a80a Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-beta. 2012-11-20 16:20:40 -08:00
Xiaohong Bao c180fe2ae2 for SH-3561: capture the frame buffer contents and compare pixel differences between frames. 2012-11-19 22:28:12 -07:00
Nat Goodspeed 3653727e7f Introduce new LLDir::findSkinnedFilenames() method. Use as needed.
In a number of different places, for different reasons, the viewer wants to
load a UI-related file that might be overridden by a non-default skin; and
within that skin, might further be overridden by a non-default language.
Apparently, for each of those use cases, every individual developer approached
it as an entirely new problem, solving it idiosyncratically for that one case.
Not only is this a maintenance problem, but it rubs one's nose in the fact
that most such solutions consider only a subset of the relevant skin
directories.
Richard and I evolved an API intended to address all such cases: a central
LLDir method returning a list of relevant pathnames, from most general to most
localized, filtered to present only existing files; plus a couple of
convenience methods to specifically obtain the most general and most localized
available file.
There were several load-skinned-file methods (LLFloater::buildFromFile(),
LLPanel::buildFromFile() and LLUICtrlFactory::createFromFile() -- apparently
cloned-and-modified from each other) that contained funky bolted-on logic to
output the loaded data to an optional passed LLXMLNodePtr param. The trouble
is that passing that param forced each of these methods to subvert its normal
search: specifically for that case, it needed to find the baseline XML file
instead of the localized one. Richard agreed that for the intended usage
(reformatting XML files) we should use XML schema instead, and that the hacky
functionality should be removed. Remove it. Also remove
LLUICtrlFactory::getLocalizedXMLNode(), only used for those three special cases.
Some callers explicitly passed the optional LLXMLNodePtr param as NULL. Remove
that.
Remove LLFloaterUIPreview::displayFloater(save) param, which relied on the
optional output LLXMLNodePtr param. Make onClickSaveFloater() and
onClickSaveAll() emit popupAndPrintWarning() about discontinued functionality.
Recast LLFloater::buildFromFile(), LLPanel::buildFromFile(),
LLUICtrlFactory::createFromFile(), LLNotifications::loadTemplates(),
LLUI::locateSkin(), LLFontRegistry::parseFontInfo(),
LLUIColorTable::loadFromSettings(), LLUICtrlFactory::loadWidgetTemplate(),
LLUICtrlFactory::getLayeredXMLNode(), LLUIImageList::initFromFile(),
LLAppViewer::launchUpdater() and LLMediaCtrl::navigateToLocalPage() to use
findSkinnedFilenames(). (Is LLAppViewer::launchUpdater() ever called any more?
Apparently so -- though the linux-updater.bin logic to process the relevant
command-line switch has been disabled. Shrug.) (Is
LLMediaCtrl::navigateToLocalPage() ever used?? If so, why?)
Remove LLUI::setupPaths(), getXUIPaths(), getSkinPath() and
getLocalizedSkinPath(). Remove the skins/paths.xml file read by setupPaths().
The only configuration it contained was the pair of partial paths "xui/en" and
"xui/[LANGUAGE]" -- hardly likely to change. getSkinPath() specifically
returned the first of these, while getLocalizedSkinPath() specifically
returned the second. This knowledge is now embedded in findSkinnedFilenames().
Also remove paths.xml from viewer_manifest.py.
Remove injected xui_paths from LLFontGL::initClass() and
LLFontRegistry::LLFontRegistry(). These are no longer needed since
LLFontRegistry can now directly consult LLDir for its path search. Stop
passing LLUI::getXUIPaths() to LLFontGL::initClass() in LLViewerWindow's
constructor and initFonts() method.
Add LLDir::append() and add() methods for the simple task of combining two
path components separated by getDirDelimiter() -- but only if they're both
non-empty. Amazing how often that logic is replicated. Replace some existing
concatenations with add() or append().
New LLDir::findSkinnedFilenames() method must know current language. Allow
injecting current language by adding an LLDir::setSkinFolder(language) param,
and pass it where LLAppViewer::init() and initConfiguration() currently call
setSkinFolder(). Also add LLDir::getSkinFolder() and getLanguage() methods.
Change LLFLoaterUIPreview's LLLocalizationResetForcer helper to "forcibly
reset language" using LLDir::setSkinFolder() instead of LLUI::setupPaths().
Update LLDir stubs in lldir_stub.cpp and llupdaterservice_test.cpp.
Add LLDir::getUserDefaultSkinDir() to obtain often-overlooked possible skin
directory -- like getUserSkinDir() but with "default" in place of the current
skin name as the last path component. (However, we hope findSkinnedFilenames()
obviates most explicit use of such individual skin directory pathnames.)
Add LLDir unit tests for new findSkinnedFilenames() and add() methods -- the
latter exercises append() as well.
Tweak indra/integration_tests/llui_libtest/llui_libtest.cpp for all the above.
Notably, comment out its export_test_floaters() function, since the essential
LLFloater::buildFromFile(optional LLXMLNodePtr) functionality has been
removed. This may mean that llui_libtest.cpp has little remaining value, not
sure.
2012-10-10 14:57:43 -04:00
Richard Linden 234ce663fa fixed build 2012-04-17 15:14:36 -07:00
Richard Linden 37186d452f CHUI-86 WIP Investigate voice-dot with name tag integration
added draw3D to LLUIImage to encapsulate display of image in projective 3D space
2012-04-17 14:13:31 -07:00
Richard Linden 82c9b0fbbc fixed build
all param values now support named values uniformly
2012-04-13 23:07:48 -07:00
Richard Linden a8fcfc5e19 removed attempt at templating LLUI::Clamp values in order to get build working again 2011-10-04 14:11:45 -07:00
Richard Linden 50c0447808 disabled min and max windows macros
another attempt at fixing gcc builds
2011-10-04 13:26:54 -07:00
Richard Linden 44e9fb446f another potential gcc fix 2011-10-04 12:04:29 -07:00
Richard Nelson edacb7b336 implemented Range and ClampedValue classes to standardize min/max settings
fixed not serializing named values when values provided from code
2011-10-03 18:52:22 -07:00
Richard Nelson 09e179b238 param block cleanup
added Flag as value type
moved Batch to BatchBlock
renamed Choice to ChoiceBlock
made merging of parameters for ValueParams consistent (fillFrom and overwriteFrom are inverses of each other now)
made iteration over Multiple<T> type params easier
initial schema param blocks
2011-09-30 16:57:08 -07:00