Merge Firestorm

master
Ansariel 2020-02-21 11:53:36 +01:00
commit 22dd92e012
36 changed files with 267 additions and 71 deletions

View File

@ -76,6 +76,10 @@ if(WINDOWS)
endif(ADDRESS_SIZE EQUAL 32)
endif (FMODEX)
if (OPENAL)
set(release_files ${release_files} OpenAL32.dll alut.dll)
endif (OPENAL)
#*******************************
# Copy MS C runtime dlls, required for packaging.
# *TODO - Adapt this to support VC9

View File

@ -161,7 +161,7 @@ BASE_ARGUMENTS=[
dict(name='viewer_flavor',
description='Type of viewer build. Can be oss or hvk.', default="oss"),
dict(name='fmodversion',
description='Version of FMOD used. Can be fmodstudio or fmodex.', default=None),
description='Version of FMOD used. Can be fmodstudio or fmodex.', default=None)
]
def usage(arguments, srctree=""):

View File

@ -78,6 +78,10 @@ if (FMODEX)
endif (FMODEX)
if (OPENAL)
include_directories(
${OPENAL_LIBRARIES}
)
list(APPEND llaudio_SOURCE_FILES
llaudioengine_openal.cpp
lllistener_openal.cpp

View File

@ -832,7 +832,9 @@ F64 LLAudioEngine::mapWindVecToPan(LLVector3 wind_vec)
void LLAudioEngine::triggerSound(const LLUUID &audio_uuid, const LLUUID& owner_id, const F32 gain,
const S32 type, const LLVector3d &pos_global, const LLUUID& source_object)
// / <FS:Testy> Optional parameter for setting the audio source UUID
// const S32 type, const LLVector3d &pos_global, const LLUUID& source_object)
const S32 type, const LLVector3d &pos_global, const LLUUID& source_object, const LLUUID& audio_source_id)
{
// Create a new source (since this can't be associated with an existing source.
//LL_INFOS() << "Localized: " << audio_uuid << LL_ENDL;
@ -843,8 +845,14 @@ void LLAudioEngine::triggerSound(const LLUUID &audio_uuid, const LLUUID& owner_i
return;
}
LLUUID source_id;
source_id.generate();
// <FS:Testy> Only generate the id if one wasn't passed to the method
//LLUUID source_id;
//source_id.generate();
LLUUID source_id = audio_source_id;
if (source_id.isNull())
{
source_id.generate();
}
LLAudioSource *asp = new LLAudioSource(source_id, owner_id, gain, type, source_object, true);
addAudioSource(asp);

View File

@ -150,7 +150,11 @@ public:
void triggerSound(const LLUUID &sound_id, const LLUUID& owner_id, const F32 gain,
const S32 type = LLAudioEngine::AUDIO_TYPE_NONE,
const LLVector3d &pos_global = LLVector3d::zero,
const LLUUID& source_object = LLUUID::null);
// <FS:Testy> Optional parameter for setting the audio source UUID
// const LLUUID& source_object = LLUUID::null);
const LLUUID& source_object = LLUUID::null,
const LLUUID& audio_source_id = LLUUID::null);
// NaCl End
void triggerSound(SoundData& soundData);

View File

@ -106,7 +106,9 @@ void LLErrorThread::run()
// This thread sits and waits for the sole purpose
// of waiting for the signal/exception handlers to flag the
// application state as APP_STATUS_ERROR.
LL_INFOS() << "thread_error - Waiting for an error" << LL_ENDL;
// <FS:ND/> Do not log as this can lead to deadlocks during startup.
// LL_INFOS() << "thread_error - Waiting for an error" << LL_ENDL;
S32 counter = 0;
while (! (LLApp::isError() || LLApp::isStopped()))

View File

@ -1342,7 +1342,47 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask )
handled = TRUE;
}
break;
// <FS:Ansariel> FIRE-19933: Open context menu on context menu key press
case KEY_CONTEXT_MENU:
S32 count = mSelectedItems.size();
LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get();
if (( count > 0 && (hasVisibleChildren()) ) // show menu only if selected items are visible
&& menu )
{
if (mCallbackRegistrar)
{
mCallbackRegistrar->pushScope();
}
updateMenuOptions(menu);
menu->updateParent(LLMenuGL::sMenuContainer);
LLView* spawning_view = getParentByType<LLFolderViewScrollContainer>();
if (!spawning_view)
{
spawning_view = this;
}
LLMenuGL::showPopup(spawning_view, menu, spawning_view->getRect().getCenterX(), spawning_view->getRect().getCenterY());
if (mCallbackRegistrar)
{
mCallbackRegistrar->popScope();
}
}
else
{
if (menu && menu->getVisible())
{
menu->setVisible(FALSE);
}
setSelection(NULL, FALSE, TRUE);
}
handled = TRUE;
break;
}
// </FS:Ansariel>
return handled;
}

View File

@ -1969,6 +1969,10 @@ if (WINDOWS)
LIST(APPEND viewer_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/../tools/manifests/legacy.manifest)
endif (ADDRESS_SIZE EQUAL 64)
# </FS:Ansariel>
if (OPENAL)
LIST(APPEND viewer_LIBRARIES ${OPENAL_LIBRARIES})
endif (OPENAL)
endif (WINDOWS)
# Add the xui files. This is handy for searching for xui elements
@ -2264,6 +2268,13 @@ if (WINDOWS)
)
endif (FMODEX)
if (OPENAL)
list(APPEND COPY_INPUT_DEPENDENCIES
${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/OpenAL32.dll
${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/alut.dll
)
endif (OPENAL)
add_custom_command(
OUTPUT ${CMAKE_CFG_INTDIR}/copy_touched.bat
COMMAND ${PYTHON_EXECUTABLE}
@ -2284,6 +2295,7 @@ if (WINDOWS)
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--viewer_flavor=${ND_VIEWER_FLAVOR}
--fmodversion=${FMODVERSION}
--openal=${OPENAL}
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
stage_third_party_libs
@ -2347,6 +2359,7 @@ if (WINDOWS)
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--viewer_flavor=${ND_VIEWER_FLAVOR}
--fmodversion=${FMODVERSION}
--openal=${OPENAL}
DEPENDS
${VIEWER_BINARY_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
@ -2435,6 +2448,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}
${DBUSGLIB_LIBRARIES}
${OPENGL_LIBRARIES}
${FMODWRAPPER_LIBRARY} # must come after LLAudio
${OPENAL_LIBRARIES}
${GLOD_LIBRARIES}
${OPENGL_LIBRARIES}
${JSONCPP_LIBRARIES}
@ -2518,6 +2532,7 @@ endif (NOT ENABLE_MEDIA_PLUGINS)
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--viewer_flavor=${ND_VIEWER_FLAVOR}
--fmodversion=${FMODVERSION}
--openal=${OPENAL}
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
${COPY_INPUT_DEPENDENCIES}
@ -2543,6 +2558,7 @@ endif (NOT ENABLE_MEDIA_PLUGINS)
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--viewer_flavor=${ND_VIEWER_FLAVOR}
--fmodversion=${FMODVERSION}
--openal=${OPENAL}
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
${COPY_INPUT_DEPENDENCIES}
@ -2627,6 +2643,7 @@ if (DARWIN)
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--viewer_flavor=${ND_VIEWER_FLAVOR}
--fmodversion=${FMODVERSION}
--openal=${OPENAL}
DEPENDS
${VIEWER_BINARY_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
@ -2663,6 +2680,7 @@ if (DARWIN)
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--viewer_flavor=${ND_VIEWER_FLAVOR}
--fmodversion=${FMODVERSION}
--openal=${OPENAL}
${SIGNING_SETTING}
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py

View File

@ -63,6 +63,8 @@ NACLFloaterExploreSounds::~NACLFloaterExploreSounds()
}
}
mBlacklistAvatarNameCacheConnections.clear();
mLocalPlayingAudioSourceIDs.clear();
}
BOOL NACLFloaterExploreSounds::postBuild()
@ -71,6 +73,7 @@ BOOL NACLFloaterExploreSounds::postBuild()
getChild<LLButton>("look_at_btn")->setClickedCallback(boost::bind(&NACLFloaterExploreSounds::handleLookAt, this));
getChild<LLButton>("stop_btn")->setClickedCallback(boost::bind(&NACLFloaterExploreSounds::handleStop, this));
getChild<LLButton>("bl_btn")->setClickedCallback(boost::bind(&NACLFloaterExploreSounds::blacklistSound, this));
getChild<LLButton>("stop_locally_btn")->setClickedCallback(boost::bind(&NACLFloaterExploreSounds::handleStopLocally, this));
mHistoryScroller = getChild<LLScrollListCtrl>("sound_list");
mHistoryScroller->setCommitCallback(boost::bind(&NACLFloaterExploreSounds::handleSelection, this));
@ -296,6 +299,32 @@ BOOL NACLFloaterExploreSounds::tick()
mHistoryScroller->selectMultiple(selected_ids);
mHistoryScroller->setScrollPos(scroll_pos);
// Clean up stopped local audio source IDs
uuid_vec_t stopped_audio_src_ids;
uuid_vec_t::iterator audio_src_id_iter = mLocalPlayingAudioSourceIDs.begin();
uuid_vec_t::iterator audio_src_id_end = mLocalPlayingAudioSourceIDs.end();
for (; audio_src_id_iter != audio_src_id_end; ++audio_src_id_iter)
{
LLUUID audio_src_id = *audio_src_id_iter;
LLAudioSource* audio_source = gAudiop->findAudioSource(audio_src_id);
if (!audio_source || audio_source->isDone())
{
stopped_audio_src_ids.push_back(audio_src_id);
}
}
for (uuid_vec_t::iterator stopped_audio_src_ids_iter = stopped_audio_src_ids.begin();
stopped_audio_src_ids_iter != stopped_audio_src_ids.end(); ++stopped_audio_src_ids_iter)
{
uuid_vec_t::iterator find_iter = std::find(mLocalPlayingAudioSourceIDs.begin(), mLocalPlayingAudioSourceIDs.end(), *stopped_audio_src_ids_iter);
if (find_iter != mLocalPlayingAudioSourceIDs.end())
{
mLocalPlayingAudioSourceIDs.erase(find_iter);
}
}
childSetEnabled("stop_locally_btn", mLocalPlayingAudioSourceIDs.size() > 0);
return FALSE;
}
@ -313,9 +342,13 @@ void NACLFloaterExploreSounds::handlePlayLocally()
if(std::find(asset_list.begin(), asset_list.end(), item.mAssetID) == asset_list.end())
{
asset_list.push_back(item.mAssetID);
gAudiop->triggerSound(item.mAssetID, gAgent.getID(), 1.0f, LLAudioEngine::AUDIO_TYPE_UI);
LLUUID audio_source_id = LLUUID::generateNewID();
gAudiop->triggerSound(item.mAssetID, gAgent.getID(), 1.0f, LLAudioEngine::AUDIO_TYPE_UI, LLVector3d::zero, LLUUID::null, audio_source_id);
mLocalPlayingAudioSourceIDs.push_back(audio_source_id);
}
}
childSetEnabled("stop_locally_btn", mLocalPlayingAudioSourceIDs.size() > 0);
}
void NACLFloaterExploreSounds::handleLookAt()
@ -384,6 +417,23 @@ void NACLFloaterExploreSounds::handleStop()
}
}
void NACLFloaterExploreSounds::handleStopLocally()
{
uuid_vec_t::iterator audio_source_id_iter = mLocalPlayingAudioSourceIDs.begin();
uuid_vec_t::iterator audio_source_id_end = mLocalPlayingAudioSourceIDs.end();
for (; audio_source_id_iter != audio_source_id_end; ++audio_source_id_iter)
{
LLUUID audio_source_id = *audio_source_id_iter;
LLAudioSource* audio_source = gAudiop->findAudioSource(audio_source_id);
if (audio_source && !audio_source->isDone())
{
audio_source->play(LLUUID::null);
}
}
mLocalPlayingAudioSourceIDs.clear();
}
//add sound to blacklist
void NACLFloaterExploreSounds::blacklistSound()
{

View File

@ -29,6 +29,7 @@ private:
void handlePlayLocally();
void handleLookAt();
void handleStop();
void handleStopLocally();
void handleSelection();
void blacklistSound();
@ -41,6 +42,8 @@ private:
std::list<LLSoundHistoryItem> mLastHistory;
uuid_vec_t mLocalPlayingAudioSourceIDs;
typedef std::map<LLUUID, boost::signals2::connection> blacklist_avatar_name_cache_connection_map_t;
blacklist_avatar_name_cache_connection_map_t mBlacklistAvatarNameCacheConnections;

View File

@ -1323,6 +1323,11 @@ void FSAreaSearch::onCommitCheckboxRegex()
}
}
void FSAreaSearch::setFindOwnerText(std::string value)
{
mPanelFind->mOwnerLineEditor->setText(value);
}
//---------------------------------------------------------------------------
// List panel
@ -1632,6 +1637,25 @@ bool FSPanelAreaSearchList::onContextMenuItemClick(const LLSD& userdata)
std::string action = userdata.asString();
LL_DEBUGS("FSAreaSearch") << "Right click menu " << action << " was selected." << LL_ENDL;
if (action == "select_all")
{
std::vector<LLScrollListItem*> result_items = mResultList->getAllData();
std::for_each(result_items.begin(), result_items.end(), [](LLScrollListItem* item) { item->setSelected(TRUE); });
return true;
}
if (action == "clear_selection")
{
std::vector<LLScrollListItem*> selected_items = mResultList->getAllSelected();
std::for_each(selected_items.begin(), selected_items.end(), [](LLScrollListItem* item) { item->setSelected(FALSE); });
return true;
}
if (action == "filter_my_objects")
{
mFSAreaSearch->setFindOwnerText(gAgentUsername);
mFSAreaSearch->onButtonClickedSearch();
return true;
}
// NOTE that each action command MUST begin with a different letter.
char c = action.at(0);
switch(c)

View File

@ -126,6 +126,7 @@ public:
void onButtonClickedSearch();
void onCommitCheckboxRegex();
bool isSearchableObject (LLViewerObject* objectp, LLViewerRegion* our_region);
void setFindOwnerText(std::string value);
std::map<LLUUID, FSObjectProperties> mObjectDetails;

View File

@ -2212,6 +2212,12 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url)
return;
}
if (gAgent.getRegion() == NULL)
{
LL_WARNS("Messaging") << "Region null while attempting to load messages." << LL_ENDL;
return;
}
LL_INFOS("Messaging") << "Processing offline messages." << LL_ENDL;
std::vector<U8> data;

View File

@ -1232,6 +1232,8 @@ void LLPanelLogin::updateLoginButtons()
if (user_combo->getCurrentIndex() != -1)
{
remember_name->setValue(true);
LLCheckBoxCtrl* remember_pass = getChild<LLCheckBoxCtrl>("remember_password");
remember_pass->setEnabled(TRUE);
} // Note: might be good idea to do "else remember_name->setValue(mRememberedState)" but it might behave 'weird' to user
}
}
@ -1241,6 +1243,8 @@ void LLPanelLogin::populateUserList(LLPointer<LLCredential> credential)
LLComboBox* user_combo = getChild<LLComboBox>("username_combo");
user_combo->removeall();
user_combo->clear();
user_combo->setValue(std::string());
getChild<LLUICtrl>("password_edit")->setValue(std::string());
mUsernameLength = 0;
mPasswordLength = 0;
@ -1263,9 +1267,7 @@ void LLPanelLogin::populateUserList(LLPointer<LLCredential> credential)
if (credential.isNull() || !user_combo->setSelectedByValue(LLSD(credential->userID()), true))
{
// selection failed, just deselect whatever might be selected
user_combo->setValue(std::string());
getChild<LLUICtrl>("password_edit")->setValue(std::string());
// selection failed, fields will be mepty
updateLoginButtons();
}
else
@ -1280,7 +1282,8 @@ void LLPanelLogin::populateUserList(LLPointer<LLCredential> credential)
const LLSD &ident = credential->getIdentifier();
if (ident.isMap() && ident.has("type"))
{
user_combo->add(LLPanelLogin::getUserName(credential), credential->userID(), ADD_BOTTOM, TRUE);
// this llsd might hold invalid credencial (failed login), so
// do not add to the list, just set field.
setFields(credential);
}
else

View File

@ -1274,8 +1274,9 @@ void LLSecAPIBasicHandler::init()
"bin_conf.dat");
mLegacyPasswordPath = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "password.dat");
mProtectedDataFilename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
"bin_conf.dat");
// <FS:Testy> Duplicate line
//mProtectedDataFilename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
// "bin_conf.dat");
std::string store_file = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
"CA.pem");

View File

@ -83,14 +83,11 @@
#include "llcallstack.h"
#include "llsettingsdaycycle.h"
// <FS:CR> Opensim
#include "llviewerparcelmgr.h" //Aurora Sim
#ifdef OPENSIM
#include "llviewernetwork.h"
#endif
// </FS:CR>
#include "llviewermenu.h"
// Firestorm includes
#include "lfsimfeaturehandler.h"
#include "llviewermenu.h"
#include "llviewernetwork.h"
#include "llviewerparcelmgr.h" //Aurora Sim
#ifdef LL_WINDOWS
#pragma warning(disable:4355)

View File

@ -961,9 +961,8 @@ BOOL LLVOAvatar::hasGray() const
S32 LLVOAvatar::getRezzedStatus() const
{
if (getIsCloud()) return 0;
bool textured = isFullyTextured();
if (textured && allBakedTexturesCompletelyDownloaded()) return 3;
if (textured) return 2;
if (isFullyTextured() && allBakedTexturesCompletelyDownloaded()) return 3;
if (isFullyTextured()) return 2;
llassert(hasGray());
return 1; // gray
}
@ -8551,13 +8550,14 @@ bool LLVOAvatar::getIsCloud() const
);
}
void LLVOAvatar::updateRezzedStatusTimers(S32 rez_status)
void LLVOAvatar::updateRezzedStatusTimers()
{
// State machine for rezzed status. Statuses are -1 on startup, 0
// = cloud, 1 = gray, 2 = downloading, 3 = full.
// Purpose is to collect time data for each it takes avatar to reach
// various loading landmarks: gray, textured (partial), textured fully.
S32 rez_status = getRezzedStatus();
if (rez_status != mLastRezzedStatus)
{
LL_DEBUGS("Avatar") << avString() << "rez state change: " << mLastRezzedStatus << " -> " << rez_status << LL_ENDL;
@ -8729,13 +8729,8 @@ void LLVOAvatar::logMetricsTimerRecord(const std::string& phase_name, F32 elapse
// returns true if the value has changed.
BOOL LLVOAvatar::updateIsFullyLoaded()
{
S32 rez_status = getRezzedStatus();
bool loading = getIsCloud();
if (mFirstFullyVisible && !mIsControlAvatar && rez_status < 3)
{
loading = ((rez_status < 2) || !isFullyBaked());
}
updateRezzedStatusTimers(rez_status);
const bool loading = getIsCloud();
updateRezzedStatusTimers();
updateRuthTimer(loading);
return processFullyLoadedChange(loading);
}
@ -8771,22 +8766,13 @@ void LLVOAvatar::updateRuthTimer(bool loading)
BOOL LLVOAvatar::processFullyLoadedChange(bool loading)
{
// We wait a little bit before giving the 'all clear', to let things to
// settle down (models to snap into place, textures to get first packets)
const F32 LOADED_DELAY = 1.f;
const F32 FIRST_USE_DELAY = 3.f;
// we wait a little bit before giving the all clear,
// to let textures settle down
const F32 PAUSE = 1.f;
if (loading)
mFullyLoadedTimer.reset();
if (mFirstFullyVisible)
{
mFullyLoaded = (mFullyLoadedTimer.getElapsedTimeF32() > FIRST_USE_DELAY);
}
else
{
mFullyLoaded = (mFullyLoadedTimer.getElapsedTimeF32() > LOADED_DELAY);
}
mFullyLoaded = (mFullyLoadedTimer.getElapsedTimeF32() > PAUSE);
if (!mPreviousFullyLoaded && !loading && mFullyLoaded)
{
@ -11453,7 +11439,7 @@ void LLVOAvatar::calculateUpdateRenderComplexity()
// <FS:Ansariel> Disable useless diagnostics
//static std::set<LLUUID> all_textures;
if (mVisualComplexityStale)
if (mVisualComplexityStale)
{
// <FS:Ansariel> Show per-item complexity in COF

View File

@ -364,7 +364,7 @@ public:
BOOL isFullyTextured() const;
BOOL hasGray() const;
S32 getRezzedStatus() const; // 0 = cloud, 1 = gray, 2 = textured, 3 = textured and fully downloaded.
void updateRezzedStatusTimers(S32 status);
void updateRezzedStatusTimers();
S32 getNumBakes() const;//<FS:Beq/> BOM bake limits
// U8 getNumTEs() const override;//<FS:Beq/> BOM bake limits

View File

@ -82,9 +82,7 @@
// <FS:Ansariel> [Legacy Bake]
#ifdef OPENSIM
#include "llviewernetwork.h"
#endif
// </FS:Ansariel> [Legacy Bake]
#if LL_MSVC

View File

@ -32,8 +32,9 @@
<columns label="Eigentümer" name="owner"/>
<columns label="Sounds" name="sound"/>
</scroll_list>
<button label="Lokal abspielen" name="play_locally_btn" width="130"/>
<button label="Fokussieren" name="look_at_btn" left_delta="135"/>
<button label="Lokal abspielen" name="play_locally_btn" />
<button label="Lokal stoppen" name="stop_locally_btn" />
<button label="Fokussieren" name="look_at_btn" />
<button label="Stop" name="stop_btn"/>
<button label="Blacklist" name="bl_btn"/>
</floater>

View File

@ -51,11 +51,10 @@ Collada DOM Copyright 2006 Sony Computer Entertainment Inc.
cURL Copyright (C) 1996-2010, Daniel Stenberg (daniel@haxx.se).
DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
FMOD Sound System Copyright (C) Firelight Technologies Pty, Ltd., 1994-2013
FMOD Sound System Copyright (C) Firelight Technologies Pty, Ltd., 1994-2020
FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm und Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul.
GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University sowie David Luebke, Brenden Schubert, University of Virginia.
google-perftools Copyright (c) 2005, Google Inc.
Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW).

View File

@ -11,4 +11,7 @@
<menu_item_call label="Löschen" name="delete_object"/>
<menu_item_call label="Zur Blacklist hinzufügen" name="blacklist_object"/>
<menu_item_call label="Objekt kaufen" name="object_buy"/>
<menu_item_call label="Eigene Objekte filtern" name="filter_my_objects" />
<menu_item_call label="Alles auswählen" name="select_all" />
<menu_item_call label="Auswahl aufheben" name="clear_selection" />
</context_menu>

View File

@ -47,6 +47,7 @@
<columns dynamicwidth="false" width="0" label="Sound" name="sound" />
</scroll_list>
<button bottom_delta="25" follows="left|bottom" height="20" label="Play Locally" name="play_locally_btn" left="10" width="95" enabled="false"/>
<button bottom_delta="0" follows="left|bottom" height="20" label="Stop Locally" name="stop_locally_btn" left_delta="100" width="95" enabled="false"/>
<button bottom_delta="0" follows="left|bottom" height="20" label="Look At" name="look_at_btn" left_delta="100" width="95" enabled="false"/>
<button bottom_delta="0" follows="left|bottom" height="20" label="Stop" name="stop_btn" right="-10" width="95" enabled="false"/>

View File

@ -245,11 +245,10 @@ Collada DOM Copyright 2006 Sony Computer Entertainment Inc.
cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se)
DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
FMOD Sound System, Copyright (C) Firelight Technologies Pty, Ltd., 1994-2013
FMOD Sound System, Copyright (C) Firelight Technologies Pty, Ltd., 1994-2020
FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul.
GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University and David Luebke, Brenden Schubert, University of Virginia.
google-perftools Copyright (c) 2005, Google Inc.
Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)

View File

@ -107,4 +107,32 @@
function="AreaSearch.Enable"
parameter="one"/>
</menu_item_call>
<menu_item_separator
layout="topleft"/>
<menu_item_call
label="Filter My Objects"
layout="topleft"
name="filter_my_objects">
<menu_item_call.on_click
function="AreaSearch.Action"
parameter="filter_my_objects"/>
</menu_item_call>
<menu_item_separator
layout="topleft"/>
<menu_item_call
label="Select All"
layout="topleft"
name="select_all">
<menu_item_call.on_click
function="AreaSearch.Action"
parameter="select_all"/>
</menu_item_call>
<menu_item_call
label="Clear Selection"
layout="topleft"
name="clear_selection">
<menu_item_call.on_click
function="AreaSearch.Action"
parameter="clear_selection"/>
</menu_item_call>
</context_menu>

View File

@ -586,7 +586,7 @@
name="autorespond_nf_response_label"
top_pad="5"
width="450">
Automatic response to non-friends when in AUTOREPONSE TO NON-FRIENDS mode:
Automatic response to non-friends when in AUTORESPONSE TO NON-FRIENDS mode:
</text>
<text_editor
control_name="FSAutorespondNonFriendsResponse"

View File

@ -90,11 +90,10 @@ Collada DOM Copyright 2006 Sony Computer Entertainment Inc.
cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se)
DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
FMOD Sound System, Copyright (C) Firelight Technologies Pty, Ltd., 1994-2013
FMOD Sound System, Copyright (C) Firelight Technologies Pty, Ltd., 1994-2020
FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, y Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul.
GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University and David Luebke, Brenden Schubert, University of Virginia.
google-perftools Copyright (c) 2005, Google Inc.
Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)

View File

@ -71,11 +71,10 @@ Collada DOM Copyright 2006 Sony Computer Entertainment Inc.
cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se)
DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
FMOD Sound System Copyright (C) Firelight Technologies Pty, Ltd., 1994-2013
FMOD Sound System Copyright (C) Firelight Technologies Pty, Ltd., 1994-2020
FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul.
GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University and David Luebke, Brenden Schubert, University of Virginia.
google-perftools Copyright (c) 2005, Google Inc.
Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)

View File

@ -17,10 +17,10 @@ Collada DOM Copyright 2006 Sony Computer Entertainment Inc.
cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se)
DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
FMOD Sound System Copyright (C) Firelight Technologies Pty, Ltd., 1994-2020
FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul.
GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University and David Luebke, Brenden Schubert, University of Virginia.
google-perftools Copyright (c) 2005, Google Inc.
Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
jpeglib Copyright (C) 1991-1998, Thomas G. Lane.

View File

@ -24,6 +24,7 @@
<columns label="Dźwięk" name="sound" />
</scroll_list>
<button label="Odtwarzaj" name="play_locally_btn" />
<button label="Zatrzymaj" name="stop_locally_btn" />
<button label="Lokalizuj" name="look_at_btn" />
<button label="Czarna lista" name="bl_btn" />
</floater>

View File

@ -11,4 +11,7 @@
<menu_item_call label="Usuń" name="delete_object" />
<menu_item_call label="Na czarną listę" name="blacklist_object" />
<menu_item_call label="Kup obiekt" name="object_buy" />
<menu_item_call label="Pokaż moje obiekty" name="filter_my_objects" />
<menu_item_call label="Zaznacz wszystko" name="select_all" />
<menu_item_call label="Wyczyść zaznaczenie" name="clear_selection" />
</context_menu>

View File

@ -71,11 +71,10 @@ Collada DOM Copyright 2006 Sony Computer Entertainment Inc.
cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se)
DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
FMOD Sound System Copyright (C) Firelight Technologies Pty, Ltd., 1994-2013
FMOD Sound System Copyright (C) Firelight Technologies Pty, Ltd., 1994-2020
FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul.
GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University e David Luebke, Brenden Schubert, University of Virginia.
google-perftools Copyright (c) 2005, Google Inc.
Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)

View File

@ -64,11 +64,10 @@ Collada DOM Telif Hakkı 2006 Sony Computer Entertainment Inc.
cURL Telif Hakkı (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se)
DBus/dbus-glib Telif Hakkı (C) 2002, 2003 CodeFactory AB / Telif Hakkı (C) 2003, 2004 Red Hat, Inc.
expat Telif Hakkı (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
FMOD Sound System Hakkı (C) Firelight Technologies Pty, Ltd., 1994-2013
FMOD Sound System Hakkı (C) Firelight Technologies Pty, Ltd., 1994-2020
FreeType Telif Hakkı (C) 1996-2002, 2006 David Turner, Robert Wilhelm ve Werner Lemberg.
GL Telif Hakkı (C) 1999-2004 Brian Paul.
GLOD Telif Hakkı (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University ve David Luebke, Brenden Schubert, University of Virginia.
google-perftools Telif Hakkı (c) 2005, Google Inc.
Havok.com(TM) Telif Hakkı (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Telif Hakkı (C) 2001, David Taubman, The University of New South Wales (UNSW)

View File

@ -58,11 +58,10 @@ Collada DOM Copyright 2006 Sony Computer Entertainment Inc.
cURL Copyright (C) 1996-2010, Daniel Stenberg, (daniel@haxx.se)
DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
FMOD Sound System Copyright (C) Firelight Technologies Pty, Ltd., 1994-2013
FMOD Sound System Copyright (C) Firelight Technologies Pty, Ltd., 1994-2020
FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul.
GLOD Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University and David Luebke, Brenden Schubert, University of Virginia.
google-perftools Copyright (c) 2005, Google Inc.
Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)

View File

@ -589,6 +589,11 @@ class WindowsManifest(ViewerManifest):
else:
self.path("fmodex.dll")
# Get openal dll
if self.args.get('openal') == 'ON':
self.path("OpenAL32.dll")
self.path("alut.dll")
# For textures
self.path("openjpeg.dll")
@ -2252,6 +2257,7 @@ if __name__ == "__main__":
extra_arguments = [
dict(name='bugsplat', description="""BugSplat database to which to post crashes,
if BugSplat crash reporting is desired""", default=''),
dict(name='openal', description="""Indication openal libraries are needed""", default='OFF')
]
try:
main(extra=extra_arguments)

View File

@ -35,6 +35,7 @@ WANTS_VERSION=$FALSE
WANTS_KDU=$FALSE
WANTS_FMODSTUDIO=$FALSE
WANTS_FMODEX=$FALSE
WANTS_OPENAL=$FALSE
WANTS_OPENSIM=$TRUE
WANTS_SINGLEGRID=$FALSE
WANTS_AVX=$FALSE
@ -72,6 +73,7 @@ showUsage()
echo " --no-package : Build without installer (Overrides --package)"
echo " --fmodstudio : Build with FMOD Studio"
echo " --fmodex : Build with FMOD Ex"
echo " --openal : Build with OpenAL"
echo " --opensim : Build with OpenSim support (Disables Havok features)"
echo " --no-opensim : Build without OpenSim support (Overrides --opensim)"
echo " --singlegrid <login_uri> : Build for single grid usage (Requires --opensim)"
@ -91,7 +93,7 @@ getArgs()
# $* = the options passed in from main
{
if [ $# -gt 0 ]; then
while getoptex "clean build config version package no-package fmodstudio fmodex ninja jobs: platform: kdu opensim no-opensim singlegrid: avx avx2 crashreporting testbuild: help chan: btype:" "$@" ; do
while getoptex "clean build config version package no-package fmodstudio fmodex openal ninja jobs: platform: kdu opensim no-opensim singlegrid: avx avx2 crashreporting testbuild: help chan: btype:" "$@" ; do
#ensure options are valid
if [ -z "$OPTOPT" ] ; then
@ -111,6 +113,7 @@ getArgs()
kdu) WANTS_KDU=$TRUE;;
fmodstudio) WANTS_FMODSTUDIO=$TRUE;;
fmodex) WANTS_FMODEX=$TRUE;;
openal) WANTS_OPENAL=$TRUE;;
opensim) WANTS_OPENSIM=$TRUE;;
no-opensim) WANTS_OPENSIM=$FALSE;;
singlegrid) WANTS_SINGLEGRID=$TRUE
@ -294,10 +297,11 @@ if [ ! -d `dirname "$LOG"` ] ; then
fi
echo -e "configure_firestorm.sh" > $LOG
echo -e " PLATFORM: '$PLATFORM'" | tee -a $LOG
echo -e " PLATFORM: $PLATFORM" | tee -a $LOG
echo -e " KDU: `b2a $WANTS_KDU`" | tee -a $LOG
echo -e " FMODSTUDIO: `b2a $WANTS_FMODSTUDIO`" | tee -a $LOG
echo -e " FMODEX: `b2a $WANTS_FMODEX`" | tee -a $LOG
echo -e " OPENAL: `b2a $WANTS_OPENAL`" | tee -a $LOG
echo -e " OPENSIM: `b2a $WANTS_OPENSIM`" | tee -a $LOG
if [ $WANTS_SINGLEGRID -eq $TRUE ] ; then
echo -e " SINGLEGRID: `b2a $WANTS_SINGLEGRID` ($SINGLEGRID_URI)" | tee -a $LOG
@ -405,7 +409,7 @@ if [ \( $WANTS_VERSION -eq $TRUE \) -o \( $WANTS_CONFIG -eq $TRUE \) ] ; then
majorVer=`cat indra/newview/VIEWER_VERSION.txt | cut -d "." -f 1`
minorVer=`cat indra/newview/VIEWER_VERSION.txt | cut -d "." -f 2`
patchVer=`cat indra/newview/VIEWER_VERSION.txt | cut -d "." -f 3`
gitHash=`git describe --always`
gitHash=`git describe --always --exclude '*'`
echo "Channel : ${CHANNEL}"
echo "Version : ${majorVer}.${minorVer}.${patchVer}.${buildVer} [${gitHash}]"
GITHASH=-DVIEWER_VERSION_GITHASH=\"${gitHash}\"
@ -430,6 +434,11 @@ if [ $WANTS_CONFIG -eq $TRUE ] ; then
else
FMODEX="-DFMODEX:BOOL=OFF"
fi
if [ $WANTS_OPENAL -eq $TRUE ] ; then
OPENAL="-DOPENAL:BOOL=ON"
else
OPENAL="-DOPENAL:BOOL=OFF"
fi
if [ $WANTS_OPENSIM -eq $TRUE ] ; then
OPENSIM="-DOPENSIM:BOOL=ON"
else
@ -497,6 +506,7 @@ if [ $WANTS_CONFIG -eq $TRUE ] ; then
if [ $PLATFORM == "darwin" ] ; then
TARGET="Xcode"
elif [ \( $PLATFORM == "linux" \) ] ; then
OPENAL="-DOPENAL:BOOL=ON"
if [ $WANTS_NINJA -eq $TRUE ] ; then
TARGET="Ninja"
else
@ -507,7 +517,8 @@ if [ $WANTS_CONFIG -eq $TRUE ] ; then
UNATTENDED="-DUNATTENDED=ON"
fi
cmake -G "$TARGET" ../indra $CHANNEL ${GITHASH} $FMODSTUDIO $FMODEX $KDU $OPENSIM $SINGLEGRID $AVX_OPTIMIZATION $AVX2_OPTIMIZATION $TESTBUILD $PACKAGE $UNATTENDED -DLL_TESTS:BOOL=OFF -DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE -DCMAKE_BUILD_TYPE:STRING=$BTYPE \
cmake -G "$TARGET" ../indra $CHANNEL ${GITHASH} $FMODSTUDIO $FMODEX $OPENAL $KDU $OPENSIM $SINGLEGRID $AVX_OPTIMIZATION $AVX2_OPTIMIZATION $TESTBUILD $PACKAGE \
$UNATTENDED -DLL_TESTS:BOOL=OFF -DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE -DCMAKE_BUILD_TYPE:STRING=$BTYPE \
$CRASH_REPORTING -DVIEWER_SYMBOL_FILE:STRING="${VIEWER_SYMBOL_FILE:-}" -DROOT_PROJECT_NAME:STRING=Firestorm $LL_ARGS_PASSTHRU | tee $LOG
if [ $PLATFORM == "windows" ] ; then