Commit Graph

84 Commits (431b3b0c6dc4e5ab07ff3cefd9b21de5580f6902)

Author SHA1 Message Date
Ansariel 431b3b0c6d Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	.github/workflows/pre-commit.yaml
#	indra/cmake/LLPhysicsExtensions.cmake
#	indra/llwindow/llopenglview-objc.mm
#	indra/newview/CMakeLists.txt
#	indra/newview/llappdelegate-objc.mm
2025-10-20 23:56:48 +02:00
Rye 41e9595522
Rework new convex decomp into a physicsextensions stub package and fix havok and havok_tpv builds for darwin universal to utilize new vhacd stub (#4858) 2025-10-20 13:10:19 -04:00
Ansariel e7b3d68cab Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/LLPhysicsExtensions.cmake
#	indra/llprimitive/CMakeLists.txt
#	indra/newview/CMakeLists.txt
#	indra/newview/lltexturectrl.cpp
#	indra/newview/llviewerobject.cpp
#	indra/newview/llviewertexture.cpp
#	indra/newview/llviewerwindow.cpp
#	indra/newview/llvovolume.cpp
#	indra/newview/skins/default/xui/en/floater_marketplace.xml
#	indra/newview/skins/default/xui/en/floater_model_preview.xml
#	indra/newview/skins/default/xui/en/floater_search.xml
2025-10-11 18:51:03 +02:00
Rye b277cc6a8f Initial VHACD based llconvexdecomposition 2025-10-03 09:51:03 -04:00
Ansariel bfd99549b0 Merge branch 'release/2025.05' of https://github.com/secondlife/viewer
# Conflicts:
#	.github/pull_request_template.md
#	indra/llappearance/lltexlayer.cpp
#	indra/llcommon/llthread.cpp
#	indra/llprimitive/lldaeloader.cpp
#	indra/llprimitive/lldaeloader.h
#	indra/llprimitive/llmodel.cpp
#	indra/newview/CMakeLists.txt
#	indra/newview/VIEWER_VERSION.txt
#	indra/newview/app_settings/settings.xml
#	indra/newview/llmodelpreview.cpp
#	indra/newview/lltoolpie.cpp
#	indra/newview/skins/default/xui/en/floater_model_preview.xml
#	indra/newview/skins/default/xui/en/panel_preferences_sound.xml
2025-07-18 14:14:54 +02:00
Jonathan "Geenz" Goodman c8499b7f01 GLTF WIP. Still working on getting transforms working proper and need to figure out our indices. 2025-04-08 13:51:21 -04: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
Zi Ree 003aeab948 Linux: put pcre back to please glib 2024-08-02 19:57:59 +02:00
Ansariel a944a7b54a Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/llui/llemojihelper.cpp
#	indra/newview/CMakeLists.txt
#	indra/newview/viewer_manifest.py
2024-08-02 15:39:34 +02:00
Rye Mutt 05fd13f896
Remove dead pcre library dependency (#2177) 2024-08-02 13:29:28 +03:00
Ansariel c203bb650a Merge branch 'project/gltf_development' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/newview/app_settings/settings.xml
#	indra/newview/llinventorymodel.cpp
#	indra/newview/llviewermenu.cpp
#	indra/newview/llviewerregion.cpp
#	indra/newview/llvovolume.cpp
#	indra/newview/skins/default/xui/en/notifications.xml
2024-05-23 01:48:45 +02: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
Ansariel becc1af2ec Merge branch 'DRTVWR-559' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/app_settings/settings.xml
#	indra/newview/featuretable.txt
#	indra/newview/featuretable_mac.txt
#	indra/newview/lltexturectrl.cpp
#	indra/newview/lltexturefetch.cpp
#	indra/newview/llviewercontrol.cpp
#	indra/newview/llvovolume.cpp
2023-10-11 12:58:24 +02:00
Cosmic Linden d22ea319a5 SL-20225: LLGLTFMaterial code sync 2023-10-09 16:05:58 -07:00
Ansariel 68e5f326b3 Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm
# Conflicts:
#	.gitignore
#	indra/cmake/00-Common.cmake
#	indra/cmake/CMakeLists.txt
#	indra/cmake/GLEXT.cmake
#	indra/cmake/LLCommon.cmake
#	indra/cmake/LLMath.cmake
#	indra/cmake/LLRender.cmake
#	indra/cmake/Tracy.cmake
#	indra/llprimitive/CMakeLists.txt
#	indra/llrender/llglheaders.h
#	indra/llrender/llglslshader.cpp
#	indra/newview/VIEWER_VERSION.txt
#	indra/newview/llface.cpp
#	indra/newview/lltexturefetch.h
#	indra/newview/llviewerobjectlist.cpp
#	indra/newview/llviewertexturelist.cpp
#	indra/newview/llvopartgroup.cpp
#	indra/newview/llxmlrpctransaction.cpp
2023-03-31 18:54:16 +02:00
Brad Linden 1b6cd23abd CMake and tests fixups after merge with main for DRTVWR-559 2023-03-30 13:46:00 -07:00
Brad Linden a548c16989 Merge remote-tracking branch 'origin/main' into DRTVWR-559 2023-03-29 14:54:06 -07:00
Ansariel f4182ddc7f Merge branch 'DRTVWR-559' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/app_settings/settings.xml
#	indra/newview/llreflectionmapmanager.cpp
#	indra/newview/llspatialpartition.cpp
#	indra/newview/llviewercontrol.cpp
#	indra/newview/llviewerdisplay.cpp
#	indra/newview/llviewermenu.cpp
#	indra/newview/llviewershadermgr.cpp
#	indra/newview/llworldmapview.cpp
#	indra/newview/pipeline.cpp
#	indra/newview/skins/default/xui/en/panel_tools_texture.xml
2023-03-06 17:11:43 +01:00
Cosmic Linden d6841c0798 SL-19080: Update GLTF Material asset upload to v1.1, with stricter GLTF compliance and removal of unsupported features 2023-02-09 15:05:19 -08:00
Ansariel 52ce4adb0c Merge branch 'DRTVWR-559' of https://bitbucket.org/lindenlab/viewer 2022-10-19 11:40:51 +02:00
Dave Parks f6762c3de5 SL-18105 Add to/from json capability to LLGLTFMaterial 2022-10-14 17:35:48 -05: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
Andrey Kleshchev c7366f4c55 SL-17238 Fix coding policy build issues 2022-09-17 19:30:31 +03:00
Andrey Kleshchev 0da3dd27fc SL-17238 Fix coding policy build issues 2022-09-17 14:03:55 +03:00
Nicky Dasmijn 68c680599b Try to make sure this also works with the havok version of llphysicsextension. 2022-09-17 11:21:06 +02:00
Ansariel 29cf23c852 Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm 2022-08-30 09:43:24 +02:00
Nicky 9e01048109 Make the collada includes sysrem incudes (lets compilers be way lss picky about warnings in them). 2022-08-12 18:15:39 +02:00
Ansariel 536e958018 Merge branch 'DRTVWR-559' of https://bitbucket.org/lindenlab/viewer
# Conflicts:
#	autobuild.xml
#	indra/newview/CMakeLists.txt
#	indra/newview/llface.cpp
#	indra/newview/llfilepicker.h
#	indra/newview/llinventoryicon.cpp
#	indra/newview/lltexturectrl.cpp
#	indra/newview/llviewerobject.cpp
#	indra/newview/llvovolume.cpp
#	indra/newview/llvovolume.h
#	indra/newview/pipeline.cpp
#	indra/newview/skins/default/textures/textures.xml
#	indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml
2022-06-27 17:58:22 +02:00
Dave Parks 6c678648e0 SL-17653 Last commit was accidentally partial 2022-06-23 16:40:48 -05:00
Ansariel 8e4abf8ea3 Merge branch 'DRTVWR-559' of https://bitbucket.org/lindenlab/viewer 2022-06-10 13:52:52 +02:00
Dave Houlton 2dc376aa53 SL-17214 add 3p-tinygltf dependency to autobuild.xml 2022-06-08 13:33:59 -06:00
Dave Houlton adaaccd3d7 SL-17214 additional glTF validation, remove dead code from DAE loader 2022-06-08 13:33:59 -06:00
Dave Houlton 8c0163bcb4 SL-17214 initial loader class skeleton 2022-06-08 13:33:59 -06:00
Ansariel 3765c775cb Merge branch 'DRTVWR-559' of https://bitbucket.org/lindenlab/viewer 2022-05-21 15:04:54 +02:00
Nicky 283c2a20cc Remove setting of HEADER_FILE_ONLY on .h* files, cmake automatically
sets the property on those.
2022-05-01 00:38:40 +02:00
Brad Kittenbrink c9fbd9e2e8 SL-17116 work on implementing MaterialID in ExtraParams of ObjectUpdate and related messages 2022-04-27 14:48:25 -07:00
Nicky 2b151e0aef Round one to support conan for 3P packages, this allows to build the viewer on Linux again. 2022-04-18 18:11:43 +02:00
Nicky e0cf0cdfd4 Switch to target_include_directories
All 3Ps include dirs are treated as SYSTEM, this will stop compilers
stop emitting warnings from those files and greatly helps having high
warning levels and not being swamped by warnings that come from
external libraries.
2022-04-17 18:04:57 +02:00
Nicky 241919e7f7 Rework cmake, the original plan was to maybe be able to use conan targets with the same name (that's why 3ps had names like apr::apr),
but it's safer and saner to put the LL 3ps under the ll:: prefix.
This also allows means it is possible to get rid of that bad "if( TRAGET ...) return() endif()" pattern and rather use include_guard().
2022-04-13 19:21:55 +02:00
Nicky 786b291d9c Move CMake files to modernized cmake syntax, step 1.
Change projects to cmake targetsto get rid of havig to hardcore
include directories and link libraries in consumer projects.
2022-04-06 16:32:52 +02:00
Nat Goodspeed 66981fab0b SL-793: Use Boost.Fiber instead of the "dcoroutine" library.
Longtime fans will remember that the "dcoroutine" library is a Google Summer
of Code project by Giovanni P. Deretta. He originally called it
"Boost.Coroutine," and we originally added it to our 3p-boost autobuild
package as such. But when the official Boost.Coroutine library came along
(with a very different API), and we still needed the API of the GSoC project,
we renamed the unofficial one "dcoroutine" to allow coexistence.

The "dcoroutine" library had an internal low-level API more or less analogous
to Boost.Context. We later introduced an implementation of that internal API
based on Boost.Context, a step towards eliminating the GSoC code in favor of
official, supported Boost code.

However, recent versions of Boost.Context no longer support the API on which
we built the shim for "dcoroutine." We started down the path of reimplementing
that shim using the current Boost.Context API -- then realized that it's time
to bite the bullet and replace the "dcoroutine" API with the Boost.Fiber API,
which we've been itching to do for literally years now.

Naturally, most of the heavy lifting is in llcoros.{h,cpp} and
lleventcoro.{h,cpp} -- which is good: the LLCoros layer abstracts away most of
the differences between "dcoroutine" and Boost.Fiber.

The one feature Boost.Fiber does not provide is the ability to forcibly
terminate some other fiber. Accordingly, disable LLCoros::kill() and
LLCoprocedureManager::shutdown(). The only known shutdown() call was in
LLCoprocedurePool's destructor.

We also took the opportunity to remove postAndSuspend2() and its associated
machinery: FutureListener2, LLErrorEvent, errorException(), errorLog(),
LLCoroEventPumps. All that dual-LLEventPump stuff was introduced at a time
when the Responder pattern was king, and we assumed we'd want to listen on one
LLEventPump with the success handler and on another with the error handler. We
have never actually used that in practice. Remove associated tests, of course.

There is one other semantic difference that necessitates patching a number of
tests: with "dcoroutine," fulfilling a future IMMEDIATELY resumes the waiting
coroutine. With Boost.Fiber, fulfilling a future merely marks the fiber as
ready to resume next time the scheduler gets around to it. To observe the test
side effects, we've inserted a number of llcoro::suspend() calls -- also in
the main loop.

For a long time we retained a single unit test exercising the raw "dcoroutine"
API. Remove that.

Eliminate llcoro_get_id.{h,cpp}, which provided llcoro::get_id(), which was a
hack to emulate fiber-local variables. Since Boost.Fiber has an actual API for
that, remove the hack.

In fact, use (new alias) LLCoros::local_ptr for LLSingleton's dependency
tracking in place of llcoro::get_id().

In CMake land, replace BOOST_COROUTINE_LIBRARY with BOOST_FIBER_LIBRARY. We
don't actually use the Boost.Coroutine for anything (though there exist
plausible use cases).
2020-03-25 17:32:45 -04:00
Nicky e6e66a953e Merge with viewer-vs2017 2019-06-06 14:37:27 +02:00
Nat Goodspeed 26570cfd67 SL-793: Use Boost.Fiber instead of the "dcoroutine" library.
Longtime fans will remember that the "dcoroutine" library is a Google Summer
of Code project by Giovanni P. Deretta. He originally called it
"Boost.Coroutine," and we originally added it to our 3p-boost autobuild
package as such. But when the official Boost.Coroutine library came along
(with a very different API), and we still needed the API of the GSoC project,
we renamed the unofficial one "dcoroutine" to allow coexistence.

The "dcoroutine" library had an internal low-level API more or less analogous
to Boost.Context. We later introduced an implementation of that internal API
based on Boost.Context, a step towards eliminating the GSoC code in favor of
official, supported Boost code.

However, recent versions of Boost.Context no longer support the API on which
we built the shim for "dcoroutine." We started down the path of reimplementing
that shim using the current Boost.Context API -- then realized that it's time
to bite the bullet and replace the "dcoroutine" API with the Boost.Fiber API,
which we've been itching to do for literally years now.

Naturally, most of the heavy lifting is in llcoros.{h,cpp} and
lleventcoro.{h,cpp} -- which is good: the LLCoros layer abstracts away most of
the differences between "dcoroutine" and Boost.Fiber.

The one feature Boost.Fiber does not provide is the ability to forcibly
terminate some other fiber. Accordingly, disable LLCoros::kill() and
LLCoprocedureManager::shutdown(). The only known shutdown() call was in
LLCoprocedurePool's destructor.

We also took the opportunity to remove postAndSuspend2() and its associated
machinery: FutureListener2, LLErrorEvent, errorException(), errorLog(),
LLCoroEventPumps. All that dual-LLEventPump stuff was introduced at a time
when the Responder pattern was king, and we assumed we'd want to listen on one
LLEventPump with the success handler and on another with the error handler. We
have never actually used that in practice. Remove associated tests, of course.

There is one other semantic difference that necessitates patching a number of
tests: with "dcoroutine," fulfilling a future IMMEDIATELY resumes the waiting
coroutine. With Boost.Fiber, fulfilling a future merely marks the fiber as
ready to resume next time the scheduler gets around to it. To observe the test
side effects, we've inserted a number of llcoro::suspend() calls -- also in
the main loop.

For a long time we retained a single unit test exercising the raw "dcoroutine"
API. Remove that.

Eliminate llcoro_get_id.{h,cpp}, which provided llcoro::get_id(), which was a
hack to emulate fiber-local variables. Since Boost.Fiber has an actual API for
that, remove the hack.

In fact, use (new alias) LLCoros::local_ptr for LLSingleton's dependency
tracking in place of llcoro::get_id().

In CMake land, replace BOOST_COROUTINE_LIBRARY with BOOST_FIBER_LIBRARY. We
don't actually use the Boost.Coroutine for anything (though there exist
plausible use cases).
2018-05-10 21:46:07 -04:00
Ansariel 2797c5938a Merge Firestorm LGPL 2016-04-05 10:47:23 +02:00
Oz Linden 9be58e915a merge with 4.0.3-release 2016-04-04 15:53:09 -04:00
Ansariel 3192fe832f Merge viewer-quickgraphics 2016-03-08 01:41:31 +01:00
Oz Linden c8726aba30 remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
Nicky c218e524b2 Merge - Step 1; Still enough to do. 2015-10-26 20:20:13 +01:00
Rider Linden 2fe0c32109 DRTVWR-409: merge DRTVWR-368 2015-09-29 14:16:58 -07:00