Merge viewer-lynx
commit
e2919977d6
|
|
@ -212,6 +212,8 @@ Ansariel Hiller
|
|||
STORM-2140
|
||||
MAINT-6912
|
||||
MAINT-6929
|
||||
STORM-2141
|
||||
MAINT-6953
|
||||
Aralara Rajal
|
||||
Arare Chantilly
|
||||
CHUIBUG-191
|
||||
|
|
|
|||
|
|
@ -166,10 +166,8 @@ LLLineEditor::LLLineEditor(const LLLineEditor::Params& p)
|
|||
{
|
||||
llassert( mMaxLengthBytes > 0 );
|
||||
|
||||
// <FS:Ansariel> Enabling LLLineEditor via XUI breaks enabled-state
|
||||
LLUICtrl::setEnabled(TRUE);
|
||||
setEnabled(p.enabled);
|
||||
// </FS:Ansariel>
|
||||
|
||||
mScrollTimer.reset();
|
||||
mTripleClickTimer.reset();
|
||||
|
|
@ -240,14 +238,12 @@ LLLineEditor::~LLLineEditor()
|
|||
gFocusMgr.releaseFocusIfNeeded( this );
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Enabling LLLineEditor via XUI breaks enabled-state
|
||||
void LLLineEditor::initFromParams(const LLLineEditor::Params& params)
|
||||
{
|
||||
LLUICtrl::initFromParams(params);
|
||||
LLUICtrl::setEnabled(TRUE);
|
||||
setEnabled(params.enabled);
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
void LLLineEditor::onFocusReceived()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -109,7 +109,6 @@ public:
|
|||
Params();
|
||||
};
|
||||
|
||||
// <FS:Ansariel> Enabling LLLineEditor via XUI breaks enabled-state
|
||||
void initFromParams(const LLLineEditor::Params& params);
|
||||
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -2134,6 +2134,17 @@ void LLVFS::dumpFiles()
|
|||
LL_INFOS() << "Extracted " << files_extracted << " files out of " << mFileBlocks.size() << LL_ENDL;
|
||||
}
|
||||
|
||||
time_t LLVFS::creationTime()
|
||||
{
|
||||
llstat data_file_stat;
|
||||
int errors = LLFile::stat(mDataFilename, &data_file_stat);
|
||||
if (0 == errors)
|
||||
{
|
||||
return data_file_stat.st_ctime;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
// protected
|
||||
//============================================================================
|
||||
|
|
|
|||
|
|
@ -127,6 +127,7 @@ public:
|
|||
void dumpStatistics();
|
||||
void listFiles();
|
||||
void dumpFiles();
|
||||
time_t creationTime();
|
||||
|
||||
protected:
|
||||
void removeFileBlock(LLVFSFileBlock *fileblock);
|
||||
|
|
|
|||
|
|
@ -175,16 +175,10 @@ BOOL LLWindowCallbacks::handleDeviceChange(LLWindow *window)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
// <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
|
||||
//void LLWindowCallbacks::handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height)
|
||||
//{
|
||||
|
||||
//}
|
||||
BOOL LLWindowCallbacks::handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height)
|
||||
{
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
void LLWindowCallbacks::handlePingWatchdog(LLWindow *window, const char * msg)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -65,10 +65,7 @@ public:
|
|||
virtual void handleDataCopy(LLWindow *window, S32 data_type, void *data);
|
||||
virtual BOOL handleTimerEvent(LLWindow *window);
|
||||
virtual BOOL handleDeviceChange(LLWindow *window);
|
||||
// <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
|
||||
//virtual void handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height);
|
||||
virtual BOOL handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height);
|
||||
// </FS:Ansariel>
|
||||
|
||||
enum DragNDropAction {
|
||||
DNDA_START_TRACKING = 0,// Start tracking an incoming drag
|
||||
|
|
|
|||
|
|
@ -2644,25 +2644,21 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
|
|||
case WM_DPICHANGED:
|
||||
{
|
||||
LPRECT lprc_new_scale;
|
||||
// <FS:Ansariel> Fix DPI scaling
|
||||
//F32 new_scale = LOWORD(w_param) / USER_DEFAULT_SCREEN_DPI;
|
||||
F32 new_scale = F32(LOWORD(w_param)) / F32(USER_DEFAULT_SCREEN_DPI);
|
||||
// </FS:Ansariel>
|
||||
lprc_new_scale = (LPRECT)l_param;
|
||||
S32 new_width = lprc_new_scale->right - lprc_new_scale->left;
|
||||
S32 new_height = lprc_new_scale->bottom - lprc_new_scale->top;
|
||||
// <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
|
||||
//window_imp->mCallbacks->handleDPIChanged(window_imp, new_scale, new_width, new_height);
|
||||
if (window_imp->mCallbacks->handleDPIChanged(window_imp, new_scale, new_width, new_height))
|
||||
// </FS:Ansariel>
|
||||
SetWindowPos(h_wnd,
|
||||
HWND_TOP,
|
||||
lprc_new_scale->left,
|
||||
lprc_new_scale->top,
|
||||
new_width,
|
||||
new_height,
|
||||
SWP_NOZORDER | SWP_NOACTIVATE);
|
||||
return 0;
|
||||
{
|
||||
SetWindowPos(h_wnd,
|
||||
HWND_TOP,
|
||||
lprc_new_scale->left,
|
||||
lprc_new_scale->top,
|
||||
new_width,
|
||||
new_height,
|
||||
SWP_NOZORDER | SWP_NOACTIVATE);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
case WM_SETFOCUS:
|
||||
|
|
@ -4066,10 +4062,7 @@ F32 LLWindowWin32::getSystemUISize()
|
|||
hr = pGDFM(hMonitor, MDT_EFFECTIVE_DPI, &dpix, &dpiy);
|
||||
if (hr == S_OK)
|
||||
{
|
||||
// <FS:Ansariel> Fix DPI scaling
|
||||
//scale_value = dpix / USER_DEFAULT_SCREEN_DPI;
|
||||
scale_value = F32(dpix) / F32(USER_DEFAULT_SCREEN_DPI);
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -4088,10 +4081,7 @@ F32 LLWindowWin32::getSystemUISize()
|
|||
else
|
||||
{
|
||||
LL_WARNS() << "Could not load shcore.dll library (included by <ShellScalingAPI.h> from Win 8.1 SDK). Using legacy DPI awareness API of Win XP/7" << LL_ENDL;
|
||||
// <FS:Ansariel> Fix DPI scaling
|
||||
//scale_value = GetDeviceCaps(hdc, LOGPIXELSX) / USER_DEFAULT_SCREEN_DPI;
|
||||
scale_value = F32(GetDeviceCaps(hdc, LOGPIXELSX)) / F32(USER_DEFAULT_SCREEN_DPI);
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
ReleaseDC(hWnd, hdc);
|
||||
|
|
|
|||
|
|
@ -356,7 +356,6 @@ set(viewer_SOURCE_FILES
|
|||
llfloaterimsession.cpp
|
||||
llfloaterimcontainer.cpp
|
||||
llfloaterinspect.cpp
|
||||
llfloaterinventory.cpp
|
||||
llfloaterjoystick.cpp
|
||||
llfloaterlagmeter.cpp
|
||||
llfloaterland.cpp
|
||||
|
|
@ -1107,7 +1106,6 @@ set(viewer_HEADER_FILES
|
|||
llfloaterimsession.h
|
||||
llfloaterimcontainer.h
|
||||
llfloaterinspect.h
|
||||
llfloaterinventory.h
|
||||
llfloaterjoystick.h
|
||||
llfloaterlagmeter.h
|
||||
llfloaterland.h
|
||||
|
|
|
|||
|
|
@ -6666,6 +6666,17 @@
|
|||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>IgnoreFOVZoomForLODs</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Ignore zoom effect(CTRL+0) when calculating lods.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>IgnoreAllNotifications</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -949,6 +949,7 @@ LLSD FSData::getSystemInfo()
|
|||
sysinfo2 += llformat("RLVa: %s\n", info["RLV_VERSION"].asString().c_str());
|
||||
sysinfo2 += llformat("Mode: %s\n", info["MODE"].asString().c_str());
|
||||
sysinfo2 += llformat("Skin: %s (%s)\n", info["SKIN"].asString().c_str(), info["THEME"].asString().c_str());
|
||||
sysinfo2 += llformat("Window Size: %sx%s px\n", info["WINDOW_WIDTH"].asString().c_str(), info["WINDOW_HEIGHT"].asString().c_str());
|
||||
sysinfo2 += llformat("Font: %s\n", info["FONT"].asString().c_str());
|
||||
sysinfo2 += llformat("Font Size Adjustment: %d pt\n", info["FONT_SIZE"].asInteger());
|
||||
sysinfo2 += llformat("Font Screen DPI: %d\n", info["FONT_SCREEN_DPI"].asInteger());
|
||||
|
|
@ -967,4 +968,3 @@ LLSD FSData::getSystemInfo()
|
|||
|
||||
return sysinfos;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -225,7 +225,6 @@
|
|||
#include "llfloaterreg.h"
|
||||
#include "llfloateroutfitsnapshot.h"
|
||||
#include "llfloatersnapshot.h"
|
||||
//#include "llfloaterinventory.h"
|
||||
#include "llsidepanelinventory.h"
|
||||
|
||||
// includes for idle() idleShutdown()
|
||||
|
|
@ -3993,6 +3992,28 @@ LLSD LLAppViewer::getViewerInfo() const
|
|||
// [/RLVa:KB]
|
||||
info["OPENGL_VERSION"] = (const char*)(glGetString(GL_VERSION));
|
||||
info["LIBCURL_VERSION"] = LLCore::LLHttp::getCURLVersion();
|
||||
// Settings
|
||||
|
||||
LLRect window_rect = gViewerWindow->getWindowRectRaw();
|
||||
info["WINDOW_WIDTH"] = window_rect.getWidth();
|
||||
info["WINDOW_HEIGHT"] = window_rect.getHeight();
|
||||
// <FS> Custom sysinfo
|
||||
//info["FONT_SIZE_ADJUSTMENT"] = gSavedSettings.getF32("FontScreenDPI");
|
||||
//info["UI_SCALE"] = gSavedSettings.getF32("UIScaleFactor");
|
||||
//info["DRAW_DISTANCE"] = gSavedSettings.getF32("RenderFarClip");
|
||||
//info["NET_BANDWITH"] = gSavedSettings.getF32("ThrottleBandwidthKBPS");
|
||||
//info["LOD_FACTOR"] = gSavedSettings.getF32("RenderVolumeLODFactor");
|
||||
//info["RENDER_QUALITY"] = (F32)gSavedSettings.getU32("RenderQualityPerformance");
|
||||
//info["GPU_SHADERS"] = gSavedSettings.getBOOL("RenderDeferred") ? "Enabled" : "Disabled";
|
||||
//info["TEXTURE_MEMORY"] = gSavedSettings.getS32("TextureMemory");
|
||||
|
||||
//LLSD substitution;
|
||||
//substitution["datetime"] = (S32)(gVFS ? gVFS->creationTime() : 0);
|
||||
//info["VFS_TIME"] = LLTrans::getString("AboutTime", substitution);
|
||||
// </FS>
|
||||
|
||||
// Libraries
|
||||
|
||||
info["J2C_VERSION"] = LLImageJ2C::getEngineInfo();
|
||||
bool want_fullname = true;
|
||||
info["AUDIO_DRIVER_VERSION"] = gAudiop ? LLSD(gAudiop->getDriverName(want_fullname)) : LLSD();
|
||||
|
|
@ -4178,11 +4199,15 @@ std::string LLAppViewer::getViewerInfoString() const
|
|||
{
|
||||
support << "\n" << LLTrans::getString("AboutDriver", args);
|
||||
}
|
||||
support << "\n" << LLTrans::getString("AboutLibs", args);
|
||||
support << "\n" << LLTrans::getString("AboutOGL", args);
|
||||
//support << "\n\n" << LLTrans::getString("AboutSettings", args); // <FS> Custom sysinfo
|
||||
support << "\n\n" << LLTrans::getString("AboutLibs", args);
|
||||
// <FS> Custom sysinfo
|
||||
if (info.has("BANDWIDTH")) //For added info in help floater
|
||||
{
|
||||
support << "\n" << LLTrans::getString("AboutSettings", args);
|
||||
}
|
||||
// </FS>
|
||||
if (info.has("COMPILER"))
|
||||
{
|
||||
support << "\n" << LLTrans::getString("AboutCompiler", args);
|
||||
|
|
@ -6391,10 +6416,7 @@ void LLAppViewer::disconnectViewer()
|
|||
}
|
||||
|
||||
// close inventory interface, close all windows
|
||||
// <FS:Ansariel> Clean up inventory windows on shutdown
|
||||
//LLFloaterInventory::cleanup();
|
||||
LLSidepanelInventory::cleanup();
|
||||
// </FS:Ansariel>
|
||||
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2013-02-12 (Catznip-3.4)
|
||||
// Destroying all objects below will trigger attachment detaching code and attempt to remove the COF links for them
|
||||
|
|
|
|||
|
|
@ -676,13 +676,18 @@ bool LLEnvManagerNew::useRegionSky()
|
|||
return true;
|
||||
}
|
||||
|
||||
// *TODO: Support fixed sky from region.
|
||||
|
||||
// Otherwise apply region day cycle/skies.
|
||||
// <FS:Ansariel> Quickprefs integration
|
||||
FloaterQuickPrefs::updateParam(QP_PARAM_SKY, PRESET_NAME_REGION_DEFAULT);
|
||||
|
||||
// Otherwise apply region day cycle.
|
||||
LL_DEBUGS("Windlight") << "Applying region sky" << LL_ENDL;
|
||||
|
||||
// *TODO: Support fixed sky from region. Just do sky reset for now.
|
||||
if (region_settings.getSkyMap().size() == 1)
|
||||
{
|
||||
// Region is set to fixed sky. Reset.
|
||||
useSkyParams(region_settings.getSkyMap().beginMap()->second);
|
||||
}
|
||||
return useDayCycleParams(
|
||||
region_settings.getWLDayCycle(),
|
||||
LLEnvKey::SCOPE_REGION,
|
||||
|
|
|
|||
|
|
@ -667,40 +667,42 @@ void LLFloaterAvatarPicker::find()
|
|||
url.reserve(128); // avoid a memory allocation or two
|
||||
|
||||
LLViewerRegion* region = gAgent.getRegion();
|
||||
url = region->getCapability("AvatarPickerSearch");
|
||||
// Prefer use of capabilities to search on both SLID and display name
|
||||
if (!url.empty())
|
||||
if(region)
|
||||
{
|
||||
// capability urls don't end in '/', but we need one to parse
|
||||
// query parameters correctly
|
||||
if (url.size() > 0 && url[url.size()-1] != '/')
|
||||
url = region->getCapability("AvatarPickerSearch");
|
||||
// Prefer use of capabilities to search on both SLID and display name
|
||||
if (!url.empty())
|
||||
{
|
||||
url += "/";
|
||||
// capability urls don't end in '/', but we need one to parse
|
||||
// query parameters correctly
|
||||
if (url.size() > 0 && url[url.size()-1] != '/')
|
||||
{
|
||||
url += "/";
|
||||
}
|
||||
url += "?page_size=100&names=";
|
||||
std::replace(text.begin(), text.end(), '.', ' ');
|
||||
url += LLURI::escape(text);
|
||||
LL_INFOS() << "avatar picker " << url << LL_ENDL;
|
||||
|
||||
LLCoros::instance().launch("LLFloaterAvatarPicker::findCoro",
|
||||
boost::bind(&LLFloaterAvatarPicker::findCoro, url, mQueryID, getKey().asString()));
|
||||
}
|
||||
url += "?page_size=100&names=";
|
||||
std::replace(text.begin(), text.end(), '.', ' ');
|
||||
url += LLURI::escape(text);
|
||||
LL_INFOS() << "avatar picker " << url << LL_ENDL;
|
||||
else
|
||||
{
|
||||
// <FS:Ansariel> FIRE-15194: Avatar picker doesn't work anymore when using legacy simulator messages
|
||||
sQueryNameMap[mQueryID] = getKey().asString();
|
||||
|
||||
LLCoros::instance().launch("LLFloaterAvatarPicker::findCoro",
|
||||
boost::bind(&LLFloaterAvatarPicker::findCoro, url, mQueryID, getKey().asString()));
|
||||
LLMessageSystem* msg = gMessageSystem;
|
||||
msg->newMessage("AvatarPickerRequest");
|
||||
msg->nextBlock("AgentData");
|
||||
msg->addUUID("AgentID", gAgent.getID());
|
||||
msg->addUUID("SessionID", gAgent.getSessionID());
|
||||
msg->addUUID("QueryID", mQueryID); // not used right now
|
||||
msg->nextBlock("Data");
|
||||
msg->addString("Name", text);
|
||||
gAgent.sendReliableMessage();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// <FS:Ansariel> FIRE-15194: Avatar picker doesn't work anymore when using legacy simulator messages
|
||||
sQueryNameMap[mQueryID] = getKey().asString();
|
||||
|
||||
LLMessageSystem* msg = gMessageSystem;
|
||||
msg->newMessage("AvatarPickerRequest");
|
||||
msg->nextBlock("AgentData");
|
||||
msg->addUUID("AgentID", gAgent.getID());
|
||||
msg->addUUID("SessionID", gAgent.getSessionID());
|
||||
msg->addUUID("QueryID", mQueryID); // not used right now
|
||||
msg->nextBlock("Data");
|
||||
msg->addString("Name", text);
|
||||
gAgent.sendReliableMessage();
|
||||
}
|
||||
|
||||
getChild<LLScrollListCtrl>("SearchResults")->deleteAllItems();
|
||||
getChild<LLScrollListCtrl>("SearchResults")->setCommentText(getString("searching"));
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@
|
|||
#include "llinventorymodel.h" // for gInventory
|
||||
#include "llfirstuse.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llfloaterinventory.h" // for LLInventoryIcon::getIcon
|
||||
#include "llnotificationsutil.h"
|
||||
#include "llselectmgr.h"
|
||||
#include "llscrolllistctrl.h"
|
||||
|
|
|
|||
|
|
@ -1,113 +0,0 @@
|
|||
/**
|
||||
* @file llfloaterinventory.cpp
|
||||
* @brief Implementation of the inventory view and associated stuff.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "llfloaterinventory.h"
|
||||
|
||||
#include "llagentcamera.h"
|
||||
//#include "llfirstuse.h"
|
||||
#include "llfiltereditor.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llinventorymodel.h"
|
||||
#include "llpanelmaininventory.h"
|
||||
#include "llresmgr.h"
|
||||
#include "llviewerfoldertype.h"
|
||||
#include "lltransientfloatermgr.h"
|
||||
|
||||
///----------------------------------------------------------------------------
|
||||
/// LLFloaterInventory
|
||||
///----------------------------------------------------------------------------
|
||||
|
||||
LLFloaterInventory::LLFloaterInventory(const LLSD& key)
|
||||
: LLFloater(key)
|
||||
{
|
||||
LLTransientFloaterMgr::getInstance()->addControlView(this);
|
||||
}
|
||||
|
||||
LLFloaterInventory::~LLFloaterInventory()
|
||||
{
|
||||
LLTransientFloaterMgr::getInstance()->removeControlView(this);
|
||||
}
|
||||
|
||||
BOOL LLFloaterInventory::postBuild()
|
||||
{
|
||||
mPanelMainInventory = findChild<LLPanelMainInventory>("Inventory Panel");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
LLInventoryPanel* LLFloaterInventory::getPanel()
|
||||
{
|
||||
if (mPanelMainInventory)
|
||||
return mPanelMainInventory->getPanel();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// static
|
||||
LLFloaterInventory* LLFloaterInventory::showAgentInventory()
|
||||
{
|
||||
// Hack to generate semi-unique key for each inventory floater.
|
||||
static S32 instance_num = 0;
|
||||
instance_num = (instance_num + 1) % S32_MAX;
|
||||
|
||||
LLFloaterInventory* iv = NULL;
|
||||
if (!gAgentCamera.cameraMouselook())
|
||||
{
|
||||
iv = LLFloaterReg::showTypedInstance<LLFloaterInventory>("inventory", LLSD(instance_num));
|
||||
}
|
||||
return iv;
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFloaterInventory::cleanup()
|
||||
{
|
||||
LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory");
|
||||
for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end();)
|
||||
{
|
||||
LLFloaterInventory* iv = dynamic_cast<LLFloaterInventory*>(*iter++);
|
||||
if (iv)
|
||||
{
|
||||
iv->destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterInventory::onOpen(const LLSD& key)
|
||||
{
|
||||
//LLFirstUse::useInventory();
|
||||
// set focus on filter editor when floater inventory shows up
|
||||
LLFilterEditor* filter_editor = mPanelMainInventory->getChild<LLFilterEditor>("inventory search editor");
|
||||
filter_editor->setFocus(TRUE);
|
||||
}
|
||||
|
||||
void LLFloaterInventory::onClose(bool app_quitting)
|
||||
{
|
||||
LLFloater::onClose(app_quitting);
|
||||
if (mKey.asInteger() > 1)
|
||||
{
|
||||
destroy();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
/**
|
||||
* @file llfloaterinventory.h
|
||||
* @brief LLFloaterInventory, LLInventoryFolder, and LLInventoryItem
|
||||
* class definition
|
||||
*
|
||||
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLFLOATERINVENTORY_H
|
||||
#define LL_LLFLOATERINVENTORY_H
|
||||
|
||||
#include "llfloater.h"
|
||||
#include "llfoldertype.h"
|
||||
|
||||
class LLInventoryPanel;
|
||||
class LLPanelMainInventory;
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Class LLFloaterInventory
|
||||
//
|
||||
// This deals with the buttons and views used to navigate as
|
||||
// well as controlling the behavior of the overall object.
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
class LLFloaterInventory : public LLFloater
|
||||
{
|
||||
public:
|
||||
LLFloaterInventory(const LLSD& key);
|
||||
~LLFloaterInventory();
|
||||
|
||||
BOOL postBuild();
|
||||
|
||||
// This method makes sure that an inventory view exists, is
|
||||
// visible, and has focus. The view chosen is returned.
|
||||
static LLFloaterInventory* showAgentInventory();
|
||||
|
||||
// Final cleanup, destroy all open inventory views.
|
||||
static void cleanup();
|
||||
|
||||
// Inherited functionality
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
/*virtual*/ void onClose(bool app_quitting);
|
||||
|
||||
LLInventoryPanel* getPanel();
|
||||
LLPanelMainInventory* getMainInventoryPanel() { return mPanelMainInventory;}
|
||||
private:
|
||||
LLPanelMainInventory* mPanelMainInventory;
|
||||
};
|
||||
|
||||
#endif // LL_LLFLOATERINVENTORY_H
|
||||
|
||||
|
||||
|
||||
|
|
@ -39,7 +39,6 @@
|
|||
#include "lltextbox.h"
|
||||
|
||||
#include "llinventorybridge.h"
|
||||
#include "llfloaterinventory.h"
|
||||
#include "llinventorymodel.h"
|
||||
#include "llinventorypanel.h"
|
||||
#include "llpanelobjectinventory.h"
|
||||
|
|
|
|||
|
|
@ -85,12 +85,13 @@ void LLFloaterSidePanelContainer::closeFloater(bool app_quitting)
|
|||
|
||||
LLFloater::closeFloater(app_quitting);
|
||||
|
||||
// <FS:Ansariel> FIRE-7063: Memory is not released when closing secondary inventory floaters
|
||||
// <FS:Ansariel> Special secondary inventory floaters
|
||||
//if (getInstanceName() == "inventory" && !getKey().isUndefined())
|
||||
if ((getInstanceName() == "inventory" && !getKey().isUndefined()) || getInstanceName() == "secondary_inventory")
|
||||
// </FS:Ansariel>
|
||||
{
|
||||
destroy();
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
LLPanel* LLFloaterSidePanelContainer::openChildPanel(const std::string& panel_name, const LLSD& params)
|
||||
|
|
|
|||
|
|
@ -53,7 +53,6 @@ public:
|
|||
|
||||
/*virtual*/ void closeFloater(bool app_quitting = false);
|
||||
|
||||
// <FS:Ansariel> Clean up inventory windows on shutdown
|
||||
void cleanup() { destroy(); }
|
||||
|
||||
LLPanel* openChildPanel(const std::string& panel_name, const LLSD& params);
|
||||
|
|
|
|||
|
|
@ -48,7 +48,6 @@
|
|||
#include "llavataractions.h"
|
||||
#include "llclipboard.h"
|
||||
#include "lldonotdisturbnotificationstorage.h"
|
||||
#include "llfloaterinventory.h"
|
||||
#include "llfloatersidepanelcontainer.h"
|
||||
#include "llfocusmgr.h"
|
||||
#include "llfolderview.h"
|
||||
|
|
@ -835,36 +834,13 @@ void show_item_original(const LLUUID& item_uuid)
|
|||
|
||||
void reset_inventory_filter()
|
||||
{
|
||||
//inventory floater
|
||||
bool floater_inventory_visible = false;
|
||||
|
||||
LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory");
|
||||
for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter)
|
||||
LLSidepanelInventory *sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
|
||||
if (sidepanel_inventory)
|
||||
{
|
||||
LLFloaterInventory* floater_inventory = dynamic_cast<LLFloaterInventory*>(*iter);
|
||||
if (floater_inventory)
|
||||
LLPanelMainInventory* main_inventory = sidepanel_inventory->getMainInventoryPanel();
|
||||
if (main_inventory)
|
||||
{
|
||||
LLPanelMainInventory* main_inventory = floater_inventory->getMainInventoryPanel();
|
||||
|
||||
main_inventory->onFilterEdit("");
|
||||
|
||||
if(floater_inventory->getVisible())
|
||||
{
|
||||
floater_inventory_visible = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!floater_inventory_visible)
|
||||
{
|
||||
LLSidepanelInventory *sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
|
||||
if (sidepanel_inventory)
|
||||
{
|
||||
LLPanelMainInventory* main_inventory = sidepanel_inventory->getMainInventoryPanel();
|
||||
if (main_inventory)
|
||||
{
|
||||
main_inventory->onFilterEdit("");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@
|
|||
#include "llappearancemgr.h"
|
||||
#include "llavataractions.h"
|
||||
#include "llclipboard.h"
|
||||
#include "llfloaterinventory.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llfloatersidepanelcontainer.h"
|
||||
#include "llfolderview.h"
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@
|
|||
#include "llinventoryfunctions.h"
|
||||
#include "llinventoryicon.h"
|
||||
#include "llinventorymodel.h"
|
||||
#include "llfloaterinventory.h"
|
||||
#include "llagent.h"
|
||||
#include "llagentui.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@
|
|||
#include "lldndbutton.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llfilepicker.h"
|
||||
#include "llfloaterinventory.h"
|
||||
#include "llinventorybridge.h"
|
||||
#include "llinventoryfunctions.h"
|
||||
#include "llinventorymodelbackgroundfetch.h"
|
||||
|
|
@ -128,7 +127,6 @@ LLPanelMainInventory::LLPanelMainInventory(const LLPanel::Params& p)
|
|||
mCommitCallbackRegistrar.add("Inventory.EmptyTrash", boost::bind(&LLInventoryModel::emptyFolderType, &gInventory, "ConfirmEmptyTrash", LLFolderType::FT_TRASH));
|
||||
mCommitCallbackRegistrar.add("Inventory.EmptyLostAndFound", boost::bind(&LLInventoryModel::emptyFolderType, &gInventory, "ConfirmEmptyLostAndFound", LLFolderType::FT_LOST_AND_FOUND));
|
||||
mCommitCallbackRegistrar.add("Inventory.DoCreate", boost::bind(&LLPanelMainInventory::doCreate, this, _2));
|
||||
//mCommitCallbackRegistrar.add("Inventory.NewWindow", boost::bind(&LLPanelMainInventory::newWindow, this));
|
||||
mCommitCallbackRegistrar.add("Inventory.ShowFilters", boost::bind(&LLPanelMainInventory::toggleFindOptions, this));
|
||||
mCommitCallbackRegistrar.add("Inventory.ResetFilters", boost::bind(&LLPanelMainInventory::resetFilters, this));
|
||||
//mCommitCallbackRegistrar.add("Inventory.SetSortBy", boost::bind(&LLPanelMainInventory::setSortBy, this, _2)); // <FS:Zi> Sort By menu handlers
|
||||
|
|
@ -1663,6 +1661,18 @@ BOOL LLPanelMainInventory::isActionEnabled(const LLSD& userdata)
|
|||
LLSidepanelInventory* parent = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
|
||||
return parent ? parent->canShare() : FALSE;
|
||||
}
|
||||
if (command_name == "empty_trash")
|
||||
{
|
||||
const LLUUID &trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH);
|
||||
LLInventoryModel::EHasChildren children = gInventory.categoryHasChildren(trash_id);
|
||||
return children != LLInventoryModel::CHILDREN_NO;
|
||||
}
|
||||
if (command_name == "empty_lostnfound")
|
||||
{
|
||||
const LLUUID &trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_LOST_AND_FOUND);
|
||||
LLInventoryModel::EHasChildren children = gInventory.categoryHasChildren(trash_id);
|
||||
return children != LLInventoryModel::CHILDREN_NO;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ public:
|
|||
|
||||
void setFocusFilterEditor();
|
||||
|
||||
static void newWindow(); // <FS:Ansariel> Changed to public static
|
||||
static void newWindow();
|
||||
|
||||
// <FS:Zi> Filter dropdown
|
||||
void onFilterTypeSelected(const std::string& filter_type_name);
|
||||
|
|
@ -128,7 +128,6 @@ protected:
|
|||
// menu callbacks
|
||||
void doToSelected(const LLSD& userdata);
|
||||
void closeAllFolders();
|
||||
//void newWindow(); // <FS:Ansariel> Changed to public static
|
||||
void doCreate(const LLSD& userdata);
|
||||
// <FS:Ansariel> FIRE-19493: "Show Original" should open main inventory panel
|
||||
//void resetFilters(); // Moved to public
|
||||
|
|
|
|||
|
|
@ -51,7 +51,6 @@
|
|||
#include "llbutton.h"
|
||||
#include "llcombobox.h"
|
||||
#include "llfiltereditor.h"
|
||||
#include "llfloaterinventory.h"
|
||||
#include "llinventorybridge.h"
|
||||
#include "llinventorymodel.h"
|
||||
#include "llinventorymodelbackgroundfetch.h"
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@
|
|||
|
||||
#include "llplacesinventorybridge.h"
|
||||
|
||||
#include "llfloaterinventory.h" // for LLInventoryPanel
|
||||
#include "llfolderview.h" // for FIRST_SELECTED_ITEM
|
||||
#include "llinventorypanel.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
#ifndef LL_LLINVENTORYSUBTREEPANEL_H
|
||||
#define LL_LLINVENTORYSUBTREEPANEL_H
|
||||
|
||||
#include "llfloaterinventory.h"
|
||||
#include "llinventorypanel.h"
|
||||
|
||||
class LLLandmarksPanel;
|
||||
|
|
|
|||
|
|
@ -783,7 +783,6 @@ std::set<LLFolderViewItem*> LLSidepanelInventory::getInboxSelectionList()
|
|||
return inventory_selected_uuids;
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Clean up inventory windows on shutdown
|
||||
void LLSidepanelInventory::cleanup()
|
||||
{
|
||||
LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory");
|
||||
|
|
@ -796,6 +795,7 @@ void LLSidepanelInventory::cleanup()
|
|||
}
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Secondary inventory floaters
|
||||
LLFloaterReg::const_instance_list_t& secondary_inst_list = LLFloaterReg::getFloaterList("secondary_inventory");
|
||||
for (LLFloaterReg::const_instance_list_t::const_iterator iter = secondary_inst_list.begin(); iter != secondary_inst_list.end();)
|
||||
{
|
||||
|
|
@ -805,5 +805,5 @@ void LLSidepanelInventory::cleanup()
|
|||
iv->cleanup();
|
||||
}
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
|
|
|||
|
|
@ -85,7 +85,6 @@ public:
|
|||
|
||||
void updateVerbs();
|
||||
|
||||
// <FS:Ansariel> Clean up inventory windows on shutdown
|
||||
static void cleanup();
|
||||
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@
|
|||
#include "llinventorymodelbackgroundfetch.h"
|
||||
#include "llinventoryobserver.h"
|
||||
#include "llinventorypanel.h"
|
||||
#include "llfloaterinventory.h"
|
||||
#include "lllineeditor.h"
|
||||
#include "llui.h"
|
||||
#include "llviewerinventory.h"
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@
|
|||
#include "llglheaders.h"
|
||||
#include "llagent.h"
|
||||
#include "llavatariconctrl.h"
|
||||
#include "llfloaterinventory.h"
|
||||
#include "llinventorytype.h"
|
||||
|
||||
#include "llgroupactions.h"
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ LLViewerCamera::LLViewerCamera() : LLCamera()
|
|||
{
|
||||
calcProjection(getFar());
|
||||
mCameraFOVDefault = DEFAULT_FIELD_OF_VIEW;
|
||||
mPrevCameraFOVDefault = DEFAULT_FIELD_OF_VIEW;
|
||||
mCosHalfCameraFOV = cosf(mCameraFOVDefault * 0.5f);
|
||||
mPixelMeterRatio = 0.f;
|
||||
mScreenPixelArea = 0;
|
||||
|
|
@ -897,6 +898,15 @@ void LLViewerCamera::setDefaultFOV(F32 vertical_fov_rads)
|
|||
mCosHalfCameraFOV = cosf(mCameraFOVDefault * 0.5f);
|
||||
}
|
||||
|
||||
BOOL LLViewerCamera::isDefaultFOVChanged()
|
||||
{
|
||||
if(mPrevCameraFOVDefault != mCameraFOVDefault)
|
||||
{
|
||||
mPrevCameraFOVDefault = mCameraFOVDefault;
|
||||
return !gSavedSettings.getBOOL("IgnoreFOVZoomForLODs");
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// static
|
||||
void LLViewerCamera::updateCameraAngle( void* user_data, const LLSD& value)
|
||||
|
|
|
|||
|
|
@ -115,6 +115,8 @@ public:
|
|||
void setDefaultFOV(F32 fov) ;
|
||||
F32 getDefaultFOV() { return mCameraFOVDefault; }
|
||||
|
||||
BOOL isDefaultFOVChanged();
|
||||
|
||||
BOOL cameraUnderWater() const;
|
||||
BOOL areVertsVisible(LLViewerObject* volumep, BOOL all_verts);
|
||||
|
||||
|
|
@ -138,6 +140,7 @@ protected:
|
|||
mutable LLMatrix4 mProjectionMatrix; // Cache of perspective matrix
|
||||
mutable LLMatrix4 mModelviewMatrix;
|
||||
F32 mCameraFOVDefault;
|
||||
F32 mPrevCameraFOVDefault;
|
||||
F32 mCosHalfCameraFOV;
|
||||
LLVector3 mLastPointOfInterest;
|
||||
F32 mPixelMeterRatio; // Divide by distance from camera to get pixels per meter at that distance.
|
||||
|
|
|
|||
|
|
@ -77,7 +77,6 @@
|
|||
#include "llfloaterimagepreview.h"
|
||||
#include "llfloaterimsession.h"
|
||||
#include "llfloaterinspect.h"
|
||||
#include "llfloaterinventory.h"
|
||||
#include "llfloaterjoystick.h"
|
||||
#include "llfloaterlagmeter.h"
|
||||
#include "llfloaterland.h"
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@
|
|||
|
||||
#include "llinventorybridge.h"
|
||||
#include "llinventorypanel.h"
|
||||
#include "llfloaterinventory.h"
|
||||
#include "lllandmarkactions.h"
|
||||
|
||||
#include "llviewerassettype.h"
|
||||
|
|
|
|||
|
|
@ -63,7 +63,6 @@
|
|||
#include "llfloaterbuycontents.h"
|
||||
#include "llbuycurrencyhtml.h"
|
||||
#include "llfloatergodtools.h"
|
||||
//#include "llfloaterinventory.h"
|
||||
#include "llfloaterimcontainer.h"
|
||||
#include "llfloaterland.h"
|
||||
#include "llfloaterimnearbychat.h"
|
||||
|
|
@ -1385,14 +1384,15 @@ void set_use_wireframe(BOOL useWireframe)
|
|||
gUseWireframe = useWireframe;
|
||||
// [/RLVa:KB]
|
||||
// gUseWireframe = !(gUseWireframe);
|
||||
gWindowResized = TRUE;
|
||||
|
||||
LLPipeline::updateRenderDeferred();
|
||||
|
||||
if (gUseWireframe)
|
||||
{
|
||||
gInitialDeferredModeForWireframe = LLPipeline::sRenderDeferred;
|
||||
}
|
||||
|
||||
gWindowResized = TRUE;
|
||||
LLPipeline::updateRenderDeferred();
|
||||
gPipeline.resetVertexBuffers();
|
||||
|
||||
if (!gUseWireframe && !gInitialDeferredModeForWireframe && LLPipeline::sRenderDeferred != gInitialDeferredModeForWireframe && gPipeline.isInit())
|
||||
|
|
@ -11462,8 +11462,6 @@ void initialize_menus()
|
|||
view_listener_t::addMenu(new FSResetPerAccountControl(), "ResetPerAccountControl");
|
||||
// </FS:Ansariel> Control enhancements
|
||||
|
||||
// <FS:Ansariel> LLFloaterInventory is unused (and dangerous) legacy code! See LLPanelMainInventory instead
|
||||
//commit.add("Inventory.NewWindow", boost::bind(&LLFloaterInventory::showAgentInventory));
|
||||
commit.add("Inventory.NewWindow", boost::bind(&LLPanelMainInventory::newWindow));
|
||||
|
||||
enable.add("EnablePayObject", boost::bind(&enable_pay_object));
|
||||
|
|
|
|||
|
|
@ -1675,10 +1675,7 @@ BOOL LLViewerWindow::handleDeviceChange(LLWindow *window)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
// <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
|
||||
//void LLViewerWindow::handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height)
|
||||
BOOL LLViewerWindow::handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height)
|
||||
// </FS:Ansariel>
|
||||
{
|
||||
// <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
|
||||
if (!gSavedSettings.getBOOL("FSEnableAutomaticUIScaling"))
|
||||
|
|
@ -1689,16 +1686,16 @@ BOOL LLViewerWindow::handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32
|
|||
|
||||
if (ui_scale_factor >= MIN_UI_SCALE && ui_scale_factor <= MAX_UI_SCALE)
|
||||
{
|
||||
gSavedSettings.setF32("LastSystemUIScaleFactor", ui_scale_factor); // <FS:Ansariel> Remember last used system UI scale factor
|
||||
gSavedSettings.setF32("LastSystemUIScaleFactor", ui_scale_factor);
|
||||
gSavedSettings.setF32("UIScaleFactor", ui_scale_factor);
|
||||
LLViewerWindow::reshape(window_width, window_height);
|
||||
mResDirty = true;
|
||||
return TRUE; // <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "DPI change caused UI scale to go out of bounds: " << ui_scale_factor << LL_ENDL;
|
||||
return FALSE; // <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -212,10 +212,7 @@ public:
|
|||
/*virtual*/ void handleDataCopy(LLWindow *window, S32 data_type, void *data);
|
||||
/*virtual*/ BOOL handleTimerEvent(LLWindow *window);
|
||||
/*virtual*/ BOOL handleDeviceChange(LLWindow *window);
|
||||
// <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
|
||||
/*virtual*/ //void handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height);
|
||||
/*virtual*/ BOOL handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height);
|
||||
// </FS:Ansariel>
|
||||
|
||||
/*virtual*/ void handlePingWatchdog(LLWindow *window, const char * msg);
|
||||
/*virtual*/ void handlePauseWatchdog(LLWindow *window);
|
||||
|
|
|
|||
|
|
@ -1258,18 +1258,18 @@ void LLVOVolume::sculpt()
|
|||
}
|
||||
}
|
||||
|
||||
S32 LLVOVolume::computeLODDetail(F32 distance, F32 radius)
|
||||
S32 LLVOVolume::computeLODDetail(F32 distance, F32 radius, F32 lod_factor)
|
||||
{
|
||||
S32 cur_detail;
|
||||
if (LLPipeline::sDynamicLOD)
|
||||
{
|
||||
// We've got LOD in the profile, and in the twist. Use radius.
|
||||
F32 tan_angle = (LLVOVolume::sLODFactor*radius)/distance;
|
||||
F32 tan_angle = (lod_factor*radius)/distance;
|
||||
cur_detail = LLVolumeLODGroup::getDetailFromTan(ll_round(tan_angle, 0.01f));
|
||||
}
|
||||
else
|
||||
{
|
||||
cur_detail = llclamp((S32) (sqrtf(radius)*LLVOVolume::sLODFactor*4.f), 0, 3);
|
||||
cur_detail = llclamp((S32) (sqrtf(radius)*lod_factor*4.f), 0, 3);
|
||||
}
|
||||
return cur_detail;
|
||||
}
|
||||
|
|
@ -1285,6 +1285,7 @@ BOOL LLVOVolume::calcLOD()
|
|||
|
||||
F32 radius;
|
||||
F32 distance;
|
||||
F32 lod_factor = LLVOVolume::sLODFactor;
|
||||
|
||||
if (mDrawable->isState(LLDrawable::RIGGED))
|
||||
{
|
||||
|
|
@ -1320,12 +1321,18 @@ BOOL LLVOVolume::calcLOD()
|
|||
distance *= rampDist;
|
||||
}
|
||||
|
||||
// DON'T Compensate for field of view changing on FOV zoom.
|
||||
|
||||
distance *= F_PI/3.f;
|
||||
|
||||
cur_detail = computeLODDetail(ll_round(distance, 0.01f),
|
||||
ll_round(radius, 0.01f));
|
||||
static LLCachedControl<bool> ignore_fov_zoom(gSavedSettings,"IgnoreFOVZoomForLODs");
|
||||
if(!ignore_fov_zoom)
|
||||
{
|
||||
lod_factor *= DEFAULT_FIELD_OF_VIEW / LLViewerCamera::getInstance()->getDefaultFOV();
|
||||
}
|
||||
|
||||
cur_detail = computeLODDetail(ll_round(distance, 0.01f),
|
||||
ll_round(radius, 0.01f),
|
||||
lod_factor);
|
||||
|
||||
// <FS> FIRE-20191 / STORM-2139 Render Metadata->LOD Info is broken on all "recent" viewer versions
|
||||
//if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_LOD_INFO) &&
|
||||
|
|
|
|||
|
|
@ -328,7 +328,7 @@ public:
|
|||
void clearRiggedVolume();
|
||||
|
||||
protected:
|
||||
S32 computeLODDetail(F32 distance, F32 radius);
|
||||
S32 computeLODDetail(F32 distance, F32 radius, F32 lod_factor);
|
||||
BOOL calcLOD();
|
||||
LLFace* addFace(S32 face_index);
|
||||
void updateTEData();
|
||||
|
|
|
|||
|
|
@ -3516,6 +3516,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
|
|||
if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD)
|
||||
{
|
||||
LLSpatialGroup* last_group = NULL;
|
||||
BOOL fov_changed = LLViewerCamera::getInstance()->isDefaultFOVChanged();
|
||||
for (LLCullResult::bridge_iterator i = sCull->beginVisibleBridge(); i != sCull->endVisibleBridge(); ++i)
|
||||
{
|
||||
LLCullResult::bridge_iterator cur_iter = i;
|
||||
|
|
@ -3529,7 +3530,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
|
|||
|
||||
if (!bridge->isDead() && group && !group->isOcclusionState(LLSpatialGroup::OCCLUDED))
|
||||
{
|
||||
stateSort(bridge, camera);
|
||||
stateSort(bridge, camera, fov_changed);
|
||||
}
|
||||
|
||||
if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD &&
|
||||
|
|
@ -3601,9 +3602,9 @@ void LLPipeline::stateSort(LLSpatialGroup* group, LLCamera& camera)
|
|||
|
||||
}
|
||||
|
||||
void LLPipeline::stateSort(LLSpatialBridge* bridge, LLCamera& camera)
|
||||
void LLPipeline::stateSort(LLSpatialBridge* bridge, LLCamera& camera, BOOL fov_changed)
|
||||
{
|
||||
if (bridge->getSpatialGroup()->changeLOD())
|
||||
if (bridge->getSpatialGroup()->changeLOD() || fov_changed)
|
||||
{
|
||||
bool force_update = false;
|
||||
bridge->updateDistance(camera, force_update);
|
||||
|
|
|
|||
|
|
@ -254,7 +254,7 @@ public:
|
|||
|
||||
void stateSort(LLCamera& camera, LLCullResult& result);
|
||||
void stateSort(LLSpatialGroup* group, LLCamera& camera);
|
||||
void stateSort(LLSpatialBridge* bridge, LLCamera& camera);
|
||||
void stateSort(LLSpatialBridge* bridge, LLCamera& camera, BOOL fov_changed = FALSE);
|
||||
void stateSort(LLDrawable* drawablep, LLCamera& camera);
|
||||
void postSort(LLCamera& camera);
|
||||
void forAllVisibleDrawables(void (*func)(LLDrawable*));
|
||||
|
|
|
|||
|
|
@ -60,20 +60,13 @@ Grafikkarte: [GRAPHICS_CARD]
|
|||
<string name="AboutDriver">
|
||||
Windows-Grafiktreiberversion: [GRAPHICS_DRIVER_VERSION]
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
<string name="AboutOGL">
|
||||
OpenGL-Version: [OPENGL_VERSION]
|
||||
|
||||
RestrainedLove API: [RLV_VERSION]
|
||||
libcurl-Version: [LIBCURL_VERSION]
|
||||
J2C-Decoderversion: [J2C_VERSION]
|
||||
Audio-Treiberversion: [AUDIO_DRIVER_VERSION]
|
||||
LLCEFLib/CEF-Version: [LLCEFLIB_VERSION]
|
||||
LibVLC-Version: [LIBVLC_VERSION]
|
||||
Voice-Serverversion: [VOICE_VERSION]
|
||||
</string>
|
||||
<string name="AboutSettings">
|
||||
Modus: [MODE]
|
||||
Oberflächendesign: [SKIN] ([THEME])
|
||||
Fenstergröße: [WINDOW_WIDTH]x[WINDOW_HEIGHT] px
|
||||
Schriftart: [FONT] ([FONT_SCREEN_DPI] dpi)
|
||||
Schriftart Größenanpassung: [FONT_SIZE] pt
|
||||
UI-Skalierung: [UI_SCALE_FACTOR]
|
||||
|
|
@ -84,6 +77,15 @@ Darstellungsqualität: [RENDERQUALITY]
|
|||
Erweitertes Beleuchtungsmodell: [ALMSTATUS]
|
||||
Texturspeicher: [TEXTUREMEMORY] MB ([TEXTUREMEMORYMULTIPLIER])
|
||||
VFS (Cache) Erstellungszeit: [VFS_DATE]
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
RestrainedLove API: [RLV_VERSION]
|
||||
libcurl-Version: [LIBCURL_VERSION]
|
||||
J2C-Decoderversion: [J2C_VERSION]
|
||||
Audio-Treiberversion: [AUDIO_DRIVER_VERSION]
|
||||
LLCEFLib/CEF-Version: [LLCEFLIB_VERSION]
|
||||
LibVLC-Version: [LIBVLC_VERSION]
|
||||
Voice-Serverversion: [VOICE_VERSION]
|
||||
</string>
|
||||
<string name="AboutTraffic">
|
||||
Paketverlust: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
|
||||
|
|
|
|||
|
|
@ -194,6 +194,9 @@
|
|||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="empty_lostnfound" />
|
||||
<on_enable
|
||||
function="Inventory.GearDefault.Enable"
|
||||
parameter="empty_lostnfound" />
|
||||
</menu_item_call>
|
||||
<menu_item_separator
|
||||
layout="topleft" />
|
||||
|
|
@ -293,5 +296,8 @@
|
|||
<on_click
|
||||
function="Inventory.GearDefault.Custom.Action"
|
||||
parameter="empty_trash" />
|
||||
<on_enable
|
||||
function="Inventory.GearDefault.Enable"
|
||||
parameter="empty_trash" />
|
||||
</menu_item_call>
|
||||
</toggleable_menu>
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@
|
|||
left_delta="50"
|
||||
name="region_type"
|
||||
top_delta="0"
|
||||
width="200">
|
||||
width="225">
|
||||
unknown
|
||||
</text>
|
||||
<check_box
|
||||
|
|
|
|||
|
|
@ -54,20 +54,11 @@ Graphics Card Vendor: [GRAPHICS_CARD_VENDOR]
|
|||
Graphics Card: [GRAPHICS_CARD]
|
||||
</string>
|
||||
<string name="AboutDriver">Windows Graphics Driver Version: [GRAPHICS_DRIVER_VERSION]</string>
|
||||
<string name="AboutLibs">
|
||||
OpenGL Version: [OPENGL_VERSION]
|
||||
|
||||
RestrainedLove API: [RLV_VERSION]
|
||||
libcurl Version: [LIBCURL_VERSION]
|
||||
J2C Decoder Version: [J2C_VERSION]
|
||||
Audio Driver Version: [AUDIO_DRIVER_VERSION]
|
||||
LLCEFLib/CEF Version: [LLCEFLIB_VERSION]
|
||||
LibVLC Version: [LIBVLC_VERSION]
|
||||
Voice Server Version: [VOICE_VERSION]
|
||||
</string>
|
||||
<string name="AboutSettings">
|
||||
<string name="AboutOGL">OpenGL Version: [OPENGL_VERSION]</string>
|
||||
<string name="AboutSettings">
|
||||
Settings mode: [MODE]
|
||||
Viewer Skin: [SKIN] ([THEME])
|
||||
Window size: [WINDOW_WIDTH]x[WINDOW_HEIGHT] px
|
||||
Font Used: [FONT] ([FONT_SCREEN_DPI] dpi)
|
||||
Font Size Adjustment: [FONT_SIZE] pt
|
||||
UI Scaling: [UI_SCALE_FACTOR]
|
||||
|
|
@ -78,8 +69,17 @@ Render quality: [RENDERQUALITY]
|
|||
Advanced Lighting Model: [ALMSTATUS]
|
||||
Texture memory: [TEXTUREMEMORY] MB ([TEXTUREMEMORYMULTIPLIER])
|
||||
VFS (cache) creation time (UTC): [VFS_DATE]
|
||||
</string>
|
||||
<string name="AboutTraffic">Packets Lost: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)</string>
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
RestrainedLove API: [RLV_VERSION]
|
||||
libcurl Version: [LIBCURL_VERSION]
|
||||
J2C Decoder Version: [J2C_VERSION]
|
||||
Audio Driver Version: [AUDIO_DRIVER_VERSION]
|
||||
LLCEFLib/CEF Version: [LLCEFLIB_VERSION]
|
||||
LibVLC Version: [LIBVLC_VERSION]
|
||||
Voice Server Version: [VOICE_VERSION]
|
||||
</string>
|
||||
<string name="AboutTraffic">Packets Lost: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)</string>
|
||||
<string name="AboutTime">[month, datetime, slt] [day, datetime, slt] [year, datetime, slt] [hour, datetime, slt]:[min, datetime, slt]:[second,datetime,slt] SLT</string>
|
||||
<string name="ErrorFetchingServerReleaseNotesURL">Error fetching server release notes URL.</string>
|
||||
<string name="BuildConfiguration">Build Configuration</string>
|
||||
|
|
|
|||
|
|
@ -57,9 +57,10 @@ Tarjeta gráfica: [GRAPHICS_CARD]
|
|||
<string name="AboutDriver">
|
||||
Versión de Windows Graphics Driver: [GRAPHICS_DRIVER_VERSION]
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
<string name="AboutOGL">
|
||||
Versión de OpenGL: [OPENGL_VERSION]
|
||||
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
Versión de libcurl: [LIBCURL_VERSION]
|
||||
Versión de J2C Decoder: [J2C_VERSION]
|
||||
Versión de Audio Driver: [AUDIO_DRIVER_VERSION]
|
||||
|
|
|
|||
|
|
@ -52,9 +52,10 @@ Carte graphique : [GRAPHICS_CARD]
|
|||
<string name="AboutDriver">
|
||||
Version Windows Graphics Driver : [GRAPHICS_DRIVER_VERSION]
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
<string name="AboutOGL">
|
||||
Version OpenGL : [OPENGL_VERSION]
|
||||
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
Version libcurl : [LIBCURL_VERSION]
|
||||
Version J2C Decoder : [J2C_VERSION]
|
||||
Version Audio Driver : [AUDIO_DRIVER_VERSION]
|
||||
|
|
|
|||
|
|
@ -49,9 +49,10 @@ Scheda grafica: [GRAPHICS_CARD]
|
|||
<string name="AboutDriver">
|
||||
Versione driver Windows per grafica: [GRAPHICS_DRIVER_VERSION]
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
<string name="AboutOGL">
|
||||
Versione OpenGL: [OPENGL_VERSION]
|
||||
|
||||
</string>
|
||||
<string name="AboutSettings">
|
||||
Versione libcurl: [LIBCURL_VERSION]
|
||||
Versione J2C Decoder: [J2C_VERSION]
|
||||
Versione Driver audio: [AUDIO_DRIVER_VERSION]
|
||||
|
|
|
|||
|
|
@ -52,9 +52,10 @@ Karta graficzna (Graphics Card): [GRAPHICS_CARD]
|
|||
<string name="AboutDriver">
|
||||
Sterownik karty graficznej Windows (Driver Version): [GRAPHICS_DRIVER_VERSION]
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
<string name="AboutOGL">
|
||||
Wersja OpenGL: [OPENGL_VERSION]
|
||||
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
RestrainedLove API: [RLV_VERSION]
|
||||
Wersja libcurl: [LIBCURL_VERSION]
|
||||
Wersja dekodera J2C: [J2C_VERSION]
|
||||
|
|
|
|||
|
|
@ -49,9 +49,10 @@ Placa gráfica: [GRAPHICS_CARD]
|
|||
<string name="AboutDriver">
|
||||
Versão do driver de vídeo Windows: [GRAPHICS_CARD_VENDOR]
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
<string name="AboutOGL">
|
||||
Versão OpenGL: [OPENGL_VERSION]
|
||||
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
Versão libcurl: [LIBCURL_VERSION]
|
||||
Versão J2C Decoder: [J2C_VERSION]
|
||||
Versão do driver de áudio: [AUDIO_DRIVER_VERSION]
|
||||
|
|
|
|||
|
|
@ -64,8 +64,10 @@ SLURL: <nolink>[SLURL]</nolink>
|
|||
<string name="AboutDriver">
|
||||
Версия графического драйвера Windows: [GRAPHICS_DRIVER_VERSION]
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
<string name="AboutOGL">
|
||||
Версия OpenGL: [OPENGL_VERSION]
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
Контроль скриптами (RLVa): [RLV_VERSION]
|
||||
Версия libcurl: [LIBCURL_VERSION]
|
||||
Версия декодера J2C: [J2C_VERSION]
|
||||
|
|
|
|||
|
|
@ -61,9 +61,10 @@ Grafik Kartı: [GRAPHICS_CARD]
|
|||
<string name="AboutDriver">
|
||||
Windows Grafik Sürücüsü Sürümü: [GRAPHICS_DRIVER_VERSION]
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
<string name="AboutOGL">
|
||||
OpenGL Sürümü: [OPENGL_VERSION]
|
||||
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
libcurl Sürümü: [LIBCURL_VERSION]
|
||||
J2C Kod Çözücü Sürümü: [J2C_VERSION]
|
||||
Ses Sürücüsü Sürümü: [AUDIO_DRIVER_VERSION]
|
||||
|
|
|
|||
|
|
@ -61,9 +61,10 @@
|
|||
<string name="AboutDriver">
|
||||
Windows 顯示驅動程式版本:[GRAPHICS_DRIVER_VERSION]
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
<string name="AboutOGL">
|
||||
OpenGL 版本:[OPENGL_VERSION]
|
||||
|
||||
</string>
|
||||
<string name="AboutLibs">
|
||||
libcurl 版本: [LIBCURL_VERSION]
|
||||
J2C 解碼器版本: [J2C_VERSION]
|
||||
音效驅動程式版本: [AUDIO_DRIVER_VERSION]
|
||||
|
|
|
|||
Loading…
Reference in New Issue