Merge remote-tracking branch 'singu/master'

This commit is contained in:
Aleric Inglewood
2014-01-25 20:29:46 +01:00
32 changed files with 481 additions and 111 deletions

View File

@@ -1349,12 +1349,12 @@ void LLFontGL::renderQuad(LLVector4a* vertex_out, LLVector2* uv_out, LLColor4U*
colors_out[index] = color;
index++;
vertex_out[index].set(screen_rect.mLeft, screen_rect.mBottom, 0.f);
vertex_out[index].set(screen_rect.mLeft + slant_amt, screen_rect.mBottom, 0.f);
uv_out[index] = LLVector2(uv_rect.mLeft, uv_rect.mBottom);
colors_out[index] = color;
index++;
vertex_out[index].set(screen_rect.mRight, screen_rect.mBottom, 0.f);
vertex_out[index].set(screen_rect.mRight + slant_amt, screen_rect.mBottom, 0.f);
uv_out[index] = LLVector2(uv_rect.mRight, uv_rect.mBottom);
colors_out[index] = color;
}

View File

@@ -1224,6 +1224,7 @@ void LLShaderMgr::initAttribsAndUniforms()
mReservedUniforms.push_back("env_intensity");
mReservedUniforms.push_back("matrixPalette");
mReservedUniforms.push_back("translationPalette");
mReservedUniforms.push_back("screenTex");
mReservedUniforms.push_back("screenDepth");

View File

@@ -178,6 +178,7 @@ public:
ENVIRONMENT_INTENSITY,
AVATAR_MATRIX,
AVATAR_TRANSLATION,
WATER_SCREENTEX,
WATER_SCREENDEPTH,

View File

@@ -1850,6 +1850,7 @@ void LLVertexBuffer::unmapBuffer()
else
{
stop_glerror();
glBufferDataARB(GL_ARRAY_BUFFER_ARB, getSize(), NULL, mUsage);
glBufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0, getSize(), (U8*) mMappedData);
stop_glerror();
}
@@ -1916,6 +1917,7 @@ void LLVertexBuffer::unmapBuffer()
else
{
stop_glerror();
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, getIndicesSize(), NULL, mUsage);
glBufferSubDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0, getIndicesSize(), (U8*) mMappedIndexData);
stop_glerror();
}

View File

@@ -760,7 +760,7 @@ LLView* LLScrollContainer::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFa
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent, LLRect());
U32 follows_flags = createRect(node, rect, parent, LLRect());
BOOL opaque = FALSE;
node->getAttributeBOOL("opaque", opaque);
@@ -771,6 +771,10 @@ LLView* LLScrollContainer::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFa
// Create the scroll view
LLScrollContainer *ret = new LLScrollContainer(name, rect, (LLPanel*)NULL, opaque, color);
// Obey xml follows
ret->setFollows(follows_flags);
ret->parseFollowsFlags(node);
LLPanel* panelp = NULL;
// Find a child panel to add

View File

@@ -209,6 +209,7 @@ public:
BOOL focusNextItem(BOOL text_entry_only);
BOOL focusPrevItem(BOOL text_entry_only);
virtual // Singu Note: focusFirstItem is overridden for our old chat ui to prevent focusing on topmost uictrls.
BOOL focusFirstItem(BOOL prefer_text_fields = FALSE, BOOL focus_flash = TRUE );
BOOL focusLastItem(BOOL prefer_text_fields = FALSE);

View File

@@ -540,6 +540,11 @@ void LLScriptLibrary::init()
addFunction(0.f, 0.f, dummy_func, "llGetAnimationOverride", "s", "s");
addFunction(0.f, 0.f, dummy_func, "llResetAnimationOverride", NULL, "s");
// Server RC LeTigre 13.12.20.285035 new function
addFunction(10.f, 0.f, dummy_func, "llScaleByFactor" , "i", "f");
addFunction(10.f, 0.f, dummy_func, "llGetMinScaleFactor" , "f", NULL);
addFunction(10.f, 0.f, dummy_func, "llGetMaxScaleFactor" , "f", NULL);
// SL-LSL Functions to be added above this line
// ---------------------------------------------
// NOTE bytecode placement no longer applies, viewers do not compile scripts anymore (confirmed with LL, also noted by Phoenix/Firestorm team.)

View File

@@ -1039,5 +1039,12 @@
<!-- 13.06.21.277682 new function -->
<key>llXorBase64</key>
<map/>
<!-- Server RC LeTigre 13.12.20.285035 new function -->
<key>llScaleByFactor</key>
<map/>
<key>llGetMinScaleFactor</key>
<map/>
<key>llGetMaxScaleFactor</key>
<map/>
</map>
</llsd>

View File

@@ -22,30 +22,46 @@
* $/LicenseInfo$
*/
ATTRIBUTE vec4 weight4;
uniform mat4 matrixPalette[32];
uniform mat3 matrixPalette[52];
uniform vec3 translationPalette[52];
mat4 getObjectSkinnedTransform()
{
float w0 = fract(weight4.x);
float w1 = fract(weight4.y);
float w2 = fract(weight4.z);
float w3 = fract(weight4.w);
int i;
int i0 = int(floor(weight4.x));
int i1 = int(floor(weight4.y));
int i2 = int(floor(weight4.z));
int i3 = int(floor(weight4.w));
vec4 w = fract(weight4);
vec4 index = floor(weight4);
//float scale = 1.0/(w.x+w.y+w.z+w.w);
//w *= scale;
mat4 mat = matrixPalette[i0]*w0;
mat += matrixPalette[i1]*w1;
mat += matrixPalette[i2]*w2;
mat += matrixPalette[i3]*w3;
index = min(index, vec4(63.0));
index = max(index, vec4( 0.0));
return mat;
float scale = 1.0/(w.x+w.y+w.z+w.w);
w *= scale;
int i1 = int(index.x);
int i2 = int(index.y);
int i3 = int(index.z);
int i4 = int(index.w);
mat3 mat = matrixPalette[i1]*w.x;
mat += matrixPalette[i2]*w.y;
mat += matrixPalette[i3]*w.z;
mat += matrixPalette[i4]*w.w;
vec3 trans = translationPalette[i1]*w.x;
trans += translationPalette[i2]*w.y;
trans += translationPalette[i3]*w.z;
trans += translationPalette[i4]*w.w;
mat4 ret;
ret[0] = vec4(mat[0], 0);
ret[1] = vec4(mat[1], 0);
ret[2] = vec4(mat[2], 0);
ret[3] = vec4(trans, 1.0);
return ret;
}

View File

@@ -3563,7 +3563,11 @@
<volume_morph
name="BELLY"
scale="0.075 0.04 0.03"
pos="0.07 0 -0.07"/>
pos="0.07 0 -0.02"/>
<volume_morph
name="PELVIS"
scale="0.075 0.04 0.03"
pos="0.07 0 -0.02"/>
</param_morph>
</param>
@@ -3582,7 +3586,16 @@
camera_elevation=".1"
camera_distance="1"
camera_angle="15">
<param_morph />
<param_morph>
<volume_morph
name="LEFT_PEC"
scale="0.0273 0.0273 0.0273"
pos="0.038 0.024 -0.016"/>
<volume_morph
name="RIGHT_PEC"
scale="0.0273 0.0273 0.0273"
pos="0.038 -0.024 -0.016"/>
</param_morph>
</param>
<param
@@ -3599,7 +3612,16 @@
value_max="1"
camera_elevation="0"
camera_distance=".28">
<param_morph />
<param_morph>
<volume_morph
name="LEFT_PEC"
scale="-0.05 0.0 0.0"
pos="-0.01 -0.01 -0.02"/>
<volume_morph
name="RIGHT_PEC"
scale="-0.05 0.0 0.0"
pos="-0.01 -0.01 -0.02"/>
</param_morph>
</param>
<param
@@ -3616,7 +3638,16 @@
value_max="1"
camera_elevation="0"
camera_distance=".28">
<param_morph />
<param_morph>
<volume_morph
name="LEFT_PEC"
scale="-0.051 0.0 0.0"
pos="-0.02 -0.01 -0.03"/>
<volume_morph
name="RIGHT_PEC"
scale="-0.051 0.0 0.0"
pos="-0.02 -0.01 -0.03"/>
</param_morph>
</param>
<param
@@ -3682,6 +3713,10 @@
scale="0.0 -0.01 0.0"
pos="0.0 0.0 0"/>
<volume_morph
name="UPPER_BACK"
scale="-0.01 -0.01 0.0"
pos="0.0 0.0 0"/>
<volume_morph
name="CHEST"
scale="-0.01 -0.01 0.0"
pos="0.01 0.0 0"/>
@@ -3732,6 +3767,10 @@
scale="-0.01 -0.01 0.0"
pos="0.01 0.0 0"/>
<volume_morph
name="UPPER_BACK"
scale="-0.01 -0.01 0.0"
pos="0.0 0.0 0"/>
<volume_morph
name="CHEST"
scale="-0.02 -0.02 0.0"
pos="0.01 0.0 0"/>
@@ -3780,6 +3819,32 @@
scale="0.02 0.03 0.03"
pos="0 0 -0.03"/>
<volume_morph
name="PELVIS"
scale="0.02 0.03 0.03"
pos="0 0 -0.03"/>
<volume_morph
name="UPPER_BACK"
scale="0.01 0.03 0.0"
pos="-0.03 0 0"/>
<volume_morph
name="LOWER_BACK"
scale="0.04 0.06 0.0"
pos="-0.06 0 0"/>
<volume_morph
name="LEFT_HANDLE"
pos="0.0 0.08 0.0"/>
<volume_morph
name="RIGHT_HANDLE"
pos="0.0 -0.08 0.0"/>
<volume_morph
name="LEFT_PEC"
scale="0.0367 0.0367 0.016"
pos="0.00 -0.005 -0.013"/>
<volume_morph
name="RIGHT_PEC"
scale="0.0367 0.0367 0.016"
pos="0.00 0.005 -0.013"/>
<volume_morph
name="BELLY"
scale="0.09 0.08 0.07"
pos="0 0 -0.05"/>
@@ -3832,7 +3897,16 @@
value_max="2"
camera_elevation=".3"
camera_distance=".8">
<param_morph />
<param_morph>
<volume_morph
name="LEFT_PEC"
scale="0.0 0.0 0.0"
pos="0.004 0.0 -0.01"/>
<volume_morph
name="RIGHT_PEC"
scale="0.0 0.0 0.0"
pos="0.004 0.0 -0.01"/>
</param_morph>
</param>
<param
@@ -3882,6 +3956,15 @@
<volume_morph
name="BELLY"
scale="0.0 0.02 0.0"/>
<volume_morph
name="LOWER_BACK"
scale="0.0 0.02 0.0"/>
<volume_morph
name="LEFT_HANDLE"
pos="0.0 0.025 0.0"/>
<volume_morph
name="RIGHT_HANDLE"
pos="0.0 -0.025 0.0"/>
</param_morph>
</param>
@@ -3901,7 +3984,16 @@
value_max="1.3"
camera_elevation=".3"
camera_distance=".8">
<param_morph />
<param_morph>
<volume_morph
name="LEFT_PEC"
scale="0.0 0.0 0.0"
pos="0.0 -0.026 0.0"/>
<volume_morph
name="RIGHT_PEC"
scale="0.0 0.0 0.0"
pos="0.0 0.026 0.0"/>
</param_morph>
</param>
<param
@@ -3916,11 +4008,20 @@
label_min="Big Pectorals"
label_max="Sunken Chest"
value_default="0"
value_min="-.5"
value_min="-1.0"
value_max="1.1"
camera_elevation=".3"
camera_distance="1.2">
<param_morph />
<param_morph>
<volume_morph
name="LEFT_PEC"
scale="0.0 0.0 0.0"
pos="-0.03 -0.024 -0.01"/>
<volume_morph
name="RIGHT_PEC"
scale="0.0 0.0 0.0"
pos="-0.03 0.024 -0.01"/>
</param_morph>
</param>
<!-- ############# #
@@ -3945,6 +4046,14 @@
scale="0.03 0.03 0.0"
pos="-0.03 0 0.02"/>
<volume_morph
name="LEFT_PEC"
scale="0.0 0.0 0.0"
pos="0.008 -0.03 0.01"/>
<volume_morph
name="RIGHT_PEC"
scale="0.0 0.0 0.0"
pos="0.008 0.03 0.01"/>
<volume_morph
name="L_CLAVICLE"
scale="0.02 0.0 0.01"
pos="-0.02 0 0"/>
@@ -4115,7 +4224,16 @@
value_default="0"
value_min="-3"
value_max="3">
<param_morph />
<param_morph>
<volume_morph
name="LEFT_PEC"
scale="0.0 0.0 0.0"
pos="0.0 0.0 -0.01"/>
<volume_morph
name="RIGHT_PEC"
scale="0.0 0.0 0.0"
pos="0.0 0.0 -0.01"/>
</param_morph>
</param>
<param
@@ -4128,7 +4246,16 @@
value_default="0"
value_min="-1.25"
value_max="1.25">
<param_morph />
<param_morph>
<volume_morph
name="LEFT_PEC"
scale="0.0 0.0 0.0"
pos="0.0 -0.026 0.0"/>
<volume_morph
name="RIGHT_PEC"
scale="0.0 0.0 0.0"
pos="0.0 0.026 -0.0"/>
</param_morph>
</param>
<param
@@ -4141,7 +4268,12 @@
value_default="0"
value_min="-1"
value_max="1">
<param_morph />
<param_morph>
<volume_morph
name="BELLY"
scale="0.0 0.0 0.0"
pos="0.0 0.0 0.05"/>
</param_morph>
</param>
<param
@@ -4154,7 +4286,16 @@
value_default="0"
value_min="-2"
value_max="2">
<param_morph />
<param_morph>
<volume_morph
name="LEFT_PEC"
scale="0.0 0.0 0.0"
pos="0.0 0.03 0.0"/>
<volume_morph
name="RIGHT_PEC"
scale="0.0 0.0 0.0"
pos="0.0 0.03 0.0"/>
</param_morph>
</param>
<!--
@@ -4256,6 +4397,10 @@
name="PELVIS"
scale="-0.01 0.0 0.0"
pos="0.01 0 0.0"/>
<volume_morph
name="BUTT"
scale="0.0 0.0886 0.0"
pos="0.03 0 0.0"/>
</param_morph>
</param>
@@ -4687,7 +4832,11 @@
value_default="0"
value_min="-1"
value_max="1">
<param_morph />
<param_morph>
<volume_morph
name="BUTT"
pos="0.0 0.0 0.05"/>
</param_morph>
</param>
<param
@@ -4700,7 +4849,11 @@
value_default="0"
value_min="-1"
value_max="1">
<param_morph />
<param_morph>
<volume_morph
name="BUTT"
pos="0.0 0.05 0.0"/>
</param_morph>
</param>
<!--

View File

@@ -1,11 +1,18 @@
<?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
<linden_skeleton version="1.0" num_bones="46" num_collision_volumes="19">
<linden_skeleton version="1.0" num_bones="53" num_collision_volumes="26">
<bone name="mPelvis" pos="0.000 0.000 1.067" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.000000 1.067015">
<collision_volume name="PELVIS" pos = "-0.01 0 -0.02" rot="0.000000 8.00000 0.000000" scale="0.12 0.16 0.17"/>
<collision_volume name="BUTT" pos = "-0.06 0 -0.1" rot="0.000000 0.00000 0.000000" scale="0.1 0.1 0.1"/>
<bone name="mTorso" pos="0.000 0.000 0.084" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.000000 0.084073">
<collision_volume name="BELLY" pos = "0.028 0 0.04" rot="0.000000 8.00000 0.000000" scale="0.09 0.13 0.15"/>
<collision_volume name="LOWER_BACK" pos = "0.0 0.0 0.023" rot="0.000000 0.00000 0.000000" scale="0.09 0.13 0.15"/>
<collision_volume name="LEFT_HANDLE" pos = "0.0 0.10 0.058" rot="0.000000 0.00000 0.000000" scale="0.05 0.05 0.05"/>
<collision_volume name="RIGHT_HANDLE" pos = "0.0 -0.10 0.058" rot="0.000000 0.00000 0.000000" scale="0.05 0.05 0.05"/>
<bone name="mChest" pos="-0.015 0.000 0.205" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.015368 0.000000 0.204877">
<collision_volume name="CHEST" pos = "0.028 0 0.07" rot="0.000000 -10.00000 0.000000" scale="0.11 0.15 0.2"/>
<collision_volume name="UPPER_BACK" pos = "0.0 0.0 0.017" rot="0.000000 0.00000 0.000000" scale="0.09 0.13 0.15"/>
<collision_volume name="LEFT_PEC" pos = "0.119 0.082 0.042" rot="0.000000 4.29000 0.000000" scale="0.05 0.05 0.05"/>
<collision_volume name="RIGHT_PEC" pos = "0.119 -0.082 0.042" rot="0.000000 4.29000 0.000000" scale="0.05 0.05 0.05"/>
<bone name="mNeck" pos="-0.010 0.000 0.251" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.009507 0.000000 0.251108">
<collision_volume name="NECK" pos = "0.0 0 0.02" rot="0.000000 0.000000 0.000000" scale="0.05 0.06 0.08"/>
<bone name="mHead" pos="0.000 -0.000 0.076" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 -0.000000 0.075630">

View File

@@ -516,11 +516,11 @@ LLAgent::~LLAgent()
//-----------------------------------------------------------------------------
void LLAgent::onAppFocusGained()
{
if (CAMERA_MODE_MOUSELOOK == gAgentCamera.getCameraMode())
/*if (CAMERA_MODE_MOUSELOOK == gAgentCamera.getCameraMode()) // Singu Note: Issue 97 requested that we don't do this.
{
gAgentCamera.changeCameraToDefault();
LLToolMgr::getInstance()->clearSavedTool();
}
}*/
}

View File

@@ -2106,6 +2106,15 @@ void LLAgentCamera::handleScrollWheel(S32 clicks)
}
}
//-----------------------------------------------------------------------------
// resetPresetOffsets() - Sets the current preset back to its default state
//-----------------------------------------------------------------------------
void LLAgentCamera::resetPresetOffsets()
{
mFocusOffsetInitial[mCameraPreset]->resetToDefault();
mCameraOffsetInitial[mCameraPreset]->resetToDefault();
}
//-----------------------------------------------------------------------------
// getCameraMinOffGround()

View File

@@ -113,6 +113,9 @@ private:
//--------------------------------------------------------------------
public:
void switchCameraPreset(ECameraPreset preset);
/** Sets the current preset back to its default state */
void resetPresetOffsets();
private:
/** Determines default camera offset depending on the current camera preset */
LLVector3 getCameraOffsetInitial();

View File

@@ -61,6 +61,7 @@ static U32 sDataMask = LLDrawPoolAvatar::VERTEX_DATA_MASK;
static U32 sBufferUsage = GL_STREAM_DRAW_ARB;
static U32 sShaderLevel = 0;
#define JOINT_COUNT 52
LLGLSLShader* LLDrawPoolAvatar::sVertexProgram = NULL;
BOOL LLDrawPoolAvatar::sSkipOpaque = FALSE;
@@ -1566,12 +1567,10 @@ void LLDrawPoolAvatar::updateRiggedFaceVertexBuffer(LLVOAvatar* avatar, LLFace*
LLVector4a* norm = has_normal ? (LLVector4a*) normal.get() : NULL;
//build matrix palette
static const size_t kMaxJoints = 64;
LLMatrix4a mp[kMaxJoints];
LLMatrix4a mp[JOINT_COUNT];
LLMatrix4* mat = (LLMatrix4*) mp;
U32 maxJoints = llmin(skin->mJointNames.size(), kMaxJoints);
for (U32 j = 0; j < maxJoints; ++j)
for (U32 j = 0; j < skin->mJointNames.size(); ++j)
{
LLJoint* joint = avatar->getJoint(skin->mJointNames[j]);
if (joint)
@@ -1628,6 +1627,7 @@ void LLDrawPoolAvatar::updateRiggedFaceVertexBuffer(LLVOAvatar* avatar, LLFace*
LLVector4a& n = vol_face.mNormals[j];
bind_shape_matrix.rotate(n, t);
final_mat.rotate(t, dst);
dst.normalize3fast();
norm[j] = dst;
}
}
@@ -1694,11 +1694,11 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow)
{
if (sShaderLevel > 0)
{ //upload matrix palette to shader
static const size_t kMaxJoints = 64;
LLMatrix4 mat[kMaxJoints];
LLMatrix4 mat[JOINT_COUNT];
U32 maxJoints = llmin(skin->mJointNames.size(), kMaxJoints);
for (U32 i = 0; i < maxJoints; ++i)
U32 count = llmin((U32) skin->mJointNames.size(), (U32) JOINT_COUNT);
for (U32 i = 0; i < count; ++i)
{
LLJoint* joint = avatar->getJoint(skin->mJointNames[i]);
if (joint)
@@ -1710,10 +1710,42 @@ void LLDrawPoolAvatar::renderRigged(LLVOAvatar* avatar, U32 type, bool glow)
stop_glerror();
LLDrawPoolAvatar::sVertexProgram->uniformMatrix4fv(LLViewerShaderMgr::AVATAR_MATRIX,
maxJoints,
F32 mp[JOINT_COUNT*9];
F32 transp[JOINT_COUNT*3];
for (U32 i = 0; i < count; ++i)
{
F32* m = (F32*) mat[i].mMatrix;
U32 idx = i*9;
mp[idx+0] = m[0];
mp[idx+1] = m[1];
mp[idx+2] = m[2];
mp[idx+3] = m[4];
mp[idx+4] = m[5];
mp[idx+5] = m[6];
mp[idx+6] = m[8];
mp[idx+7] = m[9];
mp[idx+8] = m[10];
idx = i*3;
transp[idx+0] = m[12];
transp[idx+1] = m[13];
transp[idx+2] = m[14];
}
LLDrawPoolAvatar::sVertexProgram->uniformMatrix3fv(LLViewerShaderMgr::AVATAR_MATRIX,
count,
FALSE,
(GLfloat*) mat[0].mMatrix);
(GLfloat*) mp);
LLDrawPoolAvatar::sVertexProgram->uniform3fv(LLShaderMgr::AVATAR_TRANSLATION, count, transp);
stop_glerror();
}

View File

@@ -619,10 +619,14 @@ void LLHUDEffectLookAt::update()
}
}
// Singu note: this displays extra information for look at targets. Due to the bug in llvoavatar.cpp
// it was never displayed before and is not something users exect: turning it off for now
#if 0
if (show_look_at)
{
((LLVOAvatar*)(LLViewerObject*)mSourceObject)->addDebugText((*mAttentions)[mTargetType].mName);
}
#endif
}
/**

View File

@@ -1576,17 +1576,6 @@ const bool LLFloaterIMPanel::isModerator(const LLUUID& speaker_id)
return false;
}
BOOL LLFloaterIMPanel::focusFirstItem(BOOL prefer_text_fields, BOOL focus_flash )
{
if (getVisible() && mInputEditor->getVisible())
{
setInputFocus(true);
return TRUE;
}
return LLUICtrl::focusFirstItem(prefer_text_fields, focus_flash);
}
void LLFloaterIMPanel::onFocusReceived()
{
mNumUnreadMessages = 0;

View File

@@ -94,8 +94,6 @@ public:
void *cargo_data, EAcceptance *accept,
std::string& tooltip_msg);
BOOL focusFirstItem(BOOL prefer_text_fields = FALSE, BOOL focus_flash = TRUE );
void onFocusReceived();
void onInputEditorFocusReceived();
void onInputEditorKeystroke(LLLineEditor* caller);

View File

@@ -3946,11 +3946,16 @@ public:
renderAvatarCollisionVolumes(avatar);
}
if (avatar && gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_AVATAR_JOINTS))
{
avatar->renderJoints();
}
if (avatar && gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_AGENT_TARGET))
{
renderAgentTarget(avatar);
}
if (gDebugGL)
{
for (U32 i = 0; i < (U32)drawable->getNumFaces(); ++i)
@@ -4188,6 +4193,7 @@ void LLSpatialPartition::renderDebug()
LLPipeline::RENDER_DEBUG_TEXTURE_ANIM |
LLPipeline::RENDER_DEBUG_RAYCAST |
LLPipeline::RENDER_DEBUG_AVATAR_VOLUME |
LLPipeline::RENDER_DEBUG_AVATAR_JOINTS |
LLPipeline::RENDER_DEBUG_AGENT_TARGET |
//LLPipeline::RENDER_DEBUG_BUILD_QUEUE |
LLPipeline::RENDER_DEBUG_SHADOW_FRUSTA |

View File

@@ -780,6 +780,7 @@ void LLToolCompGun::handleSelect()
void LLToolCompGun::handleDeselect()
{
LLToolComposite::handleDeselect();
LLViewerCamera::getInstance()->loadDefaultFOV(); // Singu Note: Load Default FOV in case we were zoomed in
setMouseCapture(FALSE);
}

View File

@@ -1581,6 +1581,10 @@ void init_debug_avatar_menu(LLMenuGL* menu)
&LLPipeline::toggleRenderDebug, NULL,
&LLPipeline::toggleRenderDebugControl,
(void*)LLPipeline::RENDER_DEBUG_AVATAR_VOLUME));
menu->addChild(new LLMenuItemCheckGL("Show Avatar Joints",
&LLPipeline::toggleRenderDebug, NULL,
&LLPipeline::toggleRenderDebugControl,
(void*)LLPipeline::RENDER_DEBUG_AVATAR_JOINTS));
menu->addChild(new LLMenuItemCheckGL("Display Agent Target",
&LLPipeline::toggleRenderDebug, NULL,
&LLPipeline::toggleRenderDebugControl,
@@ -4157,6 +4161,15 @@ void reset_view_final( BOOL proceed )
}
class LLViewResetPresetAngles : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
gAgentCamera.resetPresetOffsets();
return true;
}
};
class LLViewLookAtLastChatter : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -9631,6 +9644,7 @@ void initialize_menus()
addMenu(new LLViewJoystickFlycam(), "View.JoystickFlycam");
addMenu(new LLViewCommunicate(), "View.Communicate");
addMenu(new LLViewResetView(), "View.ResetView");
addMenu(new LLViewResetPresetAngles(), "View.ResetPresetAngles");
addMenu(new LLViewLookAtLastChatter(), "View.LookAtLastChatter");
addMenu(new LLViewShowHoverTips(), "View.ShowHoverTips");
addMenu(new LLViewHighlightTransparent(), "View.HighlightTransparent");

View File

@@ -279,6 +279,9 @@ void LLViewerPartSourceScript::update(const F32 dt)
continue;
}
if (mPartSysData.mPartData.mFlags & LLPartData::LL_PART_RIBBON_MASK && mLastPart && (mLastPart->mPosAgent-mPosAgent).magVec() <= .005f)
continue; //Skip if parent isn't far enough away.
LLViewerPart* part = new LLViewerPart();
part->init(this, mImagep, NULL);

View File

@@ -1060,7 +1060,7 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
if (success)
{
gDeferredNonIndexedDiffuseAlphaMaskProgram.mName = "Deferred Diffuse Non-Indexed Alpha Mask Shader";
gDeferredNonIndexedDiffuseAlphaMaskProgram.mName = "Deferred Diffuse Non-Indexed Alpha Mask Colored Shader";
gDeferredNonIndexedDiffuseAlphaMaskProgram.mShaderFiles.clear();
gDeferredNonIndexedDiffuseAlphaMaskProgram.mShaderFiles.push_back(make_pair("deferred/diffuseV.glsl", GL_VERTEX_SHADER_ARB));
gDeferredNonIndexedDiffuseAlphaMaskProgram.mShaderFiles.push_back(make_pair("deferred/diffuseAlphaMaskF.glsl", GL_FRAGMENT_SHADER_ARB));

View File

@@ -52,7 +52,7 @@ const F32 MAX_FRACTIONAL = 1.5f;
const F32 MIN_FRACTIONAL = 0.2f;
const F32 MIN_BANDWIDTH = 50.f;
const F32 MAX_BANDWIDTH = 1500.f;
const F32 MAX_BANDWIDTH = 5000.f;
const F32 STEP_FRACTIONAL = 0.1f;
const F32 TIGHTEN_THROTTLE_THRESHOLD = 3.0f; // packet loss % per s
const F32 EASE_THROTTLE_THRESHOLD = 0.5f; // packet loss % per s

View File

@@ -1729,10 +1729,12 @@ void LLVOAvatar::getSpatialExtents(LLVector4a& newMin, LLVector4a& newMax)
//-----------------------------------------------------------------------------
void LLVOAvatar::renderCollisionVolumes()
{
std::ostringstream ostr;
LLGLDepthTest gls_depth(GL_FALSE);
for (S32 i = 0; i < mNumCollisionVolumes; i++)
{
mCollisionVolumes[i].renderCollision();
ostr << mCollisionVolumes[i].getName() << ", ";
}
if (mNameText.notNull())
@@ -1741,8 +1743,99 @@ void LLVOAvatar::renderCollisionVolumes()
mNameText->lineSegmentIntersect(unused, unused, unused, TRUE);
}
mDebugText.clear();
addDebugText(ostr.str());
}
void LLVOAvatar::renderJoints()
{
std::ostringstream ostr;
std::ostringstream nullstr;
for (joint_map_t::iterator iter = mJointMap.begin(); iter != mJointMap.end(); ++iter)
{
LLJoint* jointp = iter->second;
if (!jointp)
{
nullstr << iter->first << " is NULL" << std::endl;
continue;
}
ostr << jointp->getName() << ", ";
jointp->updateWorldMatrix();
gGL.pushMatrix();
gGL.multMatrix( &jointp->getXform()->getWorldMatrix().mMatrix[0][0] );
gGL.diffuseColor3f( 1.f, 0.f, 1.f );
gGL.begin(LLRender::LINES);
LLVector3 v[] =
{
LLVector3(1,0,0),
LLVector3(-1,0,0),
LLVector3(0,1,0),
LLVector3(0,-1,0),
LLVector3(0,0,-1),
LLVector3(0,0,1),
};
//sides
gGL.vertex3fv(v[0].mV);
gGL.vertex3fv(v[2].mV);
gGL.vertex3fv(v[0].mV);
gGL.vertex3fv(v[3].mV);
gGL.vertex3fv(v[1].mV);
gGL.vertex3fv(v[2].mV);
gGL.vertex3fv(v[1].mV);
gGL.vertex3fv(v[3].mV);
//top
gGL.vertex3fv(v[0].mV);
gGL.vertex3fv(v[4].mV);
gGL.vertex3fv(v[1].mV);
gGL.vertex3fv(v[4].mV);
gGL.vertex3fv(v[2].mV);
gGL.vertex3fv(v[4].mV);
gGL.vertex3fv(v[3].mV);
gGL.vertex3fv(v[4].mV);
//bottom
gGL.vertex3fv(v[0].mV);
gGL.vertex3fv(v[5].mV);
gGL.vertex3fv(v[1].mV);
gGL.vertex3fv(v[5].mV);
gGL.vertex3fv(v[2].mV);
gGL.vertex3fv(v[5].mV);
gGL.vertex3fv(v[3].mV);
gGL.vertex3fv(v[5].mV);
gGL.end();
gGL.popMatrix();
}
mDebugText.clear();
addDebugText(ostr.str());
addDebugText(nullstr.str());
}
BOOL LLVOAvatar::lineSegmentIntersect(const LLVector4a& start, const LLVector4a& end,
S32 face,
BOOL pick_transparent,
@@ -3621,9 +3714,6 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
return FALSE;
}
// clear debug text
mDebugText.clear();
if (gSavedSettings.getBOOL("DebugAvatarAppearanceMessage"))
{
S32 central_bake_version = -1;
@@ -4165,6 +4255,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
{
setDebugText(mDebugText);
}
mDebugText.clear();
//mesh vertices need to be reskinned
mNeedsSkin = TRUE;

View File

@@ -420,6 +420,7 @@ public:
U32 renderSkinnedAttachments();
U32 renderTransparent(BOOL first_pass);
void renderCollisionVolumes();
void renderJoints();
static void deleteCachedImages(bool clearAll=true);
static void destroyGL();
static void restoreGL();

View File

@@ -717,7 +717,7 @@ void LLVOPartGroup::getGeometry(S32 idx,
*colorsp++ = color;
//Only add emissive attributes if glowing (doing it for all particles is INCREDIBLY inefficient as it leads to a second, slower, render pass.)
if (pglow.mV[3] > F_ALMOST_ZERO || part.mGlow.mV[3] > F_ALMOST_ZERO)
if (gPipeline.canUseVertexShaders() && (pglow.mV[3] > 0 || part.mGlow.mV[3] > 0))
{ //only write glow if it is not zero
*emissivep++ = pglow;
*emissivep++ = pglow;

View File

@@ -536,14 +536,16 @@ public:
RENDER_DEBUG_SHADOW_FRUSTA = 0x00040000,
RENDER_DEBUG_SCULPTED = 0x00080000,
RENDER_DEBUG_AVATAR_VOLUME = 0x00100000,
RENDER_DEBUG_BUILD_QUEUE = 0x00200000,
RENDER_DEBUG_AGENT_TARGET = 0x00400000,
RENDER_DEBUG_UPDATE_TYPE = 0x00800000,
RENDER_DEBUG_PHYSICS_SHAPES = 0x01000000,
RENDER_DEBUG_NORMALS = 0x02000000,
RENDER_DEBUG_LOD_INFO = 0x04000000,
RENDER_DEBUG_RENDER_COMPLEXITY = 0x08000000,
RENDER_DEBUG_ATTACHMENT_BYTES = 0x10000000,
RENDER_DEBUG_AVATAR_JOINTS = 0x00200000,
RENDER_DEBUG_BUILD_QUEUE = 0x00400000,
RENDER_DEBUG_AGENT_TARGET = 0x00800000,
RENDER_DEBUG_UPDATE_TYPE = 0x01000000,
RENDER_DEBUG_PHYSICS_SHAPES = 0x02000000,
RENDER_DEBUG_NORMALS = 0x04000000,
RENDER_DEBUG_LOD_INFO = 0x08000000,
RENDER_DEBUG_RENDER_COMPLEXITY = 0x10000000,
RENDER_DEBUG_ATTACHMENT_BYTES = 0x20000000,
RENDER_DEBUG_TEXEL_DENSITY = 0x40000000
};
public:

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater bottom="-562" can_close="true" can_drag_on_left="false" can_minimize="false"
can_resize="false" follows="left|top" height="540" left="12" min_height="0"
min_width="0" mouse_opaque="true" name="floater customize"
can_resize="true" follows="left|top" height="540" left="12" min_height="540"
min_width="494" mouse_opaque="true" name="floater customize"
rect_control="FloaterCustomizeAppearanceRect" title="Appearance"
width="494">
<tab_container bottom="-507" height="483" left="0" mouse_opaque="false"
<tab_container bottom="-507" height="483" left="0" mouse_opaque="false" follows="all"
name="customize tab container" tab_min_width="96" tab_position="left"
width="492">
<panel label="Body Parts" placeholder="true" name="body_parts_placeholder" />
@@ -101,7 +101,7 @@ scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Shape:
@@ -110,19 +110,19 @@ scratch and wear it.
label="Create New Shape" label_selected="Create New Shape" left="160"
mouse_opaque="true" name="Create New" scale_image="true" width="170" />
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-420" drop_shadow_visible="true" follows="right|bottom"
bottom="-420" drop_shadow_visible="true" follows="left|bottom"
font="SansSerifSmall" h_pad="0" halign="left" height="14" left="2"
mouse_opaque="true" name="avatar_height_label" v_pad="0" width="150">
Height:
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-435" drop_shadow_visible="true" follows="right|bottom"
bottom="-435" drop_shadow_visible="true" follows="left|bottom"
font="SansSerifSmall" h_pad="0" halign="left" height="14" left="2"
mouse_opaque="true" name="avheight" v_pad="0" width="150">
[AVHEIGHT]
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-450" drop_shadow_visible="true" follows="right|bottom"
bottom="-450" drop_shadow_visible="true" follows="left|bottom"
font="SansSerifSmall" h_pad="0" halign="left" height="14" left="2"
mouse_opaque="true" name="includes_shoes" v_pad="0" width="150">
(includes shoes)
@@ -199,7 +199,7 @@ scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Skin:
@@ -294,7 +294,7 @@ scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Hair:
@@ -369,7 +369,7 @@ scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Eyes:
@@ -453,7 +453,7 @@ scratch and wear it.
mouse_opaque="true" name="path" v_pad="0" width="373">
Located in [PATH]
</text>
<tab_container name="layer_tabs" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<tab_container name="layer_tabs" follows="all" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-104" drop_shadow_visible="true" follows="left|top|right"
font="SansSerifSmall" h_pad="0" halign="left" height="28" left="102"
@@ -469,7 +469,7 @@ scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Shirt:
@@ -535,7 +535,7 @@ scratch and wear it.
mouse_opaque="true" name="path" v_pad="0" width="373">
Located in [PATH]
</text>
<tab_container name="layer_tabs" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<tab_container name="layer_tabs" follows="all" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-104" drop_shadow_visible="true" follows="left|top|right"
font="SansSerifSmall" h_pad="0" halign="left" height="28" left="102"
@@ -551,7 +551,7 @@ scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Pants:
@@ -594,7 +594,7 @@ scratch and wear it.
mouse_opaque="true" name="path" v_pad="0" width="373">
Located in [PATH]
</text>
<tab_container name="layer_tabs" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<tab_container name="layer_tabs" follows="all" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-104" drop_shadow_visible="true" follows="left|top|right"
font="SansSerifSmall" h_pad="0" halign="left" height="28" left="102"
@@ -610,7 +610,7 @@ scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Shoes:
@@ -676,7 +676,7 @@ scratch and wear it.
mouse_opaque="true" name="path" v_pad="0" width="373">
Located in [PATH]
</text>
<tab_container name="layer_tabs" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<tab_container name="layer_tabs" follows="all" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-104" drop_shadow_visible="true" follows="left|top|right"
font="SansSerifSmall" h_pad="0" halign="left" height="28" left="102"
@@ -692,7 +692,7 @@ scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Socks:
@@ -758,7 +758,7 @@ scratch and wear it.
mouse_opaque="true" name="path" v_pad="0" width="373">
Located in [PATH]
</text>
<tab_container name="layer_tabs" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<tab_container name="layer_tabs" follows="all" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-104" drop_shadow_visible="true" follows="left|top|right"
font="SansSerifSmall" h_pad="0" halign="left" height="28" left="102"
@@ -774,7 +774,7 @@ scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Jacket:
@@ -844,7 +844,7 @@ scratch and wear it.
mouse_opaque="true" name="path" v_pad="0" width="373">
Located in [PATH]
</text>
<tab_container name="layer_tabs" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<tab_container name="layer_tabs" follows="all" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-104" drop_shadow_visible="true" follows="left|top|right"
font="SansSerifSmall" h_pad="0" halign="left" height="28" left="102"
@@ -860,7 +860,7 @@ scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Gloves:
@@ -927,7 +927,7 @@ scratch and wear it.
mouse_opaque="true" name="path" v_pad="0" width="373">
Located in [PATH]
</text>
<tab_container name="layer_tabs" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<tab_container name="layer_tabs" follows="all" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-104" drop_shadow_visible="true" follows="left|top|right"
font="SansSerifSmall" h_pad="0" halign="left" height="28" left="102"
@@ -943,7 +943,7 @@ one from scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Undershirt:
@@ -1011,7 +1011,7 @@ one from scratch and wear it.
mouse_opaque="true" name="path" v_pad="0" width="373">
Located in [PATH]
</text>
<tab_container name="layer_tabs" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<tab_container name="layer_tabs" follows="all" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-104" drop_shadow_visible="true" follows="left|top|right"
font="SansSerifSmall" h_pad="0" halign="left" height="28" left="102"
@@ -1027,7 +1027,7 @@ one from scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Underpants:
@@ -1094,7 +1094,7 @@ one from scratch and wear it.
mouse_opaque="true" name="path" v_pad="0" width="373">
Located in [PATH]
</text>
<tab_container name="layer_tabs" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<tab_container name="layer_tabs" follows="all" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-104" drop_shadow_visible="true" follows="left|top|right"
font="SansSerifSmall" h_pad="0" halign="left" height="28" left="102"
@@ -1110,7 +1110,7 @@ scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Skirt:
@@ -1176,7 +1176,7 @@ scratch and wear it.
mouse_opaque="true" name="path" v_pad="0" width="373">
Located in [PATH]
</text>
<tab_container name="layer_tabs" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<tab_container name="layer_tabs" follows="all" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-104" drop_shadow_visible="true" follows="left|top|right"
font="SansSerifSmall" h_pad="0" halign="left" height="28" left="102"
@@ -1192,7 +1192,7 @@ scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Tattoo:
@@ -1259,7 +1259,7 @@ scratch and wear it.
mouse_opaque="true" name="path" v_pad="0" width="373">
Located in [PATH]
</text>
<tab_container name="layer_tabs" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<tab_container name="layer_tabs" follows="all" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-104" drop_shadow_visible="true" follows="left|top|right"
font="SansSerifSmall" h_pad="0" halign="left" height="28" left="102"
@@ -1275,7 +1275,7 @@ one from scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Alpha:
@@ -1378,7 +1378,7 @@ one from scratch and wear it.
mouse_opaque="true" name="path" v_pad="0" width="373">
Located in [PATH]
</text>
<tab_container name="layer_tabs" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<tab_container name="layer_tabs" follows="all" left_delta="85" bottom_delta="-30" height="16" width="300" tab_min_width="55"/>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-104" drop_shadow_visible="true" follows="left|top|right"
font="SansSerifSmall" h_pad="0" halign="left" height="28" left="102"
@@ -1394,7 +1394,7 @@ one from scratch and wear it.
You do not have permission to modify this wearable.
</text>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-486" drop_shadow_visible="true" follows="left|top|right"
bottom="-486" drop_shadow_visible="true" follows="left|bottom|right"
font="SansSerif" h_pad="0" halign="right" height="28" right="117"
mouse_opaque="true" name="Item Action Label" v_pad="0" width="100">
Physics:

View File

@@ -308,6 +308,9 @@
<on_click function="ToggleControl" userdata="SinguMotionResetsCamera"/>
<on_check control="SinguMotionResetsCamera"/>
</menu_item_check>
<menu_item_call label="Reset Camera Preset Angle to Default" name="Reset Camera Preset Angle">
<on_click function="View.ResetPresetAngles" userdata="" />
</menu_item_call>
<menu_item_call bottom="-86" enabled="false" height="19" label="Look at Last Chatter" left="0"
mouse_opaque="true" name="Look at Last Chatter" shortcut="control|\"
width="211">

View File

@@ -2095,6 +2095,21 @@ Returns all objects of a particular owner in the given scope or an ERR_* flag.
string llXorBase64(string str1, string str2)
Returns a string that is a Base64 XOR of Base64-formatted input strings.
</string>
<string name="LSLTipText_llScaleByFactor" translate="false">
integer llScaleByFactor(float scaling_factor)
Returns a string that is a Base64 XOR of Base64-formatted input strings.
Uniformly resizes the linkset by the given multiplicative scale factor (e.g. 2.0 to double the scale in all dimensions)
Returns TRUE if rescaling was successful or FALSE otherwise
This function only succeeds in non-physical objects
</string>
<string name="LSLTipText_llGetMinScaleFactor" translate="false">
float llGetMinScaleFactor()
Returns the minimum multiplicative scale factor which can be used by llScaleByFactor(); i.e. such that every prim in the linkset is &gt;=1cm in scale
</string>
<string name="LSLTipText_llGetMaxScaleFactor" translate="false">
float llGetMaxScaleFactor()
Returns the maximum multiplicative scale factor which can be used by llScaleByFactor(); i.e. such that every prim in the linkset is &lt;=64m and the resulting linkset meets the linkability requirements
</string>
<!-- GOD FUNCTIONS -->
<string name="LSLTipText_llGodLikeRezObject">
llGodLikeRezObject( key inventory, vector pos )

View File

@@ -6,6 +6,7 @@
<check_box label="Activer le TP avec le double-clic" tool_tip="Activer le TP sur un objet/une personne avec le double-clic" name="double_click_teleport_check"/>
<check_box label="R&#xE9;initialiser la cam&#xE9;ra apr&#xE8;s le TP" tool_tip="Centre la cam&#xE9;ra derri&#xE8;re vous apr&#xE8;s un TP." name="center_after_teleport_check"/>
<check_box label="Compenser la cible du TP" tool_tip="Essaye de cibler le TP pour que vos pieds atterrissent au point vis&#xE9;" name="offset_teleport_check"/>
<check_box name="clear_beacon_after_tp" label="Effacer la balise rouge de destination après un TP"/>
<check_box name="fly_after_tp" label="Toujours voler apres un TP" tool_tip="Comme ça on reste pas bloqué sur le teston des gens !!!!."/>
<check_box name="continue_flying" label="Voleter quand on se lève" tool_tip="vous voletez quand vous faites stand, pratique pour les avi d'oiseaux, de fées etc..."/>
<check_box label="Preview animations on the avatar - Test temporaire d'une animation" tool_tip="L'animation est jou&#xE9;e avec votre avatar avant d'&#xEA;tre t&#xE9;l&#xE9;charg&#xE9;e." name="preview_anim_in_world_check"/>
@@ -23,6 +24,7 @@
<check_box label="Activer le rezz rapide par rapport &#xE0; une distance progressive" name="speed_rez_check" tool_tip="Active, cette fonction charge progressivement les textures du plus pr&#xE8;s au plus loin"/>
<spinner label="Intervalle distance/affichage:" name="speed_rez_interval"/>
<text name="speed_rez_seconds">secondes</text>
<check_box name="use_context_menus" label="Utiliser un menu texte (panneau vertical) à la place de celui circulaire (camembert)"/>
<check_box name="use_web_profiles" label="Utiliser le profil web par défaut" tool_tip="Affiche les profils comme une page web plutôt que comme une fenêtre style v1"/>
<check_box name="use_web_search" label="Utiliser la Recherche web : style V2 au lieu de la traditionnelle : style V1" tool_tip="Ne fontionnera pas sur toutes les grilles"/>
</panel>