summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorleviathan <leviathan@lindenlab.com>2024-09-03 15:38:35 -0700
committerAndrew Meadows <andrew.l.meadows@gmail.com>2024-10-03 09:16:46 -0700
commit0617923ae7f450ece7288f8a73446c45a8ed32db (patch)
tree1914627e41be3619eb335aa28e6acdfb98925ea0 /indra/newview
parent8213a0fb6b3149042d6833c8f0c4a3c1bfdc8bc9 (diff)
remove crashy LLSD ctor used by GameControl
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llagent.h2
-rw-r--r--indra/newview/llappviewer.cpp13
-rw-r--r--indra/newview/llappviewerlinux.cpp2
-rw-r--r--indra/newview/llfloaterpreference.cpp17
-rw-r--r--indra/newview/llfloaterpreference.h6
-rwxr-xr-xindra/newview/viewer_manifest.py9
6 files changed, 27 insertions, 22 deletions
diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h
index a69a777e1e..448ee575f5 100644
--- a/indra/newview/llagent.h
+++ b/indra/newview/llagent.h
@@ -498,7 +498,7 @@ private:
// mControlFlags is a bitmask of behavior instructions for compact
// transmission to the server. It does NOT represent "input", rather
// the consequences of it, which will sometimes depend on "state".
- U32 mControlFlags; // Replacement for the mFooKey's
+ U32 mControlFlags;
//--------------------------------------------------------------------
// GameControls
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 475610be36..75cd189980 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -1531,7 +1531,7 @@ bool LLAppViewer::doFrame()
LL_WARNS() << " Someone took over my signal/exception handler (post messagehandling)!" << LL_ENDL;
}
- gViewerWindow->getWindow()->gatherInput();
+ gViewerWindow->getWindow()->gatherInput(gFocusMgr.getAppHasFocus());
}
//memory leaking simulation
@@ -4811,11 +4811,6 @@ void LLAppViewer::idle()
gAgent.autoPilot(&yaw);
}
- // Some GameControl logic needs to run even when the feature is not enabled
- // Note: we process game_control before sending AgentUpdate
- // because it may translate to control flags that control avatar motion.
- LLGameControl::processEvents(gFocusMgr.getAppHasFocus());
-
// get control flags from each side
U32 control_flags = gAgent.getControlFlags();
U32 game_control_action_flags = LLGameControl::computeInternalActionFlags();
@@ -4841,6 +4836,12 @@ void LLAppViewer::idle()
}
send_agent_update(false);
+
+ // After calling send_agent_update() in the mainloop we always clear
+ // the agent's ephemeral ControlFlags (whether an AgentUpdate was
+ // actually sent or not) because these will be recomputed based on
+ // real-time key/controller input and resubmitted next frame.
+ gAgent.resetControlFlags();
}
//////////////////////////////////////
diff --git a/indra/newview/llappviewerlinux.cpp b/indra/newview/llappviewerlinux.cpp
index 38f2f1ae7f..7ce74649e2 100644
--- a/indra/newview/llappviewerlinux.cpp
+++ b/indra/newview/llappviewerlinux.cpp
@@ -129,7 +129,7 @@ int main( int argc, char **argv )
return -1;
}
- // Run the application main loop
+ // Run the application main loop
while (! viewer_app_ptr->frame())
{}
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 109db7e3d7..ec725a8ace 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -3506,8 +3506,21 @@ bool LLPanelPreferenceGameControl::postBuild()
mCheckGameControlToAgent = getChild<LLCheckBoxCtrl>("game_control_to_agent");
mCheckAgentToGameControl = getChild<LLCheckBoxCtrl>("agent_to_game_control");
- mCheckGameControlToAgent->setCommitCallback([this](LLUICtrl*, const LLSD&) { updateActionTableState(); });
- mCheckAgentToGameControl->setCommitCallback([this](LLUICtrl*, const LLSD&) { updateActionTableState(); });
+ mCheckGameControlToServer->setCommitCallback([this](LLUICtrl*, const LLSD&)
+ {
+ LLGameControl::setSendToServer(mCheckGameControlToServer->getValue());
+ updateActionTableState();
+ });
+ mCheckGameControlToAgent->setCommitCallback([this](LLUICtrl*, const LLSD&)
+ {
+ LLGameControl::setControlAgent(mCheckGameControlToAgent->getValue());
+ updateActionTableState();
+ });
+ mCheckAgentToGameControl->setCommitCallback([this](LLUICtrl*, const LLSD&)
+ {
+ LLGameControl::setTranslateAgentActions(mCheckAgentToGameControl->getValue());
+ updateActionTableState();
+ });
getChild<LLTabContainer>("game_control_tabs")->setCommitCallback([this](LLUICtrl*, const LLSD&) { clearSelectionState(); });
getChild<LLTabContainer>("device_settings_tabs")->setCommitCallback([this](LLUICtrl*, const LLSD&) { clearSelectionState(); });
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index 57eaa193a3..33d1cb0c87 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -447,9 +447,9 @@ private:
void resetButtonMappingsToDefaults();
// Above the tab container
- LLCheckBoxCtrl *mCheckGameControlToServer; // send game_control data to server
- LLCheckBoxCtrl *mCheckGameControlToAgent; // use game_control data to move avatar
- LLCheckBoxCtrl *mCheckAgentToGameControl; // translate external avatar actions to game_control data
+ LLCheckBoxCtrl* mCheckGameControlToServer; // send game_control data to server
+ LLCheckBoxCtrl* mCheckGameControlToAgent; // use game_control data to move avatar
+ LLCheckBoxCtrl* mCheckAgentToGameControl; // translate external avatar actions to game_control data
// 1st tab "Channel mappings"
LLPanel* mTabChannelMappings;
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 39b81f2395..efc90b8991 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -1420,15 +1420,6 @@ class Linux_x86_64_Manifest(LinuxManifest):
self.path_optional("libjemalloc*.so")
- self.path("libdb*.so")
- self.path("libuuid.so*")
- self.path("libdirectfb-1.*.so.*")
- self.path("libfusion-1.*.so.*")
- self.path("libdirect-1.*.so.*")
- self.path("libopenjp2.so*")
- self.path("libdirectfb-1.4.so.5")
- self.path("libfusion-1.4.so.5")
- self.path("libdirect-1.4.so.5*")
self.path("libalut.so*")
self.path("libopenal.so*")
self.path("libopenal.so", "libvivoxoal.so.1") # vivox's sdk expects this soname