summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llmath/llvolume.cpp30
-rw-r--r--indra/llmath/llvolume.h7
-rw-r--r--indra/llrender/llimagegl.cpp146
-rw-r--r--indra/llrender/llimagegl.h27
-rw-r--r--indra/llrender/llpostprocess.cpp93
-rw-r--r--indra/llrender/llpostprocess.h13
-rw-r--r--indra/llrender/llrender.cpp8
-rw-r--r--indra/llui/llmenugl.cpp164
-rw-r--r--indra/llui/llmenugl.h16
-rw-r--r--indra/mac_crash_logger/llcrashloggermac.cpp2
-rw-r--r--indra/newview/CMakeLists.txt1
-rw-r--r--indra/newview/installers/windows/lang_zh.nsibin5552 -> 5554 bytes
-rw-r--r--indra/newview/installers/windows/language_menu.nsibin1292 -> 1302 bytes
-rw-r--r--indra/newview/llappviewermacosx.cpp107
-rw-r--r--indra/newview/lldrawpoolbump.cpp5
-rw-r--r--indra/newview/lldynamictexture.cpp43
-rw-r--r--indra/newview/lldynamictexture.h3
-rw-r--r--indra/newview/llfloaterimagepreview.cpp35
-rw-r--r--indra/newview/llfloaterimagepreview.h2
-rw-r--r--indra/newview/llhudicon.cpp101
-rw-r--r--indra/newview/llhudicon.h3
-rw-r--r--indra/newview/llmaniptranslate.cpp42
-rw-r--r--indra/newview/llmaniptranslate.h2
-rw-r--r--indra/newview/lltexlayer.cpp85
-rw-r--r--indra/newview/lltexlayer.h8
-rw-r--r--indra/newview/lltoolmorph.cpp2
-rw-r--r--indra/newview/llviewerjointattachment.cpp2
-rw-r--r--indra/newview/llviewerwindow.cpp88
-rw-r--r--indra/newview/llviewerwindow.h3
-rw-r--r--indra/newview/llvoavatar.cpp16
-rw-r--r--indra/newview/pipeline.cpp59
-rw-r--r--indra/newview/skins/default/xui/da/floater_about_land.xml4
-rw-r--r--indra/newview/skins/default/xui/da/floater_buy_currency.xml6
-rw-r--r--indra/newview/skins/default/xui/da/floater_buy_land.xml12
-rw-r--r--indra/newview/skins/default/xui/da/floater_pay.xml4
-rw-r--r--indra/newview/skins/default/xui/da/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_beacons.xml15
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_land_money.xml2
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/es/panel_group_land_money.xml4
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_about_land.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_beacons.xml15
-rw-r--r--indra/newview/skins/default/xui/fr/floater_pay.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_tools.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/menu_viewer.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_group_land_money.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_beacons.xml15
-rw-r--r--indra/newview/skins/default/xui/ja/floater_customize.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/floater_inventory.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inventory.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_general.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_about_land.xml22
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_avatar_picker.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_beacons.xml8
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_buy_currency.xml9
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_buy_land.xml10
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_color_picker.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_critical.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_customize.xml65
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_day_cycle_options.xml4
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_hardware_settings.xml6
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_image_preview.xml10
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_inspect.xml4
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_joystick.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_land_holdings.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_live_lsleditor.xml4
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_media_browser.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_pay.xml3
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_pay_object.xml23
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_preview_animation.xml4
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_report_abuse.xml20
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_snapshot.xml4
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_tools.xml44
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_url_entry.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/menu_viewer.xml12
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_friends.xml12
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_group_land_money.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_login.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_preferences_general.xml6
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_region_debug.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/strings.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/floater_about_land.xml17
-rw-r--r--indra/newview/skins/default/xui/pt/floater_beacons.xml15
-rw-r--r--indra/newview/skins/default/xui/pt/floater_buy_currency.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/floater_buy_land.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_camera.xml12
-rw-r--r--indra/newview/skins/default/xui/pt/floater_color_picker.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/floater_customize.xml68
-rw-r--r--indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml67
-rw-r--r--indra/newview/skins/default/xui/pt/floater_env_settings.xml23
-rw-r--r--indra/newview/skins/default/xui/pt/floater_hardware_settings.xml38
-rw-r--r--indra/newview/skins/default/xui/pt/floater_hud.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_image_preview.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/floater_lagmeter.xml152
-rw-r--r--indra/newview/skins/default/xui/pt/floater_media_browser.xml20
-rw-r--r--indra/newview/skins/default/xui/pt/floater_mem_leaking.xml12
-rw-r--r--indra/newview/skins/default/xui/pt/floater_mute_object.xml11
-rw-r--r--indra/newview/skins/default/xui/pt/floater_openobject.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/floater_pay.xml12
-rw-r--r--indra/newview/skins/default/xui/pt/floater_pay_object.xml23
-rw-r--r--indra/newview/skins/default/xui/pt/floater_postcard.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/floater_preview_animation.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/floater_preview_classified.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_preview_event.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_region_info.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_url_entry.xml12
-rw-r--r--indra/newview/skins/default/xui/pt/floater_water.xml85
-rw-r--r--indra/newview/skins/default/xui/pt/floater_windlight_options.xml186
-rw-r--r--indra/newview/skins/default/xui/pt/menu_login.xml13
-rw-r--r--indra/newview/skins/default/xui/pt/menu_slurl.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/mime_types.xml230
-rw-r--r--indra/newview/skins/default/xui/pt/panel_audio_device.xml15
-rw-r--r--indra/newview/skins/default/xui/pt/panel_friends.xml14
-rw-r--r--indra/newview/skins/default/xui/pt/panel_group_land_money.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_chat.xml7
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_general.xml10
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/strings.xml421
121 files changed, 2527 insertions, 533 deletions
diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp
index 1a7f7ac1a0..7d01ba059c 100644
--- a/indra/llmath/llvolume.cpp
+++ b/indra/llmath/llvolume.cpp
@@ -1651,9 +1651,13 @@ void LLPathParams::copyParams(const LLPathParams &params)
setSkew(params.getSkew());
}
+S32 profile_delete_lock = 1 ;
LLProfile::~LLProfile()
{
-
+ if(profile_delete_lock)
+ {
+ llerrs << "LLProfile should not be deleted here!" << llendl ;
+ }
}
@@ -1710,7 +1714,11 @@ LLVolume::~LLVolume()
{
sNumMeshPoints -= mMesh.size();
delete mPathp;
+
+ profile_delete_lock = 0 ;
delete mProfilep;
+ profile_delete_lock = 1 ;
+
mPathp = NULL;
mProfilep = NULL;
mVolumeFaces.clear();
@@ -1755,6 +1763,20 @@ BOOL LLVolume::generate()
mLODScaleBias.setVec(0.6f, 0.6f, 0.6f);
}
+ //********************************************************************
+ //debug info, to be removed
+ if((U32)(mPathp->mPath.size() * mProfilep->mProfile.size()) > (1u << 20))
+ {
+ llinfos << "sizeS: " << mPathp->mPath.size() << " sizeT: " << mProfilep->mProfile.size() << llendl ;
+ llinfos << "path_detail : " << path_detail << " split: " << split << " profile_detail: " << profile_detail << llendl ;
+ llinfos << mParams << llendl ;
+ llinfos << "more info to check if mProfilep is deleted or not." << llendl ;
+ llinfos << mProfilep->mNormals.size() << " : " << mProfilep->mFaces.size() << " : " << mProfilep->mEdgeNormals.size() << " : " << mProfilep->mEdgeCenters.size() << llendl ;
+
+ llerrs << "LLVolume corrupted!" << llendl ;
+ }
+ //********************************************************************
+
BOOL regenPath = mPathp->generate(mParams.getPathParams(), path_detail, split);
BOOL regenProf = mProfilep->generate(mParams.getProfileParams(), mPathp->isOpen(),profile_detail, split);
@@ -1763,16 +1785,20 @@ BOOL LLVolume::generate()
S32 sizeS = mPathp->mPath.size();
S32 sizeT = mProfilep->mProfile.size();
- //debug info
+ //********************************************************************
+ //debug info, to be removed
if((U32)(sizeS * sizeT) > (1u << 20))
{
llinfos << "regenPath: " << (S32)regenPath << " regenProf: " << (S32)regenProf << llendl ;
llinfos << "sizeS: " << sizeS << " sizeT: " << sizeT << llendl ;
llinfos << "path_detail : " << path_detail << " split: " << split << " profile_detail: " << profile_detail << llendl ;
llinfos << mParams << llendl ;
+ llinfos << "more info to check if mProfilep is deleted or not." << llendl ;
+ llinfos << mProfilep->mNormals.size() << " : " << mProfilep->mFaces.size() << " : " << mProfilep->mEdgeNormals.size() << " : " << mProfilep->mEdgeCenters.size() << llendl ;
llerrs << "LLVolume corrupted!" << llendl ;
}
+ //********************************************************************
sNumMeshPoints -= mMesh.size();
mMesh.resize(sizeT * sizeS);
diff --git a/indra/llmath/llvolume.h b/indra/llmath/llvolume.h
index 38e8f806e2..ab30d78333 100644
--- a/indra/llmath/llvolume.h
+++ b/indra/llmath/llvolume.h
@@ -672,9 +672,7 @@ public:
mConcave(FALSE),
mDirty(TRUE),
mTotalOut(0),
- mTotal(2),
- mMinX(0.f),
- mMaxX(0.f)
+ mTotal(2)
{
}
@@ -722,9 +720,6 @@ protected:
S32 mTotalOut;
S32 mTotal;
-
- F32 mMaxX;
- F32 mMinX;
};
//-------------------------------------------------------------------
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index 74b2d292e9..3e1c160198 100644
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -62,8 +62,56 @@ S32 LLImageGL::sCount = 0;
BOOL LLImageGL::sGlobalUseAnisotropic = FALSE;
F32 LLImageGL::sLastFrameTime = 0.f;
+S32 LLImageGL::sMaxTextureSize = 0 ;
+
std::set<LLImageGL*> LLImageGL::sImageList;
+//**************************************************************************************
+//below are functions for debug use
+//do not delete them even though they are not currently being used.
+void check_all_images()
+{
+ for (std::set<LLImageGL*>::iterator iter = LLImageGL::sImageList.begin();
+ iter != LLImageGL::sImageList.end(); iter++)
+ {
+ LLImageGL* glimage = *iter;
+ if (glimage->getTexName() && glimage->isGLTextureCreated())
+ {
+ gGL.getTexUnit(0)->bind(glimage) ;
+ glimage->checkTexSize() ;
+ gGL.getTexUnit(0)->unbind(glimage->getTarget()) ;
+ }
+ }
+}
+
+void LLImageGL::checkTexSize() const
+{
+ if (gDebugGL && mTarget == GL_TEXTURE_2D)
+ {
+ GLint texname;
+ glGetIntegerv(GL_TEXTURE_BINDING_2D, &texname);
+ if (texname != mTexName)
+ {
+ llerrs << "Invalid texture bound!" << llendl;
+ }
+ stop_glerror() ;
+ LLGLint x = 0, y = 0 ;
+ glGetTexLevelParameteriv(mTarget, 0, GL_TEXTURE_WIDTH, (GLint*)&x);
+ glGetTexLevelParameteriv(mTarget, 0, GL_TEXTURE_HEIGHT, (GLint*)&y) ;
+ stop_glerror() ;
+ if(!x || !y)
+ {
+ return ;
+ }
+ if(x != (mWidth >> mCurrentDiscardLevel) || y != (mHeight >> mCurrentDiscardLevel))
+ {
+ llerrs << "wrong texture size and discard level!" << llendl ;
+ }
+ }
+}
+//end of debug functions
+//**************************************************************************************
+
//----------------------------------------------------------------------------
//static
@@ -149,17 +197,22 @@ void LLImageGL::destroyGL(BOOL save_state)
{
gGL.getTexUnit(stage)->unbind(LLTexUnit::TT_TEXTURE);
}
+
for (std::set<LLImageGL*>::iterator iter = sImageList.begin();
iter != sImageList.end(); iter++)
{
LLImageGL* glimage = *iter;
- if (glimage->mTexName && glimage->mComponents)
+ if (glimage->mTexName)
{
- if (save_state && glimage->isInitialized())
+ if (save_state && glimage->isGLTextureCreated() && glimage->mComponents)
{
glimage->mSaveData = new LLImageRaw;
- glimage->readBackRaw(glimage->mCurrentDiscardLevel, glimage->mSaveData, false);
+ if(!glimage->readBackRaw(glimage->mCurrentDiscardLevel, glimage->mSaveData, false))
+ {
+ glimage->mSaveData = NULL ;
+ }
}
+
glimage->destroyGLTexture();
stop_glerror();
}
@@ -173,9 +226,13 @@ void LLImageGL::restoreGL()
iter != sImageList.end(); iter++)
{
LLImageGL* glimage = *iter;
- if (glimage->mSaveData.notNull() && glimage->mSaveData->getComponents())
+ if(glimage->getTexName())
+ {
+ llerrs << "tex name is not 0." << llendl ;
+ }
+ if (glimage->mSaveData.notNull())
{
- if (glimage->getComponents())
+ if (glimage->getComponents() && glimage->mSaveData->getComponents())
{
glimage->createGLTexture(glimage->mCurrentDiscardLevel, glimage->mSaveData);
stop_glerror();
@@ -283,7 +340,7 @@ void LLImageGL::init(BOOL usemipmaps)
mFormatSwapBytes = FALSE;
mHasExplicitFormat = FALSE;
- mInitialized = true;
+ mGLTextureCreated = FALSE ;
}
void LLImageGL::cleanup()
@@ -322,6 +379,16 @@ void LLImageGL::setSize(S32 width, S32 height, S32 ncomponents)
{
if (width != mWidth || height != mHeight || ncomponents != mComponents)
{
+ if(width > 1024 || height > 1024)
+ {
+ llwarns << "texture size is big: width: " << width << " height: " << height << llendl ;
+ if(!sMaxTextureSize)
+ {
+ glGetIntegerv(GL_MAX_TEXTURE_SIZE, (GLint*)&sMaxTextureSize) ;
+ }
+ llwarns << "max texture size is: " << sMaxTextureSize << llendl ;
+ }
+
// Check if dimensions are a power of two!
if (!checkSize(width,height))
{
@@ -645,7 +712,7 @@ void LLImageGL::setImage(const U8* data_in, BOOL data_hasmips)
mHasMipMaps = FALSE;
}
stop_glerror();
- mInitialized = true;
+ mGLTextureCreated = true;
}
BOOL LLImageGL::setSubImage(const U8* datap, S32 data_width, S32 data_height, S32 x_pos, S32 y_pos, S32 width, S32 height)
@@ -735,9 +802,8 @@ BOOL LLImageGL::setSubImage(const U8* datap, S32 data_width, S32 data_height, S3
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
stop_glerror();
- mInitialized = true;
+ mGLTextureCreated = true;
}
-
return TRUE;
}
@@ -752,7 +818,7 @@ BOOL LLImageGL::setSubImageFromFrameBuffer(S32 fb_x, S32 fb_y, S32 x_pos, S32 y_
if (gGL.getTexUnit(0)->bind(this, true))
{
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, fb_x, fb_y, x_pos, y_pos, width, height);
- mInitialized = true;
+ mGLTextureCreated = true;
stop_glerror();
return TRUE;
}
@@ -762,6 +828,36 @@ BOOL LLImageGL::setSubImageFromFrameBuffer(S32 fb_x, S32 fb_y, S32 x_pos, S32 y_
}
}
+//create an empty GL texture: just create a texture name
+//the texture is assiciate with some image by calling glTexImage outside LLImageGL
+BOOL LLImageGL::createGLTexture()
+{
+ if (gGLManager.mIsDisabled)
+ {
+ llwarns << "Trying to create a texture while GL is disabled!" << llendl;
+ return FALSE;
+ }
+
+ mGLTextureCreated = false ; //do not save this texture when gl is destroyed.
+
+ llassert(gGLManager.mInited);
+ stop_glerror();
+
+ if(mTexName)
+ {
+ glDeleteTextures(1, (reinterpret_cast<GLuint*>(&mTexName))) ;
+ }
+
+ glGenTextures(1, (GLuint*)&mTexName);
+ stop_glerror();
+ if (!mTexName)
+ {
+ llerrs << "LLImageGL::createGLTexture failed to make an empty texture" << llendl;
+ }
+
+ return TRUE ;
+}
+
BOOL LLImageGL::createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S32 usename/*=0*/)
{
if (gGLManager.mIsDisabled)
@@ -769,6 +865,7 @@ BOOL LLImageGL::createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S
llwarns << "Trying to create a texture while GL is disabled!" << llendl;
return FALSE;
}
+ mGLTextureCreated = false ;
llassert(gGLManager.mInited);
stop_glerror();
@@ -874,7 +971,7 @@ BOOL LLImageGL::createGLTexture(S32 discard_level, const U8* data_in, BOOL data_
#endif
}
- mCurrentDiscardLevel = discard_level;
+ mCurrentDiscardLevel = discard_level;
setImage(data_in, data_hasmips);
@@ -975,7 +1072,7 @@ BOOL LLImageGL::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compre
discard_level = mCurrentDiscardLevel;
}
- if (mTexName == 0 || discard_level < mCurrentDiscardLevel)
+ if (mTexName == 0 || discard_level < mCurrentDiscardLevel || discard_level > mMaxDiscardLevel )
{
return FALSE;
}
@@ -986,18 +1083,8 @@ BOOL LLImageGL::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compre
gGL.getTexUnit(0)->unbind(mBindTarget);
llverify(gGL.getTexUnit(0)->bind(this));
- if (gDebugGL)
- {
- if (mTarget == GL_TEXTURE_2D)
- {
- GLint texname;
- glGetIntegerv(GL_TEXTURE_BINDING_2D, &texname);
- if (texname != mTexName)
- {
- llerrs << "Invalid texture bound!" << llendl;
- }
- }
- }
+ //debug code, leave it there commented.
+ //checkTexSize() ;
LLGLint glwidth = 0;
glGetTexLevelParameteriv(mTarget, gl_discard, GL_TEXTURE_WIDTH, (GLint*)&glwidth);
@@ -1006,7 +1093,7 @@ BOOL LLImageGL::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compre
// No mip data smaller than current discard level
return FALSE;
}
-
+
S32 width = getWidth(discard_level);
S32 height = getHeight(discard_level);
S32 ncomponents = getComponents();
@@ -1014,6 +1101,13 @@ BOOL LLImageGL::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compre
{
return FALSE;
}
+ if(width < glwidth)
+ {
+ llwarns << "texture size is smaller than it should be." << llendl ;
+ llwarns << "width: " << width << " glwidth: " << glwidth << " mWidth: " << mWidth <<
+ " mCurrentDiscardLevel: " << (S32)mCurrentDiscardLevel << " discard_level: " << (S32)discard_level << llendl ;
+ return FALSE ;
+ }
if (width <= 0 || width > 2048 || height <= 0 || height > 2048 || ncomponents < 1 || ncomponents > 4)
{
@@ -1099,7 +1193,7 @@ void LLImageGL::destroyGLTexture()
glDeleteTextures(1, (GLuint*)&mTexName);
mTexName = 0;
-
+ mGLTextureCreated = FALSE ;
stop_glerror();
}
}
diff --git a/indra/llrender/llimagegl.h b/indra/llrender/llimagegl.h
index b3aa8f0984..01159ed744 100644
--- a/indra/llrender/llimagegl.h
+++ b/indra/llrender/llimagegl.h
@@ -91,6 +91,7 @@ public:
void setSize(S32 width, S32 height, S32 ncomponents);
+ BOOL createGLTexture() ;
BOOL createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S32 usename = 0);
BOOL createGLTexture(S32 discard_level, const U8* data, BOOL data_hasmips = FALSE, S32 usename = 0);
void setImage(const LLImageRaw* imageraw);
@@ -114,6 +115,8 @@ public:
S32 getDiscardLevel() const { return mCurrentDiscardLevel; }
S32 getMaxDiscardLevel() const { return mMaxDiscardLevel; }
+ S32 getCurrentWidth() const { return mWidth ;}
+ S32 getCurrentHeight() const { return mHeight ;}
S32 getWidth(S32 discard_level = -1) const;
S32 getHeight(S32 discard_level = -1) const;
U8 getComponents() const { return mComponents; }
@@ -135,8 +138,8 @@ public:
void setTarget(const LLGLenum target, const LLTexUnit::eTextureType bind_target);
LLTexUnit::eTextureType getTarget(void) const { return mBindTarget; }
- bool isInitialized(void) const { return mInitialized; }
- void setInitialized (bool initialized) { mInitialized = initialized; }
+ bool isGLTextureCreated(void) const { return mGLTextureCreated ; }
+ void setGLTextureCreated (bool initialized) { mGLTextureCreated = initialized; }
BOOL getUseMipMaps() const { return mUseMipMaps; }
void setUseMipMaps(BOOL usemips) { mUseMipMaps = usemips; }
@@ -148,6 +151,8 @@ public:
void updatePickMask(S32 width, S32 height, const U8* data_in);
BOOL getMask(const LLVector2 &tc);
+ void checkTexSize() const ;
+
protected:
void init(BOOL usemipmaps);
virtual void cleanup(); // Clean up the LLImageGL so it can be reinitialized. Be careful when using this in derived class destructors
@@ -165,21 +170,20 @@ private:
S8 mHasExplicitFormat; // If false (default), GL format is f(mComponents)
S8 mAutoGenMips;
+ bool mGLTextureCreated ;
+ LLGLuint mTexName;
+ U16 mWidth;
+ U16 mHeight;
+ S8 mCurrentDiscardLevel;
+
protected:
LLGLenum mTarget; // Normally GL_TEXTURE2D, sometimes something else (ex. cube maps)
LLTexUnit::eTextureType mBindTarget; // Normally TT_TEXTURE, sometimes something else (ex. cube maps)
- bool mInitialized;
-
- LLGLuint mTexName;
-
+
LLGLboolean mIsResident;
-
- U16 mWidth;
- U16 mHeight;
S8 mComponents;
- S8 mMaxDiscardLevel;
- S8 mCurrentDiscardLevel;
+ S8 mMaxDiscardLevel;
S8 mDontDiscard; // Keep full res version of this image (for UI, etc)
S8 mClampS; // Need to save clamp state
@@ -210,6 +214,7 @@ public:
static U32 sUniqueCount; // Tracks number of unique texture binds for current frame
static BOOL sGlobalUseAnisotropic;
+ static S32 sMaxTextureSize ;
#if DEBUG_MISS
BOOL mMissed; // Missed on last bind?
BOOL getMissed() const { return mMissed; };
diff --git a/indra/llrender/llpostprocess.cpp b/indra/llrender/llpostprocess.cpp
index 6aff279a21..940abb54d4 100644
--- a/indra/llrender/llpostprocess.cpp
+++ b/indra/llrender/llpostprocess.cpp
@@ -52,12 +52,14 @@ static const float LUMINANCE_B = 0.114f;
static const char * const XML_FILENAME = "postprocesseffects.xml";
LLPostProcess::LLPostProcess(void) :
- sceneRenderTexture(0), noiseTexture(0),
- tempBloomTexture(0),
initialized(false),
mAllEffects(LLSD::emptyMap()),
screenW(1), screenH(1)
{
+ mSceneRenderTexture = NULL ;
+ mNoiseTexture = NULL ;
+ mTempBloomTexture = NULL ;
+
/* Do nothing. Needs to be updated to use our current shader system, and to work with the move into llrender.
std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight", XML_FILENAME));
LL_DEBUGS2("AppInit", "Shaders") << "Loading PostProcess Effects settings from " << pathName << LL_ENDL;
@@ -111,9 +113,7 @@ LLPostProcess::LLPostProcess(void) :
LLPostProcess::~LLPostProcess(void)
{
- glDeleteTextures(1, &sceneRenderTexture);
- glDeleteTextures(1, &noiseTexture);
- glDeleteTextures(1, &tempBloomTexture);
+ invalidate() ;
}
// static
@@ -158,6 +158,13 @@ void LLPostProcess::saveEffect(std::string const & effectName)
formatter->format(mAllEffects, effectsXML);
*/
}
+void LLPostProcess::invalidate()
+{
+ mSceneRenderTexture = NULL ;
+ mNoiseTexture = NULL ;
+ mTempBloomTexture = NULL ;
+ initialized = FALSE ;
+}
void LLPostProcess::apply(unsigned int width, unsigned int height)
{
@@ -173,7 +180,7 @@ void LLPostProcess::initialize(unsigned int width, unsigned int height)
{
screenW = width;
screenH = height;
- createTexture(sceneRenderTexture, screenW, screenH);
+ createTexture(mSceneRenderTexture, screenW, screenH);
initialized = true;
checkError();
@@ -199,16 +206,20 @@ void LLPostProcess::applyShaders(void)
}
if (tweaks.useNightVisionShader()){
/// If any of the above shaders have been called update the frame buffer;
- if (tweaks.useColorFilter()){
- copyFrameBuffer(sceneRenderTexture, screenW, screenH);
+ if (tweaks.useColorFilter())
+ {
+ GLuint tex = mSceneRenderTexture->getTexName() ;
+ copyFrameBuffer(tex, screenW, screenH);
}
applyNightVisionShader();
checkError();
}
if (tweaks.useBloomShader()){
/// If any of the above shaders have been called update the frame buffer;
- if (tweaks.useColorFilter().asBoolean() || tweaks.useNightVisionShader().asBoolean()){
- copyFrameBuffer(sceneRenderTexture, screenW, screenH);
+ if (tweaks.useColorFilter().asBoolean() || tweaks.useNightVisionShader().asBoolean())
+ {
+ GLuint tex = mSceneRenderTexture->getTexName() ;
+ copyFrameBuffer(tex, screenW, screenH);
}
applyBloomShader();
checkError();
@@ -306,7 +317,7 @@ void LLPostProcess::createNightVisionShader(void)
nightVisionUniforms["noiseStrength"] = 0;
nightVisionUniforms["lumWeights"] = 0;
- createNoiseTexture(noiseTexture);
+ createNoiseTexture(mNoiseTexture);
}
void LLPostProcess::applyBloomShader(void)
@@ -316,7 +327,7 @@ void LLPostProcess::applyBloomShader(void)
void LLPostProcess::createBloomShader(void)
{
- createTexture(tempBloomTexture, unsigned(screenW * 0.5), unsigned(screenH * 0.5));
+ createTexture(mTempBloomTexture, unsigned(screenW * 0.5), unsigned(screenH * 0.5));
/// Create Bloom Extract Shader
bloomExtractUniforms["RenderTexture"] = 0;
@@ -348,7 +359,10 @@ void LLPostProcess::doEffects(void)
glPushClientAttrib(GL_ALL_ATTRIB_BITS);
/// Copy the screen buffer to the render texture
- copyFrameBuffer(sceneRenderTexture, screenW, screenH);
+ {
+ GLuint tex = mSceneRenderTexture->getTexName() ;
+ copyFrameBuffer(tex, screenW, screenH);
+ }
/// Clear the frame buffer.
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
@@ -479,43 +493,42 @@ void LLPostProcess::changeOrthogonal(unsigned int width, unsigned int height)
viewOrthogonal(width, height);
}
-void LLPostProcess::createTexture(GLuint & texture, unsigned int width, unsigned int height)
+void LLPostProcess::createTexture(LLPointer<LLImageGL>& texture, unsigned int width, unsigned int height)
{
- if (texture != 0){
- glDeleteTextures(1, &texture);
- }
-
- std::vector<GLubyte> data(width * height * 4, 0);
-
- glGenTextures(1, &texture);
- gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_RECT_TEXTURE, texture);
- glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, 4, width, height, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, &data[0]);
- glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
- glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
- glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-}
+ std::vector<GLubyte> data(width * height * 4, 0) ;
-void LLPostProcess::createNoiseTexture(GLuint & texture)
-{
- if (texture != 0){
- glDeleteTextures(1, &texture);
+ texture = new LLImageGL(FALSE) ;
+ if(texture->createGLTexture())
+ {
+ gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_RECT_TEXTURE, texture->getTexName());
+ glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, 4, width, height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, &data[0]);
+ glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_RECTANGLE_ARB,GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
}
- glGenTextures(1, &texture);
+}
+void LLPostProcess::createNoiseTexture(LLPointer<LLImageGL>& texture)
+{
std::vector<GLubyte> buffer(NOISE_SIZE * NOISE_SIZE);
for (unsigned int i = 0; i < NOISE_SIZE; i++){
for (unsigned int k = 0; k < NOISE_SIZE; k++){
buffer[(i * NOISE_SIZE) + k] = (GLubyte)((double) rand() / ((double) RAND_MAX + 1.f) * 255.f);
}
}
- gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, texture);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, NOISE_SIZE, NOISE_SIZE, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, &buffer[0]);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+ texture = new LLImageGL(FALSE) ;
+ if(texture->createGLTexture())
+ {
+ gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, texture->getTexName());
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, NOISE_SIZE, NOISE_SIZE, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, &buffer[0]);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ }
}
bool LLPostProcess::checkError(void)
diff --git a/indra/llrender/llpostprocess.h b/indra/llrender/llpostprocess.h
index 8e278f8e10..e5e34d920c 100644
--- a/indra/llrender/llpostprocess.h
+++ b/indra/llrender/llpostprocess.h
@@ -184,21 +184,24 @@ public:
};
- GLuint sceneRenderTexture;
- GLuint noiseTexture;
- GLuint tempBloomTexture;
bool initialized;
PostProcessTweaks tweaks;
// the map of all availible effects
LLSD mAllEffects;
+private:
+ LLPointer<LLImageGL> mSceneRenderTexture ;
+ LLPointer<LLImageGL> mNoiseTexture ;
+ LLPointer<LLImageGL> mTempBloomTexture ;
+
public:
LLPostProcess(void);
~LLPostProcess(void);
void apply(unsigned int width, unsigned int height);
+ void invalidate() ;
/// Perform global initialization for this class.
static void initClass(void);
@@ -252,9 +255,9 @@ private:
/// OpenGL Helper Functions
void getShaderUniforms(glslUniforms & uniforms, GLhandleARB & prog);
- void createTexture(GLuint & texture, unsigned int width, unsigned int height);
+ void createTexture(LLPointer<LLImageGL>& texture, unsigned int width, unsigned int height);
void copyFrameBuffer(GLuint & texture, unsigned int width, unsigned int height);
- void createNoiseTexture(GLuint & texture);
+ void createNoiseTexture(LLPointer<LLImageGL>& texture);
bool checkError(void);
void checkShaderError(GLhandleARB shader);
void drawOrthoQuad(unsigned int width, unsigned int height, QuadType type);
diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp
index 433be9e2eb..c7068133d2 100644
--- a/indra/llrender/llrender.cpp
+++ b/indra/llrender/llrender.cpp
@@ -187,17 +187,11 @@ bool LLTexUnit::bind(const LLImageGL* texture, bool forceBind)
llwarns << "NULL LLTexUnit::bind texture" << llendl;
return false;
}
-
- if (!texture->isInitialized() && !forceBind)
- {
- return texture->bindDefaultImage(mIndex);
- }
-
+
if (!texture->getTexName()) //if texture does not exist
{
return texture->bindDefaultImage(mIndex);
}
-
// Disabled caching of binding state.
activate();
enable(texture->getTarget());
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index 28b591b7c2..ad980d67fc 100644
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -1034,30 +1034,47 @@ void LLMenuItemToggleGL::doIt( void )
}
-LLMenuItemBranchGL::LLMenuItemBranchGL( const std::string& name, const std::string& label, LLMenuGL* branch,
+LLMenuItemBranchGL::LLMenuItemBranchGL( const std::string& name, const std::string& label, LLHandle<LLView> branch,
KEY key, MASK mask ) :
LLMenuItemGL( name, label, key, mask ),
mBranch( branch )
{
- mBranch->setVisible( FALSE );
- mBranch->setParentMenuItem(this);
+ if(!dynamic_cast<LLMenuGL*>(branch.get()))
+ {
+ llerrs << "Non-menu handle passed as branch reference." << llendl;
+ }
+
+ if(getBranch())
+ {
+ getBranch()->setVisible( FALSE );
+ getBranch()->setParentMenuItem(this);
+ }
+}
+
+LLMenuItemBranchGL::~LLMenuItemBranchGL()
+{
+ LLView::deleteViewByHandle(mBranch);
}
// virtual
LLView* LLMenuItemBranchGL::getChildView(const std::string& name, BOOL recurse, BOOL create_if_missing) const
{
// richard: this is redundant with parent, remove
- if (mBranch->getName() == name)
- {
- return mBranch;
- }
- // Always recurse on branches
- LLView* child = mBranch->getChildView(name, recurse, FALSE);
- if (!child)
+ if (getBranch())
{
- child = LLView::getChildView(name, recurse, create_if_missing);
+ if(getBranch()->getName() == name)
+ {
+ return getBranch();
+ }
+
+ // Always recurse on branches
+ LLView* child = getBranch()->getChildView(name, recurse, FALSE);
+ if(child)
+ {
+ return child;
+ }
}
- return child;
+ return LLView::getChildView(name, recurse, create_if_missing);;
}
// virtual
@@ -1073,15 +1090,19 @@ BOOL LLMenuItemBranchGL::handleMouseUp(S32 x, S32 y, MASK mask)
BOOL LLMenuItemBranchGL::handleAcceleratorKey(KEY key, MASK mask)
{
- return mBranch->handleAcceleratorKey(key, mask);
+ if(getBranch())
+ {
+ return getBranch()->handleAcceleratorKey(key, mask);
+ }
+ return FALSE;
}
// virtual
LLXMLNodePtr LLMenuItemBranchGL::getXML(bool save_children) const
{
- if (mBranch)
+ if (getBranch())
{
- return mBranch->getXML();
+ return getBranch()->getXML();
}
return LLMenuItemGL::getXML();
@@ -1092,14 +1113,17 @@ LLXMLNodePtr LLMenuItemBranchGL::getXML(bool save_children) const
// if not, it will be added to the list
BOOL LLMenuItemBranchGL::addToAcceleratorList(std::list<LLKeyBinding*> *listp)
{
- U32 item_count = mBranch->getItemCount();
- LLMenuItemGL *item;
-
- while (item_count--)
+ if(getBranch())
{
- if ((item = mBranch->getItem(item_count)))
+ U32 item_count = getBranch()->getItemCount();
+ LLMenuItemGL *item;
+
+ while (item_count--)
{
- return item->addToAcceleratorList(listp);
+ if ((item = getBranch()->getItem(item_count)))
+ {
+ return item->addToAcceleratorList(listp);
+ }
}
}
return FALSE;
@@ -1123,18 +1147,18 @@ void LLMenuItemBranchGL::doIt( void )
// keyboard navigation automatically propagates highlight to sub-menu
// to facilitate fast menu control via jump keys
- if (LLMenuGL::getKeyboardMode() && !mBranch->getHighlightedItem())
+ if (getBranch() && LLMenuGL::getKeyboardMode() && !getBranch()->getHighlightedItem())
{
- mBranch->highlightNextItem(NULL);
+ getBranch()->highlightNextItem(NULL);
}
}
BOOL LLMenuItemBranchGL::handleKey(KEY key, MASK mask, BOOL called_from_parent)
{
BOOL handled = FALSE;
- if (called_from_parent)
+ if (called_from_parent && getBranch())
{
- handled = mBranch->handleKey(key, mask, called_from_parent);
+ handled = getBranch()->handleKey(key, mask, called_from_parent);
}
if (!handled)
@@ -1148,9 +1172,9 @@ BOOL LLMenuItemBranchGL::handleKey(KEY key, MASK mask, BOOL called_from_parent)
BOOL LLMenuItemBranchGL::handleUnicodeChar(llwchar uni_char, BOOL called_from_parent)
{
BOOL handled = FALSE;
- if (called_from_parent)
+ if (called_from_parent && getBranch())
{
- handled = mBranch->handleUnicodeChar(uni_char, TRUE);
+ handled = getBranch()->handleUnicodeChar(uni_char, TRUE);
}
if (!handled)
@@ -1166,14 +1190,19 @@ void LLMenuItemBranchGL::setHighlight( BOOL highlight )
{
if (highlight == getHighlight()) return;
- BOOL auto_open = getEnabled() && (!mBranch->getVisible() || mBranch->getTornOff());
+ if(!getBranch())
+ {
+ return;
+ }
+
+ BOOL auto_open = getEnabled() && (!getBranch()->getVisible() || getBranch()->getTornOff());
// torn off menus don't open sub menus on hover unless they have focus
if (getMenu()->getTornOff() && !((LLFloater*)getMenu()->getParent())->hasFocus())
{
auto_open = FALSE;
}
// don't auto open torn off sub-menus (need to explicitly active menu item to give them focus)
- if (mBranch->getTornOff())
+ if (getBranch()->getTornOff())
{
auto_open = FALSE;
}
@@ -1187,14 +1216,14 @@ void LLMenuItemBranchGL::setHighlight( BOOL highlight )
}
else
{
- if (mBranch->getTornOff())
+ if (getBranch()->getTornOff())
{
- ((LLFloater*)mBranch->getParent())->setFocus(FALSE);
- mBranch->clearHoverItem();
+ ((LLFloater*)getBranch()->getParent())->setFocus(FALSE);
+ getBranch()->clearHoverItem();
}
else
{
- mBranch->setVisible( FALSE );
+ getBranch()->setVisible( FALSE );
}
}
}
@@ -1202,7 +1231,7 @@ void LLMenuItemBranchGL::setHighlight( BOOL highlight )
void LLMenuItemBranchGL::draw()
{
LLMenuItemGL::draw();
- if (mBranch->getVisible() && !mBranch->getTornOff())
+ if (getBranch() && getBranch()->getVisible() && !getBranch()->getTornOff())
{
setHighlight(TRUE);
}
@@ -1210,33 +1239,33 @@ void LLMenuItemBranchGL::draw()
void LLMenuItemBranchGL::updateBranchParent(LLView* parentp)
{
- if (mBranch->getParent() == NULL)
+ if (getBranch() && getBranch()->getParent() == NULL)
{
// make the branch menu a sibling of my parent menu
- mBranch->updateParent(parentp);
+ getBranch()->updateParent(parentp);
}
}
void LLMenuItemBranchGL::onVisibilityChange( BOOL new_visibility )
{
- if (new_visibility == FALSE && !mBranch->getTornOff())
+ if (new_visibility == FALSE && getBranch() && !getBranch()->getTornOff())
{
- mBranch->setVisible(FALSE);
+ getBranch()->setVisible(FALSE);
}
LLMenuItemGL::onVisibilityChange(new_visibility);
}
BOOL LLMenuItemBranchGL::handleKeyHere( KEY key, MASK mask )
{
- if (getMenu()->getVisible() && mBranch->getVisible() && key == KEY_LEFT)
+ if (getMenu()->getVisible() && getBranch() && getBranch()->getVisible() && key == KEY_LEFT)
{
// switch to keyboard navigation mode
LLMenuGL::setKeyboardMode(TRUE);
- BOOL handled = mBranch->clearHoverItem();
- if (mBranch->getTornOff())
+ BOOL handled = getBranch()->clearHoverItem();
+ if (getBranch()->getTornOff())
{
- ((LLFloater*)mBranch->getParent())->setFocus(FALSE);
+ ((LLFloater*)getBranch()->getParent())->setFocus(FALSE);
}
if (handled && getMenu()->getTornOff())
{
@@ -1247,12 +1276,12 @@ BOOL LLMenuItemBranchGL::handleKeyHere( KEY key, MASK mask )
if (getHighlight() &&
getMenu()->isOpen() &&
- key == KEY_RIGHT && !mBranch->getHighlightedItem())
+ key == KEY_RIGHT && getBranch() && !getBranch()->getHighlightedItem())
{
// switch to keyboard navigation mode
LLMenuGL::setKeyboardMode(TRUE);
- LLMenuItemGL* itemp = mBranch->highlightNextItem(NULL);
+ LLMenuItemGL* itemp = getBranch()->highlightNextItem(NULL);
if (itemp)
{
return TRUE;
@@ -1264,37 +1293,39 @@ BOOL LLMenuItemBranchGL::handleKeyHere( KEY key, MASK mask )
void LLMenuItemBranchGL::openMenu()
{
- if (mBranch->getTornOff())
+ if(!getBranch()) return;
+
+ if (getBranch()->getTornOff())
{
- gFloaterView->bringToFront((LLFloater*)mBranch->getParent());
+ gFloaterView->bringToFront((LLFloater*)getBranch()->getParent());
// this might not be necessary, as torn off branches don't get focus and hence no highligth
- mBranch->highlightNextItem(NULL);
+ getBranch()->highlightNextItem(NULL);
}
- else if( !mBranch->getVisible() )
+ else if( !getBranch()->getVisible() )
{
// get valid rectangle for menus
const LLRect menu_region_rect = LLMenuGL::sMenuContainer->getMenuRect();
- mBranch->arrange();
+ getBranch()->arrange();
- LLRect rect = mBranch->getRect();
+ LLRect rect = getBranch()->getRect();
// calculate root-view relative position for branch menu
S32 left = getRect().mRight;
S32 top = getRect().mTop - getRect().mBottom;
- localPointToOtherView(left, top, &left, &top, mBranch->getParent());
+ localPointToOtherView(left, top, &left, &top, getBranch()->getParent());
rect.setLeftTopAndSize( left, top,
rect.getWidth(), rect.getHeight() );
- if (mBranch->getCanTearOff())
+ if (getBranch()->getCanTearOff())
{
rect.translate(0, TEAROFF_SEPARATOR_HEIGHT_PIXELS);
}
- mBranch->setRect( rect );
+ getBranch()->setRect( rect );
S32 x = 0;
S32 y = 0;
- mBranch->localPointToOtherView( 0, 0, &x, &y, mBranch->getParent() );
+ getBranch()->localPointToOtherView( 0, 0, &x, &y, getBranch()->getParent() );
S32 delta_x = 0;
S32 delta_y = 0;
if( y < menu_region_rect.mBottom )
@@ -1308,9 +1339,9 @@ void LLMenuItemBranchGL::openMenu()
// move sub-menu over to left side
delta_x = llmax(-x, (-1 * (rect.getWidth() + getRect().getWidth())));
}
- mBranch->translate( delta_x, delta_y );
- mBranch->setVisible( TRUE );
- mBranch->getParent()->sendChildToFront(mBranch);
+ getBranch()->translate( delta_x, delta_y );
+ getBranch()->setVisible( TRUE );
+ getBranch()->getParent()->sendChildToFront(getBranch());
}
}
@@ -1327,7 +1358,7 @@ class LLMenuItemBranchDownGL : public LLMenuItemBranchGL
protected:
public:
- LLMenuItemBranchDownGL( const std::string& name, const std::string& label, LLMenuGL* branch,
+ LLMenuItemBranchDownGL( const std::string& name, const std::string& label, LLHandle<LLView> branch,
KEY key = KEY_NONE, MASK mask = MASK_NONE );
virtual std::string getType() const { return "menu"; }
@@ -1360,7 +1391,7 @@ public:
LLMenuItemBranchDownGL::LLMenuItemBranchDownGL( const std::string& name,
const std::string& label,
- LLMenuGL* branch,
+ LLHandle<LLView> branch,
KEY key, MASK mask ) :
LLMenuItemBranchGL( name, label, branch, key, mask )
{
@@ -2258,7 +2289,7 @@ void LLMenuGL::createSpilloverBranch()
mSpilloverMenu->setBackgroundColor( mBackgroundColor );
mSpilloverMenu->setCanTearOff(FALSE);
- mSpilloverBranch = new LLMenuItemBranchGL(std::string("More"), std::string("More"), mSpilloverMenu);
+ mSpilloverBranch = new LLMenuItemBranchGL(std::string("More"), std::string("More"), mSpilloverMenu->getHandle());
mSpilloverBranch->setFontStyle(LLFontGL::ITALIC);
}
}
@@ -2278,9 +2309,6 @@ void LLMenuGL::cleanupSpilloverBranch()
mItems.erase(found_iter);
}
- delete mSpilloverBranch;
- mSpilloverBranch = NULL;
-
// pop off spillover items
while (mSpilloverMenu->getItemCount())
{
@@ -2291,6 +2319,12 @@ void LLMenuGL::cleanupSpilloverBranch()
mItems.push_back(itemp);
addChild(itemp);
}
+
+ // Delete the branch, and since the branch will delete the menu,
+ // set the menu* to null.
+ delete mSpilloverBranch;
+ mSpilloverBranch = NULL;
+ mSpilloverMenu = NULL;
}
}
@@ -2463,7 +2497,7 @@ BOOL LLMenuGL::appendMenu( LLMenuGL* menu )
BOOL success = TRUE;
LLMenuItemBranchGL* branch = NULL;
- branch = new LLMenuItemBranchGL( menu->getName(), menu->getLabel(), menu );
+ branch = new LLMenuItemBranchGL( menu->getName(), menu->getLabel(), menu->getHandle() );
branch->setJumpKey(menu->getJumpKey());
success &= append( branch );
@@ -4072,7 +4106,7 @@ BOOL LLMenuBarGL::appendMenu( LLMenuGL* menu )
BOOL success = TRUE;
LLMenuItemBranchGL* branch = NULL;
- branch = new LLMenuItemBranchDownGL( menu->getName(), menu->getLabel(), menu );
+ branch = new LLMenuItemBranchDownGL( menu->getName(), menu->getLabel(), menu->getHandle());
success &= branch->addToAcceleratorList(&mAccelerators);
success &= append( branch );
branch->setJumpKey(branch->getJumpKey());
diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h
index 30398fb8f8..a2ef968bcd 100644
--- a/indra/llui/llmenugl.h
+++ b/indra/llui/llmenugl.h
@@ -90,6 +90,7 @@ public:
static const LLColor4& getHighlightFGColor() { return sHighlightForeground; }
LLMenuItemGL( const std::string& name, const std::string& label, KEY key = KEY_NONE, MASK = MASK_NONE );
+ virtual ~LLMenuItemGL() {};
virtual void setValue(const LLSD& value) { setLabel(value.asString()); }
@@ -562,8 +563,11 @@ private:
class LLMenuItemBranchGL : public LLMenuItemGL
{
public:
- LLMenuItemBranchGL( const std::string& name, const std::string& label, LLMenuGL* branch,
+ LLMenuItemBranchGL( const std::string& name, const std::string& label, LLHandle<LLView> branch,
KEY key = KEY_NONE, MASK mask = MASK_NONE );
+
+ virtual ~LLMenuItemBranchGL();
+
virtual LLXMLNodePtr getXML(bool save_children = true) const;
virtual std::string getType() const { return "menu"; }
@@ -590,11 +594,11 @@ public:
virtual BOOL handleKeyHere(KEY key, MASK mask);
- virtual BOOL isActive() const { return isOpen() && mBranch->getHighlightedItem(); }
+ virtual BOOL isActive() const { return isOpen() && getBranch()->getHighlightedItem(); }
- virtual BOOL isOpen() const { return mBranch->isOpen(); }
+ virtual BOOL isOpen() const { return getBranch() && getBranch()->isOpen(); }
- LLMenuGL *getBranch() const { return mBranch; }
+ LLMenuGL *getBranch() const { return (LLMenuGL*)(mBranch.get()); }
virtual void updateBranchParent( LLView* parentp );
@@ -603,14 +607,14 @@ public:
virtual void draw();
- virtual void setEnabledSubMenus(BOOL enabled) { mBranch->setEnabledSubMenus(enabled); }
+ virtual void setEnabledSubMenus(BOOL enabled) { if(getBranch()) getBranch()->setEnabledSubMenus(enabled); }
virtual void openMenu();
virtual LLView* getChildView(const std::string& name, BOOL recurse = TRUE, BOOL create_if_missing = TRUE) const;
private:
- LLMenuGL* mBranch;
+ LLHandle<LLView> mBranch;
}; // end class LLMenuItemBranchGL
diff --git a/indra/mac_crash_logger/llcrashloggermac.cpp b/indra/mac_crash_logger/llcrashloggermac.cpp
index f3a00e07dc..16efa4fe2c 100644
--- a/indra/mac_crash_logger/llcrashloggermac.cpp
+++ b/indra/mac_crash_logger/llcrashloggermac.cpp
@@ -134,6 +134,8 @@ OSStatus dialogHandler(EventHandlerCallRef handler, EventRef event, void *userda
QuitAppModalLoopForWindow(gWindow);
result = noErr;
break;
+ default:
+ result = eventNotHandledErr;
}
}
}
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 0be8b53d41..750771f6ce 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1298,6 +1298,7 @@ if (FMOD)
PROPERTIES
BUILD_WITH_INSTALL_RPATH 1
INSTALL_NAME_DIR "@executable_path/../Resources"
+ LINK_FLAGS "-unexported_symbols_list ../newview/fmod_hidden_symbols.exp"
)
endif (DARWIN)
set(FMODWRAPPER_LIBRARY fmodwrapper)
diff --git a/indra/newview/installers/windows/lang_zh.nsi b/indra/newview/installers/windows/lang_zh.nsi
index f4b7b5d143..d17e860df9 100644
--- a/indra/newview/installers/windows/lang_zh.nsi
+++ b/indra/newview/installers/windows/lang_zh.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/language_menu.nsi b/indra/newview/installers/windows/language_menu.nsi
index 473f9e0784..988f452dea 100644
--- a/indra/newview/installers/windows/language_menu.nsi
+++ b/indra/newview/installers/windows/language_menu.nsi
Binary files differ
diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp
index 67aeef8b12..3cdcb35197 100644
--- a/indra/newview/llappviewermacosx.cpp
+++ b/indra/newview/llappviewermacosx.cpp
@@ -58,6 +58,17 @@ namespace
// They are not used immediately by the app.
int gArgC;
char** gArgV;
+
+ bool sCrashReporterIsRunning = false;
+
+ OSErr AEQuitHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn)
+ {
+ OSErr result = noErr;
+
+ LLAppViewer::instance()->userQuit();
+
+ return(result);
+ }
}
int main( int argc, char **argv )
@@ -259,8 +270,37 @@ void LLAppViewerMacOSX::handleSyncCrashTrace()
// do nothing
}
+static OSStatus CarbonEventHandler(EventHandlerCallRef inHandlerCallRef,
+ EventRef inEvent,
+ void* inUserData)
+{
+ ProcessSerialNumber psn;
+
+ GetEventParameter(inEvent,
+ kEventParamProcessID,
+ typeProcessSerialNumber,
+ NULL,
+ sizeof(psn),
+ NULL,
+ &psn);
+
+ if( GetEventKind(inEvent) == kEventAppTerminated )
+ {
+ Boolean matching_psn = FALSE;
+ OSErr os_result = SameProcess(&psn, (ProcessSerialNumber*)inUserData, &matching_psn);
+ if(os_result >= 0 && matching_psn)
+ {
+ sCrashReporterIsRunning = false;
+ }
+ }
+ return noErr;
+}
+
void LLAppViewerMacOSX::handleCrashReporting(bool reportFreeze)
{
+ // This used to use fork&exec, but is switched to LSOpenApplication to
+ // Make sure the crash reporter launches in front of the SL window.
+
std::string command_str;
//command_str = "open Second Life.app/Contents/Resources/mac-crash-logger.app";
command_str = "mac-crash-logger.app/Contents/MacOS/mac-crash-logger";
@@ -282,15 +322,69 @@ void LLAppViewerMacOSX::handleCrashReporting(bool reportFreeze)
{
// Make sure freeze reporting launches the crash logger synchronously, lest
// Log files get changed by SL while the logger is running.
+
+ // *NOTE:Mani A better way - make a copy of the data that the crash reporter will send
+ // and let SL go about its business. This way makes the mac work like windows and linux
+ // and is the smallest patch for the issue.
+ sCrashReporterIsRunning = true;
+ ProcessSerialNumber o_psn;
+
+ static EventHandlerRef sCarbonEventsRef = NULL;
+ static const EventTypeSpec kEvents[] =
+ {
+ { kEventClassApplication, kEventAppTerminated }
+ };
+
+ // Install the handler to detect crash logger termination
+ InstallEventHandler(GetApplicationEventTarget(),
+ (EventHandlerUPP) CarbonEventHandler,
+ GetEventTypeCount(kEvents),
+ kEvents,
+ &o_psn,
+ &sCarbonEventsRef
+ );
+
+ // Remove, temporarily the quit handler - which has *crash* behavior before
+ // the mainloop gets running!
+ AERemoveEventHandler(kCoreEventClass,
+ kAEQuitApplication,
+ NewAEEventHandlerUPP(AEQuitHandler),
+ false);
+
+ // Launch the crash reporter.
+ os_result = LSOpenApplication(&appParams, &o_psn);
+
+ if(os_result >= 0)
+ {
+ EventRecord evt;
+ while(sCrashReporterIsRunning)
+ {
+ while(WaitNextEvent(osMask, &evt, 0, NULL))
+ {
+ // null op!?!
+ }
+ }
+ }
+
+ // Re-install the apps quit handler.
+ AEInstallEventHandler(kCoreEventClass,
+ kAEQuitApplication,
+ NewAEEventHandlerUPP(AEQuitHandler),
+ 0,
+ false);
+
+ // Remove the crash reporter quit handler.
+ RemoveEventHandler(sCarbonEventsRef);
}
else
{
appParams.flags |= kLSLaunchAsync;
clear_signals();
+
+ ProcessSerialNumber o_psn;
+ os_result = LSOpenApplication(&appParams, &o_psn);
}
- ProcessSerialNumber o_psn;
- os_result = LSOpenApplication(&appParams, &o_psn);
}
if(!reportFreeze)
@@ -368,15 +462,6 @@ OSErr AEGURLHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn)
return(result);
}
-OSErr AEQuitHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn)
-{
- OSErr result = noErr;
-
- LLAppViewer::instance()->userQuit();
-
- return(result);
-}
-
OSStatus simpleDialogHandler(EventHandlerCallRef handler, EventRef event, void *userdata)
{
OSStatus result = eventNotHandledErr;
diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp
index 6d6e4b0617..b23819be27 100644
--- a/indra/newview/lldrawpoolbump.cpp
+++ b/indra/newview/lldrawpoolbump.cpp
@@ -74,7 +74,6 @@ const U32 VERTEX_MASK_SHINY = LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_N
const U32 VERTEX_MASK_BUMP = LLVertexBuffer::MAP_VERTEX |LLVertexBuffer::MAP_TEXCOORD | LLVertexBuffer::MAP_TEXCOORD2;
U32 LLDrawPoolBump::sVertexMask = VERTEX_MASK_SHINY;
-static LLPointer<LLCubeMap> sCubeMap;
static LLGLSLShader* shader = NULL;
static S32 cube_channel = -1;
@@ -389,8 +388,6 @@ void LLDrawPoolBump::renderShiny(bool invisible)
return;
}
- sCubeMap = NULL;
-
if( gSky.mVOSkyp->getCubeMap() )
{
LLGLEnable blend_enable(GL_BLEND);
@@ -514,8 +511,6 @@ void LLDrawPoolBump::renderFullbrightShiny()
return;
}
- sCubeMap = NULL;
-
if( gSky.mVOSkyp->getCubeMap() )
{
LLGLEnable blend_enable(GL_BLEND);
diff --git a/indra/newview/lldynamictexture.cpp b/indra/newview/lldynamictexture.cpp
index b03306fa90..6951f3a96a 100644
--- a/indra/newview/lldynamictexture.cpp
+++ b/indra/newview/lldynamictexture.cpp
@@ -113,7 +113,7 @@ void LLDynamicTexture::generateGLTexture(LLGLint internal_format, LLGLenum prima
// llinfos << "ALLOCATING " << (mWidth*mHeight*mComponents)/1024 << "K" << llendl;
mTexture->createGLTexture(0, raw_image);
mTexture->setClamp(mClamp, mClamp);
- mTexture->setInitialized(false);
+ mTexture->setGLTextureCreated(false);
}
//-----------------------------------------------------------------------------
@@ -198,6 +198,7 @@ BOOL LLDynamicTexture::updateAllInstances()
}
BOOL result = FALSE;
+ BOOL ret = FALSE ;
for( S32 order = 0; order < ORDER_COUNT; order++ )
{
for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin();
@@ -212,9 +213,10 @@ BOOL LLDynamicTexture::updateAllInstances()
gGL.color4f(1,1,1,1);
dynamicTexture->preRender(); // Must be called outside of startRender()
-
+ result = FALSE;
if (dynamicTexture->render())
{
+ ret = TRUE ;
result = TRUE;
sNumRenders++;
}
@@ -226,7 +228,19 @@ BOOL LLDynamicTexture::updateAllInstances()
}
}
- return result;
+ return ret;
+}
+
+//virtual
+void LLDynamicTexture::restoreGLTexture()
+{
+ generateGLTexture() ;
+}
+
+//virtual
+void LLDynamicTexture::destroyGLTexture()
+{
+ releaseGLTexture() ;
}
//-----------------------------------------------------------------------------
@@ -235,6 +249,15 @@ BOOL LLDynamicTexture::updateAllInstances()
//-----------------------------------------------------------------------------
void LLDynamicTexture::destroyGL()
{
+ for( S32 order = 0; order < ORDER_COUNT; order++ )
+ {
+ for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin();
+ iter != LLDynamicTexture::sInstances[order].end(); ++iter)
+ {
+ LLDynamicTexture *dynamicTexture = *iter;
+ dynamicTexture->destroyGLTexture() ;
+ }
+ }
}
//-----------------------------------------------------------------------------
@@ -243,4 +266,18 @@ void LLDynamicTexture::destroyGL()
//-----------------------------------------------------------------------------
void LLDynamicTexture::restoreGL()
{
+ if (gGLManager.mIsDisabled)
+ {
+ return ;
+ }
+
+ for( S32 order = 0; order < ORDER_COUNT; order++ )
+ {
+ for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin();
+ iter != LLDynamicTexture::sInstances[order].end(); ++iter)
+ {
+ LLDynamicTexture *dynamicTexture = *iter;
+ dynamicTexture->restoreGLTexture() ;
+ }
+ }
}
diff --git a/indra/newview/lldynamictexture.h b/indra/newview/lldynamictexture.h
index fbfabf49a4..5a20eaef9b 100644
--- a/indra/newview/lldynamictexture.h
+++ b/indra/newview/lldynamictexture.h
@@ -61,6 +61,9 @@ public:
virtual BOOL render();
virtual void postRender(BOOL success);
+ virtual void restoreGLTexture() ;
+ virtual void destroyGLTexture() ;
+
LLImageGL* getTexture(void) const { return mTexture; }
static BOOL updateAllInstances();
diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp
index 283877751f..67be553ae7 100644
--- a/indra/newview/llfloaterimagepreview.cpp
+++ b/indra/newview/llfloaterimagepreview.cpp
@@ -76,7 +76,7 @@ LLFloaterImagePreview::LLFloaterImagePreview(const std::string& filename) :
{
mLastMouseX = 0;
mLastMouseY = 0;
- mGLName = 0;
+ mImagep = NULL ;
loadImage(mFilenameAndPath);
}
@@ -139,10 +139,7 @@ LLFloaterImagePreview::~LLFloaterImagePreview()
delete mAvatarPreview;
delete mSculptedPreview;
- if (mGLName)
- {
- glDeleteTextures(1, &mGLName );
- }
+ mImagep = NULL ;
}
//static
@@ -225,28 +222,16 @@ void LLFloaterImagePreview::draw()
gl_rect_2d_checkerboard(mPreviewRect);
LLGLDisable gls_alpha(GL_ALPHA_TEST);
- GLenum format_options[4] = { GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_RGBA };
- GLenum format = format_options[mRawImagep->getComponents()-1];
-
- GLenum internal_format_options[4] = { GL_LUMINANCE8, GL_LUMINANCE8_ALPHA8, GL_RGB8, GL_RGBA8 };
- GLenum internal_format = internal_format_options[mRawImagep->getComponents()-1];
-
- if (mGLName)
+ if(mImagep.notNull())
{
- gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mGLName);
+ gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mImagep->getTexName());
}
else
{
- glGenTextures(1, &mGLName );
- stop_glerror();
-
- gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mGLName);
- stop_glerror();
-
- glTexImage2D(
- GL_TEXTURE_2D, 0, internal_format,
- mRawImagep->getWidth(), mRawImagep->getHeight(),
- 0, format, GL_UNSIGNED_BYTE, mRawImagep->getData());
+ mImagep = new LLImageGL(mRawImagep, FALSE) ;
+
+ gGL.getTexUnit(0)->unbind(mImagep->getTarget()) ;
+ gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mImagep->getTexName());
stop_glerror();
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@@ -255,8 +240,8 @@ void LLFloaterImagePreview::draw()
gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
if (mAvatarPreview)
{
- mAvatarPreview->setTexture(mGLName);
- mSculptedPreview->setTexture(mGLName);
+ mAvatarPreview->setTexture(mImagep->getTexName());
+ mSculptedPreview->setTexture(mImagep->getTexName());
}
}
diff --git a/indra/newview/llfloaterimagepreview.h b/indra/newview/llfloaterimagepreview.h
index c061a85d94..e639544f48 100644
--- a/indra/newview/llfloaterimagepreview.h
+++ b/indra/newview/llfloaterimagepreview.h
@@ -130,7 +130,7 @@ protected:
S32 mLastMouseY;
LLRect mPreviewRect;
LLRectf mPreviewImageRect;
- GLuint mGLName;
+ LLPointer<LLImageGL> mImagep ;
static S32 sUploadAmount;
};
diff --git a/indra/newview/llhudicon.cpp b/indra/newview/llhudicon.cpp
index a6d57e98e3..8c6b906ccd 100644
--- a/indra/newview/llhudicon.cpp
+++ b/indra/newview/llhudicon.cpp
@@ -211,6 +211,80 @@ void LLHUDIcon::renderForSelect()
renderIcon(TRUE);
}
+BOOL LLHUDIcon::lineSegmentIntersect(const LLVector3& start, const LLVector3& end, LLVector3* intersection)
+{
+ if (mHidden)
+ return FALSE;
+
+ if (mSourceObject.isNull() || mImagep.isNull())
+ {
+ markDead();
+ return FALSE;
+ }
+
+ LLVector3 obj_position = mSourceObject->getRenderPosition();
+
+ // put icon above object, and in front
+ // RN: don't use drawable radius, it's fricking HUGE
+ LLVector3 icon_relative_pos = (LLViewerCamera::getInstance()->getUpAxis() * ~mSourceObject->getRenderRotation());
+ icon_relative_pos.abs();
+
+ F32 distance_scale = llmin(mSourceObject->getScale().mV[VX] / icon_relative_pos.mV[VX],
+ mSourceObject->getScale().mV[VY] / icon_relative_pos.mV[VY],
+ mSourceObject->getScale().mV[VZ] / icon_relative_pos.mV[VZ]);
+ F32 up_distance = 0.5f * distance_scale;
+ LLVector3 icon_position = obj_position + (up_distance * LLViewerCamera::getInstance()->getUpAxis()) * 1.2f;
+
+ LLVector3 icon_to_cam = LLViewerCamera::getInstance()->getOrigin() - icon_position;
+ icon_to_cam.normVec();
+
+ icon_position += icon_to_cam * mSourceObject->mDrawable->getRadius() * 1.1f;
+
+ mDistance = dist_vec(icon_position, LLViewerCamera::getInstance()->getOrigin());
+
+ LLVector3 x_pixel_vec;
+ LLVector3 y_pixel_vec;
+
+ LLViewerCamera::getInstance()->getPixelVectors(icon_position, y_pixel_vec, x_pixel_vec);
+
+ F32 scale_factor = 1.f;
+ if (mAnimTimer.getElapsedTimeF32() < ANIM_TIME)
+ {
+ scale_factor = llmax(0.f, calc_bouncy_animation(mAnimTimer.getElapsedTimeF32() / ANIM_TIME));
+ }
+
+ F32 time_elapsed = mLifeTimer.getElapsedTimeF32();
+ if (time_elapsed > MAX_VISIBLE_TIME)
+ {
+ markDead();
+ return FALSE;
+ }
+
+ F32 image_aspect = (F32)mImagep->mFullWidth / (F32)mImagep->mFullHeight;
+ LLVector3 x_scale = image_aspect * (F32)gViewerWindow->getWindowHeight() * mScale * scale_factor * x_pixel_vec;
+ LLVector3 y_scale = (F32)gViewerWindow->getWindowHeight() * mScale * scale_factor * y_pixel_vec;
+
+ LLVector3 lower_left = icon_position - (x_scale * 0.5f);
+ LLVector3 lower_right = icon_position + (x_scale * 0.5f);
+ LLVector3 upper_left = icon_position - (x_scale * 0.5f) + y_scale;
+ LLVector3 upper_right = icon_position + (x_scale * 0.5f) + y_scale;
+
+
+ F32 t = 0.f;
+ LLVector3 dir = end-start;
+
+ if (LLTriangleRayIntersect(upper_right, upper_left, lower_right, start, dir, NULL, NULL, &t, FALSE) ||
+ LLTriangleRayIntersect(lower_left, lower_right, upper_left, start, dir, NULL, NULL, &t, FALSE))
+ {
+ if (intersection)
+ {
+ *intersection = start + dir*t;
+ }
+ return TRUE;
+ }
+
+ return FALSE;
+}
//static
S32 LLHUDIcon::generatePickIDs(S32 start_id, S32 step_size)
@@ -243,6 +317,33 @@ LLHUDIcon* LLHUDIcon::handlePick(S32 pick_id)
return NULL;
}
+//static
+LLHUDIcon* LLHUDIcon::lineSegmentIntersectAll(const LLVector3& start, const LLVector3& end, LLVector3* intersection)
+{
+ icon_instance_t::iterator icon_it;
+
+ LLVector3 local_end = end;
+ LLVector3 position;
+
+ LLHUDIcon* ret = NULL;
+ for(icon_it = sIconInstances.begin(); icon_it != sIconInstances.end(); ++icon_it)
+ {
+ LLHUDIcon* icon = *icon_it;
+ if (icon->lineSegmentIntersect(start, local_end, &position))
+ {
+ ret = icon;
+ if (intersection)
+ {
+ *intersection = position;
+ }
+ local_end = position;
+ }
+ }
+
+ return ret;
+}
+
+
//static
void LLHUDIcon::updateAll()
{
diff --git a/indra/newview/llhudicon.h b/indra/newview/llhudicon.h
index ffc2985f88..154e6df518 100644
--- a/indra/newview/llhudicon.h
+++ b/indra/newview/llhudicon.h
@@ -68,6 +68,7 @@ public:
static S32 generatePickIDs(S32 start_id, S32 step_size);
static LLHUDIcon* handlePick(S32 pick_id);
+ static LLHUDIcon* lineSegmentIntersectAll(const LLVector3& start, const LLVector3& end, LLVector3* intersection);
static void updateAll();
static void cleanupDeadIcons();
@@ -78,6 +79,8 @@ public:
BOOL getHidden() const { return mHidden; }
void setHidden( BOOL hide ) { mHidden = hide; }
+ BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end, LLVector3* intersection);
+
protected:
LLHUDIcon(const U8 type);
~LLHUDIcon();
diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp
index 8c0c5fdab1..b9a700991e 100644
--- a/indra/newview/llmaniptranslate.cpp
+++ b/indra/newview/llmaniptranslate.cpp
@@ -78,7 +78,7 @@ const F32 PLANE_TICK_SIZE = 0.4f;
const F32 MANIPULATOR_SCALE_HALF_LIFE = 0.07f;
const F32 SNAP_ARROW_SCALE = 0.7f;
-static GLuint sGridTex = 0;
+static LLPointer<LLImageGL> sGridTex = NULL ;
const LLManip::EManipPart MANIPULATOR_IDS[9] =
{
@@ -120,22 +120,50 @@ LLManipTranslate::LLManipTranslate( LLToolComposite* composite )
mPlaneScales(1.f, 1.f, 1.f),
mPlaneManipPositions(1.f, 1.f, 1.f, 1.f)
{
- if (sGridTex == 0)
+ if (sGridTex.isNull())
{
restoreGL();
}
}
//static
+U32 LLManipTranslate::getGridTexName()
+{
+ if(sGridTex.isNull())
+ {
+ restoreGL() ;
+ }
+
+ return sGridTex.isNull() ? 0 : sGridTex->getTexName() ;
+}
+
+//static
+void LLManipTranslate::destroyGL()
+{
+ if (sGridTex)
+ {
+ sGridTex = NULL ;
+ }
+}
+
+//static
void LLManipTranslate::restoreGL()
{
//generate grid texture
U32 rez = 512;
U32 mip = 0;
- GLuint* d = new GLuint[rez*rez];
- glGenTextures(1, &sGridTex);
- gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, sGridTex);
+ destroyGL() ;
+ sGridTex = new LLImageGL() ;
+ if(!sGridTex->createGLTexture())
+ {
+ sGridTex = NULL ;
+ return ;
+ }
+
+ GLuint* d = new GLuint[rez*rez];
+
+ gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, sGridTex->getTexName());
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
@@ -1504,7 +1532,7 @@ void LLManipTranslate::renderSnapGuides()
LLGLDisable stencil(GL_STENCIL_TEST);
{
LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE, GL_GREATER);
- gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, sGridTex);
+ gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, getGridTexName());
gGL.flush();
gGL.blendFunc(LLRender::BF_ZERO, LLRender::BF_ONE_MINUS_SOURCE_ALPHA);
renderGrid(u,v,tiles,0.9f, 0.9f, 0.9f,a*0.15f);
@@ -1519,7 +1547,7 @@ void LLManipTranslate::renderSnapGuides()
renderGrid(u,v,tiles,0.0f, 0.0f, 0.0f,a*0.16f);
//draw grid top
- gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, sGridTex);
+ gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, getGridTexName());
renderGrid(u,v,tiles,1,1,1,a);
gGL.popMatrix();
diff --git a/indra/newview/llmaniptranslate.h b/indra/newview/llmaniptranslate.h
index cc9053ec65..25ff35cc72 100644
--- a/indra/newview/llmaniptranslate.h
+++ b/indra/newview/llmaniptranslate.h
@@ -56,6 +56,8 @@ public:
LLManipTranslate( LLToolComposite* composite );
virtual ~LLManipTranslate();
+ static U32 getGridTexName() ;
+ static void destroyGL();
static void restoreGL();
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp
index baff4a2d3f..709fcd166b 100644
--- a/indra/newview/lltexlayer.cpp
+++ b/indra/newview/lltexlayer.cpp
@@ -94,17 +94,59 @@ LLTexLayerSetBuffer::LLTexLayerSetBuffer( LLTexLayerSet* owner, S32 width, S32 h
mNeedsUpdate( TRUE ),
mNeedsUpload( FALSE ),
mUploadPending( FALSE ), // Not used for any logic here, just to sync sending of updates
- mTexLayerSet( owner ),
- mBumpTexName(0)
+ mTexLayerSet( owner )
{
LLTexLayerSetBuffer::sGLByteCount += getSize();
+ mHasBump = has_bump ;
+ mBumpTex = NULL ;
- if( has_bump )
+ createBumpTexture() ;
+}
+
+LLTexLayerSetBuffer::~LLTexLayerSetBuffer()
+{
+ LLTexLayerSetBuffer::sGLByteCount -= getSize();
+
+ if( mBumpTex.notNull())
+ {
+ mBumpTex = NULL ;
+ LLImageGL::sGlobalTextureMemory -= mWidth * mHeight * 4;
+ LLTexLayerSetBuffer::sGLBumpByteCount -= mWidth * mHeight * 4;
+ }
+}
+//virtual
+void LLTexLayerSetBuffer::restoreGLTexture()
+{
+ createBumpTexture() ;
+ LLDynamicTexture::restoreGLTexture() ;
+}
+
+//virtual
+void LLTexLayerSetBuffer::destroyGLTexture()
+{
+ if( mBumpTex.notNull() )
+ {
+ mBumpTex = NULL ;
+ LLImageGL::sGlobalTextureMemory -= mWidth * mHeight * 4;
+ LLTexLayerSetBuffer::sGLBumpByteCount -= mWidth * mHeight * 4;
+ }
+
+ LLDynamicTexture::destroyGLTexture() ;
+}
+
+void LLTexLayerSetBuffer::createBumpTexture()
+{
+ if( mHasBump )
{
LLGLSUIDefault gls_ui;
- glGenTextures(1, (GLuint*) &mBumpTexName);
+ mBumpTex = new LLImageGL(FALSE) ;
+ if(!mBumpTex->createGLTexture())
+ {
+ mBumpTex = NULL ;
+ return ;
+ }
- gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTexName);
+ gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTex->getTexName());
stop_glerror();
gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
@@ -112,7 +154,7 @@ LLTexLayerSetBuffer::LLTexLayerSetBuffer( LLTexLayerSet* owner, S32 width, S32 h
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, mWidth, mHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
stop_glerror();
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
@@ -122,21 +164,6 @@ LLTexLayerSetBuffer::LLTexLayerSetBuffer( LLTexLayerSet* owner, S32 width, S32 h
}
}
-LLTexLayerSetBuffer::~LLTexLayerSetBuffer()
-{
- LLTexLayerSetBuffer::sGLByteCount -= getSize();
-
- if( mBumpTexName )
- {
- glDeleteTextures(1, (GLuint*) &mBumpTexName);
- stop_glerror();
- mBumpTexName = 0;
-
- LLImageGL::sGlobalTextureMemory -= mWidth * mHeight * 4;
- LLTexLayerSetBuffer::sGLBumpByteCount -= mWidth * mHeight * 4;
- }
-}
-
// static
void LLTexLayerSetBuffer::dumpTotalByteCount()
{
@@ -245,7 +272,7 @@ BOOL LLTexLayerSetBuffer::render()
BOOL success = TRUE;
// Composite bump
- if( mBumpTexName )
+ if( mBumpTex.notNull() )
{
// Composite the bump data
success &= mTexLayerSet->renderBump( mOrigin.mX, mOrigin.mY, mWidth, mHeight );
@@ -256,7 +283,7 @@ BOOL LLTexLayerSetBuffer::render()
LLGLSUIDefault gls_ui;
// read back into texture (this is done externally for the color data)
- gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTexName);
+ gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTex->getTexName());
stop_glerror();
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, mOrigin.mX, mOrigin.mY, mWidth, mHeight);
@@ -296,7 +323,7 @@ BOOL LLTexLayerSetBuffer::render()
gGL.setSceneBlendType(LLRender::BT_ALPHA);
// we have valid texture data now
- mTexture->setInitialized(true);
+ mTexture->setGLTextureCreated(true);
mNeedsUpdate = FALSE;
return success;
@@ -304,7 +331,7 @@ BOOL LLTexLayerSetBuffer::render()
bool LLTexLayerSetBuffer::isInitialized(void) const
{
- return mTexture->isInitialized();
+ return mTexture.notNull() && mTexture->isGLTextureCreated();
}
BOOL LLTexLayerSetBuffer::updateImmediate()
@@ -352,11 +379,11 @@ void LLTexLayerSetBuffer::readBackAndUpload(U8* baked_bump_data)
// writes into baked_color_data
const char* comment_text = NULL;
- S32 baked_image_components = mBumpTexName ? 5 : 4; // red green blue [bump] clothing
+ S32 baked_image_components = mBumpTex.notNull() ? 5 : 4; // red green blue [bump] clothing
LLPointer<LLImageRaw> baked_image = new LLImageRaw( mWidth, mHeight, baked_image_components );
U8* baked_image_data = baked_image->getData();
- if( mBumpTexName )
+ if( mBumpTex.notNull() )
{
comment_text = LINDEN_J2C_COMMENT_PREFIX "RGBHM"; // 5 channels: rgb, heightfield/alpha, mask
@@ -555,9 +582,9 @@ void LLTexLayerSetBuffer::onTextureUploadComplete(const LLUUID& uuid, void* user
void LLTexLayerSetBuffer::bindBumpTexture( U32 stage )
{
- if( mBumpTexName )
+ if( mBumpTex.notNull() )
{
- gGL.getTexUnit(stage)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTexName);
+ gGL.getTexUnit(stage)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTex->getTexName());
gGL.getTexUnit(0)->activate();
if( mLastBindTime != LLImageGL::sLastFrameTime )
diff --git a/indra/newview/lltexlayer.h b/indra/newview/lltexlayer.h
index b838415d22..97b55a3d06 100644
--- a/indra/newview/lltexlayer.h
+++ b/indra/newview/lltexlayer.h
@@ -221,22 +221,28 @@ public:
BOOL uploadPending() { return mUploadPending; }
BOOL render( S32 x, S32 y, S32 width, S32 height );
void readBackAndUpload(U8* baked_bump_data);
+ void createBumpTexture() ;
+
static void onTextureUploadComplete( const LLUUID& uuid,
void* userdata,
S32 result, LLExtStat ext_status);
static void dumpTotalByteCount();
+ virtual void restoreGLTexture() ;
+ virtual void destroyGLTexture() ;
+
private:
void pushProjection();
void popProjection();
private:
+ BOOL mHasBump ;
BOOL mNeedsUpdate;
BOOL mNeedsUpload;
BOOL mUploadPending;
LLUUID mUploadID; // Identifys the current upload process (null if none). Used to avoid overlaps (eg, when the user rapidly makes two changes outside of Face Edit)
LLTexLayerSet* mTexLayerSet;
- LLGLuint mBumpTexName; // zero if none
+ LLPointer<LLImageGL> mBumpTex; // zero if none
static S32 sGLByteCount;
static S32 sGLBumpByteCount;
diff --git a/indra/newview/lltoolmorph.cpp b/indra/newview/lltoolmorph.cpp
index 4ddb1ebd13..f15f0f44b0 100644
--- a/indra/newview/lltoolmorph.cpp
+++ b/indra/newview/lltoolmorph.cpp
@@ -241,7 +241,7 @@ BOOL LLVisualParamHint::render()
}
avatarp->setVisualParamWeight(mVisualParam, mLastParamWeight);
gGL.color4f(1,1,1,1);
- mTexture->setInitialized(true);
+ mTexture->setGLTextureCreated(true);
return TRUE;
}
diff --git a/indra/newview/llviewerjointattachment.cpp b/indra/newview/llviewerjointattachment.cpp
index a2ae7ea5c0..5bd8c93d6a 100644
--- a/indra/newview/llviewerjointattachment.cpp
+++ b/indra/newview/llviewerjointattachment.cpp
@@ -139,6 +139,8 @@ void LLViewerJointAttachment::setupDrawable(LLDrawable* drawablep)
{
childp->mDrawable->setState(LLDrawable::USE_BACKLIGHT);
gPipeline.markTextured(childp->mDrawable); // face may need to change draw pool to/from POOL_HUD
+ gPipeline.markMoved(childp->mDrawable);
+
if(mIsHUDAttachment)
{
for (S32 face_num = 0; face_num < childp->mDrawable->getNumFaces(); face_num++)
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index bda07951a3..167b89fd02 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -182,6 +182,7 @@
#include "llspatialpartition.h"
#include "llviewerjoystick.h"
#include "llviewernetwork.h"
+#include "llpostprocess.h"
#include "llfloatertest.h" // HACK!
#include "llfloaternotificationsconsole.h"
@@ -3575,6 +3576,29 @@ LLPickInfo LLViewerWindow::pickImmediate(S32 x, S32 y_from_bot, BOOL pick_trans
return mLastPick;
}
+LLHUDIcon* LLViewerWindow::cursorIntersectIcon(S32 mouse_x, S32 mouse_y, F32 depth,
+ LLVector3* intersection)
+{
+ S32 x = mouse_x;
+ S32 y = mouse_y;
+
+ if ((mouse_x == -1) && (mouse_y == -1)) // use current mouse position
+ {
+ x = getCurrentMouseX();
+ y = getCurrentMouseY();
+ }
+
+ // world coordinates of mouse
+ LLVector3 mouse_direction_global = mouseDirectionGlobal(x,y);
+ LLVector3 mouse_point_global = LLViewerCamera::getInstance()->getOrigin();
+ LLVector3 mouse_world_start = mouse_point_global;
+ LLVector3 mouse_world_end = mouse_point_global + mouse_direction_global * depth;
+
+ return LLHUDIcon::lineSegmentIntersectAll(mouse_world_start, mouse_world_end, intersection);
+
+
+}
+
LLViewerObject* LLViewerWindow::cursorIntersect(S32 mouse_x, S32 mouse_y, F32 depth,
LLViewerObject *this_object,
S32 this_face,
@@ -3684,7 +3708,7 @@ LLVector3 LLViewerWindow::mousePointHUD(const S32 x, const S32 y) const
F32 hud_x = -((F32)x - (F32)width/2.f) / height;
F32 hud_y = ((F32)y - (F32)height/2.f) / height;
- return LLVector3(0.f, hud_x, hud_y);
+ return LLVector3(0.f, hud_x/gAgent.mHUDCurZoom, hud_y/gAgent.mHUDCurZoom);
}
// Returns unit vector relative to camera in camera space
@@ -4552,6 +4576,10 @@ void LLViewerWindow::dumpState()
void LLViewerWindow::stopGL(BOOL save_state)
{
+ //Note: --bao
+ //if not necessary, do not change the order of the function calls in this function.
+ //if change something, make sure it will not break anything.
+ //especially be careful to put anything behind gImageList.destroyGL(save_state);
if (!gGLManager.mIsDisabled)
{
llinfos << "Shutting down GL..." << llendl;
@@ -4560,12 +4588,12 @@ void LLViewerWindow::stopGL(BOOL save_state)
LLAppViewer::getTextureCache()->pause();
LLAppViewer::getImageDecodeThread()->pause();
LLAppViewer::getTextureFetch()->pause();
-
+
gSky.destroyGL();
- stop_glerror();
-
- gImageList.destroyGL(save_state);
- stop_glerror();
+ stop_glerror();
+
+ LLManipTranslate::destroyGL() ;
+ stop_glerror();
gBumpImageList.destroyGL();
stop_glerror();
@@ -4589,6 +4617,14 @@ void LLViewerWindow::stopGL(BOOL save_state)
gSphere.cleanupGL();
gCylinder.cleanupGL();
+ if(gPostProcess)
+ {
+ gPostProcess->invalidate();
+ }
+
+ gImageList.destroyGL(save_state);
+ stop_glerror();
+
gGLManager.mIsDisabled = TRUE;
stop_glerror();
@@ -4598,25 +4634,32 @@ void LLViewerWindow::stopGL(BOOL save_state)
void LLViewerWindow::restoreGL(const std::string& progress_message)
{
+ //Note: --bao
+ //if not necessary, do not change the order of the function calls in this function.
+ //if change something, make sure it will not break anything.
+ //especially, be careful to put something before gImageList.restoreGL();
if (gGLManager.mIsDisabled)
{
llinfos << "Restoring GL..." << llendl;
gGLManager.mIsDisabled = FALSE;
+
+ initGLDefaults();
+ LLGLState::restoreGL();
+ gImageList.restoreGL();
// for future support of non-square pixels, and fonts that are properly stretched
//LLFontGL::destroyDefaultFonts();
initFonts();
- initGLDefaults();
- LLGLState::restoreGL();
+
gSky.restoreGL();
gPipeline.restoreGL();
LLDrawPoolWater::restoreGL();
LLManipTranslate::restoreGL();
- gImageList.restoreGL();
+
gBumpImageList.restoreGL();
LLDynamicTexture::restoreGL();
LLVOAvatar::restoreGL();
-
+
gResizeScreenTexture = TRUE;
if (gFloaterCustomize && gFloaterCustomize->getVisible())
@@ -4665,6 +4708,7 @@ void LLViewerWindow::toggleFullscreen(BOOL show_progress)
if (mWindow)
{
mWantFullscreen = mWindow->getFullscreen() ? FALSE : TRUE;
+ mIsFullscreenChecked = mWindow->getFullscreen() ? FALSE : TRUE;
mShowFullscreenProgress = show_progress;
}
}
@@ -5175,6 +5219,13 @@ void LLPickInfo::fetchResults()
LLVector3 intersection, normal, binormal;
LLVector2 uv;
+ LLHUDIcon* hit_icon = gViewerWindow->cursorIntersectIcon(mMousePt.mX, mMousePt.mY, 512.f, &intersection);
+
+ F32 icon_dist = 0.f;
+ if (hit_icon)
+ {
+ icon_dist = (LLViewerCamera::getInstance()->getOrigin()-intersection).magVec();
+ }
LLViewerObject* hit_object = gViewerWindow->cursorIntersect(mMousePt.mX, mMousePt.mY, 512.f,
NULL, -1, mPickTransparent, &face_hit,
&intersection, &uv, &normal, &binormal);
@@ -5284,16 +5335,15 @@ void LLPickInfo::fetchResults()
}
}
}
- //else
- //{
+ if (hit_icon &&
+ (!objectp ||
+ icon_dist < (LLViewerCamera::getInstance()->getOrigin()-intersection).magVec()))
+ {
// was this name referring to a hud icon?
- // mHUDIcon = LLHUDIcon::handlePick(pick_id);
- // if (mHUDIcon)
- // {
- // mPickType = PICK_ICON;
- // mPosGlobal = mHUDIcon->getPositionGlobal();
- // }
- //}
+ mHUDIcon = hit_icon;
+ mPickType = PICK_ICON;
+ mPosGlobal = mHUDIcon->getPositionGlobal();
+ }
if (mPickCallback)
{
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index d74c300a1e..a55913c566 100644
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
@@ -312,6 +312,9 @@ public:
LLPickInfo pickImmediate(S32 x, S32 y, BOOL pick_transparent);
static void hoverPickCallback(const LLPickInfo& pick_info);
+ LLHUDIcon* cursorIntersectIcon(S32 mouse_x, S32 mouse_y, F32 depth,
+ LLVector3* intersection);
+
LLViewerObject* cursorIntersect(S32 mouse_x = -1, S32 mouse_y = -1, F32 depth = 512.f,
LLViewerObject *this_object = NULL,
S32 this_face = -1,
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index e5e858efba..597513ba0c 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -1070,6 +1070,22 @@ void LLVOAvatar::deleteLayerSetCaches()
if( mLowerBodyLayerSet ) mLowerBodyLayerSet->deleteCaches();
if( mEyesLayerSet ) mEyesLayerSet->deleteCaches();
if( mSkirtLayerSet ) mSkirtLayerSet->deleteCaches();
+
+ if(mUpperMaskTexName)
+ {
+ glDeleteTextures(1, (GLuint*)&mUpperMaskTexName);
+ mUpperMaskTexName = 0 ;
+ }
+ if(mHeadMaskTexName)
+ {
+ glDeleteTextures(1, (GLuint*)&mHeadMaskTexName);
+ mHeadMaskTexName = 0 ;
+ }
+ if(mLowerMaskTexName)
+ {
+ glDeleteTextures(1, (GLuint*)&mLowerMaskTexName);
+ mLowerMaskTexName = 0 ;
+ }
}
// static
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 9d1c9c001b..a63b5c5fd1 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -4036,7 +4036,7 @@ LLViewerObject* LLPipeline::lineSegmentIntersectInWorld(const LLVector3& start,
LLVector3 position;
- sPickAvatar = LLToolMgr::getInstance()->inBuildMode() ? FALSE : TRUE;
+ sPickAvatar = FALSE; //LLToolMgr::getInstance()->inBuildMode() ? FALSE : TRUE;
for (LLWorld::region_list_t::iterator iter = LLWorld::getInstance()->getRegionList().begin();
iter != LLWorld::getInstance()->getRegionList().end(); ++iter)
@@ -4067,6 +4067,32 @@ LLViewerObject* LLPipeline::lineSegmentIntersectInWorld(const LLVector3& start,
if (!sPickAvatar)
{
+ //save hit info in case we need to restore
+ //due to attachment override
+ LLVector3 local_normal;
+ LLVector3 local_binormal;
+ LLVector2 local_texcoord;
+ S32 local_face_hit = -1;
+
+ if (face_hit)
+ {
+ local_face_hit = *face_hit;
+ }
+ if (tex_coord)
+ {
+ local_texcoord = *tex_coord;
+ }
+ if (bi_normal)
+ {
+ local_binormal = *bi_normal;
+ }
+ if (normal)
+ {
+ local_normal = *normal;
+ }
+
+ const F32 ATTACHMENT_OVERRIDE_DIST = 0.1f;
+
if (!drawable || !drawable->getVObj()->isAttachment())
{ //check against avatars
sPickAvatar = TRUE;
@@ -4081,8 +4107,35 @@ LLViewerObject* LLPipeline::lineSegmentIntersectInWorld(const LLVector3& start,
LLDrawable* hit = part->lineSegmentIntersect(start, local_end, pick_transparent, face_hit, &position, tex_coord, normal, bi_normal);
if (hit)
{
- drawable = hit;
- local_end = position;
+ if (!drawable ||
+ !drawable->getVObj()->isAttachment() ||
+ (position-local_end).magVec() > ATTACHMENT_OVERRIDE_DIST)
+ { //avatar overrides if previously hit drawable is not an attachment or
+ //attachment is far enough away from detected intersection
+ drawable = hit;
+ local_end = position;
+ }
+ else
+ { //prioritize attachments over avatars
+ position = local_end;
+
+ if (face_hit)
+ {
+ *face_hit = local_face_hit;
+ }
+ if (tex_coord)
+ {
+ *tex_coord = local_texcoord;
+ }
+ if (bi_normal)
+ {
+ *bi_normal = local_binormal;
+ }
+ if (normal)
+ {
+ *normal = local_normal;
+ }
+ }
}
}
}
diff --git a/indra/newview/skins/default/xui/da/floater_about_land.xml b/indra/newview/skins/default/xui/da/floater_about_land.xml
index 7163b149e8..3612797a7f 100644
--- a/indra/newview/skins/default/xui/da/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/da/floater_about_land.xml
@@ -359,10 +359,10 @@ Indstillinger:
<check_box label="Gentag Medie" name="media_loop" tool_tip="Gentager automatisk medie, når det er færdigt med at spille starter det automatisk forfra."/>
<check_box label="Skjul Medie URL." name="hide_media_url" tool_tip="Klik her for at skjule Medie adressen så det kun er dig og evt. parcel gruppens ejer/officere der kan se den."/>
<check_box label="Skjul Musik URL" name="hide_music_url" tool_tip="Klik her for at skjule Musik adressen så det kun er dig og evt. parcel gruppens ejer/officere der kan se den."/>
- <text length="1" name="media_size" tool_tip="Size to render Web media, leave 0 for default." type="string">
+ <text length="1" name="media_size" tool_tip="Size to render Web media, leave 0 for default." type="string" width="105">
Medie Størrelse:
</text>
- <spinner name="media_size_width" tool_tip="Størrelse på Web Medier, 0 for standard."/>
+ <spinner name="media_size_width" tool_tip="Størrelse på Web Medier, 0 for standard." left_delta="89"/>
<spinner name="media_size_height" tool_tip="Størrelse på Web Medier, 0 for standard."/>
<text length="1" name="pixels" type="string">
pixels
diff --git a/indra/newview/skins/default/xui/da/floater_buy_currency.xml b/indra/newview/skins/default/xui/da/floater_buy_currency.xml
index cc408de572..a1150d173b 100644
--- a/indra/newview/skins/default/xui/da/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/da/floater_buy_currency.xml
@@ -53,10 +53,12 @@
L$ [AMT]
</text>
<text name="purchase_warning_repurchase">
- Der er sket en fejl, og k&#248;bet er afbrudt. Fors&#248;g venligst igen.
+ Der er sket en fejl, og k&#248;bet er afbrudt.
+Fors&#248;g venligst igen.
</text>
<text name="purchase_warning_notenough">
- Du k&#248;ber ikke nok valuta, tast et st&#248;rre bel&#248;b og pr&#248;v igen.
+ Du k&#248;ber ikke nok valuta, tast et st&#248;rre bel&#248;b
+og pr&#248;v igen.
</text>
<button label="Annuller" name="cancel_btn" />
<button label="K&#248;b" name="buy_btn" />
diff --git a/indra/newview/skins/default/xui/da/floater_buy_land.xml b/indra/newview/skins/default/xui/da/floater_buy_land.xml
index 69690fe055..8cc3f9f003 100644
--- a/indra/newview/skins/default/xui/da/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/da/floater_buy_land.xml
@@ -37,19 +37,19 @@
<text name="info_parcel_label">
Parcel:
</text>
- <text name="info_parcel">
+ <text name="info_parcel" left_delta="62">
Scotopteryx 138,204
</text>
- <text name="info_size_label">
+ <text name="info_size_label" width="60">
St&#248;rrelse:
</text>
- <text name="info_size">
+ <text name="info_size" left_delta="62">
1024 m2
</text>
<text name="info_price_label">
Pris:
</text>
- <text name="info_price">
+ <text name="info_price" left_delta="62">
L$ 1500, objekter inkluderet
</text>
<text name="info_action">
@@ -76,7 +76,7 @@
US$6.00/md, &#229;rlig afregning
</combo_item>
</combo_box>
- <text name="land_use_action">
+ <text name="land_use_action" width="210" right="430">
For&#248;g dine m&#229;nedlige arealanvendelse gebyrer til US $ 40/month.
</text>
<text name="land_use_reason">
@@ -84,7 +84,7 @@
Dette parcel er p&#229; 512 kvadratmeter jord.
</text>
<text name="purchase_action">
- Betal Joe Resident L $ 4000 dette areal
+ Betal Joe Resident L$ 4000 dette areal
</text>
<text name="currency_reason">
Du har L$2,100.
diff --git a/indra/newview/skins/default/xui/da/floater_pay.xml b/indra/newview/skins/default/xui/da/floater_pay.xml
index 3a9d350227..9b3cfa2ffd 100644
--- a/indra/newview/skins/default/xui/da/floater_pay.xml
+++ b/indra/newview/skins/default/xui/da/floater_pay.xml
@@ -6,7 +6,7 @@
<button label="L$20" label_selected="L$20" name="fastpay 20" />
<button label="Betal" label_selected="Betal" name="pay btn" />
<button label="Annuller" label_selected="Annuller" name="cancel btn" />
- <text type="string" length="1" name="payee_label">
+ <text type="string" length="1" name="payee_label" left="5" width="81">
Betal Beboer:
</text>
<text type="string" length="1" name="payee_name">
@@ -15,7 +15,7 @@
<text type="string" length="1" name="fastpay text">
Hurtig Betal:
</text>
- <text type="string" length="1" name="amount text">
+ <text type="string" length="1" name="amount text" left="4" >
Beløb:
</text>
</floater>
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_general.xml b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
index 5411230a69..bfa215011e 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
@@ -80,7 +80,7 @@
English (Engelsk)
</combo_item>
<combo_item length="1" name="Chinese" type="string">
- 汉语/漢語 (Kinesisk) - Beta
+ 中文 (简体) (Kinesisk) - Beta
</combo_item>
<combo_item length="1" name="Deutsch(German)" type="string">
Deutsch (Tysk) - Beta
diff --git a/indra/newview/skins/default/xui/de/floater_beacons.xml b/indra/newview/skins/default/xui/de/floater_beacons.xml
new file mode 100644
index 0000000000..d1ec9d968d
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_beacons.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="beacons" title="Beacons">
+ <panel name="beacons_panel">
+ <check_box label="Auf Berührung beschränkte Skriptobjekte" name="touch_only"/>
+ <check_box label="Skripting-Objekte" name="scripted"/>
+ <check_box label="Physische Objekte" name="physical"/>
+ <check_box label="Soundquellen" name="sounds"/>
+ <check_box label="Partikelquellen" name="particles"/>
+ <check_box label="Glanzlichter anzeigen" name="highlights"/>
+ <check_box label="Beacons anzeigen" name="beacons"/>
+ <text name="beacon_width_label">
+ Beacon-Breite:
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/panel_group_land_money.xml b/indra/newview/skins/default/xui/de/panel_group_land_money.xml
index f942819c1d..247051f598 100644
--- a/indra/newview/skins/default/xui/de/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_land_money.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel label="Land und L$" name="land_money_tab">
<text name="help_text">
- Es werden Parzellen in Gruppenbesitz und Beitragsdetails angezeigt. Solange der Wert für „Insgesamt verwendetes Land“ unter oder gleich dem Wert für „Gesamtbeitrag“ ist, wird eine Warnung angezeigt. Die Registerkarten „Planung“, „Details“ und „Verkäufe“ enthalten Informationen über die Gruppenfinanzen.
+ Es werden Parzellen in Gruppenbesitz und Beitragsdetails angezeigt. Solange der Wert für „Insgesamt verwendetes Land“ unter oder gleich dem Wert für „Gesamtbeitrag“ ist, wird eine Warnung angezeigt. Die Registerkarten „Details“ und „Verkäufe“ enthalten Informationen über die Gruppenfinanzen.
</text>
<button label="?" name="help_button" />
<text name="cant_view_group_land_text">
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
index 0fad717551..3365c5c428 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
@@ -101,7 +101,7 @@
Português (Portugiesisch) - Beta
</combo_item>
<combo_item name="Chinese">
- 汉语/漢語 (Chinesisch) - Beta
+ 中文 (简体) (Chinesisch) - Beta
</combo_item>
<combo_item name="(Japanese)">
日本語 (Japanisch) - Beta
diff --git a/indra/newview/skins/default/xui/es/panel_group_land_money.xml b/indra/newview/skins/default/xui/es/panel_group_land_money.xml
index 268b62fa42..29bd688867 100644
--- a/indra/newview/skins/default/xui/es/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_land_money.xml
@@ -4,8 +4,8 @@
Parcelas pertenecientes al grupo son listadas
con detalles de contribución. Un aviso aparece hasta que
el terreno total en uso sea menor o igual al total
-de contribución. Las pestañas Planeamiento, Detalles y Ventas
-conceden informaciones sobre las finanzas&apos; del grupo.
+de contribución. Las pestañas Detalles y Ventas
+conceden informaciones sobre las finanzas del grupo.
</text>
<button label="?" name="help_button" />
<text name="cant_view_group_land_text">
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_general.xml b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
index 66fb9bd2c9..dd285d5218 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
@@ -81,7 +81,7 @@
한국어 (Coreano) - Beta
</combo_item>
<combo_item type="string" length="1" name="Chinese">
- 汉语/漢語 (Chino) - Beta
+ 中文 (简体) (Chino) - Beta
</combo_item>
<combo_item type="string" name="Spanish">
Español - Beta
diff --git a/indra/newview/skins/default/xui/fr/floater_about_land.xml b/indra/newview/skins/default/xui/fr/floater_about_land.xml
index c922562b70..03d62605bb 100644
--- a/indra/newview/skins/default/xui/fr/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_about_land.xml
@@ -45,7 +45,7 @@
<text length="1" name="Selling with no objects in parcel." type="string">
Objets non inclus dans la vente.
</text>
- <button label="Annuler la vente du terrain" label_selected="Annuler la vente du terrain" name="Cancel Land Sale"/>
+ <button label="Annuler la vente du terrain" label_selected="Annuler la vente du terrain" name="Cancel Land Sale" width="165" left="275"/>
<text length="1" name="Claimed:" type="string">
Acquis :
</text>
diff --git a/indra/newview/skins/default/xui/fr/floater_beacons.xml b/indra/newview/skins/default/xui/fr/floater_beacons.xml
new file mode 100644
index 0000000000..06bcdee28c
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/floater_beacons.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="beacons" title="Balises">
+ <panel name="beacons_panel">
+ <check_box label="Objets scriptés avec Toucher uniquement" name="touch_only"/>
+ <check_box label="Objets scriptés" name="scripted"/>
+ <check_box label="Objets physiques" name="physical"/>
+ <check_box label="Sources sonores" name="sounds"/>
+ <check_box label="Sources des particules" name="particles"/>
+ <check_box label="Montrer les surbrillances" name="highlights"/>
+ <check_box label="Montrer les balises" name="beacons"/>
+ <text name="beacon_width_label">
+ Largeur de la balise :
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_pay.xml b/indra/newview/skins/default/xui/fr/floater_pay.xml
index a0db92af85..08251de71b 100644
--- a/indra/newview/skins/default/xui/fr/floater_pay.xml
+++ b/indra/newview/skins/default/xui/fr/floater_pay.xml
@@ -12,7 +12,7 @@
<text length="1" name="payee_name" type="string">
[FIRST] [LAST]
</text>
- <text length="1" name="fastpay text" type="string">
+ <text length="1" name="fastpay text" type="string" width="100" halign="left">
Paiement rapide :
</text>
<text left="4" length="1" name="amount text" type="string">
diff --git a/indra/newview/skins/default/xui/fr/floater_tools.xml b/indra/newview/skins/default/xui/fr/floater_tools.xml
index 2914dab887..c7101eaf19 100644
--- a/indra/newview/skins/default/xui/fr/floater_tools.xml
+++ b/indra/newview/skins/default/xui/fr/floater_tools.xml
@@ -594,7 +594,7 @@
Pour faire tourner l&apos;objet, faîtes glisser les bandes de couleur.
</string>
<string name="status_scale">
- Pour étirer le côté sélectionné, cliquez et faîtes glisser
+ Pour étirer le côté sélectionné, cliquez et faites glisser
</string>
<string name="status_move">
Faîtes glisser pour déplacer, Maj-faire glisser pour copier.
@@ -603,7 +603,7 @@
Cliquez et maintenez pour modifier le terrain
</string>
<string name="status_camera">
- Cliquez et faîtes glisser pour changer l&apos;affichage
+ Cliquez et faites glisser pour changer l&apos;affichage
</string>
<string name="status_grab">
Faîtes glisser pour déplacer les objets, appuyez sur Ctrl pour soulever, Crtl-Maj pour faire tourner
@@ -612,7 +612,7 @@
Cliquez dans le Monde pour créer, Maj-clic pour sélectionner
</string>
<string name="status_selectland">
- Cliquez et faîtes glisser pour sélectionner le terrain
+ Cliquez et faites glisser pour sélectionner le terrain
</string>
<string name="grid_screen_text">
Écran
diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml
index 4893f26058..47726f882d 100644
--- a/indra/newview/skins/default/xui/fr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml
@@ -196,7 +196,7 @@
<menu_item_separator label="-----------" name="separator7"/>
<menu_item_call label="Comment signaler des bugs ?" name="Bug Reporing 101..."/>
<menu_item_call label="Comment signaler un problème de sécurité ?" name="Security Issues...">
- <on_click name="SecurityIssues_url" userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues" />
+ <on_click name="SecurityIssues_url" userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues/fr" />
</menu_item_call>
<menu_item_call label="Wiki Assurance Qualité…" name="QA Wiki..."/>
<menu_item_separator label="-----------" name="separator9"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_group_land_money.xml b/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
index 1267689bd3..485c676c1a 100644
--- a/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Terrain et L$" name="land_money_tab">
<text name="help_text">
- Les parcelles appartenant au groupe sont indiquées avec le détail des contributions. Un avertissement apparaît si la surface utilisée par le groupe est supérieure ou égale au total des contributions. Les onglets Planification, Détails et Ventes correspondent aux finances du groupe.
+ Les parcelles appartenant au groupe sont indiquées avec le détail des contributions. Un avertissement apparaît si la surface utilisée par le groupe est supérieure ou égale au total des contributions. Les onglets Détails et Ventes correspondent aux finances du groupe.
</text>
<button label="?" name="help_button"/>
<text name="cant_view_group_land_text">
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
index 7c1986a21f..fd1ed4ccfc 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
@@ -102,7 +102,7 @@
Portugués (Portugais) - Bêta
</combo_item>
<combo_item length="1" name="Chinese" type="string">
- 汉语/漢語 (Chinois) - Bêta
+ 中文 (简体) (Chinois) - Bêta
</combo_item>
<combo_item length="1" name="(Japanese)" type="string">
日本語 (Japonais) - Bêta
diff --git a/indra/newview/skins/default/xui/ja/floater_beacons.xml b/indra/newview/skins/default/xui/ja/floater_beacons.xml
new file mode 100644
index 0000000000..49c87588b4
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_beacons.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="beacons" title="ビーコン(標識)">
+ <panel name="beacons_panel">
+ <check_box label="タッチオンリーのスクリプトを含むオブジェクト" name="touch_only"/>
+ <check_box label="スクリプト・オブジェクト" name="scripted"/>
+ <check_box label="物理的オブジェクト" name="physical"/>
+ <check_box label="音源" name="sounds"/>
+ <check_box label="パーティクル源" name="particles"/>
+ <check_box label="ハイライトのレンダリング" name="highlights"/>
+ <check_box label="ビーコン(標識)のレンダリング" name="beacons"/>
+ <text name="beacon_width_label">
+ ビーコン(標識)の幅
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_customize.xml b/indra/newview/skins/default/xui/ja/floater_customize.xml
index 3b99bc9f47..4b420dbc2e 100644
--- a/indra/newview/skins/default/xui/ja/floater_customize.xml
+++ b/indra/newview/skins/default/xui/ja/floater_customize.xml
@@ -3,7 +3,7 @@
<tab_container name="customize tab container">
<panel label="身体部位" />
<panel label="身体部位" name="body_parts_placeholder" />
- <panel label="形" name="Shape">
+ <panel label="シェイプ" name="Shape">
<button label="戻す" label_selected="戻す" name="Revert" />
<button label="身体" label_selected="身体" name="Body" />
<button label="頭" label_selected="頭" name="Head" />
@@ -39,12 +39,12 @@
[PATH]に所在
</text>
<text type="string" length="1" name="not worn instructions">
- 新しい形を持ち物からアバターにドラッグして装着しましょう。完全に新規の状態から作成して装着することもできます。
+ 新しいシェイプ(体型)を持ち物からアバターにドラッグして装着しましょう。完全に新規の状態から作成して装着することもできます。
</text>
<text type="string" length="1" name="no modify instructions">
あなたはこの服の修正を許されていません。
</text>
- <button label="新しい形を作成" label_selected="新しい形を作成"
+ <button label="新しいシェイプ(体型)を作成" label_selected="新しいシェイプ(体型)を作成"
name="Create New" />
<button label="取り外す" label_selected="取り外す" name="Take Off" />
<button label="保存" label_selected="保存" name="Save" />
diff --git a/indra/newview/skins/default/xui/ja/floater_inventory.xml b/indra/newview/skins/default/xui/ja/floater_inventory.xml
index 6edae5a044..db90c4e968 100644
--- a/indra/newview/skins/default/xui/ja/floater_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/floater_inventory.xml
@@ -2,8 +2,8 @@
<floater name="Inventory" title="持ち物">
<search_editor label="ここにタイプして検索" name="inventory search editor" />
<tab_container name="inventory filter tabs">
- <inventory_panel label="All Items" name="All Items" />
- <inventory_panel label="Recent Items" name="Recent Items" />
+ <inventory_panel label="すべて" name="All Items" />
+ <inventory_panel label="最近の入手アイテム" name="Recent Items" />
</tab_container>
<menu_bar name="Inventory Menu">
<menu label="ファイル" name="File">
@@ -31,7 +31,7 @@
<menu_item_call label="新しいパンツ" name="New Underpants" />
</menu>
<menu name="New Body Parts">
- <menu_item_call label="新しい形" name="New Shape" />
+ <menu_item_call label="新しいシェイプ(体型)" name="New Shape" />
<menu_item_call label="新しいスキン" name="New Skin" />
<menu_item_call label="新しい髪" name="New Hair" />
<menu_item_call label="新しい眼" name="New Eyes" />
diff --git a/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
index 10bb7e42fa..7ec92e4035 100644
--- a/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
@@ -21,13 +21,13 @@
</text>
<button label="プロフィール..." label_selected="" name="BtnOwner" />
<text name="LabelAcquiredTitle">
- 入手:
+ 入手日時:
</text>
<text name="LabelAcquiredDate">
2006年5月24日水曜日12:50:46
</text>
<text name="OwnerLabel">
- できることは:
+ できること:
</text>
<check_box label="修正" name="CheckOwnerModify" />
<check_box label="コピー" name="CheckOwnerCopy" />
@@ -50,7 +50,7 @@
<check_box label="グループ分担" name="CheckShareWithGroup" />
<check_box label="誰に対してもコピーを許可" name="CheckEveryoneCopy" />
<text name="NextOwnerLabel">
- 次のオーナーが実行できる操作:
+ 次のオーナーができること:
</text>
<check_box label="修正" name="CheckNextOwnerModify" />
<check_box label="コピー" name="CheckNextOwnerCopy" />
@@ -77,7 +77,7 @@
(公共)
</text>
<text name="you_can">
- 次のことができます:
+ できること:
</text>
<text name="owner_can">
オーナーは次のことができます:
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml
index 04ae1d3732..8dac77458c 100644
--- a/indra/newview/skins/default/xui/ja/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml
@@ -24,7 +24,7 @@
<menu_item_call label="新しいパンツ" name="New Underpants" />
</menu>
<menu name="New Body Parts">
- <menu_item_call label="新しい形" name="New Shape" />
+ <menu_item_call label="新しいシェイプ(体型)" name="New Shape" />
<menu_item_call label="新しいスキン" name="New Skin" />
<menu_item_call label="新しい髪" name="New Hair" />
<menu_item_call label="新しい眼" name="New Eyes" />
@@ -37,7 +37,7 @@
<menu_item_call label="開く" name="Open" />
<menu_item_call label="プロパティ" name="Properties" />
<menu_item_call label="名前の変更" name="Rename" />
- <menu_item_call label="資産UUIDをコピー" name="Copy Asset UUID" />
+ <menu_item_call label="UUIDをコピー" name="Copy Asset UUID" />
<menu_item_call label="コピー" name="Copy" />
<menu_item_call label="貼り付け" name="Paste" />
<menu_item_call label="削除" name="Delete" />
@@ -57,8 +57,8 @@
<menu_item_call label="非アクティブ" name="Deactivate" />
<menu_item_call label="自分から取り外す" name="Detach From Yourself" />
<menu_item_call label="装着" name="Object Wear" />
- <menu label="添付先" name="Attach To" />
- <menu label="HUDに添付" name="Attach To HUD" />
+ <menu label="装着先" name="Attach To" />
+ <menu label="HUD装着先" name="Attach To HUD" />
<menu_item_call label="装着" name="Wearable Wear" />
<menu_item_call label="編集" name="Wearable Edit" />
<menu_item_call label="取り外す" name="Take Off" />
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
index b6211db7d0..e8919862c0 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
@@ -80,7 +80,7 @@
English (英語)
</combo_item>
<combo_item length="1" name="Chinese" type="string">
- 汉语/漢語(中国語) – ベータ
+ 中文 (简体) (中国語) – ベータ
</combo_item>
<combo_item length="1" name="Deutsch(German)" type="string">
Deutsch (ドイツ語) – ベータ
diff --git a/indra/newview/skins/default/xui/pl/floater_about_land.xml b/indra/newview/skins/default/xui/pl/floater_about_land.xml
index fa01ebf0fa..58a7a69b27 100755
--- a/indra/newview/skins/default/xui/pl/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_about_land.xml
@@ -60,9 +60,9 @@
<text length="1" name="DwellText" type="string">
0
</text>
- <button label="Kup Posiadłość" label_selected="Kup Posiadłość" name="Buy Land..."/>
+ <button label="Kup Posiadłość..." label_selected="Kup Posiadłość..." name="Buy Land..." width="125" left="130"/>
<button label="Kup dla Grupy..." label_selected="Kup dla Grupy..." name="Buy For Group..."/>
- <button label="Kup Przepustkę..." label_selected="Kup Przeputkę..." name="Buy Pass..." tool_tip="Przepustka udostępnia tymczasowy wstęp na posiadłość."/>
+ <button label="Kup Przepustkę..." label_selected="Kup Przeputkę..." name="Buy Pass..." tool_tip="Przepustka udostępnia tymczasowy wstęp na posiadłość." width="125" left="130"/>
<button label="Porzuć z Posiadłości..." label_selected="Porzuć z Posiadłości..." name="Abandon Land..."/>
<button label="Odzyskaj Posiadłość..." label_selected="Odzyskaj Posiadłość..." name="Reclaim Land..."/>
<button label="Sprzedaż przez Lindenów..." label_selected="Sprzedaż przez Lindenów..." name="Linden Sale..." tool_tip="Posiadłość musi mieć właściciela, zawartość oraz nie może być wystawiona na aukcę."/>
@@ -73,7 +73,7 @@
Każdy
</string>
<string name="area_text">
- Obszar
+ Obszar:
</string>
<string name="area_size_text">
[AREA] m
@@ -158,7 +158,7 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
<text length="1" name="Simulator primitive usage:" type="string">
Ilość używanych elementów:
</text>
- <text length="1" name="objects_available" type="string">
+ <text length="1" name="objects_available" type="string" width="230">
[COUNT] z [MAX] ([AVAILABLE] jest dostępne)
</text>
<string name="objects_available_text">
@@ -212,11 +212,11 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
<text length="1" name="Autoreturn" type="string">
Zwracaj obiekty innych Rezydentów (minut, 0 = wyłącz):
</text>
- <text length="1" name="Object Owners:" type="string">
- Właściciel Obiektów
+ <text length="1" name="Object Owners:" type="string" width="108">
+ Właściciel Obiektów:
</text>
- <button label="Odśwież Listę" label_selected="Odśwież Listę" name="Refresh List"/>
- <button label="Zwróć obiekty..." label_selected="Zwróć obiekty..." name="Return objects..."/>
+ <button label="Odśwież Listę" label_selected="Odśwież Listę" name="Refresh List" left="112"/>
+ <button label="Zwróć obiekty..." label_selected="Zwróć obiekty..." name="Return objects..." left="224"/>
<name_list name="owner list">
<column label="Typ" name="type"/>
<column name="online_status"/>
@@ -334,7 +334,7 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
</text>
<combo_box name="media type" tool_tip=""/>
<text length="1" name="at URL:" type="string">
- Media URL:
+ URL Mediów:
</text>
<button label="Ustaw..." label_selected="Ustaw..." name="set_media_url"/>
<text length="1" name="Description:" type="string">
@@ -357,7 +357,7 @@ Mediów:
</text>
<check_box label="Automatyczna Skala" name="media_auto_scale" tool_tip="Wybranie tej opcji dobierze odpowiedni rozmiar zawartości mediów dla tej posiadłości automatycznie. Może to mieć znaczący wpływ na jakość odtwarzanego materialu - może zwolnić i zmniejszyć jakość materiału."/>
<check_box label="Powtórka Odtwarzania" name="media_loop" tool_tip="Odtwarzaj media z powtórką. Po wyświetleniu materialu, rozpocznie się odtwarzanie od początku."/>
- <check_box label="Ukryj Media URL" name="hide_media_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów wszystkim nieautoryzowanym użytkownikom. Nie dotyczy to jednak typów HTML."/>
+ <check_box label="Ukryj URL Mediów" name="hide_media_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów wszystkim nieautoryzowanym użytkownikom. Nie dotyczy to jednak typów HTML."/>
<check_box label="Ukryj URL Muzyki" name="hide_music_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów muzycznych w posiadłości wszystkim nieautoryzowanym użytkownikom"/>
<text length="1" name="media_size" tool_tip="Rozmiar dla ładowania mediów internetowych. Zostaw 0 dla ustawień domyślnych." type="string">
Rozmiar:
@@ -385,7 +385,7 @@ Mediów:
Użyj kanału prywatnego na posiadlości
</radio_item>
<radio_item length="1" name="Disabled" type="string">
- Zablokuj używanie kanału przestrzennego na posiadlości
+ Zablokuj kanał przestrzenny na posiadlości
</radio_item>
</radio_group>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml b/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml
index f460a402e2..9a3355358e 100755
--- a/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="avatarpicker" title="Wybierz Rezydenta">
<text name="instruct_search_resident_name">
- Wpisz imię Rezydenta
+ Wpisz imię Rezydenta:
</text>
<button label="Znajdź" label_selected="Znajdź" name="Find" />
<text name="Or select their calling card:">
diff --git a/indra/newview/skins/default/xui/pl/floater_beacons.xml b/indra/newview/skins/default/xui/pl/floater_beacons.xml
index 3216704e60..2202050e7f 100644
--- a/indra/newview/skins/default/xui/pl/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/pl/floater_beacons.xml
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="beacons" title="Emitery">
<panel name="beacons_panel">
- <check_box label="Dotykalne Obiekty Skryptowane" name="touch_only"/>
+ <check_box label="Obiekty Dotykalne" name="touch_only"/>
<check_box label="Obiekty Skryptowane" name="scripted"/>
<check_box label="Obiekty Fizyczne" name="physical"/>
<check_box label="Źródła Dźwięku" name="sounds"/>
<check_box label="Źródła Cząsteczek" name="particles"/>
- <check_box label="Generuj Rozjaśnienia" name="highlights"/>
- <check_box label="Generuj Emitery" name="beacons"/>
+ <check_box label="Pokaż Rozjaśnienia" name="highlights"/>
+ <check_box label="Pokaż Emitery" name="beacons"/>
<text name="beacon_width_label">
- Szerokość Emitera:
+ Szerokość Emiterów:
</text>
</panel>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_buy_currency.xml b/indra/newview/skins/default/xui/pl/floater_buy_currency.xml
index c15bc05a09..dd0b069467 100755
--- a/indra/newview/skins/default/xui/pl/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/pl/floater_buy_currency.xml
@@ -12,7 +12,7 @@
<text name="error_message">
Pojawienie się błedu.
</text>
- <button label="Idź do strony internetowej" name="error_web" />
+ <button label="Idź do strony internetowej" name="error_web" width="168"/>
<text name="contacting">
Kontaktowanie z LindeX...
</text>
@@ -53,12 +53,13 @@
[AMT]L$
</text>
<text name="purchase_warning_repurchase">
- Potwierdzając tę transkację zgadzasz się na zakup TYLKO waluty.
-Proszę spróbować wykonać operację jeszcze raz.
+ Potwierdzając tę transkację zgadzasz się na zakup
+TYLKO waluty. Proszę spróbować wykonać
+operację jeszcze raz.
</text>
<text name="purchase_warning_notenough">
Nie zakupujesz wystarczającej ilości waluty.
-proszę zwiększyć ilość.
+Proszę zwiększyć ilość.
</text>
<button label="Anuluj" name="cancel_btn" />
<button label="Kup" name="buy_btn" />
diff --git a/indra/newview/skins/default/xui/pl/floater_buy_land.xml b/indra/newview/skins/default/xui/pl/floater_buy_land.xml
index fe2b327252..e22ef75fd2 100755
--- a/indra/newview/skins/default/xui/pl/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_buy_land.xml
@@ -34,25 +34,25 @@
Ładowanie...
</text_editor>
<check_box label="Zgadzam się na Powyższą Umowę." name="agree_covenant" />
- <text name="info_parcel_label">
+ <text name="info_parcel_label" width="60">
Posiadłość:
</text>
- <text name="info_parcel">
+ <text name="info_parcel" left_delta="62">
Scotopteryx 138,204
</text>
<text name="info_size_label">
Obszar:
</text>
- <text name="info_size">
+ <text name="info_size" left_delta="62">
1024 m.
</text>
<text name="info_price_label">
Cena:
</text>
- <text name="info_price">
+ <text name="info_price" left_delta="62">
1500 L$, obiekty wliczone
</text>
- <text name="info_action">
+ <text name="info_action" width="350">
Zakup tej Posiadłości spowoduje:
</text>
<text name="error_message">
diff --git a/indra/newview/skins/default/xui/pl/floater_color_picker.xml b/indra/newview/skins/default/xui/pl/floater_color_picker.xml
index d6ffe1837a..a380423cdf 100755
--- a/indra/newview/skins/default/xui/pl/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/pl/floater_color_picker.xml
@@ -26,6 +26,6 @@
Obecny Kolor:
</text>
<text name="(Drag below to save.)">
- (Przeciągnij tutaj)
+ (Przeciągnij tutaj.)
</text>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_critical.xml b/indra/newview/skins/default/xui/pl/floater_critical.xml
index a6558ae92b..c761c6f3e9 100755
--- a/indra/newview/skins/default/xui/pl/floater_critical.xml
+++ b/indra/newview/skins/default/xui/pl/floater_critical.xml
@@ -3,7 +3,7 @@
<button label="Kontynuuj" label_selected="Kontynuuj" name="Continue" />
<button label="Anuluj" label_selected="Anuluj" name="Cancel" />
<text name="tos_heading">
- Proszę przeczytać poniższą wiadomość ostrożnie
+ Proszę przeczytać poniższą wiadomość ostrożnie.
</text>
<text_editor name="tos_text">
TOS_TEXT
diff --git a/indra/newview/skins/default/xui/pl/floater_customize.xml b/indra/newview/skins/default/xui/pl/floater_customize.xml
index 0649d33aa4..189c498bea 100755
--- a/indra/newview/skins/default/xui/pl/floater_customize.xml
+++ b/indra/newview/skins/default/xui/pl/floater_customize.xml
@@ -3,7 +3,7 @@
<tab_container name="customize tab container">
<panel label="Części Ciała" name="body_parts_placeholder" />
<panel label="Kształt" name="Shape">
- <button label="Przywróć" label_selected="Przywróć" name="Revert" />
+ <button label="Wróć" label_selected="Wróć" name="Revert" />
<button label="Ciało" label_selected="Ciało" name="Body" />
<button label="Głowa" label_selected="Głowa" name="Head" />
<button label="Oczy" label_selected="Oczy" name="Eyes" />
@@ -48,7 +48,7 @@ z plików roboczych. --&gt; (Kliknij na Nowy Kształt)
<button label="Nowy Kształt" label_selected="Nowy Kształt" name="Create New" />
<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
<button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
+ <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
</panel>
<panel label="Skórka" name="Skin">
<button label="Kolor Skórki" label_selected="Kolor Skórki" name="Skin Color" />
@@ -88,8 +88,8 @@ z plików roboczych. --&gt; (Kliknij na Nowa Skórka)
<button label="Nowa Skórka" label_selected="Nowa Skórka" name="Create New" />
<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
<button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
- <button label="Przywróć" label_selected="Przywróć" name="Revert" />
+ <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+ <button label="Wróć" label_selected="Wróć" name="Revert" />
</panel>
<panel label="Włosy" name="Hair">
<button label="Kolor" label_selected="Kolor" name="Color" />
@@ -119,13 +119,13 @@ z plików roboczych. --&gt; (Kliknij na Nowe Włosy)
<text type="string" length="1" name="no modify instructions">
Nie posiadasz prawa do modyfikowania tych włosów.
</text>
- <texture_picker label="Texture" name="Texture" tool_tip="Kliknij by wybrać teksturę" />
+ <texture_picker label="Tekstura" name="Texture" tool_tip="Kliknij by wybrać teksturę" />
<button label="Losowe" label_selected="Losowe" name="Randomize" />
<button label="Nowe Włosy" label_selected="Nowe Włosy" name="Create New" />
<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
<button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
- <button label="Przywróć" label_selected="Przywróć" name="Revert" />
+ <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+ <button label="Wróć" label_selected="Wróć" name="Revert" />
</panel>
<panel label="Oczy" name="Eyes">
<text type="string" length="1" name="title">
@@ -151,13 +151,13 @@ z plików roboczych. --&gt; (Kliknij na Nowe Oczy)
<text type="string" length="1" name="no modify instructions">
Nie posiadasz prawa do modyfikowania tych oczów.
</text>
- <texture_picker label="Iris" name="Iris" tool_tip="Kliknij by wybrać teksturę" />
+ <texture_picker label="Tęczówka" name="Iris" tool_tip="Kliknij by wybrać teksturę" />
<button label="Losowe" label_selected="Losowe" name="Randomize" />
<button label="Nowe Oczy" label_selected="Nowe Oczy" name="Create New" />
<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
<button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
- <button label="Przywróć" label_selected="Przywróć" name="Revert" />
+ <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+ <button label="Wróć" label_selected="Wróć" name="Revert" />
</panel>
<panel label="Ubrania" name="clothes_placeholder" />
<panel label="Koszula" name="Shirt">
@@ -166,8 +166,8 @@ z plików roboczych. --&gt; (Kliknij na Nowe Oczy)
<button label="Nowa Koszula" label_selected="Nowa Koszula" name="Create New" />
<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
<button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
- <button label="Przywróć" label_selected="Przywróć" name="Revert" />
+ <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+ <button label="Wróć" label_selected="Wróć" name="Revert" />
<text type="string" length="1" name="title">
[DESC]
</text>
@@ -198,8 +198,8 @@ z plików roboczych. --&gt; (Kliknij na Nowa Koszula)
<button label="Nowe Spodnie" label_selected="Nowe Spodnie" name="Create New" />
<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
<button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
- <button label="Przywróć" label_selected="Przywróć" name="Revert" />
+ <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+ <button label="Wróć" label_selected="Wróć" name="Revert" />
<text type="string" length="1" name="title">
[DESC]
</text>
@@ -253,8 +253,8 @@ z plików roboczych. --&gt; (Kliknij na Nowe Buty)
<button label="Nowe Buty" label_selected="Nowe Buty" name="Create New" />
<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
<button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
- <button label="Przywróć" label_selected="Przywróć" name="Revert" />
+ <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+ <button label="Wróć" label_selected="Wróć" name="Revert" />
</panel>
<panel label="Skarpety" name="Socks">
<text type="string" length="1" name="title">
@@ -285,8 +285,8 @@ z plików roboczych. --&gt; (Kliknij na Nowe Skarpety)
<button label="Nowe Skarpety" label_selected="Nowe Skarpety" name="Create New" />
<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
<button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
- <button label="Przywróć" label_selected="Przywróć" name="Revert" />
+ <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+ <button label="Wróć" label_selected="Wróć" name="Revert" />
</panel>
<panel label="Kurtka" name="Jacket">
<text type="string" length="1" name="title">
@@ -312,15 +312,14 @@ z plików roboczych. --&gt; (Kliknij na Nowa Kurtka)
<text type="string" length="1" name="no modify instructions">
Nie posiadasz prawa do modyfikowania tej kurtki.
</text>
- <texture_picker label="Górny Materiał" name="Upper Fabric"
- tool_tip="Kliknij by wybrać teksturę" />
- <texture_picker label="Dolny Materiał" name="Lower Fabric" tool_tip="Kliknij by wybrać kolor" />
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor" />
+ <texture_picker label="Górny Materiał" name="Upper Fabric" tool_tip="Kliknij by wybrać teksturę" width="76"/>
+ <texture_picker label="Dolny Materiał" name="Lower Fabric" tool_tip="Kliknij by wybrać kolor" width="76"/>
+ <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor" width="76"/>
<button label="Nowa Kurtka" label_selected="Nowa Kurtka" name="Create New" />
<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
<button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
- <button label="Przywróć" label_selected="Przywróć" name="Revert" />
+ <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+ <button label="Wróć" label_selected="Wróć" name="Revert" />
</panel>
<panel label="Rękawiczki" name="Gloves">
<text type="string" length="1" name="title">
@@ -351,8 +350,8 @@ z plików roboczych. --&gt; (Kliknij na Nowe Rękawiczki)
<button label="Nowe Rękawiczki" label_selected="Nowe Rękawiczki" name="Create New" />
<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
<button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
- <button label="Przywróć" label_selected="Przywróć" name="Revert" />
+ <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+ <button label="Wróć" label_selected="Wróć" name="Revert" />
</panel>
<panel label="Podkoszulek" name="Undershirt">
<text type="string" length="1" name="title">
@@ -383,8 +382,8 @@ z plików roboczych. --&gt; (Kliknij na Nowy Podkoszulek)
<button label="Nowy Podkoszulek" label_selected="Nowy Podkoszulek" name="Create New" />
<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
<button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
- <button label="Przywróć" label_selected="Przywróć" name="Revert" />
+ <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+ <button label="Wróć" label_selected="Wróć" name="Revert" />
</panel>
<panel label="Bielizna" name="Underpants">
<text type="string" length="1" name="title">
@@ -415,8 +414,8 @@ z plików roboczych. --&gt; (Kliknij na Nowa Bielizna)
<button label="Nowa Bielizna" label_selected="Nowa Bielizna" name="Create New" />
<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
<button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
- <button label="Przywróć" label_selected="Przywróć" name="Revert" />
+ <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+ <button label="Wróć" label_selected="Wróć" name="Revert" />
</panel>
<panel label="Spódnica" name="Skirt">
<text type="string" length="1" name="title">
@@ -447,11 +446,11 @@ z plików roboczych. --&gt; (Kliknij na Nowa Spódnica)
<button label="Nowa Spódnica" label_selected="Nowa Spódnica" name="Create New" />
<button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
<button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz jako" label_selected="Zapisz jako" name="Save As" />
- <button label="Przywróć" label_selected="Przywróć" name="Revert" />
+ <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+ <button label="Wróć" label_selected="Wróć" name="Revert" />
</panel>
</tab_container>
<button label="Zamknij" label_selected="Zamknij" name="Close" />
- <button label="Zapisz Wszystko" label_selected="Zapisz Wszystko" name="Save All" />
+ <button label="Zapisz Wygląd" label_selected="Zapisz Wygląd" name="Save All" />
<button label="Stwórz Ubranie" label_selected="Stwórz Ubranie" name="Make Outfit" />
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml
index 5f376f5cf3..6f2dc69d8e 100755
--- a/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml
@@ -86,8 +86,8 @@
<text type="string" length="1" name="DayCycleText3">
Wygląd:
</text>
- <button label="Patrz" label_selected="Patrz" name="WLAnimSky" />
- <button label="Wyłącz" label_selected="Wyłącz" name="WLStopAnimSky" />
+ <button label="Start" label_selected="Start" name="WLAnimSky" />
+ <button label="Stop" label_selected="Stop" name="WLStopAnimSky" />
<button label="Używaj Czasu Regionu" label_selected="Używaj Czasu Regionu"
name="WLUseLindenTime" />
<button label="Zapisz Test Dnia" label_selected="Zapisz Test Dnia"
diff --git a/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml b/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml
index f05456b4c5..010537d555 100755
--- a/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/pl/floater_hardware_settings.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Hardware Settings Floater" title="Ustawienia Dysku Twardego">
+<floater name="Hardware Settings Floater" title="Ustawienia Sprzętowe">
<text type="string" length="1" name="Filtering:">
Filtrowanie:
</text>
@@ -7,7 +7,7 @@
<text type="string" length="1" name="Antialiasing:">
Antialiasing:
</text>
- <combo_box label="Antialiasing" name="fsaa">
+ <combo_box label="Antialiasing" name="fsaa" width="84">
<combo_item name="FSAADisabled">
Wyłączone
</combo_item>
@@ -26,7 +26,7 @@
</combo_box>
<spinner label="Gamma:" name="gamma" />
<text type="string" length="1" name="(brightness, lower is brighter)">
- (jaskrawość, jasny, 0=domyślny)
+ (jaskrawość, mniej jest jaśniej, 0=domyślny)
</text>
<text type="string" length="1" name="Enable VBO:">
Włącz VBO:
diff --git a/indra/newview/skins/default/xui/pl/floater_image_preview.xml b/indra/newview/skins/default/xui/pl/floater_image_preview.xml
index 620c3f4124..9772dc7808 100755
--- a/indra/newview/skins/default/xui/pl/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/pl/floater_image_preview.xml
@@ -38,15 +38,15 @@
Spódnica
</combo_item>
<combo_item name="SculptedPrim">
- Prim Rzeźbiony
+ Sculpt
</combo_item>
</combo_box>
<text name="bad_image_text">
- Unable to read image.
+ Nie można wczytać obrazu.
-Próbuj zachować obraz jako 24 bit Targa (.tga).
+Spróbuj zapisać obraz jako 24 bitową Targa (.tga).
</text>
- <check_box label="Use lossless compression" name="lossless_check" />
+ <check_box label="Użyj kompresji bez strat" name="lossless_check" />
<button label="Anuluj" name="cancel_btn" />
- <button label="Załaduj (L$[AMOUNT])" name="ok_btn" />
+ <button label="Załaduj ([AMOUNT]L$)" name="ok_btn" />
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_inspect.xml b/indra/newview/skins/default/xui/pl/floater_inspect.xml
index f9f76d286f..1efdced527 100755
--- a/indra/newview/skins/default/xui/pl/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/pl/floater_inspect.xml
@@ -6,8 +6,8 @@
<column label="Twórca" name="creator_name" />
<column label="Data Kreacji" name="creation_date" />
</scroll_list>
- <button label="Zobacz Profil Właściciela..." label_selected="" name="button owner"
+ <button label="Profil Właściciela..." label_selected="" name="button owner"
tool_tip="" />
- <button label="Zobacz Profil Twórcy..." label_selected="" name="button creator"
+ <button label="Profil Twórcy..." label_selected="" name="button creator"
tool_tip="" />
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_joystick.xml b/indra/newview/skins/default/xui/pl/floater_joystick.xml
index 918486a847..bb98868ae0 100755
--- a/indra/newview/skins/default/xui/pl/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/pl/floater_joystick.xml
@@ -109,7 +109,7 @@
Martwa Ogniskowa
</text>
<spinner label="" name="FlycamAxisDeadZone6"/>
- <button label="Ustawienia Domyślne Nawigatora Przestrzeni" name="SpaceNavigatorDefaults"/>
+ <button label="Ustawienia Domyślne" name="SpaceNavigatorDefaults"/>
<button label="OK" label_selected="OK" name="ok_btn"/>
<button label="Anuluj" label_selected="Anuluj" name="cancel_btn"/>
<string name="JoystickMonitor">
diff --git a/indra/newview/skins/default/xui/pl/floater_land_holdings.xml b/indra/newview/skins/default/xui/pl/floater_land_holdings.xml
index 1763d143f5..79165b5125 100755
--- a/indra/newview/skins/default/xui/pl/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/pl/floater_land_holdings.xml
@@ -18,7 +18,7 @@
<column label="Obszar" name="area" />
</scroll_list>
<text name="allowed_label">
- Dozwolone udziały w Posiadłościach przy obecnym planie płatności:
+ Dozwolone udziały przy obecnym planie płatności:
</text>
<text name="allowed_text">
[AREA] metrów
diff --git a/indra/newview/skins/default/xui/pl/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/pl/floater_live_lsleditor.xml
index 46c75269e3..94efd7afcb 100755
--- a/indra/newview/skins/default/xui/pl/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/pl/floater_live_lsleditor.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="script ed float" title="Skrypt: Nowy Skrypt">
<button label="Zresetuj" label_selected="Zresetuj" name="Reset" />
- <check_box label="Włączony" name="running" />
+ <check_box label="Włącz" name="running" />
<check_box label="Mono" name="mono" />
<string name="not_allowed">
Nie masz praw by widzieć zawartość tego skryptu.
</string>
<string name="script_running">
- Włączony
+ Włącz
</string>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_media_browser.xml b/indra/newview/skins/default/xui/pl/floater_media_browser.xml
index 851f20add1..2fb4287d90 100755
--- a/indra/newview/skins/default/xui/pl/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/pl/floater_media_browser.xml
@@ -11,7 +11,7 @@
<button label="Wyślij Obecny URL do Posiadłości" name="assign" />
</layout_panel>
<layout_panel name="external_controls">
- <button label="Open in My Web Browser" name="open_browser" />
+ <button label="Użyj Mojej Przeglądarki" name="open_browser" />
<check_box label="Zawsze otwieraj w mojej przeglądarce internetowej" name="open_always" />
<button label="Zamknij" name="close" />
</layout_panel>
diff --git a/indra/newview/skins/default/xui/pl/floater_pay.xml b/indra/newview/skins/default/xui/pl/floater_pay.xml
index 154d2fc888..70358909f2 100755
--- a/indra/newview/skins/default/xui/pl/floater_pay.xml
+++ b/indra/newview/skins/default/xui/pl/floater_pay.xml
@@ -12,10 +12,11 @@
<text type="string" length="1" name="payee_name">
[FIRST] [LAST]
</text>
- <text type="string" length="1" name="fastpay text">
+ <text type="string" length="1" name="fastpay text" halign="left" left="12">
Szybka Zapłata:
</text>
<text type="string" length="1" name="amount text">
Suma:
</text>
+ <line_editor left="52" name="amount" />
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_pay_object.xml b/indra/newview/skins/default/xui/pl/floater_pay_object.xml
index ed0ef0fef8..97c87d55d3 100755
--- a/indra/newview/skins/default/xui/pl/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/pl/floater_pay_object.xml
@@ -1,30 +1,31 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="Give Money" title="">
- <text type="string" length="1" name="payee_group">
+ <text type="string" length="1" name="payee_group" width="100" halign="left">
Zapłać Grupie:
</text>
- <text type="string" length="1" name="payee_resident">
+ <text type="string" length="1" name="payee_resident" width="120" halign="left" >
Zapłać Rezydentowi:
</text>
- <text type="string" length="1" name="payee_name">
+ <text type="string" length="1" name="payee_name" left="125">
[FIRST] [LAST]
</text>
- <text type="string" length="1" name="object_name_label">
+ <text type="string" length="1" name="object_name_label" left="5" width="95" halign="left">
Poprzez Obiekt:
</text>
- <text type="string" length="1" name="object_name_text">
+ <text type="string" length="1" name="object_name_text" left="105" >
...
</text>
- <text type="string" length="1" name="fastpay text">
+ <text type="string" length="1" name="fastpay text" width="95" halign="left">
Szybka Zapłata:
</text>
- <text type="string" length="1" name="amount text">
+ <text type="string" length="1" name="amount text" left="5" halign="left">
Suma:
</text>
- <button label="L$1" label_selected="L$1" name="fastpay 1" />
- <button label="L$5" label_selected="L$5" name="fastpay 5" />
- <button label="L$10" label_selected="L$10" name="fastpay 10" />
- <button label="L$20" label_selected="L$20" name="fastpay 20" />
+ <button label="L$1" label_selected="L$1" name="fastpay 1" left="105"/>
+ <button label="L$5" label_selected="L$5" name="fastpay 5" left="190"/>
+ <button label="L$10" label_selected="L$10" name="fastpay 10" left="105"/>
+ <button label="L$20" label_selected="L$20" name="fastpay 20" left="190"/>
<button label="Zapłać" label_selected="Zapłać" name="pay btn" />
<button label="Anuluj" label_selected="Anuluj" name="cancel btn" />
+ <line_editor left="50" name="amount" width="50" />
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_animation.xml b/indra/newview/skins/default/xui/pl/floater_preview_animation.xml
index abfa39b7f3..d6752223f9 100755
--- a/indra/newview/skins/default/xui/pl/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/pl/floater_preview_animation.xml
@@ -4,7 +4,7 @@
Opis:
</text>
<button label="Używaj w Świecie" label_selected="Stop" name="Anim play btn"
- tool_tip="Animacja będzie widoczna dla wszystkich." />
+ tool_tip="Animacja będzie widoczna dla wszystkich." width="131" left="20"/>
<button label="Używaj lokalnie" label_selected="Stop" name="Anim audition btn"
- tool_tip="Animacja będzie widoczna tylko dla Ciebie." />
+ tool_tip="Animacja będzie widoczna tylko dla Ciebie." width="125" left="162"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_report_abuse.xml b/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
index 3797740a95..7b907d3315 100755
--- a/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
@@ -23,7 +23,7 @@
<text name="select_object_label">
Kliknij na przycisk, a pózniej na obiekt:
</text>
- <button label="" label_selected="" name="pick_btn" tool_tip="Wybór obiektu - identyfikacja obiektu jako źródło raportu"/>
+ <button label="" label_selected="" name="pick_btn" tool_tip="Wybór obiektu - wybierz obiekt, którego dotyczy raport"/>
<text name="object_name_label">
Nazwa:
</text>
@@ -36,7 +36,7 @@
<text name="owner_name">
Hendrerit Vulputate
</text>
- <combo_box name="category_combo" tool_tip="Kategoria -- wybierz kategorię, która najlepiej opisuje materię tego raportu">
+ <combo_box name="category_combo" tool_tip="Wybór kategorii - wybierz kategorię, której dotyczy raport">
<combo_item name="Select_category">
Wybierz Kategorię:
</combo_item>
@@ -59,7 +59,7 @@
Napaść &gt; Piaskownica do testowania broni
</combo_item>
<combo_item name="Commerce__Failure_to_deliver_product_or_service">
- Handel &gt; Niedostarczenie produktu lub uslugi
+ Handel &gt; Niedostarczenie produktu lub usługi
</combo_item>
<combo_item name="Disclosure__Real_world_information">
Naruszenie tajemnicy &gt; Informacje z rzeczywistego świata
@@ -110,22 +110,22 @@
Prześladowanie &gt; Molestowanie seksualne
</combo_item>
<combo_item name="Harassment__Solicting_inciting_others_to_violate_ToS">
- Prześladowanie &gt; Namawianie/zachęcanie innych do łamania Warunków Umowy (Terms of Service)
+ Prześladowanie &gt; Namawianie/zachęcanie innych do łamania Warunków Umowy (ToS)
</combo_item>
<combo_item name="Harassment__Verbal_abuse">
Prześladowanie &gt; Znieważanie słowne
</combo_item>
<combo_item name="Indecency__Broadly_offensive_content_or_conduct">
- Nieprzyzwoitość &gt; Bardzo obraźliwa treść lub postępowanie
+ Nieprzyzwoitość &gt; Generalnie obraźliwa treść lub postępowanie
</combo_item>
<combo_item name="Indecency__Broadly_visible_mature_content">
- Nieprzyzwoitość &gt; Bardzo widoczna treść dla dorosłych
+ Nieprzyzwoitość &gt; Generalnie widoczna treść dla dorosłych
</combo_item>
<combo_item name="Indecency__Inappropriate_avatar_name">
Nieprzyzwoitość &gt; Niestosowne imię awatara
</combo_item>
<combo_item name="Indecency__Mature_content_in_PG_region">
- Nieprzyzwoitość &gt; Zawartość dla dorosłych (18+) w regionie dla wszystkich (BO)
+ Nieprzyzwoitość &gt; Treść dla dorosłych (18+) w regionie dla wszystkich (BO)
</combo_item>
<combo_item name="Intellectual_property_infringement_Content_Removal">
Naruszenie praw autorskich &gt; Usunięcie Treści
@@ -172,12 +172,12 @@
Szczegóły:
</text>
<text name="bug_aviso">
- Proszę zachować specyfikę daty, miejsca,
-materii nadużycia, fragmentów czatu/IM oraz obiektów.
+ Podaj datę, miejsce, kategorię nadużycia, fragmenty
+czatu/IM, dane obiektów.
</text>
<text_editor name="details_edit"/>
<text name="incomplete_title">
- Pamiętaj: Niedokończone raporty nie podlegają inwestygacji!
+ Pamiętaj: Niedokończone raporty nie będą rozpatrywane!
</text>
<button label="Anuluj" label_selected="Anuluj" name="cancel_btn"/>
<button label="Wyślij" label_selected="Wyślij" name="send_btn"/>
diff --git a/indra/newview/skins/default/xui/pl/floater_snapshot.xml b/indra/newview/skins/default/xui/pl/floater_snapshot.xml
index 0dafbe5551..8a330eb9d3 100755
--- a/indra/newview/skins/default/xui/pl/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/pl/floater_snapshot.xml
@@ -108,8 +108,8 @@
BMP
</combo_item>
</combo_box>
- <spinner label="Szer" name="snapshot_width"/>
- <spinner label="Wys" name="snapshot_height"/>
+ <spinner label="Szer." name="snapshot_width"/>
+ <spinner label="Wys." name="snapshot_height"/>
<check_box label="Ograniczone Proporcje" name="keep_aspect_check"/>
<slider label="Jakość Zdjęcia" name="image_quality_slider"/>
<text name="layer_type_label">
diff --git a/indra/newview/skins/default/xui/pl/floater_tools.xml b/indra/newview/skins/default/xui/pl/floater_tools.xml
index 8e17e9cf50..212b7e08f0 100755
--- a/indra/newview/skins/default/xui/pl/floater_tools.xml
+++ b/indra/newview/skins/default/xui/pl/floater_tools.xml
@@ -20,19 +20,19 @@
<check_box label="Obróć (Ctrl)" name="radio rotate"/>
<check_box label="Rozciągnij (Ctrl-Shift)" name="radio stretch"/>
<check_box label="Wybierz Teksturę" name="radio select face"/>
- <check_box label="Edytuj Zlinkowane Części" name="checkbox edit linked parts"/>
+ <check_box label="Edytuj Połączone Części" name="checkbox edit linked parts"/>
<text name="text ruler mode">
- Tryb Linijki:
+ Linijka:
</text>
<combo_box name="combobox grid mode">
<combo_item name="World">
Świat
</combo_item>
<combo_item name="Local">
- Lokalnie
+ Lokalna
</combo_item>
<combo_item name="Reference">
- Odniesienia
+ Względna
</combo_item>
</combo_box>
<check_box label="Rozciągnij 2 Strony" name="checkbox uniform"/>
@@ -59,7 +59,7 @@
<button label="" label_selected="" name="ToolRing" tool_tip="Pierścień"/>
<button label="" label_selected="" name="ToolTree" tool_tip="Drzewo"/>
<button label="" label_selected="" name="ToolGrass" tool_tip="Trawa"/>
- <check_box label="Zostaw Narzędzia Wybrane" name="checkbox sticky"/>
+ <check_box label="Pamiętaj Wybrane Narzędzia" name="checkbox sticky"/>
<check_box label="Kopiuj Selekcję" name="checkbox copy selection"/>
<check_box label="Kopia Środka" name="checkbox copy centers"/>
<check_box label="Kopia Obrotu" name="checkbox copy rotates"/>
@@ -169,10 +169,10 @@
</text>
<combo_box name="clickaction">
<combo_item name="Touch/grab(default)">
- Dotknij/chwyć (ustawienie domyślne)
+ Dotknij (domyślne)
</combo_item>
<combo_item name="Sitonobject">
- Usiądź na Obiekt
+ Usiądź na Obiekcie
</combo_item>
<combo_item name="Buyobject">
Kup Obiekt
@@ -247,9 +247,9 @@
<text name="edit_object">
Edytuj parametry obiektu:
</text>
- <check_box label="Zablokowane" name="checkbox locked" tool_tip="Chroni obiekty przed ich przesunięciem lub usunięciem. Pomocne także w czasie budowania by uniknąc niepotrzebnych edycji."/>
- <check_box label="Fizyczne" name="Physical Checkbox Ctrl" tool_tip="Umożliwia obcność sił grawitacyjnych i oddziaływania pomiędzy obiektami."/>
- <check_box label="Tymczasowe" name="Temporary Checkbox Ctrl" tool_tip="Umożliwia usunięcie obiektu po 1 minucie od jego stworzenia."/>
+ <check_box label="Zablokowany" name="checkbox locked" tool_tip="Chroni obiekty przed ich przesunięciem lub usunięciem. Pomocne także w czasie budowania by uniknąc niepotrzebnych edycji."/>
+ <check_box label="Fizyczny" name="Physical Checkbox Ctrl" tool_tip="Umożliwia obcność sił grawitacyjnych i oddziaływania pomiędzy obiektami."/>
+ <check_box label="Tymczasowy" name="Temporary Checkbox Ctrl" tool_tip="Umożliwia usunięcie obiektu po 1 minucie od jego stworzenia."/>
<check_box label="Fantom" name="Phantom Checkbox Ctrl" tool_tip="Umożliwia zanik kolizji pomiędzy obiektami a awatarami."/>
<text name="label position">
Pozycja (metry)
@@ -448,14 +448,14 @@
<texture_picker label="Tekstura" name="texture control" tool_tip="Kliknij by wybrać obraz"/>
<color_swatch label="Kolor" name="colorswatch" tool_tip="Kliknij by wybrać kolor"/>
<text name="color trans">
- Transparencja %
+ Przejrzystość %
</text>
<spinner name="ColorTrans"/>
<text name="glow label">
Blask
</text>
<spinner name="glow"/>
- <check_box label="Jasność" name="checkbox fullbright"/>
+ <check_box label="Jaskrawość" name="checkbox fullbright"/>
<text name="tex gen">
Mapowanie
</text>
@@ -555,26 +555,26 @@
</text>
<spinner name="TexRot"/>
<string name="string repeats per meter">
- Powtórzenia /metr
+ Powtórzenia / m
</string>
<string name="string repeats per face">
- Powtórzenia /powierzchnia
+ Powtórzenia
</string>
<text name="rpt">
- Powtórzenia /metr
+ Powtórzenia / m
</text>
<spinner name="rptctrl"/>
<button label="Zastosuj" label_selected="Zastosuj" name="button apply"/>
<text name="tex offset">
- Wyrównanie
+ Dopasowanie
</text>
<spinner label="Poziome (U)" name="TexOffsetU"/>
<spinner label="Pionowe (V)" name="TexOffsetV"/>
<text name="textbox autofix">
- Wyrównaj Teksturę Mediów
-(must load first)
+ Dopasuj Teksturę Mediów
+(najpierw załaduj)
</text>
- <button label="Wyrównaj" label_selected="Wyrównaj" name="button align"/>
+ <button label="Dopasuj" label_selected="Dopasuj" name="button align"/>
</panel>
<panel label="Treść" name="Contents">
<button label="Nowy Skrypt..." label_selected="Nowy Skrypt..." name="button new script"/>
@@ -607,7 +607,7 @@
Kliknij i przytrzymaj żeby modyfikować teren
</string>
<string name="status_camera">
- Kliknij i przeciągnij by zmienić widok
+ Kliknij i przeciągnij żeby zmienić widok
</string>
<string name="status_grab">
Opcje:
@@ -622,13 +622,13 @@
Widok
</string>
<string name="grid_local_text">
- Lokalnie
+ Lokalna
</string>
<string name="grid_world_text">
Świat
</string>
<string name="grid_reference_text">
- Odniesienia
+ Względa
</string>
<string name="grid_attachment_text">
Załączniki
diff --git a/indra/newview/skins/default/xui/pl/floater_url_entry.xml b/indra/newview/skins/default/xui/pl/floater_url_entry.xml
index af9d0c7997..fc170d8d1b 100755
--- a/indra/newview/skins/default/xui/pl/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/pl/floater_url_entry.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="url_entry" title="">
<text name="media_label">
- Media URL:
+ URL Mediów:
</text>
<button label="OK" name="ok_btn" />
<button label="Anuluj" name="cancel_btn" />
diff --git a/indra/newview/skins/default/xui/pl/menu_viewer.xml b/indra/newview/skins/default/xui/pl/menu_viewer.xml
index 3a521df098..107a6a7aea 100755
--- a/indra/newview/skins/default/xui/pl/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/pl/menu_viewer.xml
@@ -82,7 +82,7 @@
<menu_item_check label="Właściciele Posiadłości" name="Land Owners"/>
<menu_item_separator label="-----------" name="separator4"/>
<menu label="Podpowiedzi" name="Hover Tips">
- <menu_item_check label="Tutorial" name="Show Tips"/>
+ <menu_item_check label="Pokaż Podpowiedzi" name="Show Tips"/>
<menu_item_separator label="-----------" name="separator"/>
<menu_item_check label="Posiadłość: wskazówki" name="Land Tips"/>
<menu_item_check label="Obiekty: wskazówki" name="Tips On All Objects"/>
@@ -109,10 +109,10 @@
<menu_item_separator label="-----------" name="separator2"/>
<menu_item_call label="Teleportuj do Miejsca Startu" name="Teleport Home"/>
<menu_item_separator label="-----------" name="separator3"/>
- <menu_item_call label="Włącz Tryb Nieobecności" name="Set Away"/>
- <menu_item_call label="Włącz Tryb Pracusia" name="Set Busy"/>
+ <menu_item_call label="Śpij" name="Set Away"/>
+ <menu_item_call label="Pracuj" name="Set Busy"/>
<menu_item_call label="Zatrzymaj Wszystkie Animacje" name="Stop All Animations"/>
- <menu_item_call label="Release Keys" name="Release Keys"/>
+ <menu_item_call label="Zwolnij Klawisze" name="Release Keys"/>
<menu_item_separator label="-----------" name="separator4"/>
<menu_item_call label="Historia Konta..." name="Account History..."/>
<menu_item_call label="Zarządzaj Kontem..." name="Manage My Account..."/>
@@ -176,7 +176,7 @@
</menu>
<menu label="Pomoc" name="Help">
<menu_item_call label="Second Life: Pomoc" name="Second Life Help"/>
- <menu_item_call label="Tutorial" name="Tutorial"/>
+ <menu_item_call label="Samouczek" name="Tutorial"/>
<menu_item_separator label="-----------" name="separator"/>
<menu_item_call label="Oficjalny Blog Second Life..." name="Official Linden Blog..."/>
<menu_item_separator label="-----------" name="separator2"/>
@@ -196,6 +196,6 @@
<menu_item_separator label="-----------" name="separator9"/>
<menu_item_call label="Wyślij Raport Błędu..." name="Report Bug..."/>
</menu>
- <menu_item_call label="About Second Life..." name="About Second Life..."/>
+ <menu_item_call label="O Second Life..." name="About Second Life..."/>
</menu>
</menu_bar>
diff --git a/indra/newview/skins/default/xui/pl/panel_friends.xml b/indra/newview/skins/default/xui/pl/panel_friends.xml
index 7f0fe82bc7..d58aa897db 100755
--- a/indra/newview/skins/default/xui/pl/panel_friends.xml
+++ b/indra/newview/skins/default/xui/pl/panel_friends.xml
@@ -8,20 +8,20 @@
<column name="icon_online_status" tool_tip="Status dostępności" />
<column label="Imię" name="friend_name" tool_tip="Imię" />
<column name="icon_visible_online"
- tool_tip="Znajoma osoba może widzieć czy jesteś w Second Life" />
+ tool_tip="Ta osoba może widzieć czy jesteś w Second Life" />
<column name="icon_visible_map"
- tool_tip="Znajoma osoba może zlokalizować Cię na mapie" />
+ tool_tip="Ta osoba może zlokalizować Cię na mapie" />
<column name="icon_edit_mine"
- tool_tip="Znajoma osoba może edytować, usunąć lub wziąść Twoje obiekty" />
- <column name="icon_edit_theirs" tool_tip="Możesz edytować obiekty tej znajomej osoby" />
+ tool_tip="Ta osoba może edytować, usunąć lub wziąść Twoje obiekty" />
+ <column name="icon_edit_theirs" tool_tip="Możesz edytować obiekty tej osoby" />
</scroll_list>
<button label="Czat/IM" name="im_btn" tool_tip="Rozpocznij sesję czatu/IM" />
<button label="Profil" name="profile_btn"
tool_tip="Pokaż zdjęcia, grupy i inne informacje" />
<button label="Teleportuj..." name="offer_teleport_btn"
- tool_tip="Zaoferuj teleportację do Twojej obecnej lokalizacji" />
+ tool_tip="Zaoferuj teleportację do siebie" />
<button label="Zapłać..." name="pay_btn" tool_tip="Zapłać L$ tej osobie" />
<button label="Usuń..." name="remove_btn"
tool_tip="Usuń tę osobę z listy znajomych" />
- <button label="Dodaj..." name="add_btn" tool_tip="Zaoferuj przyjaźń" />
+ <button label="Dodaj..." name="add_btn" tool_tip="Zaproponuj znajomość" />
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_group_land_money.xml b/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
index 8f767a7393..98660b3f6e 100755
--- a/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
@@ -4,7 +4,7 @@
Posiadłości należące go Grupy są wymienione z danymi
o kontrybucjach. Ostrzeżenie pojawia się w momencie
kiedy używa się mniej Posiadłości od Kontrybucji.
-Zakładki Planowanie, Szczegóły i Sprzedaż zawierają
+Zakładki Szczegóły i Sprzedaż zawierają
informacje o finansach Grupy.
</string>
<button label="?" name="help_button" />
diff --git a/indra/newview/skins/default/xui/pl/panel_login.xml b/indra/newview/skins/default/xui/pl/panel_login.xml
index 25efd9a5ed..a0887f461d 100755
--- a/indra/newview/skins/default/xui/pl/panel_login.xml
+++ b/indra/newview/skins/default/xui/pl/panel_login.xml
@@ -20,7 +20,7 @@
</text>
<combo_box name="start_location_combo">
<combo_item name="MyHome">
- Miejsce Startu
+ Mój Start
</combo_item>
<combo_item name="MyLastLocation">
Ostatnie Miejsce
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
index 47b7165f01..34b77c8e31 100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
@@ -2,7 +2,7 @@
<panel label="Ogólne" name="general_panel">
<radio_group name="default_start_location">
<radio_item name="MyHome" tool_tip="Domyślnie loguj mnie do mojego miejsca startu.">
- Miejsce Startu
+ Mój Start
</radio_item>
<radio_item name="MyLastLocation" tool_tip="Domyślnie loguj mnie do ostatnio odwiedzonego miejsca.">
Ostatnie Miejsce
@@ -33,7 +33,7 @@
</text>
<slider name="ui_scale_slider"/>
<check_box label="Używaj Skali Nizależnej od Rozdzielczości" name="ui_auto_scale"/>
- <spinner label="Tryb Nieobecności:" name="afk_timeout_spinner"/>
+ <spinner label="Zasypiaj w:" name="afk_timeout_spinner"/>
<check_box label="Obracaj Mini-Mapę" name="rotate_mini_map_checkbox"/>
<check_box label="Powiadamiaj o Wydatkach i Zarobkach (L$)" name="notify_money_change_checkbox"/>
<check_box label="Używaj Domyślnej Selekcji Koloru" name="use_system_color_picker_checkbox" tool_tip="Używaj domyślnej / systemowej selekcji koloru"/>
@@ -81,7 +81,7 @@
English (Angielski)
</combo_item>
<combo_item length="1" name="Chinese" type="string">
- 汉语/漢語 (Chiński) - Beta
+ 中文 (简体) (Chiński) - Beta
</combo_item>
<combo_item length="1" name="Deutsch(German)" type="string">
Deutsch (Niemiecki) - Beta
diff --git a/indra/newview/skins/default/xui/pl/panel_region_debug.xml b/indra/newview/skins/default/xui/pl/panel_region_debug.xml
index 0dabd2a00c..fe7b554a13 100755
--- a/indra/newview/skins/default/xui/pl/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_debug.xml
@@ -30,7 +30,7 @@
<check_box label="Odeślij wyłącznie obiekty które są na posiadłościach innych osób" name="return_other_land" tool_tip="Odeślij wyłącznie obiekty które są na posiadłościach innych osób"/>
<check_box label="Odeślij obiekty z wszystkich regionów w tym majątku" name="return_estate_wide" tool_tip="Odeślij obiekty z wszystkich regionów w tym majątku"/>
<button label="Odeślij" name="return_btn"/>
- <button label="Znajdź Glówne Kolizje..." name="top_colliders_btn" tool_tip="Lista obiektów doświadczających najwięcej potencjalnych kolizji"/>
+ <button label="Znajdź Główne Kolizje..." name="top_colliders_btn" tool_tip="Lista obiektów doświadczających najwięcej potencjalnych kolizji"/>
<button label="?" name="top_colliders_help"/>
<button label="Główne Skrypty..." name="top_scripts_btn" tool_tip="Lista obiektów najdłużej wykonujących skrypty"/>
<button label="?" name="top_scripts_help"/>
diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml
index 1fd7db384c..f6ae998609 100755
--- a/indra/newview/skins/default/xui/pl/strings.xml
+++ b/indra/newview/skins/default/xui/pl/strings.xml
@@ -207,13 +207,13 @@
(Edycja Wyglądu)
</string>
<string name="AvatarAway">
- Tryb Nieobecności
+ Śpi
</string>
<string name="AvatarBusy">
- Tryb Pracusia
+ Pracuje
</string>
<string name="AvatarMuted">
- Tryb Wyciszony
+ Wyciszony
</string>
<!-- animations -->
<string name="anim_express_afraid">
@@ -223,7 +223,7 @@
Złość
</string>
<string name="anim_away">
- Nieobecność
+ Sen
</string>
<string name="anim_backflip">
Salto
diff --git a/indra/newview/skins/default/xui/pt/floater_about_land.xml b/indra/newview/skins/default/xui/pt/floater_about_land.xml
index 679868f33f..51064bca9c 100644
--- a/indra/newview/skins/default/xui/pt/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_about_land.xml
@@ -41,7 +41,7 @@
<text length="1" name="Selling with no objects in parcel." type="string">
A Venda (Objetos não Incluídos).
</text>
- <button label="Cancelar venda do terreno" label_selected="Cancelar venda do terreno" name="Cancel Land Sale"/>
+ <button label="Cancelar venda do terreno" label_selected="Cancelar venda do terreno" name="Cancel Land Sale" width="165" left="275"/>
<text length="1" name="Claimed:" type="string">
Solicitado
</text>
@@ -60,9 +60,9 @@
<text length="1" name="DwellText" type="string">
0
</text>
- <button label="Comprar Terra..." label_selected="Comprar Terra..." name="Buy Land..."/>
+ <button label="Comprar Terra..." label_selected="Comprar Terra..." name="Buy Land..." width="125" left="130"/>
<button label="Comprar para o Grupo..." label_selected="Comprar para o Grupo..." name="Buy For Group..."/>
- <button label="Comprar Passe..." label_selected="Comprar Passe..." name="Buy Pass..." tool_tip="Uma passagem concede a você acesso temporário a esta terra."/>
+ <button label="Comprar Passe..." label_selected="Comprar Passe..." name="Buy Pass..." tool_tip="Uma passagem concede a você acesso temporário a esta terra." width="125" left="130"/>
<button label="Abandonar Terra.." label_selected="Abandonar Terra.." name="Abandon Land..."/>
<button label="Reclamar Terra..." label_selected="Reclamar Terra..." name="Reclaim Land..."/>
<button label="Linden Sale..." label_selected="Linden Sale..." name="Linden Sale..." tool_tip="A terra precisa ser proprietária, estar com o conteúdo configurado e não estar pronta para leilão."/>
@@ -252,7 +252,7 @@ Vá para o menu Mundo &gt; Sobre a Terra ou selecione outro terreno para mostrar
<check_box label="Salvo (sem dano)" name="check safe" tool_tip="Se ativado, ajusta o terreno para Seguro, desabilitando combate com danos. Se não ativado, o combate com danos é habilitado."/>
<check_box label="Sem Empurrar" name="PushRestrictCheck" tool_tip="Evita scripts que empurram. A ativação dessa opção pode ser útil para prevenir comportamentos desordeiros na sua terra."/>
<check_box label="Mostra o Lugar na Busca (L$30/semana) sob" name="ShowDirectoryCheck" tool_tip="Permitir que as pessoas vejam este terreno nos resultados de busca"/>
- <combo_box name="land category" left="286" width="146" >
+ <combo_box name="land category" left="276" width="146" >
<combo_item name="AnyCategory">
Qualquer Categoria
</combo_item>
@@ -293,7 +293,7 @@ Vá para o menu Mundo &gt; Sobre a Terra ou selecione outro terreno para mostrar
Outros
</combo_item>
</combo_box>
- <button label="?" label_selected="?" name="?"/>
+ <button label="?" label_selected="?" name="?" left="426"/>
<check_box label="Mature content" name="MatureCheck" tool_tip="As informações do seu lote são consideradas para Adultos."/>
<text length="1" name="Snapshot:" type="string">
Foto:
@@ -349,7 +349,8 @@ Texture:
<texture_picker label="" name="media texture" tool_tip="Clique para escolher uma imagem" left="97"/>
<text name="replace_texture_help">
(Objetos usando esta textura, mostrarão o filme ou
-a página web depois que você clicar na seta de reproduzir.)
+a página web depois que você clicar na seta de
+reproduzir.)
</text>
<text name="Options:">
Mídia
@@ -359,10 +360,10 @@ Options:
<check_box label="Mídia em Repetição" name="media_loop" tool_tip="Executar a mídia repetidamente. Quando a mídia terminar a execução, ela reiniciará do começo."/>
<check_box left="97" label="Esconder a URL da Mídia" name="hide_media_url" tool_tip="Ativando esta opção, a URL da mídia se ocultará para quaisquer visualizadores não autorizados a ver esta informação do terreno. Notar que isto não está disponível para tipos HTML."/>
<check_box label="Esconder a URL de Música" name="hide_music_url" tool_tip="Ativando esta opção, a URL de música se esconderá para visualizadores não autorizados a ver esta informação do terreno"/>
- <text name="media_size" tool_tip="Tamanho para desenhar a mídia Web, deixar 0 como padrão." width="105" left="102">
+ <text name="media_size" tool_tip="Tamanho para desenhar a mídia Web, deixar 0 como padrão." width="115" left="102">
Tamanho da mídia:
</text>
- <spinner name="media_size_width" tool_tip="Tamanho para desenhar a mídia Web, deixar 0 como padrão." left_delta="89"/>
+ <spinner name="media_size_width" tool_tip="Tamanho para desenhar a mídia Web, deixar 0 como padrão." left_delta="99"/>
<spinner name="media_size_height" tool_tip="Tamanho para desenhar a mídia Web, deixar 0 como padrão."/>
<text name="pixels">
pixels
diff --git a/indra/newview/skins/default/xui/pt/floater_beacons.xml b/indra/newview/skins/default/xui/pt/floater_beacons.xml
new file mode 100644
index 0000000000..244a7db485
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_beacons.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="beacons" title="Balizas">
+ <panel name="beacons_panel">
+ <check_box label="Objetos escriptados com toque único" name="touch_only"/>
+ <check_box label="Objetos escriptados" name="scripted"/>
+ <check_box label="Objetos físicos" name="physical"/>
+ <check_box label="Fontes de Som" name="sounds"/>
+ <check_box label="Fontes de Partículas" name="particles"/>
+ <check_box label="Renderização de Highlights" name="highlights"/>
+ <check_box label="Renderização de Balizas" name="beacons"/>
+ <text name="beacon_width_label">
+ Largura da Baliza
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_buy_currency.xml b/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
index e28fcc30b4..9bae0378e2 100644
--- a/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
@@ -29,7 +29,7 @@
1234
</line_editor>
<text name="currency_est">
- Por aproximadamente. US$ [dólares americanos]
+ por aproxim. US$ [USD]
</text>
<text name="getting_data">
Primeiros dados...
@@ -53,10 +53,12 @@
L$ [AMT]
</text>
<text name="purchase_warning_repurchase">
- Confirmando esta compra só compra a moeda. 
Você precisará tentar novamente a operação.
+ Confirmando esta compra só compra a moeda.
+Você precisará tentar novamente a operação.
</text>
<text name="purchase_warning_notenough">
- Você não está comprando moeda suficiente 
Aumente a quantidade de compra.
+ Você não está comprando moeda suficiente.
+Aumente a quantidade de compra.
</text>
<button label="Fechar" name="cancel_btn"/>
<button label="Adquirir" name="buy_btn"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_buy_land.xml b/indra/newview/skins/default/xui/pt/floater_buy_land.xml
index e9f4d175fd..9a08035f8d 100644
--- a/indra/newview/skins/default/xui/pt/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_buy_land.xml
@@ -96,7 +96,7 @@ Este terreno tem 512 metros quadrados de terra.
1000
</line_editor>
<text name="currency_est">
- por aproximadamente US$ [AMOUNT2]
+ por aproxim. US$ [AMOUNT2]
</text>
<text name="currency_balance">
Você tem L$2,100.
diff --git a/indra/newview/skins/default/xui/pt/floater_camera.xml b/indra/newview/skins/default/xui/pt/floater_camera.xml
new file mode 100644
index 0000000000..435ba6294f
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_camera.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="move floater" title="">
+ <string name="rotate_tooltip">
+ Girar a Câmera ao redor do Foco
+ </string>
+ <string name="zoom_tooltip">
+ Aproximar a Câmera in direção ao Foco
+ </string>
+ <string name="move_tooltip">
+ Mover a Câmera Para Cima e Para Baixo, Para a Esquerda e Para a Direita
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_color_picker.xml b/indra/newview/skins/default/xui/pt/floater_color_picker.xml
index a4ea117d63..62506076ae 100644
--- a/indra/newview/skins/default/xui/pt/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/pt/floater_color_picker.xml
@@ -10,7 +10,7 @@
Azul:
</text>
<text name="h_val_text">
- Luminosidade:
+ Hue:
</text>
<text name="s_val_text">
Sat:
@@ -26,6 +26,7 @@
Cor atual:
</text>
<text name="(Drag below to save.)">
- (Arraste abaixo para salvar.)
+ (Arraste abaixo
+para salvar.)
</text>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_customize.xml b/indra/newview/skins/default/xui/pt/floater_customize.xml
index 13c92a9f96..d2b90d7179 100644
--- a/indra/newview/skins/default/xui/pt/floater_customize.xml
+++ b/indra/newview/skins/default/xui/pt/floater_customize.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="Aparência">
- <tab_container name="customize tab container">
+<floater name="floater customize" title="Aparência" width="513">
+ <tab_container name="customize tab container" tab_min_width="115" width="511">
<panel label="Partes de corpo" name="body_parts_placeholder"/>
<panel label="Forma" name="Shape">
<button label="Reverter" label_selected="Reverter" name="Revert"/>
@@ -38,7 +38,9 @@
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Coloque um novo formato arrastando um dos seus de seu inventário para seu avatar. Alternativamente, você pode criar um novo a partir deste e usá-lo.
+ Coloque um novo formato arrastando um dos seus de seu inventário
+para seu avatar. Alternativamente, você pode criar um novo a partir
+deste e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar esta vestimenta.
@@ -69,7 +71,8 @@
Localizada em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Coloque uma nova pele arrastando uma de seu inventário para seu avatar. Alternativamente, você pode criar uma nova forma a partir deste e usá-lo.
+ Coloque uma nova pele arrastando uma de seu inventário para seu avatar.
+Alternativamente, você pode criar uma nova forma a partir deste e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar esta vestimenta.
@@ -105,7 +108,9 @@
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Ponha um novo cabelo em seu avatar arrastando um do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+ Ponha um novo cabelo em seu avatar arrastando um do seu inventário.
+Alternativamente, você pode criar um novo modelo a partir deste e
+usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não ter permissão para modificar essa vestimenta.
@@ -135,7 +140,9 @@
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Para colocar novos olhos, arraste um do seu inventário para seu avatar. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+ Para colocar novos olhos, arraste um do seu inventário para seu avatar.
+Alternativamente, você pode criar um novo modelo a partir deste e
+usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para alterar esta vestimenta.
@@ -173,7 +180,9 @@
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Para por uma nova camisa em seu avatar, arraste uma nova do seu inventário para seu avatar. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+ Para por uma nova camisa em seu avatar, arraste uma nova do seu
+inventário para seu avatar. Alternativamente, você pode criar um
+novo modelo a partir deste e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não ter permissão para modificar esta vestimenta.
@@ -185,7 +194,7 @@
<button label="Criar Novas Calças" label_selected="Criar Novas Calças" name="Create New"/>
<button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
<button label="Reverter" label_selected="Reverter" name="Revert"/>
<text length="1" name="title" type="string">
[DESC]
@@ -203,7 +212,9 @@
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Para por uma nova calça em seu avatar, basta arrastar uma outra do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+ Para por uma nova calça em seu avatar, basta arrastar uma outra do seu
+inventário. Alternativamente, você pode criar um novo modelo a partir
+deste e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar esta vestimenta.
@@ -226,14 +237,16 @@
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Para por novos calçados em seu avatar, basta arrastar um novo do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+ Para por novos calçados em seu avatar, basta arrastar um novo do seu
+inventário. Alternativamente, você pode criar um novo modelo a partir
+deste e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar esta vestimenta.
</text>
<texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
- <button label="Criar Novos Sapatos" label_selected="Criar Novos Sapatos" name="Create New"/>
+ <button label="Criar Novos Calçados" label_selected="Criar Novos Sapatos" name="Create New" width="166"/>
<button label="Despir" label_selected="Despir" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
<button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
@@ -256,7 +269,9 @@
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Para por uma nova meia em seu avatar, basta arrastar uma nova do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+ Para por uma nova meia em seu avatar, basta arrastar uma nova do seu
+inventário. Alternativamente, você pode criar um novo modelo a partir
+deste e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar essa vestimenta.
@@ -286,13 +301,15 @@
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Para por uma nova jaqueta em seu avatar, basta arrastar um novo modelo do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+ Para por uma nova jaqueta em seu avatar, basta arrastar um novo modelo
+do seu inventário. Alternativamente, você pode criar um novo modelo a
+partir deste e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar esta vestimenta.
</text>
- <texture_picker label="Tecido Superior" name="Upper Fabric" tool_tip="Clique para escolher uma imagem."/>
- <texture_picker label="Tecido Inferior" name="Lower Fabric" tool_tip="Clique para escolher uma imagem."/>
+ <texture_picker label="Tecido Superior" name="Upper Fabric" tool_tip="Clique para escolher uma imagem." width="84"/>
+ <texture_picker label="Tecido Inferior" name="Lower Fabric" tool_tip="Clique para escolher uma imagem." width="84"/>
<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
<button label="Criar Nova Jaqueta" label_selected="Criar Nova Jaqueta" name="Create New"/>
<button label="Remover" label_selected="Remover" name="Take Off"/>
@@ -317,7 +334,9 @@
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Pra por uma nova jaqueta em seu avatar, basta arastar um novo modelo do seu inventário. Alternativamente, você pode criar uma novo modlo a partir deste e usá-lo.
+ Pra por uma nova jaqueta em seu avatar, basta arastar um novo modelo
+do seu inventário. Alternativamente, você pode criar uma novo modelo a
+partir deste e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar essa vestimenta.
@@ -347,14 +366,16 @@
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Para por uma nova Camiseta em seu avatar, basta arrastar um novo modelo de seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+ Para por uma nova Camiseta em seu avatar, basta arrastar um novo
+modelo de seu inventário. Alternativamente, você pode criar um
+novo modelo a partir deste e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não ter permissão para modificar essa vestimenta.
</text>
<texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para abrir o conta-gotas"/>
- <button label="Criar Nova Roupa de Baixo" label_selected="Criar Nova Roupa de Baixo" name="Create New"/>
+ <button label="Criar Nova Camiseta" label_selected="Criar Nova Roupa de Baixo" name="Create New"/>
<button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
<button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
@@ -377,14 +398,16 @@
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Para por novas roupas de baixo em seu avatar, basta arrastar um novo modelo do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+ Para por novas roupas de baixo em seu avatar, basta arrastar um novo
+modelo do seu inventário. Alternativamente, você pode criar um novo
+modelo a partir deste e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar essa vestimenta.
</text>
<texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
- <button label="Criar Novas Roupas de Baixo" label_selected="Criar Novas Roupas de Baixo" name="Create New"/>
+ <button label="Criar Novas Roupas de Baixo" label_selected="Criar Novas Roupas de Baixo" name="Create New" width="176"/>
<button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
<button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
@@ -407,7 +430,9 @@
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Para por uma nova saia em seu avatar, basta arrastar um novo modelo do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo.
+ Para por uma nova saia em seu avatar, basta arrastar um novo modelo
+do seu inventário. Alternativamente, você pode criar um novo modelo a
+partir deste e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar essa vestimenta.
@@ -421,6 +446,7 @@
<button label="Reverter" label_selected="Reverter" name="Revert"/>
</panel>
</tab_container>
+ <scroll_container left="216" name="panel_container"/>
<button label="Fechar" label_selected="Fechar" name="Close"/>
<button label="Salvar Tudo" label_selected="Salvar Tudo" name="Save All"/>
<button label="Criar Visual" label_selected="Criar Visual" name="Make Outfit"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
new file mode 100644
index 0000000000..bf99231e5f
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Day Cycle Floater" title="Editor de ciclo de dia">
+ <tab_container name="Day Cycle Tabs">
+ <panel label="Ciclo do dia" name="Day Cycle">
+ <button label="?" name="WLDayCycleHelp"/>
+ <text name="WL12am">
+ 12:00 meia noite
+ </text>
+ <text name="WL3am">
+ 3:00 da manhã
+ </text>
+ <text name="WL6am">
+ 6:00 da manhã
+ </text>
+ <text name="WL9amHash">
+ 9:00 da manhã
+ </text>
+ <text name="WL12pmHash">
+ 12:00 meio dia
+ </text>
+ <text name="WL3pm">
+ 3:00 da tarde
+ </text>
+ <text name="WL6pm">
+ 6:00 da tarde
+ </text>
+ <text name="WL9pm">
+ 9:00 da noite
+ </text>
+ <text name="WL12am2">
+ 12:00 meia noite
+ </text>
+ <button label="Add Key" label_selected="Adicionar chave" name="WLAddKey"/>
+ <button label="Apagar chave" label_selected="Apagar chave" name="WLDeleteKey"/>
+ <text name="WLCurKeyFrameText">
+ Configurações de Key Frame:
+ </text>
+ <text name="WLCurKeyTimeText">
+ Tempo de chave:
+ </text>
+ <spinner label="Hora" name="WLCurKeyHour"/>
+ <spinner label="Minutos" name="WLCurKeyMin"/>
+ <text name="WLCurKeyTimeText2">
+ Apresentação chave:
+ </text>
+ <combo_box label="Apresentação" name="WLKeyPresets"/>
+ <text name="DayCycleText">
+ Snap:
+ </text>
+ <combo_box label="5 minutos" name="WLSnapOptions"/>
+ <text name="DayCycleText2">
+ Duração do Ciclo:
+ </text>
+ <spinner label="Hora" name="WLLengthOfDayHour"/>
+ <spinner label="Minuto" name="WLLengthOfDayMin"/>
+ <spinner label="Segundo" name="WLLengthOfDaySec"/>
+ <text name="DayCycleText3">
+ Preview:
+ </text>
+ <button label="Tocar" label_selected="Tocar" name="WLAnimSky"/>
+ <button label="Pare!" label_selected="Pare" name="WLStopAnimSky"/>
+ <button label="Usar o horário do Terreno" label_selected="Ir para o horário do Terreno" name="WLUseLindenTime"/>
+ <button label="Salvar o Dia teste" label_selected="Salvar o Dia teste" name="WLSaveDayCycle"/>
+ <button label="Carregar o Dia teste" label_selected="Carregar o Dia teste" name="WLLoadDayCycle"/>
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_env_settings.xml b/indra/newview/skins/default/xui/pt/floater_env_settings.xml
new file mode 100644
index 0000000000..afefae71e6
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_env_settings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Environment Editor Floater" title="Editor do Ambiente">
+ <text name="EnvTimeText">
+ Hora do Dia
+ </text>
+ <text name="EnvTimeText2">
+ 12:00 PM
+ </text>
+ <text name="EnvCloudText">
+ Cobertura de Nuvens
+ </text>
+ <text name="EnvWaterColorText">
+ Cor da água
+ </text>
+ <color_swatch label="" name="EnvWaterColor" tool_tip="Clique para abrir o Editor de cores"/>
+ <text name="EnvWaterFogText">
+ Névoa da água
+ </text>
+ <button label="Usar hora da propriedade" name="EnvUseEstateTimeButton"/>
+ <button label="Céu Avançado" name="EnvAdvancedSkyButton"/>
+ <button label="Água Avançada" name="EnvAdvancedWaterButton"/>
+ <button label="?" name="EnvSettingsHelpButton"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml b/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml
new file mode 100644
index 0000000000..c395144d4a
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Hardware Settings Floater" title="Ajustes de Hardware">
+ <text name="Filtering:">
+ Filtragem:
+ </text>
+ <check_box label="Filtragem Anisotrópica (mais lento quando habilitada)" name="ani"/>
+ <text name="Antialiasing:">
+ Suavização:
+ </text>
+ <combo_box label="Suavização" name="fsaa" width="94">
+ <combo_item name="FSAADisabled">
+ Desabilitado
+ </combo_item>
+ <combo_item name="2x">
+ 2x
+ </combo_item>
+ <combo_item name="4x">
+ 4x
+ </combo_item>
+ <combo_item name="8x">
+ 8x
+ </combo_item>
+ <combo_item name="16x">
+ 16x
+ </combo_item>
+ </combo_box>
+ <spinner label="Gama:" name="gamma"/>
+ <text name="(brightness, lower is brighter)">
+ (brilho, quanto menor, mais brilho, 0=usar padrão)
+ </text>
+ <text name="Enable VBO:">
+ Habilitar VBO:
+ </text>
+ <check_box label="Habilitar Objetos com Armazenamento de Vértices" name="vbo" tool_tip="Habilitando-o em máquinas novas, ele oferece um ganho de performance. Contudo, as máquinas antigas tem freqüentemente implementações pobres de VBOs e você pode ter travamentos quando esta opção é habilitada."/>
+ <slider label="Memória de Textura (MB):" name="GrapicsCardTextureMemory" tool_tip="Quantidade de memória a se reservar para texturas. Usa por padrão, a Memória da Placa de Vídeo. Sua redução pode aumentar a performance mas pode também deixar as texturas borradas."/>
+ <spinner label="Relação de Distância de &#10;Nevoeiro:" name="fog"/>
+ <button label="OK" label_selected="OK" name="OK"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_hud.xml b/indra/newview/skins/default/xui/pt/floater_hud.xml
new file mode 100644
index 0000000000..c75867956b
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_hud.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_hud" title="Tutorial"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_image_preview.xml b/indra/newview/skins/default/xui/pt/floater_image_preview.xml
index a9f270c11d..5ce1f5478f 100644
--- a/indra/newview/skins/default/xui/pt/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_image_preview.xml
@@ -42,7 +42,9 @@
</combo_item>
</combo_box>
<text name="bad_image_text">
- Incapaz de ler a imagem.Tente salvar a imagem como 24 bit Targa (.tga).
+ Incapaz de ler a imagem.
+
+Tente salvar a imagem como 24 bit Targa (.tga).
</text>
<check_box label="Usar compressão com menor perda" name="lossless_check"/>
<button label="Cancelar" name="cancel_btn"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_lagmeter.xml b/indra/newview/skins/default/xui/pt/floater_lagmeter.xml
new file mode 100644
index 0000000000..d0f0d40d6f
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_lagmeter.xml
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="Medidor de Atraso">
+ <button label="" label_selected="" name="client_lagmeter" tool_tip="Status de atraso no Cliente"/>
+ <text name="client">
+ Cliente:
+ </text>
+ <text name="client_text">
+ Normal
+ </text>
+ <button label="" label_selected="" name="network_lagmeter" tool_tip="Status de atraso na rede"/>
+ <text name="network">
+ Rede:
+ </text>
+ <text name="network_text">
+ Normal
+ </text>
+ <button label="" label_selected="" name="server_lagmeter" tool_tip="Status de atraso no servidor"/>
+ <text name="server">
+ Servidor:
+ </text>
+ <text name="server_text">
+ Normal
+ </text>
+ <button label="?" name="server_help"/>
+ <button label="&gt;&gt;" name="minimize"/>
+ <string name="max_title_msg">
+ Medidor de Atraso
+ </string>
+ <string name="max_width_px">
+ 360
+ </string>
+ <string name="min_title_msg">
+ Atraso
+ </string>
+ <string name="min_width_px">
+ 90
+ </string>
+ <string name="client_text_msg">
+ Cliente
+ </string>
+ <string name="client_frame_rate_critical_fps">
+ 10
+ </string>
+ <string name="client_frame_rate_warning_fps">
+ 15
+ </string>
+ <string name="client_frame_time_window_bg_msg">
+ Normal, janela por baixo
+ </string>
+ <string name="client_frame_time_critical_msg">
+ Taxa de quadros do Cliente abaixo de [CLIENT_FRAME_RATE_CRITICAL]
+ </string>
+ <string name="client_frame_time_warning_msg">
+ Taxa de quadros do Cliente entre [CLIENT_FRAME_RATE_CRITICAL] e [CLIENT_FRAME_RATE_WARNING]
+ </string>
+ <string name="client_frame_time_normal_msg">
+ Normal
+ </string>
+ <string name="client_draw_distance_cause_msg">
+ Causa possível: Distância do desenho ajustada muito alta
+ </string>
+ <string name="client_texture_loading_cause_msg">
+ Causa possível: Carregamento de Imagens
+ </string>
+ <string name="client_texture_memory_cause_msg">
+ Causa possível: Muitas imagens na memoria
+ </string>
+ <string name="client_complex_objects_cause_msg">
+ Causa possível: Muitos objetos complexos na cena
+ </string>
+ <string name="network_text_msg">
+ Rede
+ </string>
+ <string name="network_packet_loss_critical_pct">
+ 10
+ </string>
+ <string name="network_packet_loss_warning_pct">
+ 5
+ </string>
+ <string name="network_packet_loss_critical_msg">
+ Conexão está caindo para cerca de [NETWORK_PACKET_LOSS_CRITICAL]% de pacotes
+ </string>
+ <string name="network_packet_loss_warning_msg">
+ Conexão está caindo [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% de pacotes
+ </string>
+ <string name="network_performance_normal_msg">
+ Normal
+ </string>
+ <string name="network_ping_critical_ms">
+ 600
+ </string>
+ <string name="network_ping_warning_ms">
+ 300
+ </string>
+ <string name="network_ping_critical_msg">
+ Tempo de conexão de ping é cerca de [NETWORK_PING_CRITICAL] ms
+ </string>
+ <string name="network_ping_warning_msg">
+ Tempo de conexão de ping é [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+ </string>
+ <string name="network_packet_loss_cause_msg">
+ Possível conexão ruim ou &apos;Largura de Banda&apos; escolhida muito alta.
+ </string>
+ <string name="network_ping_cause_msg">
+ Possível conexão ruim ou aplic. compartilhando arquivos.
+ </string>
+ <string name="server_text_msg">
+ Servidor
+ </string>
+ <string name="server_frame_rate_critical_fps">
+ 20
+ </string>
+ <string name="server_frame_rate_warning_fps">
+ 30
+ </string>
+ <string name="server_single_process_max_time_ms">
+ 20
+ </string>
+ <string name="server_frame_time_critical_msg">
+ Taxa de quadros do simulador abaixo de [SERVER_FRAME_RATE_CRITICAL]
+ </string>
+ <string name="server_frame_time_warning_msg">
+ Taxa de quadros do simulador entre [SERVER_FRAME_RATE_CRITICAL] e [SERVER_FRAME_RATE_WARNING]
+ </string>
+ <string name="server_frame_time_normal_msg">
+ Normal
+ </string>
+ <string name="server_physics_cause_msg">
+ Causa possível: Muitos objetos físicos
+ </string>
+ <string name="server_scripts_cause_msg">
+ Causa possível: Muitos objetos com scripts
+ </string>
+ <string name="server_net_cause_msg">
+ Causa possível: Muito tráfego na rede
+ </string>
+ <string name="server_agent_cause_msg">
+ Causa possível: Muitas pessoas se movendo na região
+ </string>
+ <string name="server_images_cause_msg">
+ Causa possível: Muitos cálculos de imagem
+ </string>
+ <string name="server_generic_cause_msg">
+ Causa possível: Carga no simulador muito pesada
+ </string>
+ <string name="smaller_label">
+ &gt;&gt;
+ </string>
+ <string name="bigger_label">
+ &lt;&lt;
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_media_browser.xml b/indra/newview/skins/default/xui/pt/floater_media_browser.xml
new file mode 100644
index 0000000000..c2387d8a34
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_media_browser.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_about" title="Navegador de Mídia" width="570" min_width="477">
+ <layout_stack name="stack1" width="550">
+ <layout_panel name="nav_controls">
+ <button label="Para trás" name="back" width="75"/>
+ <button label="Para a frente" name="forward" width="90" left_delta="75" />
+ <button label="Recarregar" name="reload" left_delta="95" width="76"/>
+ <combo_box left_delta="80" name="address" width="240"/>
+ <button label="Ir" name="go" left_delta="245" width="35" />
+ </layout_panel>
+ <layout_panel name="parcel_owner_controls">
+ <button label="Enviar a URL Atual Para o Terreno" name="assign"/>
+ </layout_panel>
+ <layout_panel name="external_controls">
+ <button label="Abrir no meu Navegador de Web" name="open_browser" width="196"/>
+ <check_box label="Sempre abrir no meu navegador de web" name="open_always" left_delta="201" />
+ <button label="Fechar" name="close"/>
+ </layout_panel>
+ </layout_stack>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml b/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml
new file mode 100644
index 0000000000..83f47fd679
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="MemLeak" title="Simulação de Perda de Memória">
+ <spinner label="Velocidade da Perda (bytes por quadro):" name="leak_speed"/>
+ <spinner label="Máximo de Memória Perdida (MB):" name="max_leak"/>
+ <text name="total_leaked_label">
+ Memória perdida atualmente: [SIZE] KB
+ </text>
+ <button label="Iniciar" name="start_btn"/>
+ <button label="Parar" name="stop_btn"/>
+ <button label="Liberar" name="release_btn"/>
+ <button label="Fechar" name="close_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_mute_object.xml b/indra/newview/skins/default/xui/pt/floater_mute_object.xml
new file mode 100644
index 0000000000..506d518868
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_mute_object.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="mute by name" title="Emudecer objeto pelo nome">
+ <text name="message">
+ Emudecer pelo nome afeta apenas conversa de objeto e MI, não sons. Você deve digitar o nome exato do objeto.
+ </text>
+ <line_editor name="object_name">
+ Nome do objeto
+ </line_editor>
+ <button label="Ok" name="OK"/>
+ <button label="Cancelar" name="Cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_openobject.xml b/indra/newview/skins/default/xui/pt/floater_openobject.xml
index 51f7178136..8a27b7d0b0 100644
--- a/indra/newview/skins/default/xui/pt/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/pt/floater_openobject.xml
@@ -4,7 +4,7 @@
[DESC]:
</text>
<button label="Copiar para Inventário" label_selected="Copiar para Inventário"
- name="copy_to_inventory_button" />
+ name="copy_to_inventory_button" width="132" />
<button label="Copiar e Vestir" label_selected="Copiar e Vestir"
- name="copy_and_wear_button" />
+ name="copy_and_wear_button" left="152"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_pay.xml b/indra/newview/skins/default/xui/pt/floater_pay.xml
index 76facb430d..dda7015a07 100644
--- a/indra/newview/skins/default/xui/pt/floater_pay.xml
+++ b/indra/newview/skins/default/xui/pt/floater_pay.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="Give Money" title="">
- <button label="L$1" label_selected="L$1" name="fastpay 1" />
+ <button label="L$1" label_selected="L$1" name="fastpay 1" left="112" />
<button label="L$5" label_selected="L$5" name="fastpay 5" />
- <button label="L$10" label_selected="L$10" name="fastpay 10" />
+ <button label="L$10" label_selected="L$10" name="fastpay 10" left="112" />
<button label="L$20" label_selected="L$20" name="fastpay 20" />
<button label="Pagar" label_selected="Pagar" name="pay btn" />
<button label="Cancelar" label_selected="Cancelar" name="cancel btn" />
- <text type="string" length="1" name="payee_label">
+ <text type="string" length="1" name="payee_label" width="110" left="5">
Pagar residente:
</text>
- <text type="string" length="1" name="payee_name">
+ <text type="string" length="1" name="payee_name" left="110">
[FIRST] [LAST]
</text>
- <text type="string" length="1" name="fastpay text">
+ <text type="string" length="1" name="fastpay text" width="120" halign="left">
Pagamento rápido:
</text>
- <text type="string" length="1" name="amount text">
+ <text type="string" length="1" name="amount text" left="4" >
Quantia:
</text>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_pay_object.xml b/indra/newview/skins/default/xui/pt/floater_pay_object.xml
index 7973baf6a1..824e1aebdd 100644
--- a/indra/newview/skins/default/xui/pt/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/pt/floater_pay_object.xml
@@ -1,30 +1,31 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="Give Money" title="">
- <text type="string" length="1" name="payee_group">
+ <text type="string" length="1" name="payee_group" width="100" halign="left">
Pagar Grupo:
</text>
- <text type="string" length="1" name="payee_resident">
+ <text type="string" length="1" name="payee_resident" width="120" halign="left" >
Pagar residente:
</text>
- <text type="string" length="1" name="payee_name">
+ <text type="string" length="1" name="payee_name" left="105">
[FIRST] [LAST]
</text>
- <text type="string" length="1" name="object_name_label">
+ <text type="string" length="1" name="object_name_label" left="5" width="95" halign="left">
Via objeto:
</text>
- <text type="string" length="1" name="object_name_text">
+ <text type="string" length="1" name="object_name_text" left="105" >
...
</text>
- <text type="string" length="1" name="fastpay text">
+ <text type="string" length="1" name="fastpay text" width="115" halign="left">
Pagamento Rápido:
</text>
- <text type="string" length="1" name="amount text">
+ <text type="string" length="1" name="amount text" left="5" halign="left">
Quantia:
</text>
- <button label="L$1" label_selected="L$1" name="fastpay 1" />
- <button label="L$5" label_selected="L$5" name="fastpay 5" />
- <button label="L$10" label_selected="L$10" name="fastpay 10" />
- <button label="L$20" label_selected="L$20" name="fastpay 20" />
+ <button label="L$1" label_selected="L$1" name="fastpay 1" left="125" width="70"/>
+ <button label="L$5" label_selected="L$5" name="fastpay 5" left="200" width="70"/>
+ <button label="L$10" label_selected="L$10" name="fastpay 10" left="125" width="70"/>
+ <button label="L$20" label_selected="L$20" name="fastpay 20" left="200" width="70"/>
<button label="Pagar" label_selected="Pagar" name="pay btn" />
<button label="Cancelar" label_selected="Cancelar" name="cancel btn" />
+ <line_editor left="60" name="amount" width="50" />
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_postcard.xml b/indra/newview/skins/default/xui/pt/floater_postcard.xml
index 5c07ce6b9e..4e3e6f5cd0 100644
--- a/indra/newview/skins/default/xui/pt/floater_postcard.xml
+++ b/indra/newview/skins/default/xui/pt/floater_postcard.xml
@@ -1,17 +1,21 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Postcard" title="Instantâneo por email">
- <text name="to_label">
+ <text name="to_label" width="135">
Email do Destinatário:
</text>
+ <line_editor name="to_form" left="143" width="127" />
<text name="from_label">
Seu Email:
</text>
+ <line_editor name="from_form" left="143" width="127" />
<text name="name_label">
Seu nome:
</text>
+ <line_editor name="name_form" left="143" width="127" />
<text name="subject_label">
Assunto:
</text>
+ <line_editor name="subject_form" left="143" width="127" />
<line_editor label="Digite seu assunto aqui." name="subject_form"/>
<text name="msg_label">
Mensagem:
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_animation.xml b/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
index d71a4deb34..b9a8ccb5f5 100644
--- a/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
@@ -4,7 +4,7 @@
Descrição:
</text>
<button label="Executar in World" label_selected="Parar" name="Anim play btn"
- tool_tip="Executar esta animação para que outros vejam.." />
+ tool_tip="Executar esta animação para que outros vejam.." width="131" left="20"/>
<button label="Executar localmente" label_selected="Parar" name="Anim audition btn"
- tool_tip="Executar esta animação somente para você ver." />
+ tool_tip="Executar esta animação somente para você ver." width="125" left="162"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_classified.xml b/indra/newview/skins/default/xui/pt/floater_preview_classified.xml
new file mode 100644
index 0000000000..83af4947a7
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_preview_classified.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="classified_preview" title="Classificar Informação"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_event.xml b/indra/newview/skins/default/xui/pt/floater_preview_event.xml
new file mode 100644
index 0000000000..60f85560f5
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_preview_event.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="event_preview" title="Informação de Evento (testemunhos)"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_region_info.xml b/indra/newview/skins/default/xui/pt/floater_region_info.xml
new file mode 100644
index 0000000000..b16b1a4de8
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_region_info.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="regioninfo" title="Região/Propriedade"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_url_entry.xml b/indra/newview/skins/default/xui/pt/floater_url_entry.xml
new file mode 100644
index 0000000000..5a18297555
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_url_entry.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="url_entry" title="">
+ <text name="media_label">
+ Media URL:
+ </text>
+ <button label="OK" name="ok_btn"/>
+ <button label="Cancelar" name="cancel_btn"/>
+ <button label="Limpar" name="clear_btn"/>
+ <text name="loading_label">
+ Carregando..
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_water.xml b/indra/newview/skins/default/xui/pt/floater_water.xml
new file mode 100644
index 0000000000..d6f261f872
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_water.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Water Floater" title="Editor de Água Avançado">
+ <text name="KeyFramePresetsText">
+ Pré-configurações da Água:
+ </text>
+ <button label="Novo" label_selected="Novo" name="WaterNewPreset"/>
+ <button label="Salvar" label_selected="Salvar" name="WaterSavePreset"/>
+ <button label="Deletar" label_selected="Deletar" name="WaterDeletePreset"/>
+ <tab_container name="Water Tabs">
+ <panel label="Configurações" name="Settings">
+ <text name="BHText">
+ Cor da névoa da Água
+ </text>
+ <button label="?" name="WaterFogColorHelp"/>
+ <color_swatch label="" name="WaterFogColor" tool_tip="Clique para abrir o Capturador de Cor"/>
+ <text name="WaterFogDensText">
+ Expoente da Densidade de névoa
+ </text>
+ <button label="?" name="WaterFogDensityHelp"/>
+ <text name="WaterUnderWaterFogModText">
+ Modificador da névoa Subaquática
+ </text>
+ <button label="?" name="WaterUnderWaterFogModHelp"/>
+ <text name="BDensText">
+ Escala da Marola de Reflexão
+ </text>
+ <button label="?" name="WaterNormalScaleHelp"/>
+ <text name="BHText2">
+ 1
+ </text>
+ <text name="BHText3">
+ 2
+ </text>
+ <text name="BHText4">
+ 3
+ </text>
+ <text name="HDText">
+ Escala de Fresnel
+ </text>
+ <button label="?" name="WaterFresnelScaleHelp"/>
+ <text name="FresnelOffsetText">
+ Deslocamento de Fresnel
+ </text>
+ <button label="?" name="WaterFresnelOffsetHelp"/>
+ <text name="DensMultText">
+ Refratar a Escala para Cima
+ </text>
+ <button label="?" name="WaterScaleAboveHelp"/>
+ <text name="WaterScaleBelowText">
+ Refratar a Escala para Baixo
+ </text>
+ <button label="?" name="WaterScaleBelowHelp"/>
+ <text name="MaxAltText">
+ Multiplicador de Difusão
+ </text>
+ <button label="?" name="WaterBlurMultiplierHelp"/>
+ </panel>
+ <panel label="Imagem" name="Waves">
+ <text name="BHText">
+ Direção da Onda Maior
+ </text>
+ <button label="?" name="WaterWave1Help"/>
+ <text name="WaterWave1DirXText">
+ X
+ </text>
+ <text name="WaterWave1DirYText">
+ Y
+ </text>
+ <text name="BHText2">
+ Direção da Onda Pequena
+ </text>
+ <button label="?" name="WaterWave2Help"/>
+ <text name="WaterWave2DirXText">
+ X
+ </text>
+ <text name="WaterWave2DirYText">
+ Y
+ </text>
+ <text name="BHText3">
+ Mapa Normal
+ </text>
+ <button label="?" name="WaterNormalMapHelp"/>
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_windlight_options.xml b/indra/newview/skins/default/xui/pt/floater_windlight_options.xml
new file mode 100644
index 0000000000..e42137be15
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_windlight_options.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="WindLight floater" title="Editor de Céu Avançado">
+ <text name="KeyFramePresetsText">
+ Pré-definições de Céu:
+ </text>
+ <button label="Novo" label_selected="Novo" name="WLNewPreset"/>
+ <button label="Salvar" label_selected="Salvar" name="WLSavePreset"/>
+ <button label="Deletar" label_selected="Deletar" name="WLDeletePreset"/>
+ <button label="Editor de Ciclos do Dia" label_selected="Editor de Ciclos do Dia" name="WLDayCycleMenuButton" width="150" left_delta="95" />
+ <tab_container name="WindLight Tabs">
+ <panel label="Atmosfera" name="Atmosphere">
+ <text name="BHText">
+ Horizonte Azul
+ </text>
+ <button label="?" name="WLBlueHorizonHelp"/>
+ <text name="BHText2">
+ R
+ </text>
+ <text name="BHText3">
+ G
+ </text>
+ <text name="BHText4">
+ B
+ </text>
+ <text name="BHText5">
+ I
+ </text>
+ <text name="BDensText">
+ Horizonte da Neblina
+ </text>
+ <button label="?" name="WLHazeHorizonHelp"/>
+ <text name="BDensText2">
+ Densidade de Azul
+ </text>
+ <button label="?" name="WLBlueDensityHelp"/>
+ <text name="BHText6">
+ R
+ </text>
+ <text name="BHText7">
+ G
+ </text>
+ <text name="BHText8">
+ B
+ </text>
+ <text name="BHText9">
+ I
+ </text>
+ <text name="HDText">
+ Densidade da Neblina
+ </text>
+ <button label="?" name="WLHazeDensityHelp"/>
+ <text name="DensMultText">
+ Multiplicador de Densidade
+ </text>
+ <button label="?" name="WLDensityMultHelp"/>
+ <text name="WLDistanceMultText">
+ Multiplicador de Distância
+ </text>
+ <button label="?" name="WLDistanceMultHelp"/>
+ <text name="MaxAltText">
+ Altitude Máxima
+ </text>
+ <button label="?" name="WLMaxAltitudeHelp"/>
+ </panel>
+ <panel label="Iluminação" name="Lighting">
+ <text name="SLCText">
+ Cor do Sol/Lua
+ </text>
+ <button label="?" name="WLSunlightColorHelp"/>
+ <text name="BHText">
+ R
+ </text>
+ <text name="BHText2">
+ G
+ </text>
+ <text name="BHText3">
+ B
+ </text>
+ <text name="BHText4">
+ I
+ </text>
+ <text name="TODText">
+ Posição do Sol/Lua
+ </text>
+ <button label="?" name="WLTimeOfDayHelp"/>
+ <text name="WLAmbientText">
+ Ambiente
+ </text>
+ <button label="?" name="WLAmbientHelp"/>
+ <text name="BHText5">
+ R
+ </text>
+ <text name="BHText6">
+ G
+ </text>
+ <text name="BHText7">
+ B
+ </text>
+ <text name="BHText8">
+ I
+ </text>
+ <text name="WLEastAngleText">
+ Angulo Leste
+ </text>
+ <button label="?" name="WLEastAngleHelp"/>
+ <text name="SunGlowText">
+ Brilho do Sol
+ </text>
+ <button label="?" name="WLSunGlowHelp"/>
+ <slider label="Foco" name="WLGlowB"/>
+ <slider label="Tamanho" name="WLGlowR"/>
+ <text name="SceneGammaText">
+ Gamma da Cena
+ </text>
+ <button label="?" name="WLSceneGammaHelp"/>
+ <text name="WLStarText">
+ Brilho da Estrêla
+ </text>
+ <button label="?" name="WLStarBrightnessHelp"/>
+ </panel>
+ <panel label="Nuvens" name="Clouds">
+ <text name="WLCloudColorText">
+ Cor da Nuvem
+ </text>
+ <button label="?" name="WLCloudColorHelp"/>
+ <text name="BHText">
+ R
+ </text>
+ <text name="BHText2">
+ G
+ </text>
+ <text name="BHText3">
+ B
+ </text>
+ <text name="BHText4">
+ I
+ </text>
+ <text name="WLCloudColorText2">
+ Densidade/ XY da Nuvem
+ </text>
+ <button label="?" name="WLCloudDensityHelp"/>
+ <text name="BHText5">
+ X
+ </text>
+ <text name="BHText6">
+ Y
+ </text>
+ <text name="BHText7">
+ D
+ </text>
+ <text name="WLCloudCoverageText">
+ Cobertura da Nuvem
+ </text>
+ <button label="?" name="WLCloudCoverageHelp"/>
+ <text name="WLCloudScaleText">
+ Escala da Nuvem
+ </text>
+ <button label="?" name="WLCloudScaleHelp"/>
+ <text name="WLCloudDetailText">
+ Detalhe da Nuvem (XY/Densidade)
+ </text>
+ <button label="?" name="WLCloudDetailHelp"/>
+ <text name="BHText8">
+ X
+ </text>
+ <text name="BHText9">
+ Y
+ </text>
+ <text name="BHText10">
+ D
+ </text>
+ <text name="WLCloudScrollXText">
+ Rolagem X da Nuvem
+ </text>
+ <button label="?" name="WLCloudScrollXHelp"/>
+ <check_box label="Travar" name="WLCloudLockX"/>
+ <text name="WLCloudScrollYText">
+ Rolagem Y da Nuvem
+ </text>
+ <button label="?" name="WLCloudScrollYHelp"/>
+ <check_box label="Travar" name="WLCloudLockY"/>
+ <check_box label="Desenhar Nuvens Clássicas" name="DrawClassicClouds"/>
+ <button label="?" name="WLClassicCloudsHelp"/>
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/menu_login.xml b/indra/newview/skins/default/xui/pt/menu_login.xml
new file mode 100644
index 0000000000..3aeb7483a8
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_login.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu_bar name="Login Menu">
+ <menu label="Arquivo" name="File">
+ <menu_item_call label="Sair" name="Quit"/>
+ </menu>
+ <menu label="Editar" name="Edit">
+ <menu_item_call label="Preferências..." name="Preferences..."/>
+ </menu>
+ <menu label="Ajuda" name="Help">
+ <menu_item_call label="Ajuda do Second Life" name="Second Life Help"/>
+ <menu_item_call label="Sobre o Second Life..." name="About Second Life..."/>
+ </menu>
+</menu_bar>
diff --git a/indra/newview/skins/default/xui/pt/menu_slurl.xml b/indra/newview/skins/default/xui/pt/menu_slurl.xml
new file mode 100644
index 0000000000..e18e776975
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_slurl.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Popup">
+ <menu_item_call label="Sobre a URL" name="about_url"/>
+ <menu_item_call label="Teletransporte para a URL" name="teleport_to_url"/>
+ <menu_item_call label="Mostrar no Mapa" name="show_on_map"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pt/mime_types.xml b/indra/newview/skins/default/xui/pt/mime_types.xml
new file mode 100644
index 0000000000..de3d9581d9
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/mime_types.xml
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<mimetypes name="default">
+ <widgetset name="web">
+ <label name="web_label">
+ Conteúdo da Web
+ </label>
+ <tooltip name="web_tooltip">
+ Esta região possui Conteúdo da Web disponível.
+ </tooltip>
+ <playtip name="web_playtip">
+ Exibir Conteúdo da Web
+ </playtip>
+ </widgetset>
+ <widgetset name="movie">
+ <label name="movie_label">
+ Filme
+ </label>
+ <tooltip name="movie_tooltip">
+ Há um filme disponível para se assistir aqui
+ </tooltip>
+ <playtip name="movie_playtip">
+ Iniciar filme
+ </playtip>
+ </widgetset>
+ <widgetset name="none">
+ <label name="none_label">
+ Sem conteúdo disponível
+ </label>
+ <tooltip name="none_tooltip">
+ Não há mídia disponível aqui.
+ </tooltip>
+ </widgetset>
+ <widgetset name="image">
+ <label name="image_label">
+ Imagem
+ </label>
+ <tooltip name="image_tooltip">
+ Há uma imagem neste local
+ </tooltip>
+ <playtip name="image_playtip">
+ Ver a imagem disponível deste local.
+ </playtip>
+ </widgetset>
+ <widgetset name="audio">
+ <label name="audio_label">
+ Audio
+ </label>
+ <tooltip name="audio_tooltip">
+ Há um audio neste local
+ </tooltip>
+ <playtip name="audio_playtip">
+ Iniciar audio disponípivel nest local
+ </playtip>
+ </widgetset>
+ <scheme name="rtsp">
+ <label name="rtsp_label">
+ Transmissão em tempo real
+ </label>
+ </scheme>
+ <mimetype name="blank">
+ <label name="blank_label">
+ - Nenhum -
+ </label>
+ </mimetype>
+ <mimetype name="none/none">
+ <label name="none/none_label">
+ - None - Nenhum -
+ </label>
+ </mimetype>
+ <mimetype name="audio/*">
+ <label name="audio2_label">
+ Audio
+ </label>
+ </mimetype>
+ <mimetype name="video/*">
+ <label name="video2_label">
+ Vídeo
+ </label>
+ </mimetype>
+ <mimetype name="image/*">
+ <label name="image2_label">
+ Imagem
+ </label>
+ </mimetype>
+ <mimetype name="video/vnd.secondlife.qt.legacy">
+ <label name="vnd.secondlife.qt.legacy_label">
+ Filme (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="application/javascript">
+ <label name="application/javascript_label">
+ Javascript
+ </label>
+ </mimetype>
+ <mimetype name="application/ogg">
+ <label name="application/ogg_label">
+ Áudio/Vídeo Ogg
+ </label>
+ </mimetype>
+ <mimetype name="application/pdf">
+ <label name="application/pdf_label">
+ Documento PDF
+ </label>
+ </mimetype>
+ <mimetype name="application/postscript">
+ <label name="application/postscript_label">
+ Documento Postscript
+ </label>
+ </mimetype>
+ <mimetype name="application/rtf">
+ <label name="application/rtf_label">
+ Rich Text (RTF)
+ </label>
+ </mimetype>
+ <mimetype name="application/smil">
+ <label name="application/smil_label">
+ Synchronized Multimedia Integration Language (SMIL)
+ </label>
+ </mimetype>
+ <mimetype name="application/xhtml+xml">
+ <label name="application/xhtml+xml_label">
+ Página Web (XHTML)
+ </label>
+ </mimetype>
+ <mimetype name="application/x-director">
+ <label name="application/x-director_label">
+ Macromedia Director
+ </label>
+ </mimetype>
+ <mimetype name="application/x-shockwave-flash">
+ <label name="application/x-shockwave-flash_label">
+ Flash
+ </label>
+ </mimetype>
+ <mimetype name="audio/mid">
+ <label name="audio/mid_label">
+ Áudio (MIDI)
+ </label>
+ </mimetype>
+ <mimetype name="audio/mpeg">
+ <label name="audio/mpeg_label">
+ Áudio (MP3)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-aiff">
+ <label name="audio/x-aiff_label">
+ Áudio (AIFF)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-wav">
+ <label name="audio/x-wav_label">
+ Áudio (WAV)
+ </label>
+ </mimetype>
+ <mimetype name="image/bmp">
+ <label name="image/bmp_label">
+ Imagem (BMP)
+ </label>
+ </mimetype>
+ <mimetype name="image/gif">
+ <label name="image/gif_label">
+ Imagem (GIF)
+ </label>
+ </mimetype>
+ <mimetype name="image/jpeg">
+ <label name="image/jpeg_label">
+ Imagem (JPEG)
+ </label>
+ </mimetype>
+ <mimetype name="image/png">
+ <label name="image/png_label">
+ Imagem (PNG)
+ </label>
+ </mimetype>
+ <mimetype name="image/svg+xml">
+ <label name="image/svg+xml_label">
+ Imagem (SVG)
+ </label>
+ </mimetype>
+ <mimetype name="image/tiff">
+ <label name="image/tiff_label">
+ Imagem (TIFF)
+ </label>
+ </mimetype>
+ <mimetype name="text/html">
+ <label name="text/html_label">
+ Página Web
+ </label>
+ </mimetype>
+ <mimetype name="text/plain">
+ <label name="text/plain_label">
+ Texto
+ </label>
+ </mimetype>
+ <mimetype name="text/xml">
+ <label name="text/xml_label">
+ XML
+ </label>
+ </mimetype>
+ <mimetype name="video/mpeg">
+ <label name="video/mpeg_label">
+ Filme (MPEG)
+ </label>
+ </mimetype>
+ <mimetype name="video/mp4">
+ <label name="video/mp4_label">
+ Filme (MP4)
+ </label>
+ </mimetype>
+ <mimetype name="video/quicktime">
+ <label name="video/quicktime_label">
+ Filme (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-asf">
+ <label name="video/x-ms-asf_label">
+ Filme (Windows Media ASF)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-wmv">
+ <label name="video/x-ms-wmv_label">
+ Filme (Windows Media WMV)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-msvideo">
+ <label name="video/x-msvideo_label">
+ Filme (AVI)
+ </label>
+ </mimetype>
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/pt/panel_audio_device.xml b/indra/newview/skins/default/xui/pt/panel_audio_device.xml
new file mode 100644
index 0000000000..95814136c5
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/panel_audio_device.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="device_settings">
+ <text name="Audio Devices">
+ Dispositivos de Áudio
+ </text>
+ <text name="Input device (microphone):">
+ Dispositivo de entrada (microfone):
+ </text>
+ <text name="Input level:">
+ Nível de Entrada
+ </text>
+ <string name="default_text">
+ Padrão
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_friends.xml b/indra/newview/skins/default/xui/pt/panel_friends.xml
new file mode 100644
index 0000000000..581560555c
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/panel_friends.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="friends">
+ <string name="Multiple">
+ Multiplos amigos...
+ </string>
+ <scroll_list name="friend_list" tool_tip="Hold shift or control while clicking to select multiple friends">
+ <column name="icon_online_status" tool_tip="Status Online"/>
+ <column label="Name" name="friend_name" tool_tip="Nome"/>
+ <column name="icon_visible_online" tool_tip="Amigo pod ever quando você está online"/>
+ <column name="icon_visible_map" tool_tip="Amigo pode localiza-lo no mapa"/>
+ <column name="icon_edit_mine" tool_tip="Amigo pode editar, apagar ou pegar os seus objetos"/>
+ <column name="icon_edit_theirs" tool_tip="Você pode editar os objetos deste amigo"/>
+ </scroll_list>
+</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_group_land_money.xml b/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
index f299d78f79..c66288adf0 100644
--- a/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Terra L$" name="land_money_tab">
<string name="help_text">
- Lotes pertencentes ao grupo são listadas com detalhes de contribuição. Um aviso aparece até que o total de Terras em Uso seja menor ou igual ao Total de Contribuições. As abas de Planejamento, Detalhes e Vendas fornecem informações sobre as finanças do grupo.
+ Lotes pertencentes ao grupo são listadas com detalhes de contribuição. Um aviso aparece até que o total de Terras em Uso seja menor ou igual ao Total de Contribuições. As abas de Detalhes e Vendas fornecem informações sobre as finanças do grupo.
</string>
<button label="?" name="help_button"/>
<string name="cant_view_group_land_text">
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
index 952997a542..34b40aee98 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
@@ -33,11 +33,12 @@
<text length="1" name="text_box3" type="string">
Console do Chat:
</text>
- <spinner label="Ocultar Chat depois" name="fade_chat_time"/>
- <text length="1" name="text_box4" type="string">
+ <spinner label="Ocultar Chat depois" name="fade_chat_time" label_width="112" width="162"/>
+ <text length="1" name="text_box4" type="string" left="310">
(segundos)
</text>
- <text length="1" name="text_box5" type="string">
+ <spinner left="373" name="max_chat_count"/>
+ <text length="1" name="text_box5" type="string" left="435" width="94">
(# linhas)
</text>
<slider label="Opacidade" name="console_opacity"/>
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
index 599d325d8e..af14008c5c 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
@@ -9,7 +9,7 @@
</radio_item>
</radio_group>
<check_box label="Mostrar Posição Inicial na Tela de Login" name="show_location_checkbox"/>
- <combo_box name="fade_out_combobox">
+ <combo_box name="fade_out_combobox" width="166">
<combo_item name="Never">
Nunca
</combo_item>
@@ -55,13 +55,13 @@
<text name="language_textbox">
Linguagem:
</text>
- <text length="1" name="language_textbox2" type="string">
+ <text length="1" name="language_textbox2" type="string" left_delta="313">
(Precisa de reinício para efetivar)
</text>
<string name="region_name_prompt">
Digite o nome da Região
</string>
- <combo_box name="crash_behavior_combobox">
+ <combo_box name="crash_behavior_combobox" width="166">
<combo_item length="1" name="Askbeforesending" type="string">
Perguntar antes de enviar
</combo_item>
@@ -72,7 +72,7 @@
Nunca Enviar
</combo_item>
</combo_box>
- <combo_box name="language_combobox">
+ <combo_box name="language_combobox" width="166">
<combo_item name="System Default Language">
Padrão do Sistema
</combo_item>
@@ -92,7 +92,7 @@
Português - Beta
</combo_item>
<combo_item name="Chinese">
- 汉语/漢語 (Chinês) - Beta
+ 中文 (简体) (Chinês) - Beta
</combo_item>
<combo_item name="(Japanese)">
日本語 (Japonês) - Beta
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
index 327f5639fc..071548029e 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
@@ -110,9 +110,9 @@
<text name="DrawDistanceMeterText2">
m
</text>
- <slider label="Medir Distancia:" name="DrawDistance"/>
- <slider label="Contador máximo de partículas" name="MaxParticleCount"/>
- <slider label="Qualidade de Post Process:" name="RenderPostProcess"/>
+ <slider label="Medir Distancia:" name="DrawDistance" width="255" label_width="146" />
+ <slider label="Contador máx de partículas:" name="MaxParticleCount" width="262" label_width="146" />
+ <slider label="Qualidade de Post Process:" name="RenderPostProcess" width="223" label_width="146" />
<text name="MeshDetailText">
Detalhes de Malha:
</text>
@@ -157,7 +157,7 @@
<text name="TerrainDetailText">
Detalhes do Terreno:
</text>
- <radio_group name="TerrainDetailRadio">
+ <radio_group name="TerrainDetailRadio" left_delta="45" width="276">
<radio_item name="0">
Baixo
</radio_item>
diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml
new file mode 100644
index 0000000000..c57cefaafc
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/strings.xml
@@ -0,0 +1,421 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- This file contains strings that used to be hardcoded in the source.
+ It is only for those strings which don&apos;t belong in a floater.
+ For example, the strings used in avatar chat bubbles, and strings
+ that are returned from one component and may appear in many places-->
+<strings>
+ <string name="LoginInProgress">
+ Fazendo Login. [APP_NAME] pode parecer congelado. Por favor, aguarde.
+ </string>
+ <string name="LoginAuthenticating">
+ Autenticando
+ </string>
+ <string name="LoginMaintenance">
+ Executando manutenção da conta...
+ </string>
+ <string name="LoginAttempt">
+ Falha na tentativa anterior de login. Fazendo Login, tentativa [NUMBER]
+ </string>
+ <string name="LoginPrecaching">
+ Carregando mundo...
+ </string>
+ <string name="LoginInitializingBrowser">
+ Inicializando navegador embutido...
+ </string>
+ <string name="LoginInitializingMultimedia">
+ Inicializando multimídia...
+ </string>
+ <string name="LoginVerifyingCache">
+ Verificando arquivos no cache (pode levar 60-90 segundos)...
+ </string>
+ <string name="LoginProcessingResponse">
+ Processando Resposta...
+ </string>
+ <string name="LoginInitializingWorld">
+ Inicializando Mundo...
+ </string>
+ <string name="LoginDecodingImages">
+ Decodificando imagens...
+ </string>
+ <string name="LoginInitializingQuicktime">
+ Inicializando o QuickTime...
+ </string>
+ <string name="LoginQuicktimeNotFound">
+ O QuickTime não foi encontrado - incapaz de inicializar.
+ </string>
+ <string name="LoginQuicktimeOK">
+ O QuickTime foi inicializado com sucesso.
+ </string>
+ <string name="LoginWaitingForRegionHandshake">
+ Aguardando o handshake com a região...
+ </string>
+ <string name="LoginConnectingToRegion">
+ Conectando à região...
+ </string>
+ <string name="LoginDownloadingClothing">
+ Baixando roupas...
+ </string>
+ <string name="LoginFailedNoNetwork">
+ Erro de Rede: Não foi possível estabelecer uma conexão. Por favor, verifique sua conexão de rede.
+ </string>
+ <string name="AgentLostConnection">
+ Esta região pode estar passando por problemas. Por favor, verifique sua conexão com a internet.
+ </string>
+ <string name="TooltipPerson">
+ Pessoa
+ </string>
+ <string name="TooltipNoName">
+ (sem nome)
+ </string>
+ <string name="TooltipOwner">
+ Proprietário:
+ </string>
+ <string name="TooltipPublic">
+ Público
+ </string>
+ <string name="TooltipIsGroup">
+ (Grupo)
+ </string>
+ <string name="TooltipFlagScript">
+ Script
+ </string>
+ <string name="TooltipFlagPhysics">
+ Física
+ </string>
+ <string name="TooltipFlagTouch">
+ Toque
+ </string>
+ <string name="TooltipFlagL$">
+ L$
+ </string>
+ <string name="TooltipFlagDropInventory">
+ Largar Estoque
+ </string>
+ <string name="TooltipFlagPhantom">
+ Imaterial
+ </string>
+ <string name="TooltipFlagTemporary">
+ Temporário
+ </string>
+ <string name="TooltipFlagRightClickMenu">
+ (Clique com o botão direito para acessar o menu)
+ </string>
+ <string name="TooltipFreeToCopy">
+ Cópia Permitida
+ </string>
+ <string name="TooltipForSaleL$">
+ À venda: L$[AMOUNT]
+ </string>
+ <string name="TooltipForSaleMsg">
+ À venda: [MESSAGE]
+ </string>
+ <string name="TooltipFlagGroupBuild">
+ Construído por Grupo
+ </string>
+ <string name="TooltipFlagNoBuild">
+ Não é Permitido Construir
+ </string>
+ <string name="TooltipFlagNoEdit">
+ Construído por Grupo
+ </string>
+ <string name="TooltipFlagNotSafe">
+ Não é Seguro
+ </string>
+ <string name="TooltipFlagNoFly">
+ Não é Permitido Voar
+ </string>
+ <string name="TooltipFlagGroupScripts">
+ Scripts de Grupo
+ </string>
+ <string name="TooltipFlagNoScripts">
+ Não são Permitidos Scripts
+ </string>
+ <string name="TooltipLand">
+ Terreno:
+ </string>
+ <string name="TooltipMustSingleDrop">
+ Apenas um item único pode ser arrastado para este local
+ </string>
+ <string name="RetrievingData">
+ Buscando...
+ </string>
+ <string name="ReleaseNotes">
+ Notas de Distribuição
+ </string>
+ <string name="LoadingData">
+ Carregando...
+ </string>
+ <string name="AvatarNameNobody">
+ (ninguém)
+ </string>
+ <string name="AvatarNameWaiting">
+ (aguardando)
+ </string>
+ <string name="AvatarNameHippos">
+ (hippos)
+ </string>
+ <string name="GroupNameNone">
+ (nenhum)
+ </string>
+ <string name="AssetErrorNone">
+ Nenhum erro
+ </string>
+ <string name="AssetErrorRequestFailed">
+ Valor pedido falhou
+ </string>
+ <string name="AssetErrorNonexistentFile">
+ Valor pedido: arquivo inexistente
+ </string>
+ <string name="AssetErrorNotInDatabase">
+ Valor pedido: valor não encontrado na base de dados.
+ </string>
+ <string name="AssetErrorEOF">
+ Fim do arquivo
+ </string>
+ <string name="AssetErrorCannotOpenFile">
+ Não é possível abrir arquivo
+ </string>
+ <string name="AssetErrorFileNotFound">
+ Arquivo não encontrado
+ </string>
+ <string name="AssetErrorTCPTimeout">
+ Tempo de transferência de arquivo expirado
+ </string>
+ <string name="AssetErrorCircuitGone">
+ Circuito caiu (Circuit gone)
+ </string>
+ <string name="AssetErrorUnknownStatus">
+ Status desconhecido
+ </string>
+ <string name="AvatarEditingApparance">
+ (Editando Aparência)
+ </string>
+ <string name="AvatarAway">
+ Distante
+ </string>
+ <string name="AvatarBusy">
+ Ocupado
+ </string>
+ <string name="AvatarMuted">
+ Emudecido
+ </string>
+ <string name="anim_express_afraid">
+ Temeroso
+ </string>
+ <string name="anim_express_anger">
+ Bravo
+ </string>
+ <string name="anim_away">
+ Distante
+ </string>
+ <string name="anim_backflip">
+ Virar para trás
+ </string>
+ <string name="anim_express_laugh">
+ Rir segurando a barriga
+ </string>
+ <string name="anim_express_toothsmile">
+ Sorriso largo
+ </string>
+ <string name="anim_blowkiss">
+ Mandar beijo
+ </string>
+ <string name="anim_express_bored">
+ Entediado
+ </string>
+ <string name="anim_bow">
+ Saudar curvando
+ </string>
+ <string name="anim_clap">
+ Aplaudir
+ </string>
+ <string name="anim_courtbow">
+ Saudação formal
+ </string>
+ <string name="anim_express_cry">
+ Chorar
+ </string>
+ <string name="anim_dance1">
+ Dança 1
+ </string>
+ <string name="anim_dance2">
+ Dança 2
+ </string>
+ <string name="anim_dance3">
+ Dança 3
+ </string>
+ <string name="anim_dance4">
+ Dança 4
+ </string>
+ <string name="anim_dance5">
+ Dança 5
+ </string>
+ <string name="anim_dance6">
+ Dança 6
+ </string>
+ <string name="anim_dance7">
+ Dança 7
+ </string>
+ <string name="anim_dance8">
+ Dança 8
+ </string>
+ <string name="anim_express_disdain">
+ Desdén
+ </string>
+ <string name="anim_drink">
+ Beber
+ </string>
+ <string name="anim_express_embarrased">
+ Envergonhado
+ </string>
+ <string name="anim_angry_fingerwag">
+ Negar com o dedo.
+ </string>
+ <string name="anim_fist_pump">
+ Vibrar provocando
+ </string>
+ <string name="anim_yoga_float">
+ Levitar Yoga
+ </string>
+ <string name="anim_express_frown">
+ Careta
+ </string>
+ <string name="anim_impatient">
+ Impaciente
+ </string>
+ <string name="anim_jumpforjoy">
+ Pular de Alegria
+ </string>
+ <string name="anim_kissmybutt">
+ Beije meu Bumbum
+ </string>
+ <string name="anim_express_kiss">
+ Beijar
+ </string>
+ <string name="anim_laugh_short">
+ rir
+ </string>
+ <string name="anim_musclebeach">
+ Exibir músculos
+ </string>
+ <string name="anim_no_unhappy">
+ Não (descontente)
+ </string>
+ <string name="anim_no_head">
+ Não
+ </string>
+ <string name="anim_nyanya">
+ Nya-nya-nya
+ </string>
+ <string name="anim_punch_onetwo">
+ Um-Dois soco
+ </string>
+ <string name="anim_express_open_mouth">
+ Abrir a boca
+ </string>
+ <string name="anim_peace">
+ Paz
+ </string>
+ <string name="anim_point_you">
+ Apontar para o outro
+ </string>
+ <string name="anim_point_me">
+ Apontar para si
+ </string>
+ <string name="anim_punch_l">
+ Socar Esquerda
+ </string>
+ <string name="anim_punch_r">
+ Socar Direita
+ </string>
+ <string name="anim_rps_countdown">
+ RPS contar
+ </string>
+ <string name="anim_rps_paper">
+ RPS papel
+ </string>
+ <string name="anim_rps_rock">
+ RPS pedra
+ </string>
+ <string name="anim_rps_scissors">
+ RPS tesoura
+ </string>
+ <string name="anim_express_repulsed">
+ Repulsa
+ </string>
+ <string name="anim_kick_roundhouse_r">
+ Chute giratório
+ </string>
+ <string name="anim_express_sad">
+ Triste
+ </string>
+ <string name="anim_salute">
+ Saúde
+ </string>
+ <string name="anim_shout">
+ Gritar
+ </string>
+ <string name="anim_express_shrug">
+ Encolher ombros
+ </string>
+ <string name="anim_express_smile">
+ Sorrir
+ </string>
+ <string name="anim_smoke_idle">
+ Fumar a toa
+ </string>
+ <string name="anim_smoke_inhale">
+ Inalar Fumaça
+ </string>
+ <string name="anim_smoke_throw_down">
+ Expelir Fumaça
+ </string>
+ <string name="anim_express_surprise">
+ Surpresa
+ </string>
+ <string name="anim_sword_strike_r">
+ Golpe de Espada
+ </string>
+ <string name="anim_angry_tantrum">
+ Enraivecer
+ </string>
+ <string name="anim_express_tongue_out">
+ Mostrar a língua
+ </string>
+ <string name="anim_hello">
+ Onda
+ </string>
+ <string name="anim_whisper">
+ Sussurrar
+ </string>
+ <string name="anim_whistle">
+ Assobiar
+ </string>
+ <string name="anim_express_wink">
+ Piscar
+ </string>
+ <string name="anim_wink_hollywood">
+ Piscar (Hollywood)
+ </string>
+ <string name="anim_express_worry">
+ Preocupar-se
+ </string>
+ <string name="anim_yes_happy">
+ Sim (Feliz)
+ </string>
+ <string name="anim_yes_head">
+ Sim
+ </string>
+ <string name="texture_loading">
+ Carregando...
+ </string>
+ <string name="worldmap_offline">
+ Desconectado
+ </string>
+ <string name="whisper">
+ sussurra:
+ </string>
+ <string name="shout">
+ grita:
+ </string>
+</strings>