Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm
commit
09609be3b7
|
|
@ -978,11 +978,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>87a94446fed5e9bdaf7bb4f9b0c21574</string>
|
||||
<string>ee3c5e3449e06bc3dbb1c9dc29aca53d</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/fmodstudio-2.01.04-linux64-202721507.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/fmodstudio-2.01.05-linux64-202931144.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
|
|||
|
|
@ -150,13 +150,13 @@ LLOSInfo::LLOSInfo() :
|
|||
|
||||
#if LL_WINDOWS
|
||||
|
||||
if (IsWindowsVersionOrGreater(10, 0, 0))
|
||||
if (IsWindows10OrGreater())
|
||||
{
|
||||
mMajorVer = 10;
|
||||
mMinorVer = 0;
|
||||
if (IsWindowsServer())
|
||||
{
|
||||
mOSStringSimple = "Windows Server 2016 ";
|
||||
mOSStringSimple = "Windows Server ";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1096,7 +1096,12 @@ LLRender::LLRender()
|
|||
//mQuadCycle(0), // <FS:Ansariel> Remove QUADS rendering mode
|
||||
mMode(LLRender::TRIANGLES),
|
||||
mCurrTextureUnitIndex(0),
|
||||
mMaxAnisotropy(0.f)
|
||||
mMaxAnisotropy(0.f),
|
||||
mLineWidth(1.f), // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
// <FS:Ansariel> Don't ignore OpenGL max line width
|
||||
mMaxLineWidthSmooth(1.f),
|
||||
mMaxLineWidthAliased(1.f)
|
||||
// </FS:Ansariel>
|
||||
{
|
||||
mTexUnits.reserve(LL_NUM_TEXTURE_LAYERS);
|
||||
for (U32 i = 0; i < LL_NUM_TEXTURE_LAYERS; i++)
|
||||
|
|
@ -1162,6 +1167,16 @@ void LLRender::init()
|
|||
initVB();
|
||||
// </FS:Ansariel>
|
||||
stop_glerror();
|
||||
|
||||
// <FS:Ansariel> Don't ignore OpenGL max line width
|
||||
GLint range[2];
|
||||
glGetIntegerv(GL_ALIASED_LINE_WIDTH_RANGE, range);
|
||||
stop_glerror();
|
||||
mMaxLineWidthAliased = F32(range[1]);
|
||||
glGetIntegerv(GL_SMOOTH_LINE_WIDTH_RANGE, range);
|
||||
stop_glerror();
|
||||
mMaxLineWidthSmooth = F32(range[1]);
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
void LLRender::shutdown()
|
||||
|
|
@ -1888,6 +1903,29 @@ void LLRender::setAmbientLightColor(const LLColor4& color)
|
|||
}
|
||||
}
|
||||
|
||||
// <FS> Line width OGL core profile fix by Rye Mutt
|
||||
void LLRender::setLineWidth(F32 line_width)
|
||||
{
|
||||
if (LLRender::sGLCoreProfile)
|
||||
{
|
||||
line_width = 1.f;
|
||||
}
|
||||
else if (line_width > 1.f)
|
||||
{
|
||||
line_width = llmin(line_width, glIsEnabled(GL_LINE_SMOOTH) ? mMaxLineWidthSmooth : mMaxLineWidthAliased);
|
||||
}
|
||||
if (mLineWidth != line_width || mDirty)
|
||||
{
|
||||
if (mMode == LLRender::LINES || mMode == LLRender::LINE_STRIP)
|
||||
{
|
||||
flush();
|
||||
}
|
||||
mLineWidth = line_width;
|
||||
glLineWidth(line_width);
|
||||
}
|
||||
}
|
||||
// </FS>
|
||||
|
||||
bool LLRender::verifyTexUnitActive(U32 unitToVerify)
|
||||
{
|
||||
if (mCurrTextureUnitIndex == unitToVerify)
|
||||
|
|
|
|||
|
|
@ -456,6 +456,8 @@ public:
|
|||
LLLightState* getLight(U32 index);
|
||||
void setAmbientLightColor(const LLColor4& color);
|
||||
|
||||
void setLineWidth(F32 line_width); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
|
||||
LLTexUnit* getTexUnit(U32 index);
|
||||
|
||||
U32 getCurrentTexUnitIndex(void) const { return mCurrTextureUnitIndex; }
|
||||
|
|
@ -499,6 +501,11 @@ private:
|
|||
bool mCurrColorMask[4];
|
||||
eCompareFunc mCurrAlphaFunc;
|
||||
F32 mCurrAlphaFuncVal;
|
||||
F32 mLineWidth; // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
// <FS:Ansariel> Don't ignore OpenGL max line width
|
||||
F32 mMaxLineWidthSmooth;
|
||||
F32 mMaxLineWidthAliased;
|
||||
// </FS:Ansariel>
|
||||
|
||||
LLPointer<LLVertexBuffer> mBuffer;
|
||||
LLStrider<LLVector3> mVerticesp;
|
||||
|
|
|
|||
|
|
@ -972,7 +972,7 @@ void gl_stippled_line_3d( const LLVector3& start, const LLVector3& end, const LL
|
|||
gGL.color4f(color.mV[VRED], color.mV[VGREEN], color.mV[VBLUE], color.mV[VALPHA]);
|
||||
|
||||
gGL.flush();
|
||||
glLineWidth(2.5f);
|
||||
gGL.setLineWidth(2.5f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
|
||||
if (!LLGLSLShader::sNoFixedFunction)
|
||||
{
|
||||
|
|
@ -2072,8 +2072,10 @@ void LLRender2D::setScaleFactor(const LLVector2 &scale_factor)
|
|||
|
||||
void LLRender2D::setLineWidth(F32 width)
|
||||
{
|
||||
gGL.flush();
|
||||
glLineWidth(width * lerp(mGLScaleFactor.mV[VX], mGLScaleFactor.mV[VY], 0.5f));
|
||||
// <FS> Line width OGL core profile fix by Rye Mutt
|
||||
//gGL.flush();
|
||||
//glLineWidth(width * lerp(mGLScaleFactor.mV[VX], mGLScaleFactor.mV[VY], 0.5f));
|
||||
gGL.setLineWidth(width * lerp(mGLScaleFactor.mV[VX], mGLScaleFactor.mV[VY], 0.5f));
|
||||
}
|
||||
|
||||
LLPointer<LLUIImage> LLRender2D::getUIImageByID(const LLUUID& image_id, S32 priority)
|
||||
|
|
|
|||
|
|
@ -4051,25 +4051,54 @@ void LLTearOffMenu::closeTearOff()
|
|||
}
|
||||
|
||||
LLContextMenuBranch::LLContextMenuBranch(const LLContextMenuBranch::Params& p)
|
||||
: LLMenuItemGL(p),
|
||||
mBranch( p.branch()->getHandle() )
|
||||
: LLMenuItemGL(p)
|
||||
//mBranch( p.branch()->getHandle() ) // <FS> Context menu memory leak fix by Rye Mutt
|
||||
{
|
||||
mBranch.get()->hide();
|
||||
mBranch.get()->setParentMenuItem(this);
|
||||
// <FS> Context menu memory leak fix by Rye Mutt
|
||||
//mBranch.get()->hide();
|
||||
//mBranch.get()->setParentMenuItem(this);
|
||||
// </FS>
|
||||
LLContextMenu* branch = static_cast<LLContextMenu*>(p.branch);
|
||||
if (branch)
|
||||
{
|
||||
mBranch = branch->getHandle();
|
||||
branch->hide();
|
||||
branch->setParentMenuItem(this);
|
||||
}
|
||||
}
|
||||
|
||||
// <FS> Context menu memory leak fix by Rye Mutt
|
||||
LLContextMenuBranch::~LLContextMenuBranch()
|
||||
{
|
||||
if (mBranch.get())
|
||||
{
|
||||
mBranch.get()->die();
|
||||
}
|
||||
}
|
||||
// </FS>
|
||||
|
||||
// called to rebuild the draw label
|
||||
void LLContextMenuBranch::buildDrawLabel( void )
|
||||
{
|
||||
// <FS> Context menu memory leak fix by Rye Mutt
|
||||
auto menu = getBranch();
|
||||
if (menu)
|
||||
// </FS>
|
||||
{
|
||||
// default enablement is this -- if any of the subitems are
|
||||
// enabled, this item is enabled. JC
|
||||
U32 sub_count = mBranch.get()->getItemCount();
|
||||
// <FS> Context menu memory leak fix by Rye Mutt
|
||||
//U32 sub_count = mBranch.get()->getItemCount();
|
||||
U32 sub_count = menu->getItemCount();
|
||||
// </FS>
|
||||
U32 i;
|
||||
BOOL any_enabled = FALSE;
|
||||
for (i = 0; i < sub_count; i++)
|
||||
{
|
||||
LLMenuItemGL* item = mBranch.get()->getItem(i);
|
||||
// <FS> Context menu memory leak fix by Rye Mutt
|
||||
//LLMenuItemGL* item = mBranch.get()->getItem(i);
|
||||
LLMenuItemGL* item = menu->getItem(i);
|
||||
// </FS>
|
||||
item->buildDrawLabel();
|
||||
if (item->getEnabled() && !item->getDrawTextDisabled() )
|
||||
{
|
||||
|
|
@ -4091,14 +4120,28 @@ void LLContextMenuBranch::buildDrawLabel( void )
|
|||
|
||||
void LLContextMenuBranch::showSubMenu()
|
||||
{
|
||||
LLMenuItemGL* menu_item = mBranch.get()->getParentMenuItem();
|
||||
if (menu_item != NULL && menu_item->getVisible())
|
||||
// <FS> Context menu memory leak fix by Rye Mutt
|
||||
//LLMenuItemGL* menu_item = mBranch.get()->getParentMenuItem();
|
||||
//if (menu_item != NULL && menu_item->getVisible())
|
||||
//{
|
||||
// S32 center_x;
|
||||
// S32 center_y;
|
||||
// localPointToScreen(getRect().getWidth(), getRect().getHeight() , ¢er_x, ¢er_y);
|
||||
// mBranch.get()->show(center_x, center_y);
|
||||
//}
|
||||
auto menu = getBranch();
|
||||
if (menu)
|
||||
{
|
||||
S32 center_x;
|
||||
S32 center_y;
|
||||
localPointToScreen(getRect().getWidth(), getRect().getHeight() , ¢er_x, ¢er_y);
|
||||
mBranch.get()->show(center_x, center_y);
|
||||
LLMenuItemGL* menu_item = menu->getParentMenuItem();
|
||||
if (menu_item != NULL && menu_item->getVisible())
|
||||
{
|
||||
S32 center_x;
|
||||
S32 center_y;
|
||||
localPointToScreen(getRect().getWidth(), getRect().getHeight() , ¢er_x, ¢er_y);
|
||||
menu->show(center_x, center_y);
|
||||
}
|
||||
}
|
||||
// </FS>
|
||||
}
|
||||
|
||||
// onCommit() - do the primary funcationality of the menu item.
|
||||
|
|
@ -4111,14 +4154,28 @@ void LLContextMenuBranch::setHighlight( BOOL highlight )
|
|||
{
|
||||
if (highlight == getHighlight()) return;
|
||||
LLMenuItemGL::setHighlight(highlight);
|
||||
if( highlight )
|
||||
// <FS> Context menu memory leak fix by Rye Mutt
|
||||
//if( highlight )
|
||||
//{
|
||||
// showSubMenu();
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// mBranch.get()->hide();
|
||||
//}
|
||||
auto menu = getBranch();
|
||||
if (menu)
|
||||
{
|
||||
showSubMenu();
|
||||
}
|
||||
else
|
||||
{
|
||||
mBranch.get()->hide();
|
||||
if (highlight)
|
||||
{
|
||||
showSubMenu();
|
||||
}
|
||||
else
|
||||
{
|
||||
menu->hide();
|
||||
}
|
||||
}
|
||||
// </FS>
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -754,8 +754,11 @@ public:
|
|||
|
||||
LLContextMenuBranch(const Params&);
|
||||
|
||||
virtual ~LLContextMenuBranch()
|
||||
{}
|
||||
// <FS> Context menu memory leak fix by Rye Mutt
|
||||
//virtual ~LLContextMenuBranch()
|
||||
//{}
|
||||
virtual ~LLContextMenuBranch();
|
||||
// </FS>
|
||||
|
||||
// called to rebuild the draw label
|
||||
virtual void buildDrawLabel( void );
|
||||
|
|
|
|||
|
|
@ -1559,9 +1559,9 @@ BOOL LLWindowWin32::switchContext(BOOL fullscreen, const LLCoordScreen &size, BO
|
|||
if (wglCreateContextAttribsARB)
|
||||
{ //attempt to create a specific versioned context
|
||||
S32 attribs[] =
|
||||
{ //start at 4.2
|
||||
{ //start at 4.6
|
||||
WGL_CONTEXT_MAJOR_VERSION_ARB, 4,
|
||||
WGL_CONTEXT_MINOR_VERSION_ARB, 2,
|
||||
WGL_CONTEXT_MINOR_VERSION_ARB, 6,
|
||||
WGL_CONTEXT_PROFILE_MASK_ARB, LLRender::sGLCoreProfile ? WGL_CONTEXT_CORE_PROFILE_BIT_ARB : WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB,
|
||||
WGL_CONTEXT_FLAGS_ARB, gDebugGL ? WGL_CONTEXT_DEBUG_BIT_ARB : 0,
|
||||
0
|
||||
|
|
|
|||
|
|
@ -25241,5 +25241,16 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>FSAllowWaterDistortionOcclusion</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>If allowed, object occlusion setting will be restored for generation the water reflection distortion. This was allowed pre-EEP and got disabled for EEP. While generation is more exact without occlusion, it can cause a huge performance impact.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
</map>
|
||||
</llsd>
|
||||
|
|
|
|||
|
|
@ -1501,7 +1501,7 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)
|
|||
|
||||
// <FS:Zi> Add avatar hitbox debug
|
||||
static LLCachedControl<bool> render_hitbox(gSavedSettings, "DebugRenderHitboxes", false);
|
||||
if (render_hitbox && pass == 1)
|
||||
if (render_hitbox && pass == 2)
|
||||
{
|
||||
LLGLSLShader* current_shader_program = NULL;
|
||||
|
||||
|
|
@ -1516,25 +1516,15 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)
|
|||
LLGLEnable blend(GL_BLEND);
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
|
||||
// save current world matrix
|
||||
gGL.matrixMode(LLRender::MM_MODELVIEW);
|
||||
gGL.pushMatrix();
|
||||
|
||||
LLColor4 avatar_color = LLNetMap::getAvatarColor(avatarp->getID());
|
||||
gGL.diffuseColor4f(avatar_color.mV[VRED], avatar_color.mV[VGREEN], avatar_color.mV[VBLUE], avatar_color.mV[VALPHA]);
|
||||
glLineWidth(2.0f);
|
||||
gGL.setLineWidth(2.0f);
|
||||
|
||||
LLQuaternion rot = avatarp->getRotationRegion();
|
||||
LLVector3 pos = avatarp->getPositionAgent();
|
||||
LLVector3 size = avatarp->getScale();
|
||||
|
||||
// *NOTE: Tried this so I wouldn't have to duplcate code, but I didn't find a way to rotate
|
||||
// the matrix by "rot" so the drawBoxOutline function would do the right thing. So
|
||||
// I settled for copying the code and rotating the 4 corner points individually. -Zi
|
||||
// gGL.translatef(pos.mV[VX],pos.mV[VY],pos.mV[VZ]);
|
||||
// gGL.rotatef(rot.mQ[VS]*RAD_TO_DEG,rot.mQ[VX],rot.mQ[VY],rot.mQ[VZ]);
|
||||
// drawBoxOutline(LLVector3::zero,size/2.0);
|
||||
// // drawBoxOutline partly copied from llspatialpartition.cpp below
|
||||
|
||||
// drawBoxOutline partly copied from llspatialpartition.cpp below
|
||||
|
||||
// set up and rotate hitbox to avatar orientation, half the avatar scale in either direction
|
||||
LLVector3 v1 = size.scaledVec(LLVector3( 0.5f, 0.5f, 0.5f)) * rot;
|
||||
|
|
@ -1581,9 +1571,6 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)
|
|||
|
||||
gGL.end();
|
||||
|
||||
// restore world matrix
|
||||
gGL.popMatrix();
|
||||
|
||||
// unload debug shader
|
||||
if (LLGLSLShader::sNoFixedFunction)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -716,7 +716,7 @@ void LLFace::renderOneWireframe(const LLColor4 &color, F32 fogCfx, bool wirefram
|
|||
|
||||
LLGLEnable offset(GL_POLYGON_OFFSET_LINE);
|
||||
glPolygonOffset(3.f, 3.f);
|
||||
glLineWidth(5.f);
|
||||
gGL.setLineWidth(5.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
renderFace(mDrawablep, this);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1095,8 +1095,10 @@ void LLFastTimerView::drawLineGraph()
|
|||
//fatten highlighted timer
|
||||
if (mHoverID == idp)
|
||||
{
|
||||
gGL.flush();
|
||||
glLineWidth(3);
|
||||
// <FS> Line width OGL core profile fix by Rye Mutt
|
||||
//gGL.flush();
|
||||
//glLineWidth(3);
|
||||
gGL.setLineWidth(3.f);
|
||||
}
|
||||
|
||||
llassert(idp->getIndex() < sTimerColors.size());
|
||||
|
|
@ -1155,8 +1157,10 @@ void LLFastTimerView::drawLineGraph()
|
|||
|
||||
if (mHoverID == idp)
|
||||
{
|
||||
gGL.flush();
|
||||
glLineWidth(1);
|
||||
// <FS> Line width OGL core profile fix by Rye Mutt
|
||||
//gGL.flush();
|
||||
//glLineWidth(1);
|
||||
gGL.setLineWidth(1.f);
|
||||
}
|
||||
|
||||
if (idp->getTreeNode().mCollapsed)
|
||||
|
|
|
|||
|
|
@ -950,8 +950,10 @@ void LLViewerObjectList::renderObjectBeacons()
|
|||
S32 line_width = debug_beacon.mLineWidth;
|
||||
if (line_width != last_line_width)
|
||||
{
|
||||
gGL.flush();
|
||||
glLineWidth( (F32)line_width );
|
||||
// <FS> Line width OGL core profile fix by Rye Mutt
|
||||
//gGL.flush();
|
||||
//glLineWidth( (F32)line_width );
|
||||
gGL.setLineWidth((F32)line_width);
|
||||
last_line_width = line_width;
|
||||
}
|
||||
|
||||
|
|
@ -980,8 +982,10 @@ void LLViewerObjectList::renderObjectBeacons()
|
|||
S32 line_width = debug_beacon.mLineWidth;
|
||||
if (line_width != last_line_width)
|
||||
{
|
||||
gGL.flush();
|
||||
glLineWidth( (F32)line_width );
|
||||
// <FS> Line width OGL core profile fix by Rye Mutt
|
||||
//gGL.flush();
|
||||
//glLineWidth( (F32)line_width );
|
||||
gGL.setLineWidth((F32)line_width);
|
||||
last_line_width = line_width;
|
||||
}
|
||||
|
||||
|
|
@ -994,8 +998,10 @@ void LLViewerObjectList::renderObjectBeacons()
|
|||
gGL.end();
|
||||
}
|
||||
|
||||
gGL.flush();
|
||||
glLineWidth(1.f);
|
||||
// <FS> Line width OGL core profile fix by Rye Mutt
|
||||
//gGL.flush();
|
||||
//glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f);
|
||||
|
||||
for (std::vector<LLDebugBeacon>::iterator iter = mDebugBeacons.begin(); iter != mDebugBeacons.end(); ++iter)
|
||||
{
|
||||
|
|
@ -1033,7 +1039,7 @@ void LLSky::renderSunMoonBeacons(const LLVector3& pos_agent, const LLVector3& di
|
|||
{
|
||||
pos_end.mV[i] = pos_agent.mV[i] + (50 * direction.mV[i]);
|
||||
}
|
||||
glLineWidth(LLPipeline::DebugBeaconLineWidth);
|
||||
gGL.setLineWidth(LLPipeline::DebugBeaconLineWidth); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
gGL.begin(LLRender::LINES);
|
||||
color.mV[3] *= 0.5f;
|
||||
gGL.color4fv(color.mV);
|
||||
|
|
@ -1044,7 +1050,7 @@ void LLSky::renderSunMoonBeacons(const LLVector3& pos_agent, const LLVector3& di
|
|||
gGL.end();
|
||||
|
||||
gGL.flush();
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -225,7 +225,6 @@ LLModelPreview::LLModelPreview(S32 width, S32 height, LLFloater* fmp)
|
|||
}
|
||||
|
||||
mViewOption["show_textures"] = false;
|
||||
mViewOption["verbose_logging"] = mImporterDebug;// <FS:Beq/> initialise verbose logging from debug
|
||||
fmp->childSetValue("verbose_logging", LLSD(mImporterDebug));
|
||||
mFMP = fmp;
|
||||
|
||||
|
|
@ -2974,13 +2973,6 @@ BOOL LLModelPreview::render()
|
|||
assert_main_thread();
|
||||
|
||||
LLMutexLock lock(this);
|
||||
// <FS:Beq> enable the import debug importer debug control
|
||||
if(mNeedsUpdate)
|
||||
{
|
||||
bool verbose_logging = mViewOption["verbose_logging"];
|
||||
gSavedSettings.setBOOL("ImporterDebug",verbose_logging);
|
||||
}
|
||||
// </FS:Beq>
|
||||
mNeedsUpdate = FALSE;
|
||||
|
||||
bool use_shaders = LLGLSLShader::sNoFixedFunction;
|
||||
|
|
@ -3314,11 +3306,11 @@ BOOL LLModelPreview::render()
|
|||
gGL.diffuseColor4fv(PREVIEW_EDGE_COL.mV);
|
||||
if (edges)
|
||||
{
|
||||
glLineWidth(PREVIEW_EDGE_WIDTH);
|
||||
gGL.setLineWidth(PREVIEW_EDGE_WIDTH); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
buffer->drawRange(LLRender::TRIANGLES, 0, buffer->getNumVerts() - 1, buffer->getNumIndices(), 0);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
}
|
||||
}
|
||||
gGL.popMatrix();
|
||||
|
|
@ -3431,12 +3423,12 @@ BOOL LLModelPreview::render()
|
|||
buffer->drawRange(LLRender::TRIANGLES, 0, buffer->getNumVerts() - 1, buffer->getNumIndices(), 0);
|
||||
|
||||
gGL.diffuseColor4fv(PREVIEW_PSYH_EDGE_COL.mV);
|
||||
glLineWidth(PREVIEW_PSYH_EDGE_WIDTH);
|
||||
gGL.setLineWidth(PREVIEW_PSYH_EDGE_WIDTH); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
buffer->drawRange(LLRender::TRIANGLES, 0, buffer->getNumVerts() - 1, buffer->getNumIndices(), 0);
|
||||
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3446,7 +3438,7 @@ BOOL LLModelPreview::render()
|
|||
// only do this if mDegenerate was set in the preceding mesh checks [Check this if the ordering ever breaks]
|
||||
if (mHasDegenerate)
|
||||
{
|
||||
glLineWidth(PREVIEW_DEG_EDGE_WIDTH);
|
||||
gGL.setLineWidth(PREVIEW_DEG_EDGE_WIDTH); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
glPointSize(PREVIEW_DEG_POINT_SIZE);
|
||||
gPipeline.enableLightsFullbright();
|
||||
//show degenerate triangles
|
||||
|
|
@ -3518,7 +3510,7 @@ BOOL LLModelPreview::render()
|
|||
|
||||
gGL.popMatrix();
|
||||
}
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
glPointSize(1.f);
|
||||
gPipeline.enableLightsPreview();
|
||||
gGL.setSceneBlendType(LLRender::BT_ALPHA);
|
||||
|
|
@ -3679,11 +3671,11 @@ BOOL LLModelPreview::render()
|
|||
if (edges)
|
||||
{
|
||||
gGL.diffuseColor4fv(PREVIEW_EDGE_COL.mV);
|
||||
glLineWidth(PREVIEW_EDGE_WIDTH);
|
||||
gGL.setLineWidth(PREVIEW_EDGE_WIDTH); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
buffer->draw(LLRender::TRIANGLES, buffer->getNumIndices(), 0);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1894,16 +1894,18 @@ LLColor4 LLNetMap::getAvatarColor(const LLUUID& avatar_id)
|
|||
{
|
||||
static LLUIColor map_avatar_color = LLUIColorTable::instance().getColor("MapAvatarColor", LLColor4::white);
|
||||
LLColor4 color = map_avatar_color;
|
||||
|
||||
|
||||
LGGContactSets& cs_instance = LGGContactSets::instance();
|
||||
|
||||
// Color "special" avatars with special colors (Friends, muted, Lindens, etc)
|
||||
color = LGGContactSets::getInstance()->colorize(avatar_id, color, LGG_CS_MINIMAP);
|
||||
color = cs_instance.colorize(avatar_id, color, LGG_CS_MINIMAP);
|
||||
|
||||
// Color based on contact sets prefs
|
||||
if(LGGContactSets::getInstance()->hasFriendColorThatShouldShow(avatar_id, LGG_CS_MINIMAP))
|
||||
if (cs_instance.hasFriendColorThatShouldShow(avatar_id, LGG_CS_MINIMAP))
|
||||
{
|
||||
color = LGGContactSets::getInstance()->getFriendColor(avatar_id);
|
||||
color = cs_instance.getFriendColor(avatar_id);
|
||||
}
|
||||
|
||||
|
||||
// Mark Avatars with special colors
|
||||
avatar_marks_map_t::iterator found = sAvatarMarksMap.find(avatar_id);
|
||||
if (found != sAvatarMarksMap.end())
|
||||
|
|
|
|||
|
|
@ -6235,7 +6235,7 @@ void LLSelectMgr::renderSilhouettes(BOOL for_hud)
|
|||
gGL.popMatrix();
|
||||
gGL.popMatrix();
|
||||
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
|
||||
if (shader)
|
||||
|
|
|
|||
|
|
@ -243,11 +243,11 @@ void LLSnapshotLivePreview::drawPreviewRect(S32 offset_x, S32 offset_y)
|
|||
{
|
||||
F32 line_width ;
|
||||
glGetFloatv(GL_LINE_WIDTH, &line_width) ;
|
||||
glLineWidth(2.0f * line_width) ;
|
||||
gGL.setLineWidth(2.0f * line_width) ; // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
LLColor4 color(0.0f, 0.0f, 0.0f, 1.0f) ;
|
||||
gl_rect_2d( mPreviewRect.mLeft + offset_x, mPreviewRect.mTop + offset_y,
|
||||
mPreviewRect.mRight + offset_x, mPreviewRect.mBottom + offset_y, color, FALSE ) ;
|
||||
glLineWidth(line_width) ;
|
||||
gGL.setLineWidth(line_width) ; // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
|
||||
//draw four alpha rectangles to cover areas outside of the snapshot image
|
||||
if(!mKeepAspectRatio)
|
||||
|
|
|
|||
|
|
@ -1738,12 +1738,12 @@ void renderOctree(LLSpatialGroup* group)
|
|||
|
||||
gGL.diffuseColor4f(1,0,0,group->mBuilt);
|
||||
gGL.flush();
|
||||
glLineWidth(5.f);
|
||||
gGL.setLineWidth(5.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
|
||||
const LLVector4a* bounds = group->getObjectBounds();
|
||||
drawBoxOutline(bounds[0], bounds[1]);
|
||||
gGL.flush();
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
gGL.flush();
|
||||
for (LLSpatialGroup::element_iter i = group->getDataBegin(); i != group->getDataEnd(); ++i)
|
||||
{
|
||||
|
|
@ -1880,10 +1880,10 @@ void renderVisibility(LLSpatialGroup* group, LLCamera* camera)
|
|||
pushBufferVerts(group, LLVertexBuffer::MAP_VERTEX, false);
|
||||
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
glLineWidth(4.f);
|
||||
gGL.setLineWidth(4.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
gGL.diffuseColor4f(0.f, 0.5f, 0.f, 1.f);
|
||||
pushBufferVerts(group, LLVertexBuffer::MAP_VERTEX, false);
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
|
||||
bool selected = false;
|
||||
|
|
@ -2257,12 +2257,12 @@ void renderBoundingBox(LLDrawable* drawable, BOOL set_color = TRUE)
|
|||
if (vobj && vobj->onActiveList())
|
||||
{
|
||||
gGL.flush();
|
||||
glLineWidth(llmax(4.f*sinf(gFrameTimeSeconds*2.f)+1.f, 1.f));
|
||||
//glLineWidth(4.f*(sinf(gFrameTimeSeconds*2.f)*0.25f+0.75f));
|
||||
gGL.setLineWidth(llmax(4.f*sinf(gFrameTimeSeconds*2.f)+1.f, 1.f)); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
//gGL.setLineWidth(4.f*(sinf(gFrameTimeSeconds*2.f)*0.25f+0.75f)); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
stop_glerror();
|
||||
drawBoxOutline(pos,size);
|
||||
gGL.flush();
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -2462,10 +2462,10 @@ void render_hull(LLModel::PhysicsMesh& mesh, const LLColor4& color, const LLColo
|
|||
LLGLEnable offset(GL_POLYGON_OFFSET_LINE);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
glPolygonOffset(3.f, 3.f);
|
||||
glLineWidth(3.f);
|
||||
gGL.setLineWidth(3.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
gGL.diffuseColor4fv(line_color.mV);
|
||||
LLVertexBuffer::drawArrays(LLRender::TRIANGLES, mesh.mPositions, mesh.mNormals);
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
}
|
||||
|
||||
|
|
@ -3237,7 +3237,7 @@ public:
|
|||
if (i == 1)
|
||||
{
|
||||
gGL.flush();
|
||||
glLineWidth(3.f);
|
||||
gGL.setLineWidth(3.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
}
|
||||
|
||||
gGL.begin(LLRender::TRIANGLES);
|
||||
|
|
@ -3256,7 +3256,7 @@ public:
|
|||
if (i == 1)
|
||||
{
|
||||
gGL.flush();
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3860,11 +3860,11 @@ void LLSpatialPartition::renderPhysicsShapes()
|
|||
|
||||
gGL.flush();
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
glLineWidth(3.f);
|
||||
gGL.setLineWidth(3.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
LLOctreeRenderPhysicsShapes render_physics(camera);
|
||||
render_physics.traverse(mOctree);
|
||||
gGL.flush();
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
}
|
||||
|
||||
void LLSpatialPartition::renderDebug()
|
||||
|
|
|
|||
|
|
@ -588,6 +588,7 @@ void LLStatusBar::refresh()
|
|||
}
|
||||
|
||||
// <FS:Zi> Pathfinding rebake functions
|
||||
LLMenuOptionPathfindingRebakeNavmesh& navmesh = LLMenuOptionPathfindingRebakeNavmesh::instance();
|
||||
static LLMenuOptionPathfindingRebakeNavmesh::ERebakeNavMeshMode pathfinding_mode = LLMenuOptionPathfindingRebakeNavmesh::kRebakeNavMesh_Default;
|
||||
|
||||
LLViewerRegion* current_region = gAgent.getRegion();
|
||||
|
|
@ -597,7 +598,7 @@ void LLStatusBar::refresh()
|
|||
bakingStarted = false;
|
||||
mRebakeStuck = false;
|
||||
}
|
||||
if (LLMenuOptionPathfindingRebakeNavmesh::getInstance()->isRebaking())
|
||||
if (navmesh.isRebaking())
|
||||
{
|
||||
if (!bakingStarted)
|
||||
{
|
||||
|
|
@ -615,9 +616,9 @@ void LLStatusBar::refresh()
|
|||
updateParcelIcons();
|
||||
}
|
||||
}
|
||||
else if (pathfinding_mode != LLMenuOptionPathfindingRebakeNavmesh::getInstance()->getMode())
|
||||
else if (pathfinding_mode != navmesh.getMode())
|
||||
{
|
||||
pathfinding_mode = LLMenuOptionPathfindingRebakeNavmesh::getInstance()->getMode();
|
||||
pathfinding_mode = navmesh.getMode();
|
||||
updateParcelIcons();
|
||||
}
|
||||
// </FS:Zi>
|
||||
|
|
@ -1382,9 +1383,10 @@ void LLStatusBar::updateParcelIcons()
|
|||
bool is_for_sale = (!current_parcel->isPublic() && vpm->canAgentBuyParcel(current_parcel, false));
|
||||
bool pathfinding_dynamic_enabled = agent_region->dynamicPathfindingEnabled();
|
||||
|
||||
bool pathfinding_navmesh_dirty = LLMenuOptionPathfindingRebakeNavmesh::getInstance()->isRebakeNeeded();
|
||||
LLMenuOptionPathfindingRebakeNavmesh& navmesh = LLMenuOptionPathfindingRebakeNavmesh::instance();
|
||||
bool pathfinding_navmesh_dirty = navmesh.isRebakeNeeded();
|
||||
F32 pathfinding_dirty_icon_alpha = 1.0f;
|
||||
if (LLMenuOptionPathfindingRebakeNavmesh::getInstance()->isRebaking())
|
||||
if (navmesh.isRebaking())
|
||||
{
|
||||
// Stop the blinking after a while
|
||||
if (mRebakeStuck)
|
||||
|
|
|
|||
|
|
@ -782,19 +782,23 @@ public:
|
|||
addText(xpos, ypos, "View Matrix");
|
||||
ypos += y_inc;
|
||||
}
|
||||
//<FS:AO improve use of controls with radiogroups>
|
||||
//if (gSavedSettings.getBOOL("DebugShowColor") && !LLRender::sNsightDebugSupport)
|
||||
//static LLCachedControl<bool> debugShowColor(gSavedSettings, "DebugShowColor");
|
||||
static LLCachedControl<S32> debugShowColor(gSavedSettings, "DebugShowColor");
|
||||
//</FS:AO>
|
||||
if (debugShowColor && !LLRender::sNsightDebugSupport)
|
||||
{
|
||||
U8 color[4];
|
||||
LLCoordGL coord = gViewerWindow->getCurrentMouse();
|
||||
glReadPixels(coord.mX, coord.mY, 1,1,GL_RGBA, GL_UNSIGNED_BYTE, color);
|
||||
addText(xpos, ypos, llformat("%d %d %d %d", color[0], color[1], color[2], color[3]));
|
||||
ypos += y_inc;
|
||||
}
|
||||
//<FS:AO improve use of controls with radiogroups>
|
||||
//static LLCachedControl<bool> debugShowColor(gSavedSettings, "DebugShowColor");
|
||||
static LLCachedControl<S32> debugShowColor(gSavedSettings, "DebugShowColor");
|
||||
if (debugShowColor && !LLRender::sNsightDebugSupport)
|
||||
//</FS:AO>
|
||||
{
|
||||
U8 color[4];
|
||||
LLCoordGL coord = gViewerWindow->getCurrentMouse();
|
||||
|
||||
// Convert x,y to raw pixel coords
|
||||
S32 x_raw = llround(coord.mX * gViewerWindow->getWindowWidthRaw() / (F32) gViewerWindow->getWindowWidthScaled());
|
||||
S32 y_raw = llround(coord.mY * gViewerWindow->getWindowHeightRaw() / (F32) gViewerWindow->getWindowHeightScaled());
|
||||
|
||||
glReadPixels(x_raw, y_raw, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, color);
|
||||
addText(xpos, ypos, llformat("Pixel <%1d, %1d> R:%1d G:%1d B:%1d A:%1d", x_raw, y_raw, color[0], color[1], color[2], color[3]));
|
||||
ypos += y_inc;
|
||||
}
|
||||
|
||||
// <FS:PP> FIRE-29880: Movelock
|
||||
static LLCachedControl<bool> fsRenderMovelockState(gSavedPerAccountSettings, "UseMoveLock");
|
||||
|
|
@ -4367,7 +4371,7 @@ void renderMeshPhysicsTriangles(const LLColor4& color, const LLColor4& line_colo
|
|||
LLGLEnable offset(GL_POLYGON_OFFSET_FILL);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
glPolygonOffset(offset_factor, offset_units);
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
LLVertexBuffer::drawArrays(LLRender::TRIANGLES, decomp->mPhysicsShapeMesh.mPositions, decomp->mPhysicsShapeMesh.mNormals);
|
||||
}
|
||||
{
|
||||
|
|
@ -4375,7 +4379,7 @@ void renderMeshPhysicsTriangles(const LLColor4& color, const LLColor4& line_colo
|
|||
LLGLEnable offset(GL_POLYGON_OFFSET_LINE);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
glPolygonOffset(offset_factor, offset_units);
|
||||
glLineWidth(3.f);
|
||||
gGL.setLineWidth(3.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
LLVertexBuffer::drawArrays(LLRender::TRIANGLES, decomp->mPhysicsShapeMesh.mPositions, decomp->mPhysicsShapeMesh.mNormals);
|
||||
}
|
||||
}
|
||||
|
|
@ -4403,12 +4407,12 @@ void renderMeshPhysicsTriangles(const LLColor4& color, const LLColor4& line_colo
|
|||
LLVertexBuffer::drawArrays(LLRender::TRIANGLES, decomp->mPhysicsShapeMesh.mPositions, decomp->mPhysicsShapeMesh.mNormals);
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
gGL.diffuseColor4fv(line_color.mV);
|
||||
glLineWidth(3.f);
|
||||
gGL.setLineWidth(3.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
LLVertexBuffer::drawArrays(LLRender::TRIANGLES, decomp->mPhysicsShapeMesh.mPositions, decomp->mPhysicsShapeMesh.mNormals);
|
||||
}
|
||||
}
|
||||
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
gGL.popMatrix();
|
||||
|
||||
|
|
|
|||
|
|
@ -5749,7 +5749,7 @@ U32 LLVOAvatar::renderImpostor(LLColor4U color, S32 diffuse_channel)
|
|||
gGL.begin(LLRender::LINES);
|
||||
gGL.color4f(1.f,1.f,1.f,1.f);
|
||||
F32 thickness = llmax(F32(5.0f-5.0f*(gFrameTimeSeconds-mLastImpostorUpdateFrameTime)),1.0f);
|
||||
glLineWidth(thickness);
|
||||
gGL.setLineWidth(thickness); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
gGL.vertex3fv((pos+left-up).mV);
|
||||
gGL.vertex3fv((pos-left-up).mV);
|
||||
gGL.vertex3fv((pos-left-up).mV);
|
||||
|
|
|
|||
|
|
@ -5122,7 +5122,7 @@ void LLPipeline::renderDebug()
|
|||
if ( pathfindingConsole->isRenderNavMesh() )
|
||||
{
|
||||
gGL.flush();
|
||||
glLineWidth(2.0f);
|
||||
gGL.setLineWidth(2.0f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
LLGLEnable cull(GL_CULL_FACE);
|
||||
LLGLDisable blend(GL_BLEND);
|
||||
|
||||
|
|
@ -5153,7 +5153,7 @@ void LLPipeline::renderDebug()
|
|||
|
||||
gGL.flush();
|
||||
glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
|
||||
glLineWidth(1.0f);
|
||||
gGL.setLineWidth(1.0f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
gGL.flush();
|
||||
}
|
||||
//User designated path
|
||||
|
|
@ -5290,11 +5290,11 @@ void LLPipeline::renderDebug()
|
|||
gPathfindingProgram.uniform1f(sTint, 1.f);
|
||||
gPathfindingProgram.uniform1f(sAlphaScale, 1.f);
|
||||
|
||||
glLineWidth(gSavedSettings.getF32("PathfindingLineWidth"));
|
||||
gGL.setLineWidth(gSavedSettings.getF32("PathfindingLineWidth")); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
LLGLDisable blendOut(GL_BLEND);
|
||||
llPathingLibInstance->renderNavMeshShapesVBO( render_order[i] );
|
||||
gGL.flush();
|
||||
glLineWidth(1.f);
|
||||
gGL.setLineWidth(1.f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
}
|
||||
|
||||
glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
|
||||
|
|
@ -5317,7 +5317,7 @@ void LLPipeline::renderDebug()
|
|||
LLGLEnable blend(GL_BLEND);
|
||||
LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_GREATER);
|
||||
gGL.flush();
|
||||
glLineWidth(2.0f);
|
||||
gGL.setLineWidth(2.0f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
LLGLEnable cull(GL_CULL_FACE);
|
||||
|
||||
gPathfindingProgram.uniform1f(sTint, gSavedSettings.getF32("PathfindingXRayTint"));
|
||||
|
|
@ -5351,7 +5351,7 @@ void LLPipeline::renderDebug()
|
|||
}
|
||||
|
||||
gGL.flush();
|
||||
glLineWidth(1.0f);
|
||||
gGL.setLineWidth(1.0f); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
}
|
||||
|
||||
glPolygonOffset(0.f, 0.f);
|
||||
|
|
@ -5616,7 +5616,7 @@ void LLPipeline::renderDebug()
|
|||
}
|
||||
|
||||
/*gGL.flush();
|
||||
glLineWidth(16-i*2);
|
||||
gGL.setLineWidth(16-i*2); // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin();
|
||||
iter != LLWorld::getInstance()->getRegionList().end(); ++iter)
|
||||
{
|
||||
|
|
@ -5634,7 +5634,7 @@ void LLPipeline::renderDebug()
|
|||
}
|
||||
}
|
||||
gGL.flush();
|
||||
glLineWidth(1.f);*/
|
||||
gGL.setLineWidth(1.f);*/ // <FS> Line width OGL core profile fix by Rye Mutt
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -9589,6 +9589,10 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
|
|||
}
|
||||
|
||||
//LLPipeline::sUseOcclusion = occlusion;
|
||||
// <FS:Ansariel> Add option to allow object occlusion for water distortion generation
|
||||
static LLCachedControl<bool> fsAllowWaterDistortionOcclusion(gSavedSettings, "FSAllowWaterDistortionOcclusion");
|
||||
LLPipeline::sUseOcclusion = fsAllowWaterDistortionOcclusion && occlusion;
|
||||
// </FS:Ansariel>
|
||||
|
||||
camera.setOrigin(camera_in.getOrigin());
|
||||
//render distortion map
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ label_pad_left - padding to the left of tab button labels
|
|||
halign="center"
|
||||
font="SansSerifSmall"
|
||||
tab_height="21"
|
||||
tabs_flashing_color="ButtonFlashBgColor"
|
||||
label_pad_bottom="1"
|
||||
label_pad_left="4">
|
||||
<!--
|
||||
|
|
|
|||
|
|
@ -9,31 +9,39 @@
|
|||
<floater.string name="move_tooltip">
|
||||
Poruszaj kamerą w górę, w dół, w lewo i w prawo
|
||||
</floater.string>
|
||||
<floater.string name="free_mode_title">
|
||||
Pokaż obiekt
|
||||
</floater.string>
|
||||
<floater.string name="free_mode_title">
|
||||
Pokaż obiekt
|
||||
</floater.string>
|
||||
<string name="inactive_combo_text">
|
||||
Użyj ustawienia
|
||||
</string>
|
||||
<panel name="controls">
|
||||
<panel name="zoom">
|
||||
<joystick_rotate name="cam_rotate_stick" tool_tip="Obróć kamerę wokół punktu skupienia"/>
|
||||
<slider_bar name="zoom_slider" tool_tip="Przybliż kamerę do punktu skupienia"/>
|
||||
<joystick_track name="cam_track_stick" tool_tip="Poruszaj kamerą w górę, w dół, w lewo i w prawo"/>
|
||||
</panel>
|
||||
</panel>
|
||||
<panel name="buttons_panel">
|
||||
<panel_camera_item name="front_view" tool_tip="Widok od przodu"/>
|
||||
<panel_camera_item name="group_view" tool_tip="Widok ponad ramieniem"/>
|
||||
<panel_camera_item name="rear_view" tool_tip="Widok od tyłu"/>
|
||||
<panel_camera_item name="object_view" tool_tip="Pokazywanie obiektu"/>
|
||||
<panel_camera_item name="mouselook_view" tool_tip="Widok pierwszoosobowy"/>
|
||||
<panel_camera_item name="reset_view" tool_tip="Resetuj widok"/>
|
||||
<button label="Pozycja..." name="camera_position_btn" />
|
||||
<panel_camera_item name="front_view" tool_tip="Widok od przodu" />
|
||||
<panel_camera_item name="group_view" tool_tip="Widok ponad ramieniem" />
|
||||
<panel_camera_item name="rear_view" tool_tip="Widok od tyłu" />
|
||||
<panel_camera_item name="object_view" tool_tip="Pokazywanie obiektu" />
|
||||
<panel_camera_item name="mouselook_view" tool_tip="Widok pierwszoosobowy" />
|
||||
<panel_camera_item name="reset_view" tool_tip="Resetuj widok" />
|
||||
</panel>
|
||||
<panel name="zoom">
|
||||
<layout_stack name="camera_view_layout_stack">
|
||||
<layout_panel name="camera_rotate_layout_panel">
|
||||
<joystick_rotate name="cam_rotate_stick" tool_tip="Obróć kamerę wokół punktu skupienia" />
|
||||
</layout_panel>
|
||||
<layout_panel name="camera_zoom_layout_panel">
|
||||
<slider_bar name="zoom_slider" tool_tip="Przybliż kamerę do punktu skupienia" />
|
||||
</layout_panel>
|
||||
<layout_panel name="panel_track">
|
||||
<joystick_track name="cam_track_stick" tool_tip="Poruszaj kamerą w górę, w dół, w lewo i w prawo" />
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</panel>
|
||||
<panel name="preset_buttons_panel">
|
||||
<button label="Pozycja..." name="camera_position_btn" />
|
||||
<button name="save_preset_btn" tool_tip="Zapisz jako ustawienie" />
|
||||
<combo_box name="preset_combo">
|
||||
<combo_box.item label="Użyj ustawienia" name="Use preset" />
|
||||
</combo_box>
|
||||
<button name="gear_btn" tool_tip="Ustawienia kamery" />
|
||||
</panel>
|
||||
<combo_box name="preset_combo">
|
||||
<combo_box.item label="Użyj ustawienia" name="Use preset" />
|
||||
</combo_box>
|
||||
<button name="gear_btn" tool_tip="Ustawienia kamery" />
|
||||
<button tool_tip="Zapisz jako ustawienie" name="save_preset_btn" />
|
||||
</floater>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,11 @@
|
|||
<string name="layer_all">Wszystko</string>
|
||||
<string name="decomposing">Analizowanie...</string>
|
||||
<string name="simplifying">Upraszczanie...</string>
|
||||
<string name="TooManyJoint">Teksturowanie wyłączone, zbyt wiele stawów: [JOINTS], maksimum: [MAX]</string>
|
||||
<string name="UnrecognizedJoint">Riggowane do nieznanej nazwy stawu [NAME]</string>
|
||||
<string name="UnknownJoints">Teksturowanie wyłączone, zbyt wiele nieznanych stawów ([COUNT])</string>
|
||||
<string name="ModelLoaded">Model [MODEL_NAME] załadowany</string>
|
||||
<string name="IncompleteTC">Dane współrzędnych tekstury nie są kompletne.</string>
|
||||
<panel name="left_panel">
|
||||
<panel name="model_name_representation_panel">
|
||||
<text name="name_label">
|
||||
|
|
@ -159,20 +164,28 @@
|
|||
Wymiary:
|
||||
</text>
|
||||
<check_box name="upload_textures" label="Dołącz tekstury"/>
|
||||
<text name="include_label">
|
||||
Tylko dla modeli awatarów:
|
||||
</text>
|
||||
<check_box label="Dołącz wagi skórki" name="upload_skin"/>
|
||||
<check_box label="Dołącz pozycje stawów" name="upload_joints"/>
|
||||
<check_box label="Deformuj do kształtu awatara" name="deform"/>
|
||||
<radio_group name="deform_base">
|
||||
<radio_item label="Mężczyzna" name="0"/>
|
||||
<radio_item label="Kobieta" name="1"/>
|
||||
<radio_item label="Mężczyzna - chudy" name="2"/>
|
||||
</radio_group>
|
||||
</panel>
|
||||
<panel label="Riggowanie" name="rigging_panel" title="Riggowanie">
|
||||
<check_box label="Dołącz wagi skórki" name="upload_skin" />
|
||||
<check_box label="Dołącz pozycje stawów" name="upload_joints" />
|
||||
<check_box label="Blokuj skalowanie gdy stawy ustawione" name="lock_scale_if_joint_position" />
|
||||
<text name="pelvis_offset_label">
|
||||
Przesunięcie osi Z:
|
||||
Przesunięcie Z (wyżej lub niżej):
|
||||
</text>
|
||||
<text name="skin_too_many_joints">
|
||||
Zbyt wiele teksturowanych stawów
|
||||
</text>
|
||||
<text name="skin_unknown_joint">
|
||||
Model ma nieznane stawy
|
||||
</text>
|
||||
<text name="joints_descr">
|
||||
Stawy:
|
||||
</text>
|
||||
<text name="conflicts_description">
|
||||
[CONFLICTS] konflikty w [JOINTS_COUNT] stawach
|
||||
</text>
|
||||
<text name="pos_overrides_descr">
|
||||
Nadpisania pozycji dla stawu '[JOINT]':
|
||||
</text>
|
||||
<panel name="avatar_model_hint_panel">
|
||||
<text name="avatar_model_hint_text">
|
||||
|
|
@ -183,6 +196,9 @@ Rozważ użycie innego punktu doczepienia, bliżej do pozycji obiektu na ciele.
|
|||
</text>
|
||||
</panel>
|
||||
</panel>
|
||||
<panel name="logs_panel">
|
||||
<check_box label="Logowanie szczegółowe" name="verbose_logging" />
|
||||
</panel>
|
||||
</tab_container>
|
||||
<panel name="weights_and_warning_panel">
|
||||
<button label="Przelicz wagi i opłatę" name="calculate_btn" tool_tip="Przelicz wagi i opłatę"/>
|
||||
|
|
@ -250,10 +266,11 @@ Analiza:
|
|||
<check_box label="Pomoc UV" name="show_uv_guide" />
|
||||
<check_box label="Fizyka" name="show_physics" />
|
||||
<text name="exploder_label">
|
||||
Rozpiętość
|
||||
Rozpiętość
|
||||
</text>
|
||||
<check_box label="Wagi" name="show_skin_weight" />
|
||||
<check_box label="Stawy" name="show_joint_positions" />
|
||||
<check_box label="Nadpisania" name="show_joint_overrides" />
|
||||
</panel>
|
||||
<text name="warning_title">
|
||||
UWAGA:
|
||||
|
|
@ -263,9 +280,7 @@ Analiza:
|
|||
</text>
|
||||
</panel>
|
||||
</panel>
|
||||
<panel name="right_panel">
|
||||
<text name="lod_label">
|
||||
Podgląd:
|
||||
</text>
|
||||
</panel>
|
||||
<text name="lod_label">
|
||||
Podgląd:
|
||||
</text>
|
||||
</floater>
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
<combo_box.item label="Pomocnik lotu: Ekstremalne przyspieszanie" name="flight_extreme" />
|
||||
</combo_box>
|
||||
<slider name="manual_environment_change_transition_period" label="Czas przejścia otoczenia:" tool_tip="Interwał w sekundach, w czasie którego ręczne zmiany środowiska będą zachodzić. Zero oznacza natychmiast." />
|
||||
<check_box name="EnvironmentPersistAcrossLogin" label="Trzymaj ustawienia otoczenia pomiędzy sesjami" tool_tip="Przywraca aktualne ustawienia otoczenia po następnym zalogowaniu." />
|
||||
</panel>
|
||||
<panel label="Ochrona" name="ProtectionTab">
|
||||
<check_box label="Blokuj siadanie na obiektach przez kliknięcie lewym przyciskiem myszy" name="FSBlockClickSit" />
|
||||
|
|
|
|||
|
|
@ -13,13 +13,6 @@
|
|||
Обзор объекта
|
||||
</floater.string>
|
||||
<string name="inactive_combo_text">Предустановки</string>
|
||||
<panel name="controls">
|
||||
<panel name="zoom">
|
||||
<joystick_rotate name="cam_rotate_stick" tool_tip="Вращение камеры вокруг точки фокусировки"/>
|
||||
<slider_bar name="zoom_slider" tool_tip="Приблизить/отдалить камеру относительно точки фокусировки"/>
|
||||
<joystick_track name="cam_track_stick" tool_tip="Переместить камеру вверх, вниз, влево или вправо"/>
|
||||
</panel>
|
||||
</panel>
|
||||
<panel name="buttons_panel">
|
||||
<panel_camera_item name="front_view" tool_tip="Вид спереди" />
|
||||
<panel_camera_item name="group_view" tool_tip="Вид сбоку" />
|
||||
|
|
@ -27,10 +20,26 @@
|
|||
<panel_camera_item name="object_view" tool_tip="Вид на объект"/>
|
||||
<panel_camera_item name="mouselook_view" tool_tip="Вид от первого лица"/>
|
||||
<panel_camera_item name="reset_view" tool_tip="Сбросить вид"/>
|
||||
<button label="Позиция..." name="camera_position_btn"/>
|
||||
</panel>
|
||||
<combo_box name="preset_combo">
|
||||
<combo_box.item label="Предустановки" name="Use preset"/>
|
||||
</combo_box>
|
||||
<button name="gear_btn" tool_tip="Предустановки Камеры"/>
|
||||
<panel name="zoom">
|
||||
<layout_stack name="camera_view_layout_stack">
|
||||
<layout_panel name="camera_rotate_layout_panel">
|
||||
<joystick_rotate name="cam_rotate_stick" tool_tip="Вращение камеры вокруг точки фокусировки"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="camera_zoom_layout_panel">
|
||||
<slider_bar name="zoom_slider" tool_tip="Приблизить/отдалить камеру к/от точки фокусировки"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="panel_track">
|
||||
<joystick_track name="cam_track_stick" tool_tip="Двигать камеру вверх и вниз, влево и вправо"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</panel>
|
||||
<panel name="preset_buttons_panel">
|
||||
<button label="Позиция..." name="camera_position_btn"/>
|
||||
<button name="save_preset_btn" tool_tip="Сохранить как Предустановку"/>
|
||||
<combo_box name="preset_combo">
|
||||
<combo_box.item label="Предустановки" name="Use preset"/>
|
||||
</combo_box>
|
||||
<button name="gear_btn" tool_tip="Предустановки Камеры"/>
|
||||
</panel>
|
||||
</floater>
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="Model Preview" title="Загрузка модели">
|
||||
<string name="no_havok">загрузка меша с физикой</string>
|
||||
<string name="status_idle"/>
|
||||
<string name="status_parse_error">Ошибка: Проблема при анализе файла DAE – см. подробности в журнале.</string>
|
||||
<string name="status_bind_shape_orientation">Предупреждение: форма матрицы стандартно не ориентирована по координате X.</string>
|
||||
<string name="status_material_mismatch">Ошибка: Материал модели не входит в эталонную модель.</string>
|
||||
|
|
@ -31,6 +30,13 @@
|
|||
<string name="simplifying">Упрощение...</string>
|
||||
<string name="tbd">Позже</string>
|
||||
|
||||
<!-- Warnings and info from model loader-->
|
||||
<string name="TooManyJoint">Текстурирование отключено, слишком много суставов: [JOINTS], максимум: [MAX]</string>
|
||||
<string name="UnrecognizedJoint">Подстроено под неизвестный сустав [NAME]</string>
|
||||
<string name="UnknownJoints">Текстурирование отключено, слишком много [COUNT] неизвестных суставов</string>
|
||||
<string name="ModelLoaded">Модель [MODEL_NAME] загружена</string>
|
||||
<string name="IncompleteTC">Данные координат текстуры не полны.</string>
|
||||
|
||||
<panel name="left_panel">
|
||||
<panel name="model_name_representation_panel">
|
||||
<text name="name_label">Имя модели:</text>
|
||||
|
|
@ -50,8 +56,6 @@
|
|||
<item label="Лимит треугольников" name="Triangle Limit"/>
|
||||
<item label="Порог ошибки" name="Error Threshold"/>
|
||||
</combo_box>
|
||||
<text initial_value="0" name="high_triangles" value="0"/>
|
||||
<text initial_value="0" name="high_vertices" value="0"/>
|
||||
<text initial_value="Средний" name="medium_label" value="Средний"/>
|
||||
<combo_box name="lod_source_medium">
|
||||
<item label="Загрузка из файла" name="Load from file"/>
|
||||
|
|
@ -63,8 +67,6 @@
|
|||
<item label="Лимит треугольников" name="Triangle Limit"/>
|
||||
<item label="Порог ошибки" name="Error Threshold"/>
|
||||
</combo_box>
|
||||
<text initial_value="0" name="medium_triangles" value="0"/>
|
||||
<text initial_value="0" name="medium_vertices" value="0"/>
|
||||
<text initial_value="Низкий" name="low_label" value="Низкий"/>
|
||||
<combo_box name="lod_source_low">
|
||||
<item label="Загрузка из файла" name="Load from file"/>
|
||||
|
|
@ -76,8 +78,6 @@
|
|||
<item label="Лимит треугольников" name="Triangle Limit"/>
|
||||
<item label="Порог ошибки" name="Error Threshold"/>
|
||||
</combo_box>
|
||||
<text initial_value="0" name="low_triangles" value="0"/>
|
||||
<text initial_value="0" name="low_vertices" value="0"/>
|
||||
<text initial_value="Низший" name="lowest_label" value="Низший"/>
|
||||
<combo_box name="lod_source_lowest">
|
||||
<item label="Загрузка из файла" name="Load from file"/>
|
||||
|
|
@ -89,11 +89,8 @@
|
|||
<item label="Лимит треугольников" name="Triangle Limit"/>
|
||||
<item label="Порог ошибки" name="Error Threshold"/>
|
||||
</combo_box>
|
||||
<text initial_value="0" name="lowest_triangles" value="0"/>
|
||||
<text initial_value="0" name="lowest_vertices" value="0"/>
|
||||
<check_box label="Генерировать нормали" name="gen_normals"/>
|
||||
<text initial_value="Угол сгиба:" name="crease_label" value="Угол сгиба:"/>
|
||||
<spinner name="crease_angle" value="75"/>
|
||||
</panel>
|
||||
|
||||
<!-- PHYSYCS PANEL -->
|
||||
|
|
@ -141,23 +138,34 @@
|
|||
<text name="scale_label" width="195">Масштаб (1=не масштабировать):</text>
|
||||
<text name="dimensions_label">Размеры:</text>
|
||||
<check_box label="Включить текстуры" name="upload_textures"/>
|
||||
</panel>
|
||||
|
||||
<text name="include_label" width="190">Только для моделей аватаров:</text>
|
||||
<check_box label="Включить вес кожи" name="upload_skin"/>
|
||||
<check_box label="Включить положения суставов" name="upload_joints"/>
|
||||
<check_box label="Блокировать масштаб, если определено положение суставов" name="lock_scale_if_joint_position"/>
|
||||
<panel label="Переопределения" name="rigging_panel" title="Оснастка">
|
||||
<check_box label="Включая вес кожи" name="upload_skin"/>
|
||||
<check_box label="Включая позицию суставов" name="upload_joints"/>
|
||||
<check_box label="Блокировать масштаб, если задана позиция сустава" name="lock_scale_if_joint_position"/>
|
||||
<text name="pelvis_offset_label">Сдвиг Z (поднять/опустить):</text>
|
||||
<text name="skin_too_many_joints">Слишком много кожных суставов</text>
|
||||
<text name="skin_unknown_joint">Модель имеет неизвестный сустав(ы)</text>
|
||||
<text name="joints_descr">Суставы:</text>
|
||||
<text name="conflicts_description">[CONFLICTS] конфликтов в [JOINTS_COUNT] суставах</text>
|
||||
<text name="pos_overrides_descr">Переопределения положения для сустава '[JOINT]':</text>
|
||||
<scroll_list name="pos_overrides_list">
|
||||
<scroll_list.columns label="Модель" name="model_name"/>
|
||||
</scroll_list>
|
||||
<panel name="avatar_model_hint_panel">
|
||||
<text name="avatar_model_hint_text">
|
||||
Подсказка:
|
||||
Слишком много предметов используют по умолчанию (правая рука) без необходимости.
|
||||
Слишком много предметов используют по умолчанию (правая кисть) без необходимости.
|
||||
|
||||
Пожалуйста, рассмотрите возможность использования точки крепления рядом с положением предмета на теле.
|
||||
</text>
|
||||
</panel>
|
||||
</panel>
|
||||
<panel label="Журнал" name="logs_panel">
|
||||
<check_box label="Показать подробно журнал" name="verbose_logging" width="80"/>
|
||||
</panel>
|
||||
</tab_container>
|
||||
|
||||
<panel name="weights_and_warning_panel">
|
||||
<button label="Рассчитать вес и плату" name="calculate_btn" tool_tip="Рассчитать вес и плату"/>
|
||||
<button label="Отмена" name="cancel_btn"/>
|
||||
|
|
@ -165,14 +173,14 @@
|
|||
<button label="Очистить настройки и сбросить форму" name="reset_btn"/>
|
||||
<!-- ========== WEIGHTS ==========-->
|
||||
<text name="upload_fee">Стоимость: L$ [FEE]</text>
|
||||
<text name="prim_weight" width="140">Влияние земли: [EQ]</text>
|
||||
<text name="prim_weight" width="140">Влияет на землю: [EQ]</text>
|
||||
<text name="download_weight">Загрузка: [ST]</text>
|
||||
<text name="physics_weight">Физика: [PH]</text>
|
||||
<text name="server_weight">Сервер: [SIM]</text>
|
||||
<!-- =========== Cost breakdown ======== -->
|
||||
<panel name="physics_costs_panel">
|
||||
<panel name="price_breakdown_panel">
|
||||
<text name="price_breakdown_title">Ценовая разбивка</text>
|
||||
<text name="price_breakdown_labels" width="70">
|
||||
<text name="price_breakdown_labels">
|
||||
Загрузка:
|
||||
Физика:
|
||||
Экземпляры:
|
||||
|
|
@ -180,18 +188,18 @@
|
|||
Модель:
|
||||
</text>
|
||||
</panel>
|
||||
<panel name="physics_breakdown_panel" width="120" height="100">
|
||||
<panel name="physics_costs_panel">
|
||||
<text name="physics_breakdown_title">Расходы на физику</text>
|
||||
<text name="physics_breakdown_labels" width="65">
|
||||
<text name="physics_breakdown_labels">
|
||||
Каркас:
|
||||
Меш:
|
||||
Анализ:
|
||||
</text>
|
||||
</panel>
|
||||
<panel name="preview_controls_panel" width="260">
|
||||
<panel name="preview_controls_inner_panel" height="18" >
|
||||
<text name="preview_controls_title" left="3" width="150">Предпросмотр</text>
|
||||
<combo_box name="preview_lod_combo" width="80" tool_tip="Уровень детализации при предварительном просмотре">
|
||||
<panel name="preview_controls_panel">
|
||||
<panel name="preview_controls_inner_panel">
|
||||
<text name="preview_controls_title">Предпросмотр</text>
|
||||
<combo_box name="preview_lod_combo" tool_tip="Уровень детализации при предварительном просмотре">
|
||||
<combo_item name="high">Высокий</combo_item>
|
||||
<combo_item name="medium">Средний</combo_item>
|
||||
<combo_item name="low">Низкий</combo_item>
|
||||
|
|
@ -199,18 +207,19 @@
|
|||
</combo_box>
|
||||
</panel>
|
||||
<check_box label="Грани" name="show_edges"/>
|
||||
<check_box label="Текстуры" name="show_textures" left_pad="5"/>
|
||||
<check_box label="UV guide" name="show_uv_guide" left_pad="5"/>
|
||||
<check_box label="Текстуры" name="show_textures"/>
|
||||
<check_box label="Развертка" name="show_uv_guide"/>
|
||||
<check_box label="Физика" name="show_physics"/>
|
||||
<text width="80" name="exploder_label">Просмотр разложения</text>
|
||||
<check_box label="Вес кожи" name="show_skin_weight"/>
|
||||
<check_box label="Суставы" name="show_joint_positions" left_pad="5"/>
|
||||
<text name="exploder_label">Диапазон</text>
|
||||
<check_box label="Веса кожи" name="show_skin_weight"/>
|
||||
<check_box label="Суставы" name="show_joint_positions"/>
|
||||
<check_box label="Изменение Суставов" name="show_joint_overrides"/>
|
||||
</panel>
|
||||
|
||||
<!-- ========== NOTE MESSAGE ========== -->
|
||||
<text name="warning_title">ПРИМЕЧАНИЕ:</text>
|
||||
<text name="warning_message">У вас нет прав на загрузку меш моделей. [[VURL] Узнайте, как] получить их.
|
||||
</text>
|
||||
<text name="warning_message">У вас нет прав на загрузку меш моделей. [[VURL] Узнайте, как] получить их.</text>
|
||||
</panel>
|
||||
</panel>
|
||||
<text name="lod_label">Просмотр:</text>
|
||||
</floater>
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
</combo_box>
|
||||
<slider name="manual_environment_change_transition_period" label="Время изменения окружающей среды:"
|
||||
tool_tip="Интервал в секундах, в течение которого будет изменяться окружающая среда при ручной настройке. Ноль - мгновенно."/>
|
||||
<check_box name="EnvironmentPersistAcrossLogin" label="Сохранять настройки среды во время сеансов" tool_tip="Восстанавливает текущие настройки среды после следующего входа в систему."/>
|
||||
</panel>
|
||||
<panel label="Защита" name="ProtectionTab">
|
||||
<check_box label="Блокировка нажатия левой кнопкой мыши, чтобы сесть на объекты" name="FSBlockClickSit" />
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ label_pad_left - padding to the left of tab button labels
|
|||
font="SansSerifSmall"
|
||||
label_shadow="true"
|
||||
tab_height="18"
|
||||
tabs_flashing_color="ButtonFlashBgColor"
|
||||
label_pad_bottom="1"
|
||||
label_pad_left="4">
|
||||
<!--
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ label_pad_left - padding to the left of tab button labels
|
|||
halign="center"
|
||||
font="SansSerifSmall"
|
||||
tab_height="21"
|
||||
tabs_flashing_color="ButtonFlashBgColor"
|
||||
label_pad_bottom="1"
|
||||
label_pad_left="4">
|
||||
<!--
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ label_pad_left - padding to the left of tab button labels
|
|||
halign="center"
|
||||
font="SansSerifSmall"
|
||||
tab_height="21"
|
||||
tabs_flashing_color="SL-CustomMain"
|
||||
label_pad_bottom="1"
|
||||
label_pad_left="4">
|
||||
<!--
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ label_pad_left - padding to the left of tab button labels
|
|||
font="SansSerifSmall"
|
||||
label_shadow="true"
|
||||
tab_height="18"
|
||||
tabs_flashing_color="ButtonFlashBgColor"
|
||||
label_pad_bottom="1"
|
||||
label_pad_left="4">
|
||||
<!--
|
||||
|
|
|
|||
Loading…
Reference in New Issue