diff --git a/indra/llaudio/CMakeLists.txt b/indra/llaudio/CMakeLists.txt index 44edde114..13cb932b6 100644 --- a/indra/llaudio/CMakeLists.txt +++ b/indra/llaudio/CMakeLists.txt @@ -5,27 +5,25 @@ project(llaudio) include(00-Common) include(Audio) include(LLAudio) -if(FMODEX) - include(FMODEX) - if(FMODEX) - set(FMOD OFF) - endif(FMODEX) -endif(FMODEX) -if(NOT FMODEX) - include(FMOD) -endif(NOT FMODEX) +if (FMODEX) + include(FMODEX) + set(FMOD OFF) +endif (FMODEX) +if (NOT FMODEX) + include(FMOD) +endif (NOT FMODEX) include(OPENAL) include(LLCommon) include(LLMath) include(LLMessage) include(LLVFS) -if(FMODEX) - include_directories(${FMODEX_INCLUDE_DIR}) +if (FMODEX) + include_directories(${FMODEX_INCLUDE_DIR}) endif(FMODEX) if(FMOD) - include_directories(${FMOD_INCLUDE_DIR}) -endif(FMOD) + include_directories(${FMOD_INCLUDE_DIR}) +endif (FMOD) include_directories( ${LLAUDIO_INCLUDE_DIRS} diff --git a/indra/llaudio/llaudiodecodemgr.cpp b/indra/llaudio/llaudiodecodemgr.cpp index 4350152ac..3af703d26 100644 --- a/indra/llaudio/llaudiodecodemgr.cpp +++ b/indra/llaudio/llaudiodecodemgr.cpp @@ -242,8 +242,8 @@ BOOL LLVorbisDecodeState::initDecode() llwarns << "No default bitstream found" << llendl; } // - // This magic value is equivilent to 150MiB of data. - // Prevents griffers from utilizin a huge xbox sound the size of god to instafry the viewer + // This magic value is equivalent to 150MiB of data. + // Prevents griefers from utilizing a huge xbox sound the size of god to instafry the viewer if(size_guess >= 157286400) { llwarns << "Bad sound caught by zmagic" << llendl; @@ -616,7 +616,8 @@ void LLAudioDecodeMgr::Impl::processQueue(const F32 num_secs) llwarns << mCurrentDecodep->getUUID() << " has invalid vorbis data, aborting decode" << llendl; mCurrentDecodep->flushBadFile(); LLAudioData *adp = gAudiop->getAudioData(mCurrentDecodep->getUUID()); - adp->setHasValidData(FALSE); + adp->setHasValidData(false); + adp->setHasCompletedDecode(true); mCurrentDecodep = NULL; done = TRUE; } @@ -631,11 +632,16 @@ void LLAudioDecodeMgr::Impl::processQueue(const F32 num_secs) if (mCurrentDecodep->finishDecode()) { // We finished! - if (mCurrentDecodep->isValid() && mCurrentDecodep->isDone()) + LLAudioData *adp = gAudiop->getAudioData(mCurrentDecodep->getUUID()); + if (!adp) { - LLAudioData *adp = gAudiop->getAudioData(mCurrentDecodep->getUUID()); - adp->setHasDecodedData(TRUE); - adp->setHasValidData(TRUE); + llwarns << "Missing LLAudioData for decode of " << mCurrentDecodep->getUUID() << llendl; + } + else if (mCurrentDecodep->isValid() && mCurrentDecodep->isDone()) + { + adp->setHasCompletedDecode(true); + adp->setHasDecodedData(true); + adp->setHasValidData(true); // At this point, we could see if anyone needs this sound immediately, but // I'm not sure that there's a reason to - we need to poll all of the playing @@ -644,7 +650,8 @@ void LLAudioDecodeMgr::Impl::processQueue(const F32 num_secs) } else { - llinfos << "Vorbis decode failed!!!" << llendl; + adp->setHasCompletedDecode(true); + llinfos << "Vorbis decode failed for " << mCurrentDecodep->getUUID() << llendl; } mCurrentDecodep = NULL; } @@ -712,15 +719,18 @@ BOOL LLAudioDecodeMgr::addDecodeRequest(const LLUUID &uuid) if (gAudiop->hasDecodedFile(uuid)) { // Already have a decoded version, don't need to decode it. + //llinfos << "addDecodeRequest for " << uuid << " has decoded file already" << llendl; return TRUE; } if (gAssetStorage->hasLocalAsset(uuid, LLAssetType::AT_SOUND)) { // Just put it on the decode queue. + //llinfos << "addDecodeRequest for " << uuid << " has local asset file already" << llendl; mImpl->mDecodeQueue.push(uuid); return TRUE; } + //llinfos << "addDecodeRequest for " << uuid << " no file available" << llendl; return FALSE; } diff --git a/indra/llaudio/llaudioengine.cpp b/indra/llaudio/llaudioengine.cpp index d696020bb..7c3f3e315 100644 --- a/indra/llaudio/llaudioengine.cpp +++ b/indra/llaudio/llaudioengine.cpp @@ -1275,10 +1275,11 @@ void LLAudioEngine::assetCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::E // Need to mark data as bad to avoid constant rerequests. LLAudioData *adp = gAudiop->getAudioData(uuid); if (adp) - { + { // Make sure everything is cleared adp->setHasValidData(false); adp->setHasLocalData(false); adp->setHasDecodedData(false); + adp->setHasCompletedDecode(true); } } else @@ -1291,9 +1292,10 @@ void LLAudioEngine::assetCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::E } else { + // llinfos << "Got asset callback with good audio data for " << uuid << ", making decode request" << llendl; adp->setHasValidData(true); - adp->setHasLocalData(true); - gAudioDecodeMgrp->addDecodeRequest(uuid); + adp->setHasLocalData(true); + gAudioDecodeMgrp->addDecodeRequest(uuid); } } gAudiop->mCurrentTransfer = LLUUID::null; @@ -1380,16 +1382,18 @@ void LLAudioSource::update() if (!getCurrentBuffer()) { - if (getCurrentData()) + LLAudioData *adp = getCurrentData(); + if (adp) { // Hack - try and load the sound. Will do this as a callback // on decode later. - if (getCurrentData()->load() && getCurrentData()->getBuffer()) + if (adp->load() && adp->getBuffer()) { - play(getCurrentData()->getID()); + play(adp->getID()); } - else + else if (adp->hasCompletedDecode()) // Only mark corrupted after decode is done { + llwarns << "Marking LLAudioSource corrupted for " << adp->getID() << llendl; mCorrupted = true ; } } @@ -1812,6 +1816,7 @@ LLAudioData::LLAudioData(const LLUUID &uuid) : mBufferp(NULL), mHasLocalData(false), mHasDecodedData(false), + mHasCompletedDecode(false), mHasValidData(true) { if (uuid.isNull()) @@ -1823,12 +1828,13 @@ LLAudioData::LLAudioData(const LLUUID &uuid) : if (gAudiop && gAudiop->hasDecodedFile(uuid)) { // Already have a decoded version, don't need to decode it. - mHasLocalData = true; - mHasDecodedData = true; + setHasLocalData(true); + setHasDecodedData(true); + setHasCompletedDecode(true); } else if (gAssetStorage && gAssetStorage->hasLocalAsset(uuid, LLAssetType::AT_SOUND)) { - mHasLocalData = true; + setHasLocalData(true); } } diff --git a/indra/llaudio/llaudioengine.h b/indra/llaudio/llaudioengine.h index 254a1ee1f..c80b71688 100644 --- a/indra/llaudio/llaudioengine.h +++ b/indra/llaudio/llaudioengine.h @@ -408,10 +408,12 @@ public: bool hasLocalData() const { return mHasLocalData; } bool hasDecodedData() const { return mHasDecodedData; } + bool hasCompletedDecode() const { return mHasCompletedDecode; } bool hasValidData() const { return mHasValidData; } void setHasLocalData(const bool hld) { mHasLocalData = hld; } void setHasDecodedData(const bool hdd) { mHasDecodedData = hdd; } + void setHasCompletedDecode(const bool hcd) { mHasCompletedDecode = hcd; } void setHasValidData(const bool hvd) { mHasValidData = hvd; } friend class LLAudioEngine; // Severe laziness, bad. @@ -419,9 +421,10 @@ public: protected: LLUUID mID; LLAudioBuffer *mBufferp; // If this data is being used by the audio system, a pointer to the buffer will be set here. - bool mHasLocalData; - bool mHasDecodedData; - bool mHasValidData; + bool mHasLocalData; // Set true if the sound asset file is available locally + bool mHasDecodedData; // Set true if the sound file has been decoded + bool mHasCompletedDecode; // Set true when the sound is decoded + bool mHasValidData; // Set false if decoding failed, meaning the sound asset is bad }; diff --git a/indra/llaudio/llaudioengine_fmodex.cpp b/indra/llaudio/llaudioengine_fmodex.cpp index a79b43c71..ee91d7496 100644 --- a/indra/llaudio/llaudioengine_fmodex.cpp +++ b/indra/llaudio/llaudioengine_fmodex.cpp @@ -105,10 +105,6 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata) U32 version; FMOD_RESULT result; - int numdrivers; - FMOD_SPEAKERMODE speakermode; - FMOD_CAPS caps; - char name[256]; LL_DEBUGS("AppInit") << "LLAudioEngine_FMODEX::init() initializing FMOD" << LL_ENDL; @@ -124,11 +120,16 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata) if (version < FMOD_VERSION) { - LL_WARNS("AppInit") << "Error : You are using the wrong FMOD version (" << version - << ")! You should be using FMOD " << FMOD_VERSION << LL_ENDL; + LL_WARNS("AppInit") << "Error : You are using the wrong FMOD Ex version (" << version + << ")! You should be using FMOD Ex" << FMOD_VERSION << LL_ENDL; } #if LL_WINDOWS + int numdrivers; + FMOD_SPEAKERMODE speakermode; + FMOD_CAPS caps; + char name[256]; + //Is this block applicable to linux? { result = mSystem->getNumDrivers(&numdrivers); @@ -173,7 +174,7 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata) #endif //LL_WINDOWS // In this case, all sounds, PLUS wind and stream will be software. - result = mSystem->setSoftwareChannels(num_channels+2); + result = mSystem->setSoftwareChannels(num_channels + 2); Check_FMOD_Error(result,"FMOD::System::setSoftwareChannels"); U32 fmod_flags = FMOD_INIT_NORMAL; @@ -181,73 +182,67 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata) fmod_flags |= FMOD_INIT_ENABLE_PROFILE; #if LL_LINUX - // If we don't set an output method, Linux FMOD always - // decides on OSS and fails otherwise. So we'll manually - // try ESD, then OSS, then ALSA. - // Why this order? See SL-13250, but in short, OSS emulated - // on top of ALSA is ironically more reliable than raw ALSA. - // Ack, and ESD has more reliable failure modes - but has worse - // latency - than all of them, so wins for now. bool audio_ok = false; if (!audio_ok) { - if (NULL == getenv("LL_BAD_FMODEX_ESD")) /*Flawfinder: ignore*/ + if (NULL == getenv("LL_BAD_FMOD_PULSEAUDIO")) /*Flawfinder: ignore*/ { - LL_DEBUGS("AppInit") << "Trying ESD audio output..." << LL_ENDL; - if(mSystem->SetOutput(FMOD_OUTPUTTYPE_ESD) == FMOD_OK && - (result = mSystem->init(num_channels, fmod_flags, 0)) == FMOD_OK) + LL_DEBUGS("AppInit") << "Trying PulseAudio audio output..." << LL_ENDL; + if(mSystem->setOutput(FMOD_OUTPUTTYPE_PULSEAUDIO) == FMOD_OK && + (result = mSystem->init(num_channels + 2, fmod_flags, 0)) == FMOD_OK) { - LL_DEBUGS("AppInit") << "ESD audio output initialized OKAY" << LL_ENDL; + LL_DEBUGS("AppInit") << "PulseAudio output initialized OKAY" << LL_ENDL; audio_ok = true; } else { - Check_FMOD_Error(result, "ESD audio output FAILED to initialize"); + Check_FMOD_Error(result, "PulseAudio audio output FAILED to initialize"); } } else { - LL_DEBUGS("AppInit") << "ESD audio output SKIPPED" << LL_ENDL; + LL_DEBUGS("AppInit") << "PulseAudio audio output SKIPPED" << LL_ENDL; } } if (!audio_ok) { - if (NULL == getenv("LL_BAD_FMODEX_OSS")) /*Flawfinder: ignore*/ + if (NULL == getenv("LL_BAD_FMOD_ALSA")) /*Flawfinder: ignore*/ { - LL_DEBUGS("AppInit") << "Trying OSS audio output..." << LL_ENDL; - if(mSystem->SetOutput(FMOD_OUTPUTTYPE_OSS) == FMOD_OK && - (result = mSystem->init(num_channels, fmod_flags, 0)) == FMOD_OK) + LL_DEBUGS("AppInit") << "Trying ALSA audio output..." << LL_ENDL; + if(mSystem->setOutput(FMOD_OUTPUTTYPE_ALSA) == FMOD_OK && + (result = mSystem->init(num_channels + 2, fmod_flags, 0)) == FMOD_OK) { - LL_DEBUGS("AppInit") << "OSS audio output initialized OKAY" << LL_ENDL; + LL_DEBUGS("AppInit") << "ALSA audio output initialized OKAY" << LL_ENDL; audio_ok = true; } else { - Check_FMOD_Error(result, "OSS audio output FAILED to initialize" << LL_ENDL; + Check_FMOD_Error(result, "ALSA audio output FAILED to initialize"); } } else { - LL_DEBUGS("AppInit") << "OSS audio output SKIPPED" << LL_ENDL; + LL_DEBUGS("AppInit") << "ALSA audio output SKIPPED" << LL_ENDL; } } if (!audio_ok) { - if (NULL == getenv("LL_BAD_FMODEX_ALSA")) /*Flawfinder: ignore*/ + if (NULL == getenv("LL_BAD_FMOD_OSS")) /*Flawfinder: ignore*/ { - LL_DEBUGS("AppInit") << "Trying ALSA audio output..." << LL_ENDL; - if(mSystem->SetOutput(FMOD_OUTPUTTYPE_ALSA) && - (result = mSystem->init(num_channels, fmod_flags, 0)) == FMOD_OK) + LL_DEBUGS("AppInit") << "Trying OSS audio output..." << LL_ENDL; + if(mSystem->setOutput(FMOD_OUTPUTTYPE_OSS) == FMOD_OK && + (result = mSystem->init(num_channels + 2, fmod_flags, 0)) == FMOD_OK) { - LL_DEBUGS("AppInit") << "ALSA audio output initialized OKAY" << LL_ENDL; + LL_DEBUGS("AppInit") << "OSS audio output initialized OKAY" << LL_ENDL; audio_ok = true; } else { - Check_FMOD_Error(result, "ALSA audio output FAILED to initialize"); + Check_FMOD_Error(result, "OSS audio output FAILED to initialize"); } - } else + } + else { LL_DEBUGS("AppInit") << "OSS audio output SKIPPED" << LL_ENDL; } @@ -258,25 +253,20 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata) return false; } - // On Linux, FMOD causes a SIGPIPE for some netstream error - // conditions (an FMOD bug); ignore SIGPIPE so it doesn't crash us. - // NOW FIXED in FMOD 3.x since 2006-10-01. - //signal(SIGPIPE, SIG_IGN); - // We're interested in logging which output method we // ended up with, for QA purposes. FMOD_OUTPUTTYPE output_type; - mSystem->getOutput(output_type); + mSystem->getOutput(&output_type); switch (output_type) { - case FSOUND_OUTPUT_NOSOUND: - LL_DEBUGS("AppInit") << "Audio output: NoSound" << LL_ENDL; break; - case FSOUND_OUTPUT_OSS: - LL_DEBUGS("AppInit") << "Audio output: OSS" << LL_ENDL; break; - case FSOUND_OUTPUT_ESD: - LL_DEBUGS("AppInit") << "Audio output: ESD" << LL_ENDL; break; - case FSOUND_OUTPUT_ALSA: - LL_DEBUGS("AppInit") << "Audio output: ALSA" << LL_ENDL; break; + case FMOD_OUTPUTTYPE_NOSOUND: + LL_INFOS("AppInit") << "Audio output: NoSound" << LL_ENDL; break; + case FMOD_OUTPUTTYPE_PULSEAUDIO: + LL_INFOS("AppInit") << "Audio output: PulseAudio" << LL_ENDL; break; + case FMOD_OUTPUTTYPE_ALSA: + LL_INFOS("AppInit") << "Audio output: ALSA" << LL_ENDL; break; + case FMOD_OUTPUTTYPE_OSS: + LL_INFOS("AppInit") << "Audio output: OSS" << LL_ENDL; break; default: LL_INFOS("AppInit") << "Audio output: Unknown!" << LL_ENDL; break; }; @@ -297,7 +287,7 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata) */ result = mSystem->init( num_channels + 2, fmod_flags, 0); } - if(Check_FMOD_Error(result, "Error initializing FMOD")) + if(Check_FMOD_Error(result, "Error initializing FMOD Ex")) return false; #endif @@ -305,7 +295,7 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata) if (!getStreamingAudioImpl()) // no existing implementation added setStreamingAudioImpl(new LLStreamingAudio_FMODEX(mSystem)); - LL_DEBUGS("AppInit") << "LLAudioEngine_FMODEX::init() FMOD initialized correctly" << LL_ENDL; + LL_INFOS("AppInit") << "LLAudioEngine_FMODEX::init() FMOD Ex initialized correctly" << LL_ENDL; mInited = true; @@ -321,10 +311,10 @@ std::string LLAudioEngine_FMODEX::getDriverName(bool verbose) U32 version; if(!Check_FMOD_Error(mSystem->getVersion(&version), "FMOD::System::getVersion")) { - return llformat("FMOD version %1x.%02x.%02x", version >> 16, version >> 8 & 0x000000FF, version & 0x000000FF); + return llformat("FMOD Ex %1x.%02x.%02x", version >> 16, version >> 8 & 0x000000FF, version & 0x000000FF); } } - return "FMOD"; + return "FMODEx"; } @@ -342,12 +332,13 @@ void LLAudioEngine_FMODEX::shutdown() { stopInternetStream(); + llinfos << "About to LLAudioEngine::shutdown()" << llendl; LLAudioEngine::shutdown(); - llinfos << "LLAudioEngine_FMODEX::shutdown() closing FMOD" << llendl; + llinfos << "LLAudioEngine_FMODEX::shutdown() closing FMOD Ex" << llendl; mSystem->close(); mSystem->release(); - llinfos << "LLAudioEngine_FMODEX::shutdown() done closing FMOD" << llendl; + llinfos << "LLAudioEngine_FMODEX::shutdown() done closing FMOD Ex" << llendl; delete mListenerp; mListenerp = NULL; diff --git a/indra/llaudio/llvorbisencode.cpp b/indra/llaudio/llvorbisencode.cpp index 8682664b6..d06654ace 100644 --- a/indra/llaudio/llvorbisencode.cpp +++ b/indra/llaudio/llvorbisencode.cpp @@ -89,7 +89,7 @@ S32 check_for_invalid_wav_formats(const std::string& in_fname, std::string& erro // ******************************** LLAPRFile infile ; - infile.open(in_fname,LL_APR_RB); + infile.open(in_fname,LL_APR_RB); // ******************************** if (!infile.getFileHandle()) { diff --git a/indra/llcommon/llfile.cpp b/indra/llcommon/llfile.cpp index d3e97f5c1..0d8dce1eb 100644 --- a/indra/llcommon/llfile.cpp +++ b/indra/llcommon/llfile.cpp @@ -35,6 +35,8 @@ #if LL_WINDOWS #include +#else +#include #endif #include "linden_common.h" diff --git a/indra/llcommon/llprocesslauncher.cpp b/indra/llcommon/llprocesslauncher.cpp index 8ffd4b06d..8e146e035 100644 --- a/indra/llcommon/llprocesslauncher.cpp +++ b/indra/llcommon/llprocesslauncher.cpp @@ -42,6 +42,7 @@ #if LL_DARWIN || LL_LINUX // not required or present on Win32 #include +#include #endif LLProcessLauncher::LLProcessLauncher() diff --git a/indra/llmath/lloctree.h b/indra/llmath/lloctree.h index 017d48a0e..b13eddc4e 100644 --- a/indra/llmath/lloctree.h +++ b/indra/llmath/lloctree.h @@ -416,7 +416,7 @@ public: { //we have data mData.erase(data); mElementCount = mData.size(); - notifyRemoval(data); + this->notifyRemoval(data); checkAlive(); return true; } @@ -454,7 +454,7 @@ public: { mData.erase(data); mElementCount = mData.size(); - notifyRemoval(data); + this->notifyRemoval(data); llwarns << "FOUND!" << llendl; checkAlive(); return; @@ -663,7 +663,7 @@ public: //(don't notify listeners of addition) for (U32 i = 0; i < child->getChildCount(); i++) { - addChild(child->getChild(i), TRUE); + this->addChild(child->getChild(i), TRUE); } //destroy child @@ -707,10 +707,10 @@ public: return false; } - if (this->getSize()[0] > data->getBinRadius() && isInside(data->getPositionGroup())) + if (this->getSize()[0] > data->getBinRadius() && this->isInside(data->getPositionGroup())) { //we got it, just act like a branch - oct_node* node = getNodeAt(data); + oct_node* node = this->getNodeAt(data); if (node == this) { LLOctreeNode::insert(data); @@ -723,7 +723,7 @@ public: else if (this->getChildCount() == 0) { //first object being added, just wrap it up - while (!(this->getSize()[0] > data->getBinRadius() && isInside(data->getPositionGroup()))) + while (!(this->getSize()[0] > data->getBinRadius() && this->isInside(data->getPositionGroup()))) { LLVector4a center, size; center = this->getCenter(); @@ -738,7 +738,7 @@ public: } else { - while (!(this->getSize()[0] > data->getBinRadius() && isInside(data->getPositionGroup()))) + while (!(this->getSize()[0] > data->getBinRadius() && this->isInside(data->getPositionGroup()))) { //the data is outside the root node, we need to grow LLVector4a center(this->getCenter()); @@ -764,7 +764,7 @@ public: //clear our children and add the root copy this->clearChildren(); - addChild(newnode); + this->addChild(newnode); } //insert the data diff --git a/indra/llmath/v4color.cpp b/indra/llmath/v4color.cpp index 219b06ec7..660f59fbe 100644 --- a/indra/llmath/v4color.cpp +++ b/indra/llmath/v4color.cpp @@ -704,9 +704,9 @@ BOOL LLColor4::parseColor(const std::string& buf, LLColor4* color) { color->set(LLColor4::orange6); } - else if ( "clear" == color_name ) + else if ( "clear" == color_name || "transparent" == color_name ) { - color->set(0.f, 0.f, 0.f, 0.f); + color->set(LLColor4::transparent); } else { diff --git a/indra/llmessage/llcurl.cpp b/indra/llmessage/llcurl.cpp index ccefdb56c..b2f5ce471 100644 --- a/indra/llmessage/llcurl.cpp +++ b/indra/llmessage/llcurl.cpp @@ -202,8 +202,8 @@ void LLCurl::Responder::completedHeader(U32 status, const std::string& reason, c } -namespace boost -{ +//namespace boost +//{ void intrusive_ptr_add_ref(LLCurl::Responder* p) { ++p->mReferenceCount; @@ -216,7 +216,7 @@ namespace boost delete p; } } -}; +//}; ////////////////////////////////////////////////////////////////////////////// diff --git a/indra/llmessage/llcurl.h b/indra/llmessage/llcurl.h index 1609530a3..fa8465bfe 100644 --- a/indra/llmessage/llcurl.h +++ b/indra/llmessage/llcurl.h @@ -378,11 +378,11 @@ private: void cleanupMulti(LLCurl::Multi* multi) ; } ; -namespace boost -{ +//namespace boost +//{ void intrusive_ptr_add_ref(LLCurl::Responder* p); void intrusive_ptr_release(LLCurl::Responder* p); -}; +//}; class LLCurlRequest diff --git a/indra/llmessage/lliopipe.h b/indra/llmessage/lliopipe.h index cbd17b5a3..2def3229f 100644 --- a/indra/llmessage/lliopipe.h +++ b/indra/llmessage/lliopipe.h @@ -55,11 +55,11 @@ void pump_debug(const char *file, S32 line); /** * intrusive pointer support */ -namespace boost -{ +//namespace boost +//{ void intrusive_ptr_add_ref(LLIOPipe* p); void intrusive_ptr_release(LLIOPipe* p); -}; +//}; /** * @class LLIOPipe @@ -250,13 +250,13 @@ protected: LLPumpIO* pump) = 0; private: - friend void boost::intrusive_ptr_add_ref(LLIOPipe* p); - friend void boost::intrusive_ptr_release(LLIOPipe* p); + friend void /*boost::*/intrusive_ptr_add_ref(LLIOPipe* p); + friend void /*boost::*/intrusive_ptr_release(LLIOPipe* p); U32 mReferenceCount; }; -namespace boost -{ +//namespace boost +//{ inline void intrusive_ptr_add_ref(LLIOPipe* p) { ++p->mReferenceCount; @@ -268,7 +268,7 @@ namespace boost delete p; } } -}; +//}; #if 0 diff --git a/indra/llmessage/llregionpresenceverifier.cpp b/indra/llmessage/llregionpresenceverifier.cpp index 932cbf375..01d78ed3e 100644 --- a/indra/llmessage/llregionpresenceverifier.cpp +++ b/indra/llmessage/llregionpresenceverifier.cpp @@ -32,8 +32,8 @@ #include "net.h" #include "message.h" -namespace boost -{ +//namespace boost +//{ void intrusive_ptr_add_ref(LLRegionPresenceVerifier::Response* p) { ++p->mReferenceCount; @@ -46,7 +46,7 @@ namespace boost delete p; } } -}; +//}; LLRegionPresenceVerifier::Response::~Response() { diff --git a/indra/llmessage/llregionpresenceverifier.h b/indra/llmessage/llregionpresenceverifier.h index 5e8251e51..9b45e78b5 100644 --- a/indra/llmessage/llregionpresenceverifier.h +++ b/indra/llmessage/llregionpresenceverifier.h @@ -89,10 +89,10 @@ public: }; }; -namespace boost -{ +//namespace boost +//{ void intrusive_ptr_add_ref(LLRegionPresenceVerifier::Response* p); void intrusive_ptr_release(LLRegionPresenceVerifier::Response* p); -}; +//}; #endif //LL_LLREGIONPRESENCEVERIFIER_H diff --git a/indra/llmessage/net.cpp b/indra/llmessage/net.cpp index 85aef5da0..6e232aa24 100644 --- a/indra/llmessage/net.cpp +++ b/indra/llmessage/net.cpp @@ -36,6 +36,7 @@ #include #include #else + #include #include #include #include diff --git a/indra/llmessage/tests/llcurl_stub.cpp b/indra/llmessage/tests/llcurl_stub.cpp index d84fe0a49..de9725e8a 100644 --- a/indra/llmessage/tests/llcurl_stub.cpp +++ b/indra/llmessage/tests/llcurl_stub.cpp @@ -77,8 +77,8 @@ void LLCurl::Responder::result(LLSD const&) { } -namespace boost -{ +//namespace boost +//{ void intrusive_ptr_add_ref(LLCurl::Responder* p) { ++p->mReferenceCount; @@ -91,5 +91,5 @@ namespace boost delete p; } } -}; +//}; diff --git a/indra/llrender/llvertexbuffer.h b/indra/llrender/llvertexbuffer.h index ceaa70c3b..0ab73af1d 100644 --- a/indra/llrender/llvertexbuffer.h +++ b/indra/llrender/llvertexbuffer.h @@ -90,6 +90,7 @@ class LLGLFence public: virtual void placeFence() = 0; virtual void wait() = 0; + virtual ~LLGLFence() {} }; //============================================================================ diff --git a/indra/llui/lldelayeduidelete.h b/indra/llui/lldelayeduidelete.h index 043e6972e..131e43424 100644 --- a/indra/llui/lldelayeduidelete.h +++ b/indra/llui/lldelayeduidelete.h @@ -7,6 +7,7 @@ class LLDeleteJob { public: virtual BOOL work(U32& completed); + virtual ~LLDeleteJob() {} }; class LLViewDeleteJob : public LLDeleteJob { diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp index 8f0cc0c64..e4ad47118 100644 --- a/indra/llui/llscrolllistctrl.cpp +++ b/indra/llui/llscrolllistctrl.cpp @@ -2372,7 +2372,7 @@ BOOL LLScrollListCtrl::handleKeyHere(KEY key,MASK mask ) if (mCanSelect) { // Ignore capslock - mask = mask; + //mask = mask; //Why was this here? if (mask == MASK_NONE) { diff --git a/indra/llvfs/llpidlock.cpp b/indra/llvfs/llpidlock.cpp index 21cfa66a8..85d41b5d3 100644 --- a/indra/llvfs/llpidlock.cpp +++ b/indra/llvfs/llpidlock.cpp @@ -54,6 +54,7 @@ static bool isProcessAlive(U32 pid) } #else //Everyone Else +#include static U32 getPID() { return getpid(); diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index 7458dbdc9..f425abe40 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -2621,8 +2621,9 @@ std::vector LLWindowSDL::getDynamicFallbackFontList() if (sortpat) { // Sort the list of system fonts from most-to-least-desirable. + FcResult fresult; fs = FcFontSort(NULL, sortpat, elide_unicode_coverage, - NULL, NULL); + NULL, &fresult); FcPatternDestroy(sortpat); } diff --git a/indra/llxuixml/llinitparam.h b/indra/llxuixml/llinitparam.h index ab2095776..7285d3c48 100644 --- a/indra/llxuixml/llinitparam.h +++ b/indra/llxuixml/llinitparam.h @@ -838,7 +838,7 @@ namespace LLInitParam BaseBlock::addParam(block_descriptor, param_descriptor, name); } - setValue(value); + this->setValue(value); } bool isProvided() const { return Param::anyProvided(); } @@ -926,7 +926,7 @@ namespace LLInitParam void set(value_assignment_t val, bool flag_as_provided = true) { param_value_t::clearValueName(); - setValue(val); + this->setValue(val); setProvided(flag_as_provided); } @@ -1068,7 +1068,7 @@ namespace LLInitParam // assign block contents to this param-that-is-a-block void set(value_assignment_t val, bool flag_as_provided = true) { - setValue(val); + this->setValue(val); param_value_t::clearValueName(); // force revalidation of block // next call to isProvided() will update provision status based on validity @@ -1723,7 +1723,7 @@ namespace LLInitParam Optional& operator =(value_assignment_t val) { - set(val); + this->set(val); return *this; } @@ -1752,7 +1752,7 @@ namespace LLInitParam Mandatory& operator =(value_assignment_t val) { - set(val); + this->set(val); return *this; } diff --git a/indra/lscript/lscript_library/lscript_library.cpp b/indra/lscript/lscript_library/lscript_library.cpp index 919fb758c..117c9d1ed 100644 --- a/indra/lscript/lscript_library/lscript_library.cpp +++ b/indra/lscript/lscript_library/lscript_library.cpp @@ -487,10 +487,34 @@ void LLScriptLibrary::init() addFunction(10.f, 0.f, dummy_func, "llSetContentType", NULL, "ki"); addFunction(10.f, 0.f, dummy_func, "llLinkSitTarget", NULL, "ivr"); addFunction(10.f, 0.f, dummy_func, "llAvatarOnLinkSitTarget", "k", "i"); - /* No info on these new functions yet.... - * addFunction(10.f, 0.f, dummy_func, "llSetVelocity", "", ""); - * addFunction(10.f, 0.f, dummy_func, "llSetRotationalVelocity", "", ""); - */ + addFunction(10.f, 0.f, dummy_func, "llGetMassMKS", "f", NULL); + addFunction(10.f, 0.f, dummy_func, "llGetMemoryLimit", "i", NULL); + addFunction(10.f, 0.f, dummy_func, "llGetParcelMusicURL", "s", NULL); + addFunction(10.f, 0.f, dummy_func, "llGetPhysicsMaterial", "l", NULL); + addFunction(10.f, 0.f, dummy_func, "llManageEstateAccess", "i", "ik"); + addFunction(10.f, 0.f, dummy_func, "llSetAngularVelocity", NULL, "vi"); + addFunction(10.f, 0.f, dummy_func, "llSetKeyframedMotion", NULL, "ll"); + addFunction(10.f, 0.f, dummy_func, "llSetPhysicsMaterial", NULL, "iffff"); + addFunction(10.f, 0.f, dummy_func, "llSetRegionPos", "i", "v"); + addFunction(10.f, 0.f, dummy_func, "llSetVelocity", NULL, "vi"); + addFunction(10.f, 0.f, dummy_func, "llTransferLindenDollars", "k", "ki"); + + + //Pathfinder functions. Current state: alpha, thus subject to change. + //This and the preceding line are to be removed in future revisions of this file. + addFunction(10.f, 0.f, dummy_func, "llCreateCharacter", NULL, "l"); + addFunction(10.f, 0.f, dummy_func, "llDeleteCharacter", NULL, NULL); + addFunction(10.f, 0.f, dummy_func, "llEvade", NULL, "kl"); + addFunction(10.f, 0.f, dummy_func, "llExecCharacterCmd", NULL, "il"); + addFunction(10.f, 0.f, dummy_func, "llGetClosestNavPoint", "l", "vl"); + addFunction(10.f, 0.f, dummy_func, "llFleeFrom", NULL, "vfl"); + addFunction(10.f, 0.f, dummy_func, "llNavigateTo", NULL, "vl"); + addFunction(10.f, 0.f, dummy_func, "llPatrolPoints", NULL, "ll"); + addFunction(10.f, 0.f, dummy_func, "llPursue", NULL, "kl"); + addFunction(10.f, 0.f, dummy_func, "llUpdateCharacter", NULL, "l"); + addFunction(10.f, 0.f, dummy_func, "llWanderWithin", NULL, "vfl"); + + // REGARDING OSSL FUNCTIONS // These additions should be posted underneath the llFunctions @@ -624,6 +648,16 @@ void LLScriptLibrary::init() addFunction(10.f, 0.f, dummy_func, "osNpcGetPos", "v", "k"); addFunction(10.f, 0.f, dummy_func, "osNpcStopMoveToTarget", NULL, "k"); + addFunction(10.f, 0.f, dummy_func, "osIsNpc", "i", "k"); + addFunction(10.f, 0.f, dummy_func, "osNpcGetOwner", "k", "k"); + addFunction(10.f, 0.f, dummy_func, "osGetGridCustom", "s", "s"); + addFunction(10.f, 0.f, dummy_func, "osGetGridHomeURI", "s", NULL); + addFunction(10.f, 0.f, dummy_func, "osNpcPlayAnimation", NULL, "ks"); + addFunction(10.f, 0.f, dummy_func, "osNpcSit", NULL, "kki"); + addFunction(10.f, 0.f, dummy_func, "osNpcStand", NULL, "k"); + addFunction(10.f, 0.f, dummy_func, "osNpcStopAnimation", NULL, "ks"); + addFunction(10.f, 0.f, dummy_func, "osSetRot", NULL, "kq"); + } LLScriptLibraryFunction::LLScriptLibraryFunction(F32 eu, F32 st, void (*exec_func)(LLScriptLibData *, LLScriptLibData *, const LLUUID &), const char *name, const char *ret_type, const char *args, BOOL god_only) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 7b06d351d..b3661472b 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1354,39 +1354,40 @@ if (OPENAL) endif (OPENAL) if (FMOD OR FMODEX) - if(FMODEX) - set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODEX") - endif(FMODEX) - if(FMOD) + if (FMODEX) + set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODEX") + endif (FMODEX) + if (FMOD) set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMOD") - endif(FMOD) + endif (FMOD) - if (NOT WINDOWS) + if (DARWIN) set(fmodwrapper_SOURCE_FILES fmodwrapper.cpp) add_library(fmodwrapper SHARED ${fmodwrapper_SOURCE_FILES}) - if(FMOD AND FMODEX) - set(fmodwrapper_needed_LIBRARIES "${FMODEX_LIBRARY} ${FMOD_LIBRARY}") - else(FMOD AND FMODEX) - if(FMODEX) - set(fmodwrapper_needed_LIBRARIES ${FMODEX_LIBRARY}) - endif(FMODEX) - if(FMOD) - set(fmodwrapper_needed_LIBRARIES "${FMOD_LIBRARY}") - endif(FMOD) - endif(FMOD AND FMODEX) - if (DARWIN) - list(APPEND fmodwrapper_needed_LIBRARIES ${CARBON_LIBRARY}) - set_target_properties( - fmodwrapper - PROPERTIES - BUILD_WITH_INSTALL_RPATH 1 - INSTALL_NAME_DIR "@executable_path/../Resources" - LINK_FLAGS "-unexported_symbols_list \"${CMAKE_CURRENT_SOURCE_DIR}/fmod_hidden_symbols.exp\"" - ) - endif (DARWIN) + if (FMODEX) + set(fmodwrapper_needed_LIBRARIES ${FMODEX_LIBRARY} ${CARBON_LIBRARY}) + endif (FMODEX) + if (FMOD) + set(fmodwrapper_needed_LIBRARIES ${FMOD_LIBRARY} ${CARBON_LIBRARY}) + endif (FMOD) + set_target_properties( + fmodwrapper + PROPERTIES + BUILD_WITH_INSTALL_RPATH 1 + INSTALL_NAME_DIR "@executable_path/../Resources" + LINK_FLAGS "-unexported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/fmod_hidden_symbols.exp" + ) set(FMODWRAPPER_LIBRARY fmodwrapper) target_link_libraries(fmodwrapper ${fmodwrapper_needed_LIBRARIES}) - endif (NOT WINDOWS) + else (DARWIN) + # fmodwrapper unnecessary on linux or windows, for fmod and fmodex + if (FMODEX) + set(FMODWRAPPER_LIBRARY ${FMODEX_LIBRARY}) + endif (FMODEX) + if (FMOD) + set(FMODWRAPPER_LIBRARY ${FMOD_LIBRARY}) + endif (FMOD) + endif (DARWIN) endif (FMOD OR FMODEX) set_source_files_properties(llstartup.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}") diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini index 455dc9e88..7b38b2a34 100644 --- a/indra/newview/app_settings/keywords.ini +++ b/indra/newview/app_settings/keywords.ini @@ -51,6 +51,8 @@ changed changed( integer change ):Triggered various event change the task:(tes remote_data remote_data(integer event_type, key channel, key message_id, string sender,integer idata, string sdata):Triggered by various XML-RPC calls (event_type will be one of REMOTE_DATA_CHANNEL, REMOTE_DATA_REQUEST, REMOTE_DATA_REPLY) http_response http_response(key request_id, integer status, list metadata, string body):Triggered when task receives a response to one of its llHTTPRequests http_request http_request(key id, string method, string body):Triggered when task receives an http request against a public URL +transaction_result transaction_result(key id, integer success, string data):Triggered when task receives asynchronous data. +path_update path_update(integer type, list reserved):Triggered when the state of a pathfinder character changes. Note; "list reserved" is not currently used # integer constants [word .1, .1, .5] @@ -605,6 +607,121 @@ WL_CLOUD_SCROLL_Y_LOCK Windlight Cloud Scroll Y Lock WL_CLOUD_SCROLL_X_LOCK Windlight Cloud Scroll X Lock WL_DRAW_CLASSIC_CLOUDS Windlight Draw Classic Clouds +# OSSL constants +STATS_TIME_DILATION +STATS_SIM_FPS +STATS_PHYSICS_FPS +STATS_AGENT_UPDATES +STATS_ROOT_AGENTS +STATS_CHILD_AGENTS +STATS_TOTAL_PRIMS +STATS_ACTIVE_PRIMS +STATS_FRAME_MS +STATS_NET_MS +STATS_PHYSICS_MS +STATS_IMAGE_MS +STATS_OTHER_MS +STATS_IN_PACKETS_PER_SECOND +STATS_OUT_PACKETS_PER_SECOND +STATS_UNACKED_BYTES +STATS_AGENT_MS +STATS_PENDING_DOWNLOADS +STATS_PENDING_UPLOADS +STATS_ACTIVE_SCRIPTS +STATS_SCRIPT_LPS + +## Constants for osNpc* functions +NPC +OS_NPC_CREATOR_OWNED +OS_NPC_NOT_OWNED +OS_NPC_SENSE_AS_AGENT +OS_NPC_FLY +OS_NPC_NO_FLY +OS_NPC_LAND_AT_TARGET +OS_NPC_SIT_NOW + +## Missing LSL constants (from http://wiki.secondlife.com/wiki/Category:LSL_Constants) +## Adding now, sorting later +ATTACH_HUD_BOTTOM +ATTACH_HUD_BOTTOM_LEFT +ATTACH_HUD_BOTTOM_RIGHT +ATTACH_HUD_CENTER_1 +ATTACH_HUD_CENTER_2 +ATTACH_HUD_TOP_CENTER +ATTACH_HUD_TOP_LEFT +ATTACH_HUD_TOP_RIGHT +ATTACH_LEFT_PEC +ATTACH_RIGHT_PEC +HTTP_VERBOSE_THROTTLE +OBJECT_PRIM_EQUIVALENCE +PARCEL_MEDIA_COMMAND_LOOP_SET +PRIM_LINK_TARGET +PRIM_OMEGA +PRIM_PHYSICS_MATERIAL +PRIM_PHYSICS_SHAPE_TYPE +PRIM_POS_LOCAL +PRIM_ROT_LOCAL +PROFILE_NONE +PROFILE_SCRIPT_MEMORY +RCERR_CAST_TIME_EXCEEDED +RCERR_SIM_PERF_LOW +RCERR_UNKNOWN +RC_DATA_FLAGS +RC_DETECT_PHANTOM +RC_GET_LINK_NUM +RC_GET_NORMAL +RC_GET_ROOT_KEY +RC_MAX_HITS +RC_REJECT_AGENTS +RC_REJECT_LAND +RC_REJECT_NONPHYSICAL +RC_REJECT_PHYSICAL +RC_REJECT_TYPES +STATUS_BLOCK_GRAB_OBJECT + +#Even more missing constants, thanks to Justin Clark Casey for pointing me into the right direction + +CAMERA_FOCUS_OFFSET_X +CAMERA_FOCUS_OFFSET_Y +CAMERA_FOCUS_OFFSET_Z +CAMERA_FOCUS_X +CAMERA_FOCUS_Y +CAMERA_FOCUS_Z +CAMERA_POSITION_X +CAMERA_POSITION_Y +CAMERA_POSITION_Z +CHANGED_ANIMATION +CHANGED_REGION_RESTART +DATA_SIM_RELEASE +ESTATE_ACCESS_ALLOWED_AGENT_ADD +ESTATE_ACCESS_ALLOWED_AGENT_REMOVE +ESTATE_ACCESS_ALLOWED_GROUP_ADD +ESTATE_ACCESS_ALLOWED_GROUP_REMOVE +ESTATE_ACCESS_BANNED_AGENT_ADD +ESTATE_ACCESS_BANNED_AGENT_REMOVE +LIST_STAT_HARMONIC_MEAN +PARCEL_DETAILS_CLAIMDATE +PERMISSION_CHANGE_JOINTS +PERMISSION_CHANGE_PERMISSIONS +PERMISSION_RELEASE_OWNERSHIP +PERMISSION_REMAP_CONTROLS +VEHICLE_FLAG_LOCK_HOVER_HEIGHT +VEHICLE_FLAG_LOCK_ROTATION +VEHICLE_FLAG_NO_DEFLECTION +VEHICLE_FLAG_NO_X +VEHICLE_FLAG_NO_Y +VEHICLE_FLAG_NO_Z +VEHICLE_RANGE_BLOCK +VEHICLE_ROLL_FRAME +LSL_STATUS_BOUNDS_ERROR +LSL_STATUS_INTERNAL_ERROR +LSL_STATUS_MALFORMED_PARAMS +LSL_STATUS_NOT_FOUND +LSL_STATUS_NOT_SUPPORTED +LSL_STATUS_OK +LSL_STATUS_TYPE_MISMATCH +LSL_STATUS_WHITELIST_FAILED + # string constants [word .1, .3, .5] NULL_KEY Indicates an empty key diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 939285d2a..4e8aac711 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -5115,6 +5115,17 @@ Value 1 + EnableGestureSoundsSelf + + Comment + Play sounds from your gestures when EnableGestureSounds is false. (Useless otherewise) + Persist + 1 + Type + Boolean + Value + 1 + EnableMouselook Comment @@ -7234,6 +7245,39 @@ Value 1.0 + InventoryOutboxMaxFolderCount + + Comment + Maximum number of subfolders allowed in a listing in the merchant outbox. + Persist + 0 + Type + U32 + Value + 21 + + InventoryOutboxMaxFolderDepth + + Comment + Maximum number of nested levels of subfolders allowed in a listing in the merchant outbox. + Persist + 0 + Type + U32 + Value + 4 + + InventoryOutboxMaxItemCount + + Comment + Maximum number of items allowed in a listing in the merchant outbox. + Persist + 0 + Type + U32 + Value + 200 + InventorySortOrder Comment @@ -8174,7 +8218,7 @@ Value 0 - MemoryLogFrequency + MemoryLogFrequency Comment Seconds between display of Memory in log (0 for never) @@ -8284,17 +8328,6 @@ Value 0 - MeshUploadTimeOut - - Comment - Maximum time in seconds for llcurl to execute a mesh uploading request - Persist - 1 - Type - S32 - Value - 600 - MeshUploadFakeErrors Comment @@ -8306,8 +8339,18 @@ Value 0 - - MigrateCacheDirectory + MeshUploadTimeOut + + Comment + Maximum time in seconds for llcurl to execute a mesh uploading request + Persist + 1 + Type + S32 + Value + 600 + + MigrateCacheDirectory Comment Check for old version of disk cache to migrate to current location @@ -9993,32 +10036,32 @@ RenderShadowNearDist Comment - Near clip plane of shadow camera (affects precision of depth shadows). - Persist - 1 - Type - Vector3 - Value - - 256 - 256 - 256 - - - RenderShadowClipPlanes - - Comment - Near clip plane split distances for shadow map frusta. - Persist - 1 - Type - Vector3 - Value - - 1.0 - 12.0 - 32.0 - + Near clip plane of shadow camera (affects precision of depth shadows). + Persist + 1 + Type + Vector3 + Value + + 256 + 256 + 256 + + + RenderShadowClipPlanes + + Comment + Near clip plane split distances for shadow map frusta. + Persist + 1 + Type + Vector3 + Value + + 1.0 + 12.0 + 32.0 + RenderShadowSplitExponent @@ -10083,55 +10126,55 @@ Value 0.5 - RenderSSAOScale - - Comment - Scaling factor for the area to sample for occluders (pixels at 1 meter away, inversely varying with distance) - Persist - 1 - Type - F32 - Value - 500.0 - - RenderSSAOMaxScale - - Comment - Maximum screen radius for sampling (pixels) - Persist - 1 - Type - U32 - Value - 200 - - RenderSSAOFactor - - Comment - Occlusion sensitivity factor for ambient occlusion (larger is more) - Persist - 1 - Type - F32 - Value - 0.30 - - RenderSSAOEffect - - Comment - Multiplier for (1) value and (2) saturation (HSV definition), for areas which are totally occluded. Blends with original color for partly-occluded areas. (Third component is unused.) - Persist - 1 - Type - Vector3 - Value - - 0.80 - 1.00 - 0.00 - - - RenderBumpmapMinDistanceSquared + RenderSSAOScale + + Comment + Scaling factor for the area to sample for occluders (pixels at 1 meter away, inversely varying with distance) + Persist + 1 + Type + F32 + Value + 500.0 + + RenderSSAOMaxScale + + Comment + Maximum screen radius for sampling (pixels) + Persist + 1 + Type + U32 + Value + 200 + + RenderSSAOFactor + + Comment + Occlusion sensitivity factor for ambient occlusion (larger is more) + Persist + 1 + Type + F32 + Value + 0.30 + + RenderSSAOEffect + + Comment + Multiplier for (1) value and (2) saturation (HSV definition), for areas which are totally occluded. Blends with original color for partly-occluded areas. (Third component is unused.) + Persist + 1 + Type + Vector3 + Value + + 0.80 + 1.00 + 0.00 + + + RenderBumpmapMinDistanceSquared Comment Maximum distance at which to render bumpmapped primitives (distance in meters, squared) @@ -10142,17 +10185,17 @@ Value 100.0 - RenderNormalMapScale - - Comment - Scaler applied to height map when generating normal maps - Persist - 1 - Type - F32 - Value - 64 - + RenderNormalMapScale + + Comment + Scaler applied to height map when generating normal maps + Persist + 1 + Type + F32 + Value + 64 + RenderCubeMap Comment @@ -10230,29 +10273,29 @@ Value 0 - RenderDelayCreation - - Comment - Throttle creation of drawables. - Persist - 1 - Type - Boolean - Value - 0 - + RenderDelayCreation + + Comment + Throttle creation of drawables. + Persist + 1 + Type + Boolean + Value + 0 + - RenderAnimateRes - - Comment - Animate rezing prims. - Persist - 1 - Type - Boolean - Value - 0 - + RenderAnimateRes + + Comment + Animate rezing prims. + Persist + 1 + Type + Boolean + Value + 0 + RenderBakeSunlight @@ -10265,7 +10308,7 @@ Value 0 - + - Chat: + Chat: - Show links on chatting object names in chat history for: + Show links on chatting object names in chat history for: No object @@ -58,7 +58,7 @@ Response Text: - + #f for user's first name, #l for last name, #t for timestamp, #r for SLURL to you, #i for your idle time. (e.g. "5 mins") diff --git a/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml b/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml index d8d200259..2a1b8255b 100644 --- a/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml +++ b/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml @@ -24,7 +24,7 @@ Socks 5 Host: - Socks5 Authentication: + Socks5 Authentication: None Username/Password diff --git a/indra/newview/skins/default/xui/en-us/strings.xml b/indra/newview/skins/default/xui/en-us/strings.xml index b3130abb5..abbc43de0 100644 --- a/indra/newview/skins/default/xui/en-us/strings.xml +++ b/indra/newview/skins/default/xui/en-us/strings.xml @@ -2527,4 +2527,144 @@ Sets value of param property for plugin module. (OpenSim only.) (Unnamed) + +float llGetMassMKS() +Returns a float that is the mass (in +Kilograms) of the object that the +script is attached to. + + +integer llGetMemoryLimit() +Get the maximum memory a script can use. + + +string llGetParcelMusicURL() +Returns a string containing the parcel streaming audio URL. +The object owner must also be the land owner. + + +list llGetPhysicsMaterial() +Used to get the physical characteristics of an object. +Returns a list in the form [ float gravity_multiplier, float restitution, float friction, float density ] + + +integer llManageEstateAccess(integer action, key avatar) +Used to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list. + + +llSetAngularVelocity(vector force, integer local) +Applies rotational velocity to object. + + +llSetKeyframedMotion(list keyframes, list options) +Specify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between keyframes by the simulator. + + +llSetPhysicsMaterial(integer material, float gravity, +float restitution, float friction, float density) +Used for setting the physical characteristics of an object. + + +integer llSetRegionPos(vector position) +Tries to move the entire object so that the root prim is within 0.1m of position + + +llSetVelocity(vector force, integer local) +Applies velocity to an object + + +key llTransferLindenDollars(key destination, integer amount) +Transfer amount of L$ money from script owner to destination avatar. + + + + +llCreateCharacter(list options) +Creates a pathfinding entity, known as a "character" from the object containing the script. + + +llDeleteCharacter() +Convert the current linkset back to a standard object, removing all pathfinding properties. + + +llEvade(key target, list options) +Characters will try to hide from their pursuers if there is a good hiding spot along their fleeing path. + + +llExecCharacterCmd(integer command, list options) +Send a command to the pathing system. + + +list llGetClosestNavPoint(vector point, list options) +Finds the closest navpoint and returns a list with a single vector if succesful. Returns empty list when no navpoints found. + + +llFleeFrom(vector source, float distance, list options) +Tells an object to keep away from a defined position in the region or adjacent regions. + + +llNavigateTo(vector pos, list options) +Tells an object to travel to a defined position in the region or adjacent regions. + + +llPatrolPoints(list patrolPoints, list options) +Sets the object patrolling between the points specified in patrolPoints. + + +llPursue(key target, list options) +Causes the object to pursue a target. + + +llUpdateCharacter(list options) +Updates settings for a character. + + +llWanderWithin(vector origin, float dist, list options) +Sets a character to wander about a central spot within a specified radius. + + +integer osIsNpc(key npc) +Returns TRUE if the given key is an NPC, false otherwise. +(OpenSim only.) + + +key osNpcGetOwner(key npc) +Return the owner key of the given NPC. If the NPC is unowned or the input key does not belong to an NPC then it returns NULL_KEY. +(OpenSim only.) + + +string osGetGridCustom(string key) +Reads configuration strings from the [GridInfo] setion in OpenSim.ini. +(OpenSim only.) + + +string osGetGridHomeURI() +Returns the hypergrid URI of the grid where the user logged in. +(OpenSim only.) + + +osNpcPlayAnimation(key npc, string animation) +Get an NPC to play an animation. The animation can either be a key or the name of an animation in the same object as the script. +(OpenSim only.) + + +osNpcSit(key npc, key target, integer options) +Sit an NPC on a prim target. No options have been implemented yet, so always input 0. +(OpenSim only.) + + +osNpcStand(key npc) +Make an NPC stand up. +(OpenSim only.) + + +osNpcStopAnimation(key npc, string animation) +Get an NPC to stop playing an animation. The animation can either be a key or the name of an animation in the same inventory as the script. +(OpenSim only.) + + +osSetRot(key target, quaternion rotation) +Rotates an object or avatar. +(OpenSim only.) + diff --git a/indra/plugins/webkit/linux_volume_catcher.cpp b/indra/plugins/webkit/linux_volume_catcher.cpp index de5ce8dd5..0cb73ca1e 100644 --- a/indra/plugins/webkit/linux_volume_catcher.cpp +++ b/indra/plugins/webkit/linux_volume_catcher.cpp @@ -40,6 +40,9 @@ #include "volume_catcher.h" +#ifndef LL_WINDOWS +#include +#endif extern "C" { #include