diff options
author | Dave Parks <davep@lindenlab.com> | 2024-05-20 13:22:55 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-20 13:22:55 -0500 |
commit | 03c4458bdcc6821a3047f93b729d412e274ab9af (patch) | |
tree | ecc314de3aa32161e8ac5b1a554e9e7d2a608dc3 /indra/newview/llviewermenu.cpp | |
parent | eab232d3ed49bfb1f873e332ff57ec8c311c163b (diff) |
#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>
Diffstat (limited to 'indra/newview/llviewermenu.cpp')
-rw-r--r-- | indra/newview/llviewermenu.cpp | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 5f2eafd62e..0b1c6c1329 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -139,6 +139,7 @@ #include "boost/unordered_map.hpp" #include <boost/regex.hpp> #include <boost/algorithm/string.hpp> +#include <boost/json.hpp> #include "llcleanup.h" #include "llviewershadermgr.h" #include "gltfscenemanager.h" @@ -3317,6 +3318,13 @@ bool enable_os_exception() #endif } + +bool enable_gltf() +{ + static LLCachedControl<bool> enablegltf(gSavedSettings, "GLTFEnabled", false); + return enablegltf; +} + class LLSelfRemoveAllAttachments : public view_listener_t { bool handleEvent(const LLSD& userdata) @@ -8047,7 +8055,6 @@ class LLAdvancedClickGLTFOpen: public view_listener_t { bool handleEvent(const LLSD& userdata) { - // open personal lighting floater when previewing an HDRI (keeps HDRI from implicitly unloading when opening build tools) LL::GLTFSceneManager::instance().load(); return true; } @@ -8057,7 +8064,6 @@ class LLAdvancedClickGLTFSaveAs : public view_listener_t { bool handleEvent(const LLSD& userdata) { - // open personal lighting floater when previewing an HDRI (keeps HDRI from implicitly unloading when opening build tools) LL::GLTFSceneManager::instance().saveAs(); return true; } @@ -8067,12 +8073,39 @@ class LLAdvancedClickGLTFDecompose : public view_listener_t { bool handleEvent(const LLSD& userdata) { - // open personal lighting floater when previewing an HDRI (keeps HDRI from implicitly unloading when opening build tools) LL::GLTFSceneManager::instance().decomposeSelection(); return true; } }; +class LLAdvancedClickGLTFUpload: public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + LL::GLTFSceneManager::instance().uploadSelection(); + return true; + } +}; + +class LLAdvancedClickResizeWindow : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + S32 w = 0; + S32 h = 0; + + sscanf(userdata.asString().c_str(), "%dx%d", &w, &h); + + if (w > 0 && h > 0) + { + gViewerWindow->getWindow()->setSize(LLCoordWindow(w, h)); + } + + return true; + } +}; + + // these are used in the gl menus to set control values that require shader recompilation class LLToggleShaderControl : public view_listener_t { @@ -9728,6 +9761,8 @@ void initialize_menus() view_listener_t::addMenu(new LLAdvancedClickGLTFOpen(), "Advanced.ClickGLTFOpen"); view_listener_t::addMenu(new LLAdvancedClickGLTFSaveAs(), "Advanced.ClickGLTFSaveAs"); view_listener_t::addMenu(new LLAdvancedClickGLTFDecompose(), "Advanced.ClickGLTFDecompose"); + view_listener_t::addMenu(new LLAdvancedClickGLTFUpload(), "Advanced.ClickGLTFUpload"); + view_listener_t::addMenu(new LLAdvancedClickResizeWindow(), "Advanced.ClickResizeWindow"); view_listener_t::addMenu(new LLAdvancedPurgeShaderCache(), "Advanced.ClearShaderCache"); view_listener_t::addMenu(new LLAdvancedRebuildTerrain(), "Advanced.RebuildTerrain"); @@ -10032,6 +10067,7 @@ void initialize_menus() commit.add("Pathfinding.Characters.Select", boost::bind(&LLFloaterPathfindingCharacters::openCharactersWithSelectedObjects)); enable.add("EnableSelectInPathfindingCharacters", boost::bind(&enable_object_select_in_pathfinding_characters)); enable.add("Advanced.EnableErrorOSException", boost::bind(&enable_os_exception)); + enable.add("EnableGLTF", boost::bind(&enable_gltf)); view_listener_t::addMenu(new LLFloaterVisible(), "FloaterVisible"); view_listener_t::addMenu(new LLShowSidetrayPanel(), "ShowSidetrayPanel"); |