Merge remote-tracking branch 'singu/master'
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -178,6 +178,7 @@ public:
|
||||
ENVIRONMENT_INTENSITY,
|
||||
|
||||
AVATAR_MATRIX,
|
||||
AVATAR_TRANSLATION,
|
||||
|
||||
WATER_SCREENTEX,
|
||||
WATER_SCREENDEPTH,
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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.)
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
<!--
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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 >=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 <=64m and the resulting linkset meets the linkability requirements
|
||||
</string>
|
||||
<!-- GOD FUNCTIONS -->
|
||||
<string name="LSLTipText_llGodLikeRezObject">
|
||||
llGodLikeRezObject( key inventory, vector pos )
|
||||
|
||||
@@ -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éinitialiser la caméra après le TP" tool_tip="Centre la caméra derrière vous aprè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é" 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ée avec votre avatar avant d'être téléchargée." name="preview_anim_in_world_check"/>
|
||||
@@ -23,6 +24,7 @@
|
||||
<check_box label="Activer le rezz rapide par rapport à une distance progressive" name="speed_rez_check" tool_tip="Active, cette fonction charge progressivement les textures du plus prè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>
|
||||
|
||||
Reference in New Issue
Block a user