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(ADDRESS_SIZE EQUAL 32)
endif (FMODEX) endif (FMODEX)
if (OPENAL)
set(release_files ${release_files} OpenAL32.dll alut.dll)
endif (OPENAL)
#******************************* #*******************************
# Copy MS C runtime dlls, required for packaging. # Copy MS C runtime dlls, required for packaging.
# *TODO - Adapt this to support VC9 # *TODO - Adapt this to support VC9

View File

@ -161,7 +161,7 @@ BASE_ARGUMENTS=[
dict(name='viewer_flavor', dict(name='viewer_flavor',
description='Type of viewer build. Can be oss or hvk.', default="oss"), description='Type of viewer build. Can be oss or hvk.', default="oss"),
dict(name='fmodversion', 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=""): def usage(arguments, srctree=""):

View File

@ -78,6 +78,10 @@ if (FMODEX)
endif (FMODEX) endif (FMODEX)
if (OPENAL) if (OPENAL)
include_directories(
${OPENAL_LIBRARIES}
)
list(APPEND llaudio_SOURCE_FILES list(APPEND llaudio_SOURCE_FILES
llaudioengine_openal.cpp llaudioengine_openal.cpp
lllistener_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, 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. // Create a new source (since this can't be associated with an existing source.
//LL_INFOS() << "Localized: " << audio_uuid << LL_ENDL; //LL_INFOS() << "Localized: " << audio_uuid << LL_ENDL;
@ -843,8 +845,14 @@ void LLAudioEngine::triggerSound(const LLUUID &audio_uuid, const LLUUID& owner_i
return; return;
} }
LLUUID source_id; // <FS:Testy> Only generate the id if one wasn't passed to the method
source_id.generate(); //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); LLAudioSource *asp = new LLAudioSource(source_id, owner_id, gain, type, source_object, true);
addAudioSource(asp); addAudioSource(asp);

View File

@ -150,7 +150,11 @@ public:
void triggerSound(const LLUUID &sound_id, const LLUUID& owner_id, const F32 gain, void triggerSound(const LLUUID &sound_id, const LLUUID& owner_id, const F32 gain,
const S32 type = LLAudioEngine::AUDIO_TYPE_NONE, const S32 type = LLAudioEngine::AUDIO_TYPE_NONE,
const LLVector3d &pos_global = LLVector3d::zero, 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 // NaCl End
void triggerSound(SoundData& soundData); void triggerSound(SoundData& soundData);

View File

@ -106,7 +106,9 @@ void LLErrorThread::run()
// This thread sits and waits for the sole purpose // This thread sits and waits for the sole purpose
// of waiting for the signal/exception handlers to flag the // of waiting for the signal/exception handlers to flag the
// application state as APP_STATUS_ERROR. // 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; S32 counter = 0;
while (! (LLApp::isError() || LLApp::isStopped())) while (! (LLApp::isError() || LLApp::isStopped()))

View File

@ -1342,7 +1342,47 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask )
handled = TRUE; handled = TRUE;
} }
break; 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; return handled;
} }

View File

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

View File

@ -63,6 +63,8 @@ NACLFloaterExploreSounds::~NACLFloaterExploreSounds()
} }
} }
mBlacklistAvatarNameCacheConnections.clear(); mBlacklistAvatarNameCacheConnections.clear();
mLocalPlayingAudioSourceIDs.clear();
} }
BOOL NACLFloaterExploreSounds::postBuild() BOOL NACLFloaterExploreSounds::postBuild()
@ -71,6 +73,7 @@ BOOL NACLFloaterExploreSounds::postBuild()
getChild<LLButton>("look_at_btn")->setClickedCallback(boost::bind(&NACLFloaterExploreSounds::handleLookAt, this)); getChild<LLButton>("look_at_btn")->setClickedCallback(boost::bind(&NACLFloaterExploreSounds::handleLookAt, this));
getChild<LLButton>("stop_btn")->setClickedCallback(boost::bind(&NACLFloaterExploreSounds::handleStop, this)); getChild<LLButton>("stop_btn")->setClickedCallback(boost::bind(&NACLFloaterExploreSounds::handleStop, this));
getChild<LLButton>("bl_btn")->setClickedCallback(boost::bind(&NACLFloaterExploreSounds::blacklistSound, 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 = getChild<LLScrollListCtrl>("sound_list");
mHistoryScroller->setCommitCallback(boost::bind(&NACLFloaterExploreSounds::handleSelection, this)); mHistoryScroller->setCommitCallback(boost::bind(&NACLFloaterExploreSounds::handleSelection, this));
@ -296,6 +299,32 @@ BOOL NACLFloaterExploreSounds::tick()
mHistoryScroller->selectMultiple(selected_ids); mHistoryScroller->selectMultiple(selected_ids);
mHistoryScroller->setScrollPos(scroll_pos); 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; return FALSE;
} }
@ -313,9 +342,13 @@ void NACLFloaterExploreSounds::handlePlayLocally()
if(std::find(asset_list.begin(), asset_list.end(), item.mAssetID) == asset_list.end()) if(std::find(asset_list.begin(), asset_list.end(), item.mAssetID) == asset_list.end())
{ {
asset_list.push_back(item.mAssetID); 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() 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 //add sound to blacklist
void NACLFloaterExploreSounds::blacklistSound() void NACLFloaterExploreSounds::blacklistSound()
{ {

View File

@ -29,6 +29,7 @@ private:
void handlePlayLocally(); void handlePlayLocally();
void handleLookAt(); void handleLookAt();
void handleStop(); void handleStop();
void handleStopLocally();
void handleSelection(); void handleSelection();
void blacklistSound(); void blacklistSound();
@ -41,6 +42,8 @@ private:
std::list<LLSoundHistoryItem> mLastHistory; std::list<LLSoundHistoryItem> mLastHistory;
uuid_vec_t mLocalPlayingAudioSourceIDs;
typedef std::map<LLUUID, boost::signals2::connection> blacklist_avatar_name_cache_connection_map_t; typedef std::map<LLUUID, boost::signals2::connection> blacklist_avatar_name_cache_connection_map_t;
blacklist_avatar_name_cache_connection_map_t mBlacklistAvatarNameCacheConnections; 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 // List panel
@ -1632,6 +1637,25 @@ bool FSPanelAreaSearchList::onContextMenuItemClick(const LLSD& userdata)
std::string action = userdata.asString(); std::string action = userdata.asString();
LL_DEBUGS("FSAreaSearch") << "Right click menu " << action << " was selected." << LL_ENDL; 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. // NOTE that each action command MUST begin with a different letter.
char c = action.at(0); char c = action.at(0);
switch(c) switch(c)

View File

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

View File

@ -2212,6 +2212,12 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url)
return; 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; LL_INFOS("Messaging") << "Processing offline messages." << LL_ENDL;
std::vector<U8> data; std::vector<U8> data;

View File

@ -1232,6 +1232,8 @@ void LLPanelLogin::updateLoginButtons()
if (user_combo->getCurrentIndex() != -1) if (user_combo->getCurrentIndex() != -1)
{ {
remember_name->setValue(true); 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 } // 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"); LLComboBox* user_combo = getChild<LLComboBox>("username_combo");
user_combo->removeall(); user_combo->removeall();
user_combo->clear(); user_combo->clear();
user_combo->setValue(std::string());
getChild<LLUICtrl>("password_edit")->setValue(std::string());
mUsernameLength = 0; mUsernameLength = 0;
mPasswordLength = 0; mPasswordLength = 0;
@ -1263,9 +1267,7 @@ void LLPanelLogin::populateUserList(LLPointer<LLCredential> credential)
if (credential.isNull() || !user_combo->setSelectedByValue(LLSD(credential->userID()), true)) if (credential.isNull() || !user_combo->setSelectedByValue(LLSD(credential->userID()), true))
{ {
// selection failed, just deselect whatever might be selected // selection failed, fields will be mepty
user_combo->setValue(std::string());
getChild<LLUICtrl>("password_edit")->setValue(std::string());
updateLoginButtons(); updateLoginButtons();
} }
else else
@ -1280,7 +1282,8 @@ void LLPanelLogin::populateUserList(LLPointer<LLCredential> credential)
const LLSD &ident = credential->getIdentifier(); const LLSD &ident = credential->getIdentifier();
if (ident.isMap() && ident.has("type")) 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); setFields(credential);
} }
else else

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -32,8 +32,9 @@
<columns label="Eigentümer" name="owner"/> <columns label="Eigentümer" name="owner"/>
<columns label="Sounds" name="sound"/> <columns label="Sounds" name="sound"/>
</scroll_list> </scroll_list>
<button label="Lokal abspielen" name="play_locally_btn" width="130"/> <button label="Lokal abspielen" name="play_locally_btn" />
<button label="Fokussieren" name="look_at_btn" left_delta="135"/> <button label="Lokal stoppen" name="stop_locally_btn" />
<button label="Fokussieren" name="look_at_btn" />
<button label="Stop" name="stop_btn"/> <button label="Stop" name="stop_btn"/>
<button label="Blacklist" name="bl_btn"/> <button label="Blacklist" name="bl_btn"/>
</floater> </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). 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. 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. 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. FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm und Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul. 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. 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. Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com) HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW). 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="Löschen" name="delete_object"/>
<menu_item_call label="Zur Blacklist hinzufügen" name="blacklist_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="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> </context_menu>

View File

@ -47,6 +47,7 @@
<columns dynamicwidth="false" width="0" label="Sound" name="sound" /> <columns dynamicwidth="false" width="0" label="Sound" name="sound" />
</scroll_list> </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="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="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"/> <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) 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. 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. 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. FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul. 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. 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. Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com) HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)

View File

@ -107,4 +107,32 @@
function="AreaSearch.Enable" function="AreaSearch.Enable"
parameter="one"/> parameter="one"/>
</menu_item_call> </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> </context_menu>

View File

@ -586,7 +586,7 @@
name="autorespond_nf_response_label" name="autorespond_nf_response_label"
top_pad="5" top_pad="5"
width="450"> 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>
<text_editor <text_editor
control_name="FSAutorespondNonFriendsResponse" 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) 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. 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. 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. FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, y Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul. 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. 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. Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com) HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) 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) 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. 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. 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. FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul. 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. 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. Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com) HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) 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) 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. 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. 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. FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul. 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. 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. Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
jpeglib Copyright (C) 1991-1998, Thomas G. Lane. jpeglib Copyright (C) 1991-1998, Thomas G. Lane.

View File

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

View File

@ -11,4 +11,7 @@
<menu_item_call label="Usuń" name="delete_object" /> <menu_item_call label="Usuń" name="delete_object" />
<menu_item_call label="Na czarną listę" name="blacklist_object" /> <menu_item_call label="Na czarną listę" name="blacklist_object" />
<menu_item_call label="Kup obiekt" name="object_buy" /> <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> </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) 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. 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. 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. FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul. 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. 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. Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com) HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) 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) 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. 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. 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. FreeType Telif Hakkı (C) 1996-2002, 2006 David Turner, Robert Wilhelm ve Werner Lemberg.
GL Telif Hakkı (C) 1999-2004 Brian Paul. 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. 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. Havok.com(TM) Telif Hakkı (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com) HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Telif Hakkı (C) 2001, David Taubman, The University of New South Wales (UNSW) 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) 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. 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. 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. FreeType Copyright (C) 1996-2002, 2006 David Turner, Robert Wilhelm, and Werner Lemberg.
GL Copyright (C) 1999-2004 Brian Paul. 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. 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. Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com) HACD Copyright (C) 2011, Khaled Mamou (kmamou@gmail.com)
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)

View File

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

View File

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