From cd17687f01420952712a500107e0f93e7ab8d5f8 Mon Sep 17 00:00:00 2001
From: Jacek Antonelli
Date: Fri, 15 Aug 2008 23:45:34 -0500
Subject: Second Life viewer sources 1.19.1.0
---
linden/doc/contributions.txt | 13 +
linden/etc/message.xml | 21 +-
linden/indra/SConstruct | 38 +-
linden/indra/indra_complete/indra_complete.sln | 2 +
linden/indra/indra_complete/indra_complete_vc8.sln | 3 -
linden/indra/lib/python/indra/base/config.py | 25 +
linden/indra/lib/python/indra/base/lllog.py | 72 +
linden/indra/lib/python/indra/base/lluuid.py | 21 +-
linden/indra/lib/python/indra/base/metrics.py | 23 +-
linden/indra/lib/python/indra/ipc/mysql_pool.py | 5 +-
linden/indra/lib/python/indra/ipc/russ.py | 10 +-
linden/indra/lib/python/indra/util/llsubprocess.py | 106 +
linden/indra/lib/python/indra/util/named_query.py | 48 +-
linden/indra/lib/python/indra/util/shutil2.py | 84 +
linden/indra/llaudio/llaudio_vc8.vcproj | 646 +-
linden/indra/llaudio/llaudio_vc9.vcproj | 648 +-
linden/indra/llcharacter/llcharacter.cpp | 26 +-
linden/indra/llcharacter/llcharacter.h | 5 +-
linden/indra/llcharacter/llcharacter_vc8.vcproj | 838 +-
linden/indra/llcharacter/llcharacter_vc9.vcproj | 840 +-
linden/indra/llcharacter/llkeyframemotion.cpp | 295 +-
linden/indra/llcharacter/llkeyframemotion.h | 11 +-
linden/indra/llcharacter/llkeyframemotionparam.cpp | 149 +-
linden/indra/llcharacter/llkeyframemotionparam.h | 16 +-
linden/indra/llcharacter/llmotioncontroller.cpp | 9 +-
linden/indra/llcharacter/llmotioncontroller.h | 2 +
linden/indra/llcharacter/llpose.cpp | 23 +-
linden/indra/llcharacter/llpose.h | 2 -
linden/indra/llcharacter/llstatemachine.h | 1 -
linden/indra/llcommon/indra_constants.h | 4 +
linden/indra/llcommon/linden_common.h | 7 +
linden/indra/llcommon/llapp.cpp | 11 +-
linden/indra/llcommon/llapr.cpp | 8 +-
linden/indra/llcommon/llclickaction.h | 2 +
linden/indra/llcommon/llcommon_vc8.vcproj | 1618 ++--
linden/indra/llcommon/llcommon_vc9.vcproj | 1616 ++--
linden/indra/llcommon/llfasttimer.h | 7 +-
linden/indra/llcommon/llfile.cpp | 28 +
linden/indra/llcommon/llfile.h | 9 +
linden/indra/llcommon/llkeythrottle.h | 5 +-
linden/indra/llcommon/lllog.cpp | 3 +-
linden/indra/llcommon/llmemory.h | 50 +-
linden/indra/llcommon/llpreprocessor.h | 27 -
linden/indra/llcommon/llsdserialize.cpp | 763 +-
linden/indra/llcommon/llsdserialize.h | 232 +-
linden/indra/llcommon/llsdserialize_xml.cpp | 23 +-
linden/indra/llcommon/llstreamtools.cpp | 27 +-
linden/indra/llcommon/llstreamtools.h | 7 +-
linden/indra/llcommon/llsys.cpp | 3 +-
linden/indra/llcommon/llthread.cpp | 7 +
linden/indra/llcommon/llthread.h | 10 +-
linden/indra/llcommon/llversionserver.h | 6 +-
linden/indra/llcommon/llversionviewer.h | 4 +-
linden/indra/llcrashlogger/llcrashlogger.cpp | 10 +-
linden/indra/llimage/llimage.vcproj | 6 +-
linden/indra/llimage/llimage_vc8.vcproj | 650 +-
linden/indra/llimage/llimage_vc9.vcproj | 652 +-
linden/indra/llinventory/llinventory.cpp | 70 +-
linden/indra/llinventory/llinventory.h | 4 +-
linden/indra/llinventory/llinventory_vc8.vcproj | 694 +-
linden/indra/llinventory/llinventory_vc9.vcproj | 696 +-
linden/indra/llinventory/llparcel.cpp | 1409 +--
linden/indra/llinventory/llparcel.h | 22 +
linden/indra/llinventory/llpermissions.cpp | 33 +
linden/indra/llinventory/llpermissions.h | 3 +
linden/indra/llinventory/llsaleinfo.cpp | 21 +
linden/indra/llinventory/llsaleinfo.h | 3 +
linden/indra/llmath/llcamera.cpp | 127 +-
linden/indra/llmath/llcamera.h | 22 +-
linden/indra/llmath/llcoordframe.cpp | 6 +-
linden/indra/llmath/llmath.h | 16 +
linden/indra/llmath/llmath_vc8.vcproj | 944 +--
linden/indra/llmath/llmath_vc9.vcproj | 946 +--
linden/indra/llmath/lloctree.h | 382 +-
linden/indra/llmath/llrect.h | 32 +-
linden/indra/llmath/lltreenode.h | 89 +-
linden/indra/llmath/llvolume.cpp | 546 +-
linden/indra/llmath/llvolume.h | 18 +-
linden/indra/llmath/llvolumemgr.cpp | 23 +
linden/indra/llmath/llvolumemgr.h | 1 +
linden/indra/llmath/v3color.cpp | 8 +
linden/indra/llmath/v3color.h | 10 +-
linden/indra/llmath/v4color.cpp | 10 +-
linden/indra/llmath/v4color.h | 4 +-
linden/indra/llmath/v4math.h | 3 +-
linden/indra/llmedia/files.lst | 10 +-
linden/indra/llmedia/llmedia.vcproj | 73 +-
linden/indra/llmedia/llmedia_vc8.vcproj | 60 +-
linden/indra/llmedia/llmedia_vc9.vcproj | 626 +-
linden/indra/llmedia/llmediabase.cpp | 210 -
linden/indra/llmedia/llmediabase.h | 313 +-
linden/indra/llmedia/llmediaemitter.h | 80 +-
linden/indra/llmedia/llmediaemitterevents.h | 61 -
linden/indra/llmedia/llmediaengine.cpp | 635 --
linden/indra/llmedia/llmediaengine.h | 150 -
linden/indra/llmedia/llmediaimplcommon.cpp | 540 ++
linden/indra/llmedia/llmediaimplcommon.h | 161 +
linden/indra/llmedia/llmediaimplexample1.cpp | 228 +
linden/indra/llmedia/llmediaimplexample1.h | 72 +
linden/indra/llmedia/llmediaimplexample2.cpp | 195 +
linden/indra/llmedia/llmediaimplexample2.h | 75 +
linden/indra/llmedia/llmediaimplfactory.cpp | 104 +
linden/indra/llmedia/llmediaimplfactory.h | 99 +
linden/indra/llmedia/llmediaimplgstreamer.cpp | 652 +-
linden/indra/llmedia/llmediaimplgstreamer.h | 105 +-
linden/indra/llmedia/llmediaimplgstreamer_syms.cpp | 20 +-
.../indra/llmedia/llmediaimplgstreamervidplug.cpp | 4 +-
linden/indra/llmedia/llmediaimplgstreamervidplug.h | 4 +-
linden/indra/llmedia/llmediaimplllmozlib.cpp | 590 ++
linden/indra/llmedia/llmediaimplllmozlib.h | 120 +
linden/indra/llmedia/llmediaimplquicktime.cpp | 1191 +--
linden/indra/llmedia/llmediaimplquicktime.h | 166 +-
linden/indra/llmedia/llmediaimplregister.h | 59 +
linden/indra/llmedia/llmediamanager.cpp | 255 +
linden/indra/llmedia/llmediamanager.h | 120 +
linden/indra/llmedia/llmediamoviebase.cpp | 234 -
linden/indra/llmedia/llmediamoviebase.h | 84 -
linden/indra/llmedia/llmediaobserver.h | 103 +
linden/indra/llmedia/llmediaobservers.h | 54 -
linden/indra/llmessage/llassetstorage.cpp | 59 +
linden/indra/llmessage/llassetstorage.h | 26 +
linden/indra/llmessage/llbuffer.h | 12 +
linden/indra/llmessage/llcachename.cpp | 194 +-
linden/indra/llmessage/llcachename.h | 11 +-
linden/indra/llmessage/llcallbacklisth.h | 103 -
linden/indra/llmessage/llcircuit.h | 1 -
linden/indra/llmessage/llcurl.cpp | 962 ++-
linden/indra/llmessage/llcurl.h | 205 +-
linden/indra/llmessage/llfiltersd2xmlrpc.cpp | 4 +-
linden/indra/llmessage/llhost.cpp | 12 +-
linden/indra/llmessage/llhost.h | 4 +-
linden/indra/llmessage/llhttpassetstorage.cpp | 76 +-
linden/indra/llmessage/llhttpclient.cpp | 157 +-
linden/indra/llmessage/llhttpclient.h | 71 +-
linden/indra/llmessage/llhttpnode.h | 2 +-
linden/indra/llmessage/lliohttpserver.cpp | 6 +-
linden/indra/llmessage/llmessage.vcproj | 3 -
linden/indra/llmessage/llmessage_vc8.vcproj | 1846 ++--
linden/indra/llmessage/llmessage_vc9.vcproj | 1848 ++--
linden/indra/llmessage/llnamevalue.h | 1 -
linden/indra/llmessage/llpacketring.h | 1 -
linden/indra/llmessage/llsdrpcclient.cpp | 2 +-
linden/indra/llmessage/llsdrpcserver.cpp | 5 +-
linden/indra/llmessage/llservicebuilder.cpp | 58 +-
linden/indra/llmessage/llurlrequest.cpp | 209 +-
linden/indra/llmessage/llurlrequest.h | 26 +-
linden/indra/llmessage/llxfermanager.cpp | 46 +-
linden/indra/llmessage/llxfermanager.h | 4 +-
linden/indra/llmessage/message.h | 2 -
linden/indra/llprimitive/llmaterialtable.cpp | 104 +-
linden/indra/llprimitive/llmaterialtable.h | 4 +-
linden/indra/llprimitive/llprimitive_vc8.vcproj | 638 +-
linden/indra/llprimitive/llprimitive_vc9.vcproj | 640 +-
linden/indra/llprimitive/lltextureentry.cpp | 1 -
linden/indra/llrender/files.lst | 2 +
linden/indra/llrender/llfontgl.cpp | 73 +-
linden/indra/llrender/llglimmediate.cpp | 354 +
linden/indra/llrender/llglimmediate.h | 104 +
linden/indra/llrender/llimagegl.cpp | 18 +-
linden/indra/llrender/llimagegl.h | 3 +-
linden/indra/llrender/llrender.vcproj | 12 +
linden/indra/llrender/llrender_vc8.vcproj | 642 +-
linden/indra/llrender/llrender_vc9.vcproj | 644 +-
linden/indra/llrender/llrendertarget.cpp | 185 +
linden/indra/llrender/llrendertarget.h | 116 +
linden/indra/llrender/llvertexbuffer.cpp | 538 +-
linden/indra/llrender/llvertexbuffer.h | 67 +-
linden/indra/llui/files.lst | 4 +
linden/indra/llui/llalertdialog.cpp | 16 +-
linden/indra/llui/llalertdialog.h | 59 +-
linden/indra/llui/llbutton.cpp | 65 +-
linden/indra/llui/llbutton.h | 39 +-
linden/indra/llui/llcheckboxctrl.cpp | 13 +-
linden/indra/llui/llclipboard.cpp | 4 +-
linden/indra/llui/llclipboard.h | 18 +-
linden/indra/llui/llcombobox.cpp | 71 +-
linden/indra/llui/llcombobox.h | 16 +-
linden/indra/llui/llctrlselectioninterface.h | 12 +-
linden/indra/llui/lldraghandle.cpp | 91 +-
linden/indra/llui/lldraghandle.h | 7 +
linden/indra/llui/lleditmenuhandler.cpp | 96 +-
linden/indra/llui/lleditmenuhandler.h | 46 +-
linden/indra/llui/llfloater.cpp | 488 +-
linden/indra/llui/llfloater.h | 172 +-
linden/indra/llui/llfocusmgr.cpp | 34 +-
linden/indra/llui/llfocusmgr.h | 33 +-
linden/indra/llui/lliconctrl.cpp | 4 +-
linden/indra/llui/lliconctrl.h | 2 +-
linden/indra/llui/llkeywords.cpp | 2 +-
linden/indra/llui/llkeywords.h | 34 +-
linden/indra/llui/lllineeditor.cpp | 214 +-
linden/indra/llui/lllineeditor.h | 143 +-
linden/indra/llui/llmemberlistener.h | 53 +-
linden/indra/llui/llmenugl.cpp | 566 +-
linden/indra/llui/llmenugl.h | 268 +-
linden/indra/llui/llmodaldialog.cpp | 23 +-
linden/indra/llui/llmodaldialog.h | 8 +-
linden/indra/llui/llmultislider.cpp | 677 ++
linden/indra/llui/llmultislider.h | 129 +
linden/indra/llui/llmultisliderctrl.cpp | 634 ++
linden/indra/llui/llmultisliderctrl.h | 160 +
linden/indra/llui/llpanel.cpp | 231 +-
linden/indra/llui/llpanel.h | 176 +-
linden/indra/llui/llradiogroup.cpp | 28 +-
linden/indra/llui/llradiogroup.h | 41 +-
linden/indra/llui/llresizebar.cpp | 42 +-
linden/indra/llui/llresizebar.h | 11 +-
linden/indra/llui/llresizehandle.cpp | 27 +-
linden/indra/llui/llresizehandle.h | 9 +-
linden/indra/llui/llresmgr.h | 5 +-
linden/indra/llui/llrootview.cpp | 12 +-
linden/indra/llui/llrootview.h | 4 +-
linden/indra/llui/llscrollbar.cpp | 48 +-
linden/indra/llui/llscrollbar.h | 26 +-
linden/indra/llui/llscrollcontainer.cpp | 68 +-
linden/indra/llui/llscrollcontainer.h | 39 +-
linden/indra/llui/llscrollingpanellist.cpp | 20 -
linden/indra/llui/llscrollingpanellist.h | 28 +-
linden/indra/llui/llscrolllistctrl.cpp | 123 +-
linden/indra/llui/llscrolllistctrl.h | 127 +-
linden/indra/llui/llslider.cpp | 30 +-
linden/indra/llui/llslider.h | 19 +-
linden/indra/llui/llsliderctrl.cpp | 31 +-
linden/indra/llui/llsliderctrl.h | 43 +-
linden/indra/llui/llspinctrl.cpp | 25 +-
linden/indra/llui/llspinctrl.h | 37 +-
linden/indra/llui/llstyle.cpp | 94 +-
linden/indra/llui/llstyle.h | 51 +-
linden/indra/llui/lltabcontainer.cpp | 2519 +++---
linden/indra/llui/lltabcontainer.h | 263 +-
linden/indra/llui/lltabcontainervertical.cpp | 582 +-
linden/indra/llui/lltabcontainervertical.h | 67 +-
linden/indra/llui/lltextbox.cpp | 124 +-
linden/indra/llui/lltextbox.h | 30 +-
linden/indra/llui/lltexteditor.cpp | 828 +-
linden/indra/llui/lltexteditor.h | 314 +-
linden/indra/llui/llui.cpp | 1048 +--
linden/indra/llui/llui.h | 330 +-
linden/indra/llui/llui.vcproj | 18 +
linden/indra/llui/llui_vc8.vcproj | 1206 +--
linden/indra/llui/llui_vc9.vcproj | 1208 +--
linden/indra/llui/lluictrl.cpp | 203 +-
linden/indra/llui/lluictrl.h | 132 +-
linden/indra/llui/lluictrlfactory.cpp | 224 +-
linden/indra/llui/lluictrlfactory.h | 127 +-
linden/indra/llui/lluifwd.h | 63 +
linden/indra/llui/lluistring.cpp | 12 +-
linden/indra/llui/lluistring.h | 10 +-
linden/indra/llui/lluixmltags.h | 179 +-
linden/indra/llui/llundo.cpp | 7 +-
linden/indra/llui/llundo.h | 48 +-
linden/indra/llui/llview.cpp | 1042 +--
linden/indra/llui/llview.h | 486 +-
linden/indra/llui/llviewborder.cpp | 96 +-
linden/indra/llui/llviewborder.h | 38 +-
linden/indra/llui/llviewquery.cpp | 17 +-
linden/indra/llui/llviewquery.h | 27 +-
linden/indra/llvfs/llvfs_vc8.vcproj | 590 +-
linden/indra/llvfs/llvfs_vc9.vcproj | 592 +-
linden/indra/llwindow/lldxhardware.cpp | 2 +
linden/indra/llwindow/llgl.cpp | 269 +-
linden/indra/llwindow/llgl.h | 95 +
linden/indra/llwindow/llglheaders.h | 36 +
linden/indra/llwindow/llglstates.h | 125 +-
linden/indra/llwindow/llglstubs.h | 236 -
linden/indra/llwindow/llmousehandler.h | 2 +-
linden/indra/llwindow/llwindow.cpp | 14 +-
linden/indra/llwindow/llwindow.h | 5 +-
linden/indra/llwindow/llwindow.vcproj | 8 +-
linden/indra/llwindow/llwindow_vc8.vcproj | 792 +-
linden/indra/llwindow/llwindow_vc9.vcproj | 796 +-
linden/indra/llwindow/llwindowmacosx.cpp | 38 +-
linden/indra/llwindow/llwindowsdl.cpp | 45 +-
linden/indra/llwindow/llwindowwin32.cpp | 17 +-
linden/indra/llwindow/llwindowwin32.h | 1 +
linden/indra/llxml/llcontrol.cpp | 35 +-
linden/indra/llxml/llxml_vc8.vcproj | 558 +-
linden/indra/llxml/llxml_vc9.vcproj | 560 +-
linden/indra/llxml/llxmlnode.cpp | 107 +-
linden/indra/lscript/lscript_byteconvert.h | 37 +-
linden/indra/lscript/lscript_compile/indra.l | 14 +
.../lscript_compile/lscript_compile_fb_vc8.vcproj | 264 +-
.../lscript_compile/lscript_compile_fb_vc9.vcproj | 264 +-
.../lscript_compile/lscript_compile_ly_vc8.vcproj | 262 +-
.../lscript_compile/lscript_compile_vc8.vcproj | 662 +-
.../lscript_compile/lscript_compile_vc9.vcproj | 664 +-
.../lscript/lscript_execute/lscript_execute.cpp | 28 +-
.../lscript_execute/lscript_execute_vc8.vcproj | 558 +-
.../lscript_execute/lscript_execute_vc9.vcproj | 560 +-
.../lscript/lscript_execute/lscript_readlso.cpp | 184 +-
linden/indra/lscript/lscript_library.h | 8 +-
.../lscript/lscript_library/lscript_alloc.cpp | 24 +-
.../lscript/lscript_library/lscript_library.cpp | 12 +-
.../lscript_library/lscript_library_vc8.vcproj | 542 +-
.../lscript_library/lscript_library_vc9.vcproj | 544 +-
.../indra/newview/English.lproj/InfoPlist.strings | 4 +-
linden/indra/newview/Info-SecondLife.plist | 2 +-
linden/indra/newview/app_settings/colors_base.xml | 13 +-
.../indra/newview/app_settings/high_graphics.xml | 39 +
linden/indra/newview/app_settings/keywords.ini | 12 +
linden/indra/newview/app_settings/low_graphics.xml | 39 +
linden/indra/newview/app_settings/mid_graphics.xml | 39 +
.../shaders/class1/avatar/avatarF.glsl | 7 +
.../shaders/class1/avatar/avatarSkinV.glsl | 7 +-
.../shaders/class1/avatar/avatarV.glsl | 22 +-
.../shaders/class1/avatar/eyeballF.glsl | 7 +
.../shaders/class1/avatar/eyeballV.glsl | 19 +-
.../shaders/class1/avatar/pickAvatarF.glsl | 7 +
.../shaders/class1/avatar/pickAvatarV.glsl | 10 +-
.../shaders/class1/effects/glowExtractF.glsl | 28 +
.../shaders/class1/effects/glowExtractV.glsl | 14 +
.../app_settings/shaders/class1/effects/glowF.glsl | 31 +
.../app_settings/shaders/class1/effects/glowV.glsl | 22 +
.../shaders/class1/environment/glowF.glsl | 14 -
.../shaders/class1/environment/glowV.glsl | 10 -
.../shaders/class1/environment/groundF.glsl | 5 -
.../shaders/class1/environment/groundV.glsl | 6 -
.../shaders/class1/environment/scatterF.glsl | 17 -
.../shaders/class1/environment/scatterV.glsl | 15 -
.../shaders/class1/environment/terrainF.glsl | 16 +-
.../shaders/class1/environment/terrainV.glsl | 13 +-
.../shaders/class1/environment/terrainWaterF.glsl | 23 +
.../shaders/class1/environment/underWaterF.glsl | 45 +
.../shaders/class1/environment/waterF.glsl | 96 +-
.../shaders/class1/environment/waterFogF.glsl | 20 +
.../shaders/class1/environment/waterV.glsl | 90 +-
.../shaders/class1/interface/highlightF.glsl | 7 +
.../shaders/class1/interface/highlightV.glsl | 15 +-
.../shaders/class1/lighting/lightF.glsl | 30 +-
.../shaders/class1/lighting/lightFullbrightF.glsl | 15 +
.../class1/lighting/lightFullbrightShinyF.glsl | 15 +
.../class1/lighting/lightFullbrightWaterF.glsl | 15 +
.../class1/lighting/lightFuncSpecularV.glsl | 46 +
.../shaders/class1/lighting/lightFuncV.glsl | 34 +
.../shaders/class1/lighting/lightShinyF.glsl | 17 +
.../shaders/class1/lighting/lightShinyWaterF.glsl | 17 +
.../shaders/class1/lighting/lightSpecularV.glsl | 26 +
.../shaders/class1/lighting/lightV.glsl | 89 +-
.../shaders/class1/lighting/lightWaterF.glsl | 15 +
.../class1/lighting/sumLightsSpecularV.glsl | 35 +
.../shaders/class1/lighting/sumLightsV.glsl | 29 +
.../shaders/class1/objects/alphaF.glsl | 6 -
.../shaders/class1/objects/alphaV.glsl | 21 -
.../shaders/class1/objects/bumpshinyF.glsl | 18 -
.../shaders/class1/objects/bumpshinyV.glsl | 25 -
.../shaders/class1/objects/fullbrightF.glsl | 13 +
.../shaders/class1/objects/fullbrightShinyF.glsl | 13 +
.../shaders/class1/objects/fullbrightShinyV.glsl | 29 +
.../shaders/class1/objects/fullbrightV.glsl | 23 +
.../shaders/class1/objects/fullbrightWaterF.glsl | 13 +
.../shaders/class1/objects/shinyF.glsl | 16 +-
.../shaders/class1/objects/shinyV.glsl | 25 +-
.../shaders/class1/objects/shinyWaterF.glsl | 13 +
.../shaders/class1/objects/simpleF.glsl | 7 +
.../shaders/class1/objects/simpleV.glsl | 22 +-
.../shaders/class1/objects/simpleWaterF.glsl | 13 +
.../shaders/class1/windlight/atmosphericsF.glsl | 13 +
.../class1/windlight/atmosphericsHelpersV.glsl | 34 +
.../shaders/class1/windlight/atmosphericsV.glsl | 15 +
.../class1/windlight/atmosphericsVarsF.glsl | 13 +
.../class1/windlight/atmosphericsVarsV.glsl | 19 +
.../shaders/class1/windlight/gammaF.glsl | 19 +
.../shaders/class1/windlight/transportF.glsl | 26 +
.../shaders/class2/avatar/avatarV.glsl | 48 -
.../shaders/class2/avatar/eyeballV.glsl | 21 +-
.../app_settings/shaders/class2/effects/blurF.glsl | 31 +
.../app_settings/shaders/class2/effects/blurV.glsl | 35 +
.../shaders/class2/effects/colorFilterF.glsl | 31 +
.../shaders/class2/effects/drawQuadV.glsl | 14 +
.../shaders/class2/effects/extractF.glsl | 22 +
.../shaders/class2/effects/nightVisionF.glsl | 42 +
.../shaders/class2/effects/simpleF.glsl | 14 +
.../shaders/class2/environment/terrainF.glsl | 38 +
.../shaders/class2/environment/terrainV.glsl | 52 +
.../shaders/class2/environment/terrainWaterF.glsl | 39 +
.../shaders/class2/environment/underWaterF.glsl | 88 +
.../shaders/class2/environment/waterF.glsl | 223 +-
.../shaders/class2/environment/waterFogF.glsl | 54 +
.../shaders/class2/environment/waterV.glsl | 53 -
.../shaders/class2/lighting/lightF.glsl | 41 +-
.../shaders/class2/lighting/lightFullbrightF.glsl | 23 +
.../class2/lighting/lightFullbrightShinyF.glsl | 30 +
.../class2/lighting/lightFullbrightWaterF.glsl | 21 +
.../shaders/class2/lighting/lightShinyF.glsl | 29 +
.../shaders/class2/lighting/lightShinyWaterF.glsl | 27 +
.../shaders/class2/lighting/lightSpecularV.glsl | 16 +
.../shaders/class2/lighting/lightV.glsl | 128 +-
.../shaders/class2/lighting/lightWaterF.glsl | 21 +
.../class2/lighting/sumLightsSpecularV.glsl | 41 +
.../shaders/class2/lighting/sumLightsV.glsl | 34 +
.../shaders/class2/objects/alphaF.glsl | 18 -
.../shaders/class2/objects/alphaV.glsl | 24 -
.../shaders/class2/objects/bumpshinyF.glsl | 29 -
.../shaders/class2/objects/bumpshinyV.glsl | 31 -
.../shaders/class2/objects/shinyV.glsl | 31 +
.../shaders/class2/windlight/atmosphericsF.glsl | 24 +
.../class2/windlight/atmosphericsHelpersV.glsl | 41 +
.../shaders/class2/windlight/atmosphericsV.glsl | 137 +
.../class2/windlight/atmosphericsVarsF.glsl | 34 +
.../class2/windlight/atmosphericsVarsV.glsl | 60 +
.../shaders/class2/windlight/cloudsF.glsl | 76 +
.../shaders/class2/windlight/cloudsV.glsl | 163 +
.../shaders/class2/windlight/gammaF.glsl | 24 +
.../shaders/class2/windlight/skyF.glsl | 41 +
.../shaders/class2/windlight/skyV.glsl | 138 +
.../shaders/class2/windlight/transportF.glsl | 35 +
.../shaders/class3/avatar/avatarV.glsl | 112 +-
.../shaders/class3/environment/waterF.glsl | 145 -
.../class3/lighting/sumLightsSpecularV.glsl | 44 +
.../shaders/class3/lighting/sumLightsV.glsl | 41 +
.../shaders/class3/objects/bumpshinyF.glsl | 25 -
.../app_settings/shaders/shader_heirarchy.txt | 176 +
.../indra/newview/app_settings/ultra_graphics.xml | 39 +
.../newview/app_settings/windlight/clouds2.tga | Bin 0 -> 262935 bytes
.../app_settings/windlight/days/Default.xml | 36 +
.../app_settings/windlight/postprocesseffects.xml | 2 +
.../app_settings/windlight/skies/A%2D12AM.xml | 141 +
.../app_settings/windlight/skies/A%2D12PM.xml | 141 +
.../app_settings/windlight/skies/A%2D3AM.xml | 141 +
.../app_settings/windlight/skies/A%2D3PM.xml | 141 +
.../app_settings/windlight/skies/A%2D6AM.xml | 141 +
.../app_settings/windlight/skies/A%2D6PM.xml | 141 +
.../app_settings/windlight/skies/A%2D9AM.xml | 141 +
.../app_settings/windlight/skies/A%2D9PM.xml | 141 +
.../app_settings/windlight/skies/Barcelona.xml | 141 +
.../app_settings/windlight/skies/Blizzard.xml | 141 +
.../app_settings/windlight/skies/Blue%20Midday.xml | 141 +
.../windlight/skies/Coastal%20Afternoon.xml | 141 +
.../windlight/skies/Coastal%20Sunset.xml | 141 +
.../app_settings/windlight/skies/Default.xml | 141 +
.../windlight/skies/Desert%20Sunset.xml | 141 +
.../app_settings/windlight/skies/Fine%20Day.xml | 141 +
.../windlight/skies/Fluffy%20Big%20Clouds.xml | 141 +
.../newview/app_settings/windlight/skies/Foggy.xml | 141 +
.../windlight/skies/Funky%20Funky%20Funky.xml | 141 +
.../app_settings/windlight/skies/Funky%20Funky.xml | 141 +
.../app_settings/windlight/skies/Gelatto.xml | 141 +
.../newview/app_settings/windlight/skies/Ghost.xml | 141 +
.../windlight/skies/Incongruent%20Truths.xml | 141 +
.../app_settings/windlight/skies/Midday%201.xml | 141 +
.../app_settings/windlight/skies/Midday%202.xml | 141 +
.../app_settings/windlight/skies/Midday%203.xml | 141 +
.../app_settings/windlight/skies/Midday%204.xml | 141 +
.../newview/app_settings/windlight/skies/Night.xml | 141 +
.../app_settings/windlight/skies/Pirate.xml | 141 +
.../app_settings/windlight/skies/Purple.xml | 141 +
.../windlight/skies/Sailor%27s%20Delight.xml | 141 +
.../windlight/skies/Sheer%20Surreality.xml | 141 +
.../app_settings/windlight/water/Default.xml | 43 +
.../app_settings/windlight/water/Glassy.xml | 43 +
.../newview/app_settings/windlight/water/Murky.xml | 43 +
.../newview/app_settings/windlight/water/Pond.xml | 43 +
.../windlight/water/SNAKE%21%21%21.xml | 43 +
.../windlight/water/Second%20Plague.xml | 43 +
.../app_settings/windlight/water/Valdez.xml | 43 +
linden/indra/newview/featuretable.txt | 496 +-
linden/indra/newview/featuretable_linux.txt | 442 +-
linden/indra/newview/featuretable_mac.txt | 477 +-
linden/indra/newview/featuretable_solaris.txt | 2 +-
linden/indra/newview/files.lst | 56 +-
linden/indra/newview/gpu_table.txt | 312 +-
.../installers/windows/installer_template.nsi | 1894 +++--
linden/indra/newview/licenses-linux.txt | 43 +
linden/indra/newview/licenses-mac.txt | 43 +
linden/indra/newview/licenses-solaris.txt | 43 +
linden/indra/newview/licenses-win32.txt | 45 +
linden/indra/newview/linux_tools/launch_url.sh | 14 +-
linden/indra/newview/linux_tools/wrapper.sh | 10 +-
linden/indra/newview/llagent.cpp | 158 +-
linden/indra/newview/llagent.h | 3 +-
linden/indra/newview/llanimalcontrols.cpp | 458 -
linden/indra/newview/llanimalcontrols.h | 196 -
linden/indra/newview/llappearance.h | 12 +-
linden/indra/newview/llappviewer.cpp | 299 +-
linden/indra/newview/llappviewerwin32.cpp | 30 +-
linden/indra/newview/llbox.cpp | 28 +-
linden/indra/newview/llcallingcard.cpp | 23 +-
linden/indra/newview/llcallingcard.h | 12 +-
linden/indra/newview/llcameraview.cpp | 12 +-
linden/indra/newview/llcameraview.h | 4 +-
linden/indra/newview/llcape.cpp | 642 --
linden/indra/newview/llcape.h | 231 -
linden/indra/newview/llchatbar.cpp | 6 +
.../indra/newview/llclassifiedstatsresponder.cpp | 4 +-
linden/indra/newview/llclassifiedstatsresponder.h | 4 +-
linden/indra/newview/llcloud.cpp | 35 -
linden/indra/newview/llcloud.h | 1 -
linden/indra/newview/llcolorswatch.cpp | 47 +-
linden/indra/newview/llcolorswatch.h | 2 +-
linden/indra/newview/llcompass.cpp | 1 -
linden/indra/newview/llcompilequeue.cpp | 1 -
linden/indra/newview/llconsole.cpp | 6 +-
linden/indra/newview/llcontainerview.cpp | 21 +-
linden/indra/newview/llcontroldef.cpp | 318 +-
linden/indra/newview/llcubemap.cpp | 40 +-
linden/indra/newview/llcubemap.h | 9 +-
linden/indra/newview/lldebugmessagebox.cpp | 1 -
linden/indra/newview/lldrawable.cpp | 359 +-
linden/indra/newview/lldrawable.h | 28 +-
linden/indra/newview/lldrawpool.cpp | 240 +-
linden/indra/newview/lldrawpool.h | 33 +-
linden/indra/newview/lldrawpoolalpha.cpp | 288 +-
linden/indra/newview/lldrawpoolalpha.h | 18 +-
linden/indra/newview/lldrawpoolavatar.cpp | 309 +-
linden/indra/newview/lldrawpoolavatar.h | 6 +-
linden/indra/newview/lldrawpoolbump.cpp | 530 +-
linden/indra/newview/lldrawpoolbump.h | 40 +-
linden/indra/newview/lldrawpoolclouds.h | 1 -
linden/indra/newview/lldrawpoolground.cpp | 14 +-
linden/indra/newview/lldrawpoolground.h | 1 -
linden/indra/newview/lldrawpoolsimple.cpp | 165 +-
linden/indra/newview/lldrawpoolsimple.h | 3 +
linden/indra/newview/lldrawpoolsky.cpp | 58 +-
linden/indra/newview/lldrawpoolsky.h | 4 +-
linden/indra/newview/lldrawpoolstars.cpp | 121 -
linden/indra/newview/lldrawpoolstars.h | 57 -
linden/indra/newview/lldrawpoolterrain.cpp | 274 +-
linden/indra/newview/lldrawpoolterrain.h | 6 +-
linden/indra/newview/lldrawpooltree.cpp | 112 +-
linden/indra/newview/lldrawpooltree.h | 3 +-
linden/indra/newview/lldrawpoolwater.cpp | 393 +-
linden/indra/newview/lldrawpoolwater.h | 14 +-
linden/indra/newview/lldrawpoolwlsky.cpp | 343 +
linden/indra/newview/lldrawpoolwlsky.h | 84 +
linden/indra/newview/lldynamictexture.cpp | 27 +-
linden/indra/newview/lldynamictexture.h | 4 +-
linden/indra/newview/llface.cpp | 587 +-
linden/indra/newview/llface.h | 92 +-
linden/indra/newview/llface.inl | 81 -
linden/indra/newview/llfasttimerview.cpp | 200 +-
linden/indra/newview/llfasttimerview.h | 1 +
linden/indra/newview/llfeaturemanager.cpp | 348 +-
linden/indra/newview/llfeaturemanager.h | 57 +-
linden/indra/newview/llfilepicker.cpp | 2 +
linden/indra/newview/llfirstuse.cpp | 11 +
linden/indra/newview/llfirstuse.h | 3 +-
linden/indra/newview/llflexibleobject.cpp | 78 +-
linden/indra/newview/llflexibleobject.h | 3 +-
linden/indra/newview/llfloaterabout.cpp | 28 +-
linden/indra/newview/llfloateractivespeakers.cpp | 36 +-
linden/indra/newview/llfloateractivespeakers.h | 14 +-
linden/indra/newview/llfloateranimpreview.cpp | 89 +-
linden/indra/newview/llfloaterauction.cpp | 4 +-
linden/indra/newview/llfloaterauction.h | 2 +-
linden/indra/newview/llfloateravatarinfo.cpp | 6 +-
linden/indra/newview/llfloateravatarpicker.cpp | 5 +-
linden/indra/newview/llfloateravatartextures.cpp | 52 +-
linden/indra/newview/llfloaterbump.cpp | 15 +-
linden/indra/newview/llfloaterbuy.cpp | 10 +-
linden/indra/newview/llfloaterbuy.h | 2 +-
linden/indra/newview/llfloaterbuycontents.cpp | 10 +-
linden/indra/newview/llfloaterbuycontents.h | 2 +-
linden/indra/newview/llfloaterbuycurrency.cpp | 2 +-
linden/indra/newview/llfloaterbuyland.cpp | 164 +-
linden/indra/newview/llfloaterbuyland.h | 2 +-
linden/indra/newview/llfloaterchat.cpp | 53 +-
linden/indra/newview/llfloaterchat.h | 9 +-
linden/indra/newview/llfloaterchatterbox.cpp | 80 +-
linden/indra/newview/llfloaterchatterbox.h | 123 +-
linden/indra/newview/llfloaterclassified.cpp | 2 +-
linden/indra/newview/llfloatercolorpicker.cpp | 214 +-
linden/indra/newview/llfloatercolorpicker.h | 2 +-
linden/indra/newview/llfloatercustomize.cpp | 57 +-
linden/indra/newview/llfloatercustomize.h | 1 -
linden/indra/newview/llfloaterdaycycle.cpp | 612 ++
linden/indra/newview/llfloaterdaycycle.h | 146 +
linden/indra/newview/llfloaterdirectory.cpp | 4 +-
linden/indra/newview/llfloaterenvsettings.cpp | 384 +
linden/indra/newview/llfloaterenvsettings.h | 106 +
linden/indra/newview/llfloaterfriends.cpp | 84 +-
linden/indra/newview/llfloaterfriends.h | 9 +-
linden/indra/newview/llfloatergesture.cpp | 2 +-
linden/indra/newview/llfloatergroupinvite.cpp | 2 +-
linden/indra/newview/llfloatergroups.h | 10 +-
linden/indra/newview/llfloaterhardwaresettings.cpp | 207 +
linden/indra/newview/llfloaterhardwaresettings.h | 102 +
linden/indra/newview/llfloaterhtml.cpp | 81 +-
linden/indra/newview/llfloaterhtml.h | 18 +-
linden/indra/newview/llfloaterhtmlhelp.cpp | 528 ++
linden/indra/newview/llfloaterhtmlhelp.h | 87 +
linden/indra/newview/llfloaterimagepreview.cpp | 130 +-
linden/indra/newview/llfloaterimport.cpp | 669 --
linden/indra/newview/llfloaterimport.h | 114 -
linden/indra/newview/llfloaterinspect.cpp | 15 +-
linden/indra/newview/llfloaterinspect.h | 2 +-
linden/indra/newview/llfloaterlagmeter.cpp | 116 +-
linden/indra/newview/llfloaterlagmeter.h | 2 +
linden/indra/newview/llfloaterland.cpp | 474 +-
linden/indra/newview/llfloaterland.h | 66 +-
linden/indra/newview/llfloaterlandmark.h | 3 +-
linden/indra/newview/llfloatermap.cpp | 13 +-
linden/indra/newview/llfloatermute.h | 2 +-
linden/indra/newview/llfloaternamedesc.cpp | 19 +-
linden/indra/newview/llfloaternamedesc.h | 1 -
linden/indra/newview/llfloaternewim.cpp | 13 +-
linden/indra/newview/llfloateropenobject.h | 2 +-
linden/indra/newview/llfloaterpermissionsmgr.cpp | 12 +-
linden/indra/newview/llfloaterpostcard.cpp | 57 +-
linden/indra/newview/llfloaterpostcard.h | 6 +-
linden/indra/newview/llfloaterpostprocess.cpp | 273 +
linden/indra/newview/llfloaterpostprocess.h | 90 +
linden/indra/newview/llfloaterpreference.cpp | 58 +-
linden/indra/newview/llfloaterpreference.h | 16 +-
linden/indra/newview/llfloaterproperties.cpp | 28 +-
linden/indra/newview/llfloaterregioninfo.cpp | 192 +-
linden/indra/newview/llfloaterregioninfo.h | 21 +-
linden/indra/newview/llfloaterreleasemsg.cpp | 12 +-
linden/indra/newview/llfloaterreleasemsg.h | 2 -
linden/indra/newview/llfloaterreporter.cpp | 4 +-
linden/indra/newview/llfloatersaveavatar.cpp | 117 -
linden/indra/newview/llfloatersaveavatar.h | 58 -
linden/indra/newview/llfloaterscriptdebug.cpp | 8 +-
linden/indra/newview/llfloatersellland.cpp | 8 +-
linden/indra/newview/llfloatersellland.h | 2 +-
linden/indra/newview/llfloatersnapshot.cpp | 550 +-
linden/indra/newview/llfloatertelehub.h | 2 +-
linden/indra/newview/llfloatertest.cpp | 12 +-
linden/indra/newview/llfloatertools.cpp | 44 +-
linden/indra/newview/llfloatertools.h | 6 +-
linden/indra/newview/llfloatertopobjects.cpp | 14 +-
linden/indra/newview/llfloatertos.cpp | 27 +-
linden/indra/newview/llfloaterurldisplay.h | 2 +-
linden/indra/newview/llfloaterurlentry.cpp | 293 +
linden/indra/newview/llfloaterurlentry.h | 69 +
linden/indra/newview/llfloatervoicewizard.cpp | 14 +-
linden/indra/newview/llfloatervoicewizard.h | 8 +-
linden/indra/newview/llfloaterwater.cpp | 735 ++
linden/indra/newview/llfloaterwater.h | 133 +
linden/indra/newview/llfloaterwindlight.cpp | 998 +++
linden/indra/newview/llfloaterwindlight.h | 142 +
linden/indra/newview/llfloaterworldmap.cpp | 32 +-
linden/indra/newview/llfloaterworldmap.h | 2 +-
linden/indra/newview/llfolderview.cpp | 172 +-
linden/indra/newview/llfolderview.h | 21 +-
linden/indra/newview/llframestats.cpp | 4 -
linden/indra/newview/llframestats.h | 1 -
linden/indra/newview/llframestatview.cpp | 14 +-
linden/indra/newview/llgenepool.cpp | 17 +-
linden/indra/newview/llgivemoney.cpp | 3 +-
linden/indra/newview/llgivemoney.h | 2 +-
linden/indra/newview/llglsandbox.cpp | 443 +-
linden/indra/newview/llglslshader.cpp | 2016 +++--
linden/indra/newview/llglslshader.h | 299 +-
linden/indra/newview/llgroupnotify.cpp | 12 +-
linden/indra/newview/llhoverview.cpp | 241 +-
linden/indra/newview/llhoverview.h | 7 +-
linden/indra/newview/llhudconnector.cpp | 221 -
linden/indra/newview/llhudconnector.h | 81 -
linden/indra/newview/llhudeffectbeam.cpp | 45 -
linden/indra/newview/llhudeffectlookat.cpp | 20 +-
linden/indra/newview/llhudeffectlookat.h | 1 -
linden/indra/newview/llhudeffectpointat.cpp | 19 +-
linden/indra/newview/llhudeffecttrail.cpp | 12 +-
linden/indra/newview/llhudicon.cpp | 32 +-
linden/indra/newview/llhudmanager.cpp | 3 +-
linden/indra/newview/llhudmanager.h | 3 -
linden/indra/newview/llhudobject.cpp | 9 -
linden/indra/newview/llhudobject.h | 1 -
linden/indra/newview/llhudrender.cpp | 10 +-
linden/indra/newview/llhudtext.cpp | 36 +-
linden/indra/newview/llimpanel.cpp | 16 +-
linden/indra/newview/llimpanel.h | 2 +-
linden/indra/newview/llimview.cpp | 43 +-
linden/indra/newview/llimview.h | 4 +-
linden/indra/newview/llinventoryactions.cpp | 7 +-
linden/indra/newview/llinventorybridge.cpp | 52 +-
linden/indra/newview/llinventorybridge.h | 2 +-
linden/indra/newview/llinventorymodel.cpp | 301 +-
linden/indra/newview/llinventorymodel.h | 30 +-
linden/indra/newview/llinventoryview.cpp | 15 +-
linden/indra/newview/llinventoryview.h | 5 +-
linden/indra/newview/lljoystickbutton.cpp | 73 +-
linden/indra/newview/lljoystickbutton.h | 2 +-
linden/indra/newview/lllcd.cpp | 100 +-
linden/indra/newview/lllocalanimationobject.cpp | 298 -
linden/indra/newview/lllocalanimationobject.h | 131 -
linden/indra/newview/llmanip.cpp | 45 +-
linden/indra/newview/llmanip.h | 4 +-
linden/indra/newview/llmaniprotate.cpp | 51 +-
linden/indra/newview/llmanipscale.cpp | 167 +-
linden/indra/newview/llmanipscale.h | 17 +-
linden/indra/newview/llmaniptranslate.cpp | 416 +-
linden/indra/newview/llmaniptranslate.h | 15 +-
linden/indra/newview/llmediaremotectrl.cpp | 170 +-
linden/indra/newview/llmediaremotectrl.h | 3 +
linden/indra/newview/llmemoryview.cpp | 11 +-
linden/indra/newview/llmenucommands.cpp | 1 -
linden/indra/newview/llmimetypes.cpp | 264 +
linden/indra/newview/llmimetypes.h | 118 +
linden/indra/newview/llmoveview.cpp | 1 -
linden/indra/newview/llnamebox.cpp | 15 +-
linden/indra/newview/llnamebox.h | 1 -
linden/indra/newview/llnameeditor.cpp | 14 +-
linden/indra/newview/llnameeditor.h | 1 -
linden/indra/newview/llnamelistctrl.cpp | 43 +-
linden/indra/newview/llnetmap.cpp | 193 +-
linden/indra/newview/llnetmap.h | 2 +-
linden/indra/newview/llnotify.cpp | 60 +-
linden/indra/newview/llnotify.h | 11 +
linden/indra/newview/lloverlaybar.cpp | 82 +-
linden/indra/newview/lloverlaybar.h | 9 +-
linden/indra/newview/llpanelaudioprefs.cpp | 1 -
linden/indra/newview/llpanelaudiovolume.cpp | 1 +
linden/indra/newview/llpanelaudiovolume.h | 1 -
linden/indra/newview/llpanelavatar.cpp | 105 +-
linden/indra/newview/llpanelavatar.h | 10 +-
linden/indra/newview/llpanelclassified.cpp | 75 +-
linden/indra/newview/llpanelclassified.h | 8 +-
linden/indra/newview/llpaneldirbrowser.cpp | 47 +-
linden/indra/newview/llpaneldirbrowser.h | 2 +
linden/indra/newview/llpaneldirfind.cpp | 31 +-
linden/indra/newview/llpaneldirgroups.cpp | 26 +-
linden/indra/newview/llpaneldirland.cpp | 4 +-
linden/indra/newview/llpaneldirpeople.cpp | 26 +-
linden/indra/newview/llpaneldirplaces.cpp | 26 +-
linden/indra/newview/llpaneldisplay.cpp | 850 +-
linden/indra/newview/llpaneldisplay.h | 176 +-
linden/indra/newview/llpanelevent.cpp | 21 +-
linden/indra/newview/llpanelface.cpp | 129 +-
linden/indra/newview/llpanelface.h | 3 +
linden/indra/newview/llpanelgeneral.cpp | 12 +-
linden/indra/newview/llpanelgeneral.h | 3 +
linden/indra/newview/llpanelgroup.cpp | 43 +-
linden/indra/newview/llpanelgroup.h | 6 +-
linden/indra/newview/llpanelgroupgeneral.cpp | 52 +-
linden/indra/newview/llpanelgroupinvite.cpp | 16 +-
linden/indra/newview/llpanelgrouplandmoney.cpp | 73 +-
linden/indra/newview/llpanelgroupnotices.cpp | 43 +-
linden/indra/newview/llpanelgrouproles.cpp | 103 +-
linden/indra/newview/llpanelgrouproles.h | 4 +-
linden/indra/newview/llpanelgroupvoting.cpp | 86 +-
linden/indra/newview/llpanelinput.cpp | 5 +
linden/indra/newview/llpanelinput.h | 1 +
linden/indra/newview/llpanelinventory.cpp | 23 +-
linden/indra/newview/llpanelinventory.h | 1 -
linden/indra/newview/llpanelland.cpp | 2 +-
linden/indra/newview/llpanellandmedia.cpp | 401 +
linden/indra/newview/llpanellandmedia.h | 80 +
linden/indra/newview/llpanellogin.cpp | 56 +-
linden/indra/newview/llpanellogin.h | 12 +-
linden/indra/newview/llpanelobject.cpp | 30 +-
linden/indra/newview/llpanelpermissions.cpp | 14 +-
linden/indra/newview/llpanelpick.cpp | 4 +-
linden/indra/newview/llpanelplace.cpp | 21 +-
linden/indra/newview/llpanelvolume.cpp | 27 +-
linden/indra/newview/llpanelweb.cpp | 163 +-
linden/indra/newview/llpanelweb.h | 2 +
linden/indra/newview/llparcelselection.cpp | 105 +
linden/indra/newview/llparcelselection.h | 86 +
linden/indra/newview/llpolymesh.cpp | 82 +-
linden/indra/newview/llpolymesh.h | 17 +-
linden/indra/newview/llpolymorph.cpp | 5 -
linden/indra/newview/llpolymorph.h | 2 -
linden/indra/newview/llpostprocess.cpp | 641 ++
linden/indra/newview/llpostprocess.h | 275 +
linden/indra/newview/llprefsim.cpp | 4 +-
linden/indra/newview/llprefsvoice.cpp | 1 +
linden/indra/newview/llpreview.cpp | 24 +-
linden/indra/newview/llpreview.h | 8 +-
linden/indra/newview/llpreviewanim.cpp | 35 +-
linden/indra/newview/llpreviewanim.h | 1 -
linden/indra/newview/llpreviewgesture.cpp | 16 +-
linden/indra/newview/llpreviewlandmark.cpp | 1 -
linden/indra/newview/llpreviewlandmark.h | 1 -
linden/indra/newview/llpreviewnotecard.cpp | 6 +-
linden/indra/newview/llpreviewscript.cpp | 98 +-
linden/indra/newview/llpreviewscript.h | 4 +-
linden/indra/newview/llpreviewtexture.cpp | 21 +-
linden/indra/newview/llprogressview.cpp | 21 +-
linden/indra/newview/llremoteparcelrequest.cpp | 6 +-
linden/indra/newview/llremoteparcelrequest.h | 6 +-
linden/indra/newview/llroam.cpp | 307 -
linden/indra/newview/llroam.h | 308 -
linden/indra/newview/llselectmgr.cpp | 178 +-
linden/indra/newview/llselectmgr.h | 16 +-
linden/indra/newview/llsky.cpp | 100 +-
linden/indra/newview/llsky.h | 13 +-
linden/indra/newview/llspatialpartition.cpp | 2213 +++--
linden/indra/newview/llspatialpartition.h | 213 +-
linden/indra/newview/llsprite.cpp | 10 +-
linden/indra/newview/llstartup.cpp | 240 +-
linden/indra/newview/llstartup.h | 4 +-
linden/indra/newview/llstatbar.cpp | 8 +-
linden/indra/newview/llstatgraph.cpp | 15 +-
linden/indra/newview/llstatusbar.cpp | 148 +-
linden/indra/newview/llstatusbar.h | 37 +-
linden/indra/newview/llstatview.cpp | 4 +-
linden/indra/newview/llsurface.cpp | 77 -
linden/indra/newview/llsurface.h | 2 -
linden/indra/newview/llsurfacepatch.cpp | 19 +-
linden/indra/newview/lltexlayer.cpp | 60 +-
linden/indra/newview/lltexturectrl.cpp | 108 +-
linden/indra/newview/lltexturectrl.h | 3 +-
linden/indra/newview/lltextureview.cpp | 36 +-
linden/indra/newview/lltextureview.h | 1 -
linden/indra/newview/lltool.cpp | 1 -
linden/indra/newview/lltool.h | 2 +-
linden/indra/newview/lltoolbar.cpp | 8 +-
linden/indra/newview/lltoolbrush.cpp | 77 +-
linden/indra/newview/lltoolbrush.h | 15 +-
linden/indra/newview/lltoolcomp.cpp | 8 +-
linden/indra/newview/lltooldraganddrop.cpp | 6 +-
linden/indra/newview/lltoolfocus.cpp | 1 -
linden/indra/newview/lltoolgun.cpp | 1 +
linden/indra/newview/lltoolmgr.cpp | 50 +-
linden/indra/newview/lltoolmgr.h | 4 +-
linden/indra/newview/lltoolmorph.cpp | 40 +-
linden/indra/newview/lltoolmorph.h | 6 +-
linden/indra/newview/lltoolpie.cpp | 178 +-
linden/indra/newview/lltoolpie.h | 2 +-
linden/indra/newview/lltoolselect.cpp | 3 +-
linden/indra/newview/lltoolselect.h | 2 +-
linden/indra/newview/lltoolselectland.h | 2 +-
linden/indra/newview/lltoolselectrect.cpp | 9 +-
linden/indra/newview/lltoolview.cpp | 19 +-
linden/indra/newview/lltoolview.h | 5 +-
linden/indra/newview/lltracker.cpp | 45 +-
linden/indra/newview/lluploaddialog.cpp | 29 +-
linden/indra/newview/lluploaddialog.h | 2 -
linden/indra/newview/llurldispatcher.cpp | 3 +-
linden/indra/newview/llurlhistory.cpp | 137 +
linden/indra/newview/llurlhistory.h | 60 +
linden/indra/newview/llvelocitybar.cpp | 31 +-
linden/indra/newview/llviewerassetstorage.cpp | 59 +-
linden/indra/newview/llvieweraudio.cpp | 13 +-
linden/indra/newview/llviewercamera.cpp | 195 +-
linden/indra/newview/llviewercamera.h | 7 +-
linden/indra/newview/llviewercontrol.cpp | 10 +-
linden/indra/newview/llviewercontrol.h | 3 +
linden/indra/newview/llviewerdisplay.cpp | 594 +-
linden/indra/newview/llviewerdisplay.h | 5 +-
linden/indra/newview/llviewerimage.cpp | 8 +-
linden/indra/newview/llviewerimage.h | 4 +
linden/indra/newview/llviewerimagelist.cpp | 270 +-
linden/indra/newview/llviewerimagelist.h | 16 +-
linden/indra/newview/llviewerinventory.cpp | 48 +-
linden/indra/newview/llviewerinventory.h | 1 +
linden/indra/newview/llviewerjoint.cpp | 205 +-
linden/indra/newview/llviewerjoint.h | 1 -
linden/indra/newview/llviewerjointattachment.cpp | 67 +-
linden/indra/newview/llviewerjointattachment.h | 3 -
linden/indra/newview/llviewerjointmesh.cpp | 290 +-
linden/indra/newview/llviewerjointmesh.h | 5 +-
linden/indra/newview/llviewerjointmesh_sse.cpp | 2 +
linden/indra/newview/llviewerjointmesh_sse2.cpp | 2 +
linden/indra/newview/llviewerjointmesh_vec.cpp | 2 +
linden/indra/newview/llviewerjointshape.cpp | 233 -
linden/indra/newview/llviewerjointshape.h | 96 -
linden/indra/newview/llviewerkeyboard.cpp | 7 +-
linden/indra/newview/llviewermedia.cpp | 634 ++
linden/indra/newview/llviewermedia.h | 72 +
linden/indra/newview/llviewermenu.cpp | 412 +-
linden/indra/newview/llviewermenu.h | 8 +-
linden/indra/newview/llviewermenufile.cpp | 15 +-
linden/indra/newview/llviewermessage.cpp | 92 +-
linden/indra/newview/llviewermessage.h | 3 +
linden/indra/newview/llviewerobject.cpp | 115 +-
linden/indra/newview/llviewerobject.h | 30 +-
linden/indra/newview/llviewerobjectlist.cpp | 53 +-
linden/indra/newview/llviewerobjectlist.h | 3 -
linden/indra/newview/llviewerparcelmedia.cpp | 363 +
linden/indra/newview/llviewerparcelmedia.h | 75 +
.../indra/newview/llviewerparcelmediaautoplay.cpp | 151 +
linden/indra/newview/llviewerparcelmediaautoplay.h | 55 +
linden/indra/newview/llviewerparcelmgr.cpp | 312 +-
linden/indra/newview/llviewerparcelmgr.h | 56 +-
linden/indra/newview/llviewerparceloverlay.cpp | 38 +-
linden/indra/newview/llviewerpartsim.cpp | 200 +-
linden/indra/newview/llviewerpartsim.h | 35 +-
linden/indra/newview/llviewerpartsource.cpp | 65 +-
linden/indra/newview/llviewerpartsource.h | 2 +
linden/indra/newview/llviewerprecompiledheaders.h | 10 -
linden/indra/newview/llviewerregion.cpp | 51 +-
linden/indra/newview/llviewerregion.h | 31 +-
linden/indra/newview/llviewerstats.cpp | 6 +-
linden/indra/newview/llviewertexteditor.cpp | 246 +-
linden/indra/newview/llviewertexteditor.h | 41 +-
linden/indra/newview/llvieweruictrlfactory.cpp | 20 +-
linden/indra/newview/llviewerwindow.cpp | 431 +-
linden/indra/newview/llviewerwindow.h | 7 +-
linden/indra/newview/llvoavatar.cpp | 1249 ++-
linden/indra/newview/llvoavatar.h | 59 +-
linden/indra/newview/llvoclouds.cpp | 159 +-
linden/indra/newview/llvoclouds.h | 3 +-
linden/indra/newview/llvograss.cpp | 8 +-
linden/indra/newview/llvograss.h | 2 +-
linden/indra/newview/llvoground.cpp | 3 +-
linden/indra/newview/llvoiceclient.cpp | 26 +-
linden/indra/newview/llvoiceremotectrl.cpp | 5 +-
linden/indra/newview/llvoicevisualizer.cpp | 51 +-
linden/indra/newview/llvopartgroup.cpp | 207 +-
linden/indra/newview/llvopartgroup.h | 5 +-
linden/indra/newview/llvosky.cpp | 1505 ++--
linden/indra/newview/llvosky.h | 407 +-
linden/indra/newview/llvostars.cpp | 211 -
linden/indra/newview/llvostars.h | 67 -
linden/indra/newview/llvosurfacepatch.cpp | 94 +-
linden/indra/newview/llvosurfacepatch.h | 12 +-
linden/indra/newview/llvotextbubble.cpp | 5 +-
linden/indra/newview/llvotextbubble.h | 2 +-
linden/indra/newview/llvotree.cpp | 195 +-
linden/indra/newview/llvotree.h | 4 +-
linden/indra/newview/llvovolume.cpp | 731 +-
linden/indra/newview/llvovolume.h | 31 +-
linden/indra/newview/llvowater.cpp | 84 +-
linden/indra/newview/llvowater.h | 4 +
linden/indra/newview/llvowlsky.cpp | 821 ++
linden/indra/newview/llvowlsky.h | 110 +
linden/indra/newview/llwaterparammanager.cpp | 433 +
linden/indra/newview/llwaterparammanager.h | 401 +
linden/indra/newview/llwaterparamset.cpp | 233 +
linden/indra/newview/llwaterparamset.h | 156 +
linden/indra/newview/llwearable.cpp | 125 +-
linden/indra/newview/llwearable.h | 7 +-
linden/indra/newview/llwearablelist.cpp | 5 +-
linden/indra/newview/llwearablelist.h | 7 +-
linden/indra/newview/llweb.cpp | 13 +-
linden/indra/newview/llwebbrowserctrl.cpp | 385 +-
linden/indra/newview/llwebbrowserctrl.h | 29 +-
linden/indra/newview/llwindebug.cpp | 194 +-
linden/indra/newview/llwlanimator.cpp | 168 +
linden/indra/newview/llwlanimator.h | 76 +
linden/indra/newview/llwldaycycle.cpp | 233 +
linden/indra/newview/llwldaycycle.h | 105 +
linden/indra/newview/llwlparammanager.cpp | 572 ++
linden/indra/newview/llwlparammanager.h | 292 +
linden/indra/newview/llwlparamset.cpp | 403 +
linden/indra/newview/llwlparamset.h | 252 +
linden/indra/newview/llworld.cpp | 87 +-
linden/indra/newview/llworld.h | 3 +
linden/indra/newview/llworldmapview.cpp | 253 +-
linden/indra/newview/llxmlrpctransaction.cpp | 152 +-
linden/indra/newview/lsl_guide.html | 1979 +++--
.../newview/macview.xcodeproj/project.pbxproj | 397 +-
linden/indra/newview/newview.vcproj | 233 +-
linden/indra/newview/newview_vc8.vcproj | 8959 ++++++++++----------
linden/indra/newview/newview_vc9.vcproj | 8940 +++++++++----------
linden/indra/newview/pipeline.cpp | 2903 +++++--
linden/indra/newview/pipeline.h | 202 +-
linden/indra/newview/postbuild.bat | 2 +-
linden/indra/newview/releasenotes.txt | 90 +
linden/indra/newview/res/newViewRes.rc | 43 +-
linden/indra/newview/res/resource.h | 2 +
.../indra/newview/secondlife setup build aruna.bat | 4 +
.../secondlife setup build firstlookwindlight.bat | 4 +
.../indra/newview/secondlife setup build mitra.bat | 4 +
.../newview/secondlife setup build mohini.bat | 4 +
.../indra/newview/secondlife setup build nandi.bat | 4 +
.../indra/newview/secondlife setup build radha.bat | 4 +
.../indra/newview/secondlife setup build ravi.bat | 4 +
linden/indra/newview/skins/textures/textures.xml | 17 +-
linden/indra/newview/skins/xui/de/floater_html.xml | 14 +-
linden/indra/newview/skins/xui/en-us/LCD_text.xml | 102 +-
linden/indra/newview/skins/xui/en-us/alerts.xml | 677 +-
.../newview/skins/xui/en-us/floater_about.xml | 11 +-
.../newview/skins/xui/en-us/floater_about_land.xml | 916 +-
.../skins/xui/en-us/floater_active_speakers.xml | 93 +-
.../skins/xui/en-us/floater_animation_preview.xml | 53 +-
.../newview/skins/xui/en-us/floater_auction.xml | 4 +-
.../skins/xui/en-us/floater_audio_volume.xml | 15 +-
.../skins/xui/en-us/floater_avatar_picker.xml | 49 +-
.../skins/xui/en-us/floater_avatar_textures.xml | 6 +-
.../newview/skins/xui/en-us/floater_bumps.xml | 32 +-
.../skins/xui/en-us/floater_buy_contents.xml | 12 +-
.../skins/xui/en-us/floater_buy_currency.xml | 14 +-
.../newview/skins/xui/en-us/floater_buy_land.xml | 177 +-
.../newview/skins/xui/en-us/floater_buy_object.xml | 19 +-
.../skins/xui/en-us/floater_chat_history.xml | 114 +-
.../newview/skins/xui/en-us/floater_chatterbox.xml | 3 +-
.../skins/xui/en-us/floater_color_picker.xml | 2 +-
.../newview/skins/xui/en-us/floater_critical.xml | 2 +-
.../newview/skins/xui/en-us/floater_customize.xml | 921 +-
.../skins/xui/en-us/floater_day_cycle_options.xml | 250 +
.../skins/xui/en-us/floater_device_settings.xml | 7 +-
.../newview/skins/xui/en-us/floater_directory.xml | 339 +-
.../skins/xui/en-us/floater_env_settings.xml | 66 +
.../newview/skins/xui/en-us/floater_friends.xml | 20 +-
.../newview/skins/xui/en-us/floater_god_tools.xml | 261 +-
.../newview/skins/xui/en-us/floater_groups.xml | 44 +-
.../skins/xui/en-us/floater_hardware_settings.xml | 53 +
.../indra/newview/skins/xui/en-us/floater_html.xml | 40 +-
.../indra/newview/skins/xui/en-us/floater_im.xml | 33 +-
.../skins/xui/en-us/floater_image_preview.xml | 10 +-
.../newview/skins/xui/en-us/floater_inspect.xml | 57 +-
.../skins/xui/en-us/floater_instant_message.xml | 24 +-
.../xui/en-us/floater_instant_message_ad_hoc.xml | 109 +-
.../xui/en-us/floater_instant_message_group.xml | 38 +-
.../newview/skins/xui/en-us/floater_inventory.xml | 165 +-
.../en-us/floater_inventory_item_properties.xml | 20 +-
.../xui/en-us/floater_inventory_view_finder.xml | 123 +-
.../newview/skins/xui/en-us/floater_joystick.xml | 145 +-
.../newview/skins/xui/en-us/floater_lagmeter.xml | 621 +-
.../skins/xui/en-us/floater_land_holdings.xml | 4 +-
.../skins/xui/en-us/floater_landmark_ctrl.xml | 62 +-
.../skins/xui/en-us/floater_live_lsleditor.xml | 22 +-
.../newview/skins/xui/en-us/floater_lsl_guide.xml | 20 +-
.../skins/xui/en-us/floater_media_browser.xml | 37 +
.../newview/skins/xui/en-us/floater_moveview.xml | 27 +-
.../indra/newview/skins/xui/en-us/floater_mute.xml | 20 +-
.../skins/xui/en-us/floater_mute_object.xml | 10 +-
.../newview/skins/xui/en-us/floater_my_friends.xml | 4 +-
.../newview/skins/xui/en-us/floater_new_im.xml | 30 +-
.../skins/xui/en-us/floater_new_outfit_dialog.xml | 263 +-
.../newview/skins/xui/en-us/floater_openobject.xml | 22 +-
.../indra/newview/skins/xui/en-us/floater_pay.xml | 58 +-
.../newview/skins/xui/en-us/floater_pay_object.xml | 63 +-
.../skins/xui/en-us/floater_post_process.xml | 184 +
.../newview/skins/xui/en-us/floater_postcard.xml | 45 +-
.../skins/xui/en-us/floater_preferences.xml | 40 +-
.../skins/xui/en-us/floater_preview_animation.xml | 23 +-
.../skins/xui/en-us/floater_preview_classified.xml | 11 +-
.../xui/en-us/floater_preview_embedded_texture.xml | 14 +-
.../skins/xui/en-us/floater_preview_event.xml | 10 +-
.../en-us/floater_preview_existing_landmark.xml | 10 +-
.../skins/xui/en-us/floater_preview_gesture.xml | 18 +-
.../xui/en-us/floater_preview_new_landmark.xml | 33 +-
.../skins/xui/en-us/floater_preview_notecard.xml | 39 +-
.../floater_preview_notecard_keep_discard.xml | 36 +-
.../skins/xui/en-us/floater_preview_sound.xml | 38 +-
.../skins/xui/en-us/floater_preview_texture.xml | 18 +-
.../en-us/floater_preview_texture_keep_discard.xml | 30 +-
.../skins/xui/en-us/floater_preview_url.xml | 10 +-
.../skins/xui/en-us/floater_price_for_listing.xml | 10 +-
.../indra/newview/skins/xui/en-us/floater_rate.xml | 73 +-
.../skins/xui/en-us/floater_region_info.xml | 6 +-
.../skins/xui/en-us/floater_report_abuse.xml | 48 +-
.../newview/skins/xui/en-us/floater_report_bug.xml | 43 +-
.../skins/xui/en-us/floater_script_debug.xml | 10 +-
.../skins/xui/en-us/floater_script_ed_panel.xml | 119 +-
.../skins/xui/en-us/floater_script_preview.xml | 24 +-
.../skins/xui/en-us/floater_script_queue.xml | 15 +-
.../skins/xui/en-us/floater_script_search.xml | 37 +-
.../newview/skins/xui/en-us/floater_select_key.xml | 30 +-
.../newview/skins/xui/en-us/floater_sell_land.xml | 28 +-
.../skins/xui/en-us/floater_settings_debug.xml | 1 +
.../xui/en-us/floater_sim_release_message.xml | 20 +-
.../newview/skins/xui/en-us/floater_snapshot.xml | 56 +-
.../skins/xui/en-us/floater_sound_preview.xml | 8 +-
.../indra/newview/skins/xui/en-us/floater_test.xml | 8 +-
.../skins/xui/en-us/floater_texture_ctrl.xml | 71 +-
.../newview/skins/xui/en-us/floater_tools.xml | 1078 ++-
.../skins/xui/en-us/floater_top_objects.xml | 63 +-
.../indra/newview/skins/xui/en-us/floater_tos.xml | 6 +-
.../newview/skins/xui/en-us/floater_url_entry.xml | 23 +
.../skins/xui/en-us/floater_voice_wizard.xml | 34 +-
.../newview/skins/xui/en-us/floater_water.xml | 260 +
.../skins/xui/en-us/floater_wearable_save_as.xml | 22 +-
.../skins/xui/en-us/floater_windlight_options.xml | 593 ++
.../newview/skins/xui/en-us/floater_world_map.xml | 24 +-
.../newview/skins/xui/en-us/menu_inventory.xml | 237 +-
.../indra/newview/skins/xui/en-us/menu_login.xml | 42 +-
.../skins/xui/en-us/menu_pie_attachment.xml | 6 +-
.../newview/skins/xui/en-us/menu_pie_avatar.xml | 36 +-
.../newview/skins/xui/en-us/menu_pie_land.xml | 20 +-
.../newview/skins/xui/en-us/menu_pie_object.xml | 38 +-
.../newview/skins/xui/en-us/menu_pie_self.xml | 30 +-
.../indra/newview/skins/xui/en-us/menu_slurl.xml | 16 +-
.../indra/newview/skins/xui/en-us/menu_viewer.xml | 953 +--
.../indra/newview/skins/xui/en-us/mime_types.xml | 448 +
linden/indra/newview/skins/xui/en-us/notify.xml | 102 +-
.../indra/newview/skins/xui/en-us/panel_audio.xml | 18 +-
.../newview/skins/xui/en-us/panel_audio_device.xml | 137 +-
.../indra/newview/skins/xui/en-us/panel_avatar.xml | 124 +-
.../skins/xui/en-us/panel_avatar_classified.xml | 12 +-
.../indra/newview/skins/xui/en-us/panel_bars.xml | 30 +-
.../indra/newview/skins/xui/en-us/panel_bg_tab.xml | 20 +-
.../newview/skins/xui/en-us/panel_chat_bar.xml | 22 +-
.../newview/skins/xui/en-us/panel_classified.xml | 11 +-
.../indra/newview/skins/xui/en-us/panel_event.xml | 12 +-
.../newview/skins/xui/en-us/panel_friends.xml | 53 +-
.../indra/newview/skins/xui/en-us/panel_group.xml | 14 +-
.../skins/xui/en-us/panel_group_general.xml | 79 +-
.../newview/skins/xui/en-us/panel_group_invite.xml | 10 +-
.../skins/xui/en-us/panel_group_land_money.xml | 19 +-
.../skins/xui/en-us/panel_group_notices.xml | 14 +-
.../newview/skins/xui/en-us/panel_group_roles.xml | 63 +-
.../newview/skins/xui/en-us/panel_group_voting.xml | 82 +-
.../indra/newview/skins/xui/en-us/panel_groups.xml | 46 +-
.../skins/xui/en-us/panel_land_covenant.xml | 18 +-
.../indra/newview/skins/xui/en-us/panel_login.xml | 35 +-
.../skins/xui/en-us/panel_master_volume.xml | 4 +-
.../skins/xui/en-us/panel_media_controls.xml | 67 +-
.../newview/skins/xui/en-us/panel_media_remote.xml | 33 +-
.../xui/en-us/panel_media_remote_expanded.xml | 11 +-
.../newview/skins/xui/en-us/panel_music_remote.xml | 21 +-
.../newview/skins/xui/en-us/panel_overlaybar.xml | 86 +-
.../indra/newview/skins/xui/en-us/panel_place.xml | 74 +-
.../newview/skins/xui/en-us/panel_place_small.xml | 74 +-
.../skins/xui/en-us/panel_preferences_LCD.xml | 91 +-
.../skins/xui/en-us/panel_preferences_audio.xml | 93 +-
.../skins/xui/en-us/panel_preferences_chat.xml | 135 +-
.../skins/xui/en-us/panel_preferences_general.xml | 157 +-
.../xui/en-us/panel_preferences_graphics1.xml | 413 +-
.../xui/en-us/panel_preferences_graphics2.xml | 132 -
.../xui/en-us/panel_preferences_graphics3.xml | 119 -
.../skins/xui/en-us/panel_preferences_im.xml | 94 +-
.../skins/xui/en-us/panel_preferences_input.xml | 73 +-
.../skins/xui/en-us/panel_preferences_network.xml | 100 +-
.../skins/xui/en-us/panel_preferences_popups.xml | 36 +-
.../skins/xui/en-us/panel_preferences_voice.xml | 182 +-
.../skins/xui/en-us/panel_preferences_web.xml | 89 +-
.../skins/xui/en-us/panel_region_covenant.xml | 32 +-
.../newview/skins/xui/en-us/panel_region_debug.xml | 8 +-
.../skins/xui/en-us/panel_region_estate.xml | 212 +-
.../skins/xui/en-us/panel_region_general.xml | 13 +-
.../skins/xui/en-us/panel_region_terrain.xml | 1 +
.../skins/xui/en-us/panel_region_texture.xml | 1 +
.../skins/xui/en-us/panel_scrolling_param.xml | 38 +-
.../skins/xui/en-us/panel_speaker_controls.xml | 105 +-
.../newview/skins/xui/en-us/panel_status_bar.xml | 147 +-
.../newview/skins/xui/en-us/panel_toolbar.xml | 21 +-
.../skins/xui/en-us/panel_voice_controls.xml | 3 +-
.../newview/skins/xui/en-us/panel_voice_enable.xml | 135 +-
.../skins/xui/en-us/panel_voice_options.xml | 7 +-
.../newview/skins/xui/en-us/panel_voice_remote.xml | 10 +-
.../xui/en-us/panel_voice_remote_expanded.xml | 22 +-
.../newview/skins/xui/en-us/teleport_strings.xml | 48 +-
linden/indra/newview/skins/xui/es/floater_html.xml | 6 +-
linden/indra/newview/skins/xui/fr/floater_html.xml | 6 +-
linden/indra/newview/skins/xui/ja/floater_html.xml | 14 +-
linden/indra/newview/skins/xui/ko/floater_html.xml | 14 +-
linden/indra/newview/skins/xui/pt/floater_html.xml | 22 +-
linden/indra/newview/skins/xui/zh/floater_html.xml | 6 +-
linden/indra/newview/viewer_manifest.py | 10 +-
linden/indra/test/common.cpp | 41 +-
linden/indra/test/io.cpp | 30 +-
linden/indra/test/llhttpclient_tut.cpp | 42 +-
linden/indra/test/llsdserialize_tut.cpp | 927 +-
linden/indra/test/test_vc8.vcproj | 910 +-
linden/indra/test/test_vc9.vcproj | 906 +-
.../win_crash_logger/win_crash_logger_vc8.vcproj | 672 +-
.../win_crash_logger/win_crash_logger_vc9.vcproj | 671 +-
linden/indra/win_updater/win_updater_vc8.vcproj | 590 +-
linden/indra/win_updater/win_updater_vc9.vcproj | 586 +-
linden/libraries/include/glh/glh_linear.h | 1621 ++++
linden/libraries/include/llmozlib.h | 310 -
linden/libraries/include/llmozlib2.h | 368 +
linden/scripts/messages/message_template.msg | 8 +
linden/scripts/setup-path.py | 2 +-
linden/scripts/template_verifier.py | 25 +-
1140 files changed, 98826 insertions(+), 69529 deletions(-)
create mode 100644 linden/indra/lib/python/indra/base/lllog.py
create mode 100644 linden/indra/lib/python/indra/util/llsubprocess.py
create mode 100644 linden/indra/lib/python/indra/util/shutil2.py
delete mode 100644 linden/indra/llmedia/llmediabase.cpp
delete mode 100644 linden/indra/llmedia/llmediaemitterevents.h
delete mode 100644 linden/indra/llmedia/llmediaengine.cpp
delete mode 100644 linden/indra/llmedia/llmediaengine.h
create mode 100644 linden/indra/llmedia/llmediaimplcommon.cpp
create mode 100644 linden/indra/llmedia/llmediaimplcommon.h
create mode 100644 linden/indra/llmedia/llmediaimplexample1.cpp
create mode 100644 linden/indra/llmedia/llmediaimplexample1.h
create mode 100644 linden/indra/llmedia/llmediaimplexample2.cpp
create mode 100644 linden/indra/llmedia/llmediaimplexample2.h
create mode 100644 linden/indra/llmedia/llmediaimplfactory.cpp
create mode 100644 linden/indra/llmedia/llmediaimplfactory.h
create mode 100644 linden/indra/llmedia/llmediaimplllmozlib.cpp
create mode 100644 linden/indra/llmedia/llmediaimplllmozlib.h
create mode 100644 linden/indra/llmedia/llmediaimplregister.h
create mode 100644 linden/indra/llmedia/llmediamanager.cpp
create mode 100644 linden/indra/llmedia/llmediamanager.h
delete mode 100644 linden/indra/llmedia/llmediamoviebase.cpp
delete mode 100644 linden/indra/llmedia/llmediamoviebase.h
create mode 100644 linden/indra/llmedia/llmediaobserver.h
delete mode 100644 linden/indra/llmedia/llmediaobservers.h
delete mode 100644 linden/indra/llmessage/llcallbacklisth.h
create mode 100644 linden/indra/llrender/llglimmediate.cpp
create mode 100644 linden/indra/llrender/llglimmediate.h
create mode 100644 linden/indra/llrender/llrendertarget.cpp
create mode 100644 linden/indra/llrender/llrendertarget.h
create mode 100644 linden/indra/llui/llmultislider.cpp
create mode 100644 linden/indra/llui/llmultislider.h
create mode 100644 linden/indra/llui/llmultisliderctrl.cpp
create mode 100644 linden/indra/llui/llmultisliderctrl.h
create mode 100644 linden/indra/llui/lluifwd.h
delete mode 100644 linden/indra/llwindow/llglstubs.h
create mode 100644 linden/indra/newview/app_settings/high_graphics.xml
create mode 100644 linden/indra/newview/app_settings/low_graphics.xml
create mode 100644 linden/indra/newview/app_settings/mid_graphics.xml
create mode 100644 linden/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/effects/glowF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/effects/glowV.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class1/environment/glowF.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class1/environment/glowV.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class1/environment/groundF.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class1/environment/groundV.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class1/environment/scatterF.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class1/environment/scatterV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class1/objects/alphaF.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class1/objects/alphaV.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class1/objects/bumpshinyF.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class1/objects/bumpshinyV.glsl
create mode 100755 linden/indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl
create mode 100755 linden/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl
create mode 100755 linden/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl
create mode 100755 linden/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl
create mode 100755 linden/indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl
create mode 100755 linden/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class2/avatar/avatarV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/effects/blurF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/effects/blurV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/effects/extractF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/effects/simpleF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/environment/terrainF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/environment/terrainV.glsl
create mode 100755 linden/indra/newview/app_settings/shaders/class2/environment/terrainWaterF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/environment/underWaterF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/environment/waterFogF.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class2/environment/waterV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightShinyF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightWaterF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/lighting/lightShinyF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/lighting/lightShinyWaterF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/lighting/lightSpecularV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/lighting/lightWaterF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class2/objects/alphaF.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class2/objects/alphaV.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class2/objects/bumpshinyF.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class2/objects/bumpshinyV.glsl
create mode 100755 linden/indra/newview/app_settings/shaders/class2/objects/shinyV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class2/windlight/transportF.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class3/environment/waterF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl
delete mode 100644 linden/indra/newview/app_settings/shaders/class3/objects/bumpshinyF.glsl
create mode 100644 linden/indra/newview/app_settings/shaders/shader_heirarchy.txt
create mode 100644 linden/indra/newview/app_settings/ultra_graphics.xml
create mode 100644 linden/indra/newview/app_settings/windlight/clouds2.tga
create mode 100644 linden/indra/newview/app_settings/windlight/days/Default.xml
create mode 100644 linden/indra/newview/app_settings/windlight/postprocesseffects.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/A%2D12AM.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/A%2D12PM.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/A%2D3AM.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/A%2D3PM.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/A%2D6AM.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/A%2D6PM.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/A%2D9AM.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/A%2D9PM.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Barcelona.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Blizzard.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Blue%20Midday.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Coastal%20Afternoon.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Coastal%20Sunset.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Default.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Desert%20Sunset.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Fine%20Day.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Fluffy%20Big%20Clouds.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Foggy.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Funky%20Funky%20Funky.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Funky%20Funky.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Gelatto.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Ghost.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Incongruent%20Truths.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Midday%201.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Midday%202.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Midday%203.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Midday%204.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Night.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Pirate.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Purple.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Sailor%27s%20Delight.xml
create mode 100644 linden/indra/newview/app_settings/windlight/skies/Sheer%20Surreality.xml
create mode 100644 linden/indra/newview/app_settings/windlight/water/Default.xml
create mode 100644 linden/indra/newview/app_settings/windlight/water/Glassy.xml
create mode 100644 linden/indra/newview/app_settings/windlight/water/Murky.xml
create mode 100644 linden/indra/newview/app_settings/windlight/water/Pond.xml
create mode 100644 linden/indra/newview/app_settings/windlight/water/SNAKE%21%21%21.xml
create mode 100644 linden/indra/newview/app_settings/windlight/water/Second%20Plague.xml
create mode 100644 linden/indra/newview/app_settings/windlight/water/Valdez.xml
delete mode 100644 linden/indra/newview/llanimalcontrols.cpp
delete mode 100644 linden/indra/newview/llanimalcontrols.h
delete mode 100644 linden/indra/newview/llcape.cpp
delete mode 100644 linden/indra/newview/llcape.h
delete mode 100644 linden/indra/newview/lldrawpoolstars.cpp
delete mode 100644 linden/indra/newview/lldrawpoolstars.h
create mode 100644 linden/indra/newview/lldrawpoolwlsky.cpp
create mode 100644 linden/indra/newview/lldrawpoolwlsky.h
create mode 100644 linden/indra/newview/llfloaterdaycycle.cpp
create mode 100644 linden/indra/newview/llfloaterdaycycle.h
create mode 100644 linden/indra/newview/llfloaterenvsettings.cpp
create mode 100644 linden/indra/newview/llfloaterenvsettings.h
create mode 100644 linden/indra/newview/llfloaterhardwaresettings.cpp
create mode 100644 linden/indra/newview/llfloaterhardwaresettings.h
create mode 100644 linden/indra/newview/llfloaterhtmlhelp.cpp
create mode 100644 linden/indra/newview/llfloaterhtmlhelp.h
delete mode 100644 linden/indra/newview/llfloaterimport.cpp
delete mode 100644 linden/indra/newview/llfloaterimport.h
create mode 100644 linden/indra/newview/llfloaterpostprocess.cpp
create mode 100644 linden/indra/newview/llfloaterpostprocess.h
delete mode 100644 linden/indra/newview/llfloatersaveavatar.cpp
delete mode 100644 linden/indra/newview/llfloatersaveavatar.h
create mode 100644 linden/indra/newview/llfloaterurlentry.cpp
create mode 100644 linden/indra/newview/llfloaterurlentry.h
create mode 100644 linden/indra/newview/llfloaterwater.cpp
create mode 100644 linden/indra/newview/llfloaterwater.h
create mode 100644 linden/indra/newview/llfloaterwindlight.cpp
create mode 100644 linden/indra/newview/llfloaterwindlight.h
delete mode 100644 linden/indra/newview/llhudconnector.cpp
delete mode 100644 linden/indra/newview/llhudconnector.h
delete mode 100644 linden/indra/newview/lllocalanimationobject.cpp
delete mode 100644 linden/indra/newview/lllocalanimationobject.h
create mode 100644 linden/indra/newview/llmimetypes.cpp
create mode 100644 linden/indra/newview/llmimetypes.h
create mode 100644 linden/indra/newview/llpanellandmedia.cpp
create mode 100644 linden/indra/newview/llpanellandmedia.h
create mode 100644 linden/indra/newview/llparcelselection.cpp
create mode 100644 linden/indra/newview/llparcelselection.h
create mode 100644 linden/indra/newview/llpostprocess.cpp
create mode 100644 linden/indra/newview/llpostprocess.h
delete mode 100644 linden/indra/newview/llroam.cpp
delete mode 100644 linden/indra/newview/llroam.h
create mode 100644 linden/indra/newview/llurlhistory.cpp
create mode 100644 linden/indra/newview/llurlhistory.h
delete mode 100644 linden/indra/newview/llviewerjointshape.cpp
delete mode 100644 linden/indra/newview/llviewerjointshape.h
create mode 100644 linden/indra/newview/llviewermedia.cpp
create mode 100644 linden/indra/newview/llviewermedia.h
create mode 100644 linden/indra/newview/llviewerparcelmedia.cpp
create mode 100644 linden/indra/newview/llviewerparcelmedia.h
create mode 100644 linden/indra/newview/llviewerparcelmediaautoplay.cpp
create mode 100644 linden/indra/newview/llviewerparcelmediaautoplay.h
delete mode 100644 linden/indra/newview/llvostars.cpp
delete mode 100644 linden/indra/newview/llvostars.h
create mode 100644 linden/indra/newview/llvowlsky.cpp
create mode 100644 linden/indra/newview/llvowlsky.h
create mode 100644 linden/indra/newview/llwaterparammanager.cpp
create mode 100644 linden/indra/newview/llwaterparammanager.h
create mode 100644 linden/indra/newview/llwaterparamset.cpp
create mode 100644 linden/indra/newview/llwaterparamset.h
create mode 100644 linden/indra/newview/llwlanimator.cpp
create mode 100644 linden/indra/newview/llwlanimator.h
create mode 100644 linden/indra/newview/llwldaycycle.cpp
create mode 100644 linden/indra/newview/llwldaycycle.h
create mode 100644 linden/indra/newview/llwlparammanager.cpp
create mode 100644 linden/indra/newview/llwlparammanager.h
create mode 100644 linden/indra/newview/llwlparamset.cpp
create mode 100644 linden/indra/newview/llwlparamset.h
create mode 100644 linden/indra/newview/secondlife setup build aruna.bat
create mode 100644 linden/indra/newview/secondlife setup build firstlookwindlight.bat
create mode 100644 linden/indra/newview/secondlife setup build mitra.bat
create mode 100644 linden/indra/newview/secondlife setup build mohini.bat
create mode 100644 linden/indra/newview/secondlife setup build nandi.bat
create mode 100644 linden/indra/newview/secondlife setup build radha.bat
create mode 100644 linden/indra/newview/secondlife setup build ravi.bat
create mode 100644 linden/indra/newview/skins/xui/en-us/floater_day_cycle_options.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/floater_env_settings.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/floater_hardware_settings.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/floater_media_browser.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/floater_post_process.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/floater_url_entry.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/floater_water.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/floater_windlight_options.xml
create mode 100644 linden/indra/newview/skins/xui/en-us/mime_types.xml
delete mode 100644 linden/indra/newview/skins/xui/en-us/panel_preferences_graphics2.xml
delete mode 100644 linden/indra/newview/skins/xui/en-us/panel_preferences_graphics3.xml
create mode 100755 linden/libraries/include/glh/glh_linear.h
delete mode 100644 linden/libraries/include/llmozlib.h
create mode 100644 linden/libraries/include/llmozlib2.h
diff --git a/linden/doc/contributions.txt b/linden/doc/contributions.txt
index d35e2aa..8606ad8 100644
--- a/linden/doc/contributions.txt
+++ b/linden/doc/contributions.txt
@@ -8,6 +8,9 @@ Able Whitman
VWR-650
VWR-1460
VWR-1691
+Aimee Trescothick
+ VWR-3903
+ VWR-4803
Alejandro Rosenthal
VWR-1184
Alissa Sabre
@@ -33,6 +36,7 @@ Alissa Sabre
VWR-1410
VWR-2116
VWR-2826
+ VWR-3290
VWR-4010
VWR-3410
Angus Boyd
@@ -44,9 +48,12 @@ Balp Allen
Benja Kepler
VWR-746
Blakar Ogre
+ VWR-418
VWR-881
+ VWR-983
VWR-1612
VWR-1613
+ VWR-2164
blino Nakamura
VWR-17
Boroondas Gupte
@@ -55,6 +62,8 @@ Boroondas Gupte
bushing Spatula
VWR-119
VWR-424
+Carjay McGinnis
+ VWR-3737
Catherine Pfeffer
VWR-1282
Dale Glass
@@ -170,6 +179,9 @@ McCabe Maxsted
Michelle2 Zenovka
VWR-2652
VWR-2834
+ VWR-3749
+Mm Alder
+ VWR-3777
Mr Greggan
VWR-445
Nicholaz Beresford
@@ -179,6 +191,7 @@ Nicholaz Beresford
VWR-349
VWR-353
VWR-364
+ VWR-374
VWR-546
VWR-691
VWR-727
diff --git a/linden/etc/message.xml b/linden/etc/message.xml
index ddbfa58..bfbf1b1 100644
--- a/linden/etc/message.xml
+++ b/linden/etc/message.xml
@@ -357,6 +357,14 @@
trusted-sender
true
+
+ ParcelProperties
+
avatarnotesrequest
+
+ FetchInventoryDescendents
+
GroupProposalBallot
messageBans
diff --git a/linden/indra/SConstruct b/linden/indra/SConstruct
index d06b5b6..1dfb980 100644
--- a/linden/indra/SConstruct
+++ b/linden/indra/SConstruct
@@ -14,7 +14,7 @@
#
# Then build as follows:
#
-# scons BTARGET=client STANDALONE=yes MOZLIB=no ELFIO=no DISTCC=no
+# scons BTARGET=client STANDALONE=yes MOZLIB2=no ELFIO=no DISTCC=no
#
# For help on options:
#
@@ -86,12 +86,12 @@ opts.AddOptions(
EnumOption('BTARGET', 'Set build target', 'server',
allowed_values=('client', 'server', 'all')),
BoolOption('DISTCC', 'Enabled distcc', True),
- BoolOption('MOZLIB', 'Enabled llmozlib/mozilla support', True),
+ BoolOption('MOZLIB2', 'Enabled llmozlib2/mozilla support', True),
BoolOption('FMOD', 'Enabled FMOD audio support', True),
BoolOption('GSTREAMER', 'Enabled GStreamer support', True),
BoolOption('COLORGCC', 'Enabled colorgcc', True),
EnumOption('GRID', 'Client package\'s default grid', 'default',
- allowed_values=('default', 'aditi', 'agni', 'durga', 'ganga', 'shakti', 'siva', 'soma', 'uma', 'vaak', 'yami')),
+ allowed_values=('default', 'aditi', 'agni', 'durga', 'ganga', 'shakti', 'siva', 'soma', 'uma', 'vaak', 'yami', 'mohini', 'aruna', 'mitra', 'nandi', 'radha', 'ravi')),
EnumOption('CHANNEL', 'Client package\'s default channel', 'Release',
allowed_values=('Release', 'Release Candidate', 'WindLight')),
BoolOption('ELFIO', 'Enabled enhanced backtraces with libELFIO symbol extraction support', True),
@@ -106,7 +106,7 @@ build_param = optenv['BUILD']
arch = optenv['ARCH']
target_param = optenv['BTARGET']
enable_distcc = optenv['DISTCC']
-enable_mozlib = optenv['MOZLIB']
+enable_mozlib = optenv['MOZLIB2']
enable_gstreamer = optenv['GSTREAMER']
enable_colorgcc = optenv['COLORGCC']
grid = optenv['GRID']
@@ -286,8 +286,9 @@ for build_target in targets:
if standalone:
include_dirs += [d[2:] for d in
pkgconfig('--cflags-only-I').split()]
+ client_external_libs += [ 'boost_regex' ]
else:
- client_external_libs += [ 'gtk-x11-2.0', 'atk-1.0', 'gmodule-2.0', 'gdk-x11-2.0', 'gdk_pixbuf-2.0', 'pango-1.0', 'pangoft2-1.0', 'pangox-1.0', 'pangoxft-1.0', 'Xinerama' ]
+ client_external_libs += [ 'gtk-x11-2.0', 'atk-1.0', 'gmodule-2.0', 'gdk-x11-2.0', 'gdk_pixbuf-2.0', 'pango-1.0', 'pangoft2-1.0', 'pangox-1.0', 'pangoxft-1.0', 'Xinerama' , 'boost_regex']
incdirs = [ 'ELFIO', 'atk-1.0', 'glib-2.0', 'gtk-2.0',
'llfreetype2', 'pango-1.0' ]
include_dirs += ['../libraries/' + system_str + '/include/' + d
@@ -298,13 +299,13 @@ for build_target in targets:
else:
cppflags += '-DLL_ELFBIN=0 '
- # llmozlib stuff
+ # llmozlib2 stuff
if enable_mozlib:
- cppflags += '-DLL_LIBXUL_ENABLED=1 '
- client_external_libs += [ 'llmozlib' ]
- client_external_libs += [ 'mozjs', 'nspr4', 'plc4', 'plds4', 'profdirserviceprovider_s', 'xpcom', 'xul' ]
+ cppflags += '-DLL_LLMOZLIB_ENABLED=1 '
+ client_external_libs += [ 'llmozlib2' ]
+ client_external_libs += [ 'mozjs', 'nspr4', 'plc4', 'plds4', 'profdirserviceprovider_s', 'xul' ]
else:
- cppflags += '-DLL_LIBXUL_ENABLED=0 '
+ cppflags += '-DLL_LLMOZLIB_ENABLED=0 '
# GStreamer stuff
if enable_gstreamer:
@@ -437,13 +438,16 @@ for build_target in targets:
### Distributed build hosts ###
if enable_distcc:
- hosts = [ 'localhost/2', ]
- if arch == 'i686':
- dead = []
- stations = [s for s in xrange(36) if s not in dead]
- random.shuffle(stations)
- hosts += ['station%d.lindenlab.com/2,lzo' % s for s in stations]
- hosts = ' '.join(hosts)
+ if 'DISTCC_HOSTS' in os.environ:
+ hosts = os.environ['DISTCC_HOSTS']
+ else:
+ hosts = [ 'localhost/2', ]
+ if arch == 'i686':
+ dead = []
+ stations = [s for s in xrange(36) if s not in dead]
+ random.shuffle(stations)
+ hosts += ['station%d.lindenlab.com/2,lzo' % s for s in stations]
+ hosts = ' '.join(hosts)
print "Distributing to hosts: " + hosts
env['ENV']['DISTCC_HOSTS'] = hosts
env['ENV']['USER'] = os.environ['USER']
diff --git a/linden/indra/indra_complete/indra_complete.sln b/linden/indra/indra_complete/indra_complete.sln
index 83dbdc5..b9efa5a 100644
--- a/linden/indra/indra_complete/indra_complete.sln
+++ b/linden/indra/indra_complete/indra_complete.sln
@@ -243,6 +243,8 @@ Global
ReleaseForDownload = ReleaseForDownload
ReleaseNoOpt = ReleaseNoOpt
EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.Debug.ActiveCfg = Debug|Win32
{7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.Debug.Build.0 = Debug|Win32
diff --git a/linden/indra/indra_complete/indra_complete_vc8.sln b/linden/indra/indra_complete/indra_complete_vc8.sln
index 372ea06..f00d16b 100644
--- a/linden/indra/indra_complete/indra_complete_vc8.sln
+++ b/linden/indra/indra_complete/indra_complete_vc8.sln
@@ -391,7 +391,6 @@ Global
{D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
{D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.ReleaseForDownload|Win32.Build.0 = Release|Win32
{D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
- {D0FDC1C3-A589-40F2-ABCA-A84FF3835624}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
{C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.Debug|Win32.ActiveCfg = Debug|Win32
{C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.Debug|Win32.Build.0 = Debug|Win32
{C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
@@ -401,7 +400,6 @@ Global
{C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
{C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.ReleaseForDownload|Win32.Build.0 = Release|Win32
{C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
- {C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
{A5504A1E-8BA4-45D2-8144-1B6937E37E98}.Debug|Win32.ActiveCfg = Debug|Win32
{A5504A1E-8BA4-45D2-8144-1B6937E37E98}.Debug|Win32.Build.0 = Debug|Win32
{A5504A1E-8BA4-45D2-8144-1B6937E37E98}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
@@ -411,7 +409,6 @@ Global
{A5504A1E-8BA4-45D2-8144-1B6937E37E98}.ReleaseForDownload|Win32.ActiveCfg = Release|Win32
{A5504A1E-8BA4-45D2-8144-1B6937E37E98}.ReleaseForDownload|Win32.Build.0 = Release|Win32
{A5504A1E-8BA4-45D2-8144-1B6937E37E98}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32
- {A5504A1E-8BA4-45D2-8144-1B6937E37E98}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32
{777F38BE-2DFE-4051-9AAD-2832ABC474CC}.Debug|Win32.ActiveCfg = Debug|Win32
{777F38BE-2DFE-4051-9AAD-2832ABC474CC}.Debug|Win32.Build.0 = Debug|Win32
{777F38BE-2DFE-4051-9AAD-2832ABC474CC}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32
diff --git a/linden/indra/lib/python/indra/base/config.py b/linden/indra/lib/python/indra/base/config.py
index eea733a..3865f5e 100644
--- a/linden/indra/lib/python/indra/base/config.py
+++ b/linden/indra/lib/python/indra/base/config.py
@@ -47,6 +47,25 @@ def load(indra_xml_file=None):
config_file.close()
#print "loaded config from",indra_xml_file,"into",_g_config_dict
+def dump(indra_xml_file, indra_cfg={}, update_in_mem=False):
+ '''
+ Dump config contents into a file
+ Kindof reverse of load.
+ Optionally takes a new config to dump.
+ Does NOT update global config unless requested.
+ '''
+ global _g_config_dict
+ if not indra_cfg:
+ indra_cfg = _g_config_dict
+ if not indra_cfg:
+ return
+ config_file = open(indra_xml_file, 'w')
+ _config_xml = llsd.format_xml(indra_cfg)
+ config_file.write(_config_xml)
+ config_file.close()
+ if update_in_mem:
+ update(indra_cfg)
+
def update(new_conf):
"""Load an XML file and apply its map as overrides or additions
to the existing config. The dataserver does this with indra.xml
@@ -69,6 +88,12 @@ def get(key, default = None):
load()
return _g_config_dict.get(key, default)
+def set(key, newval):
+ global _g_config_dict
+ if _g_config_dict == None:
+ load()
+ _g_config_dict[key] = newval
+
def as_dict():
global _g_config_dict
return _g_config_dict
diff --git a/linden/indra/lib/python/indra/base/lllog.py b/linden/indra/lib/python/indra/base/lllog.py
new file mode 100644
index 0000000..99c50ef
--- /dev/null
+++ b/linden/indra/lib/python/indra/base/lllog.py
@@ -0,0 +1,72 @@
+"""\
+@file lllog.py
+@brief Logging for event processing
+
+$LicenseInfo:firstyear=2008&license=mit$
+
+Copyright (c) 2008, Linden Research, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+$/LicenseInfo$
+"""
+
+from indra.base.llsd import format_notation
+
+try:
+ import syslog
+except ImportError:
+ # Windows
+ import sys
+
+ class syslog(object):
+ _logfp = sys.stderr
+
+ def syslog(msg):
+ _logfp.write(msg)
+ if not msg.endswith('\n'):
+ _logfp.write('\n')
+
+ syslog = staticmethod(syslog)
+
+class Logger(object):
+ def __init__(self, name='indra'):
+ self._sequence = 0
+ try:
+ syslog.openlog(name, syslog.LOG_CONS | syslog.LOG_PID,
+ syslog.LOG_LOCAL0)
+ except AttributeError:
+ # No syslog module on Windows
+ pass
+
+ def next(self):
+ self._sequence += 1
+ return self._sequence
+
+ def log(self, msg, llsd):
+ payload = 'LLLOGMESSAGE (%d) %s %s' % (self.next(), msg,
+ format_notation(llsd))
+ syslog.syslog(payload)
+
+_logger = None
+
+def log(msg, llsd):
+ global _logger
+ if _logger is None:
+ _logger = Logger()
+ _logger.log(msg, llsd)
diff --git a/linden/indra/lib/python/indra/base/lluuid.py b/linden/indra/lib/python/indra/base/lluuid.py
index f173310..dd336f0 100644
--- a/linden/indra/lib/python/indra/base/lluuid.py
+++ b/linden/indra/lib/python/indra/base/lluuid.py
@@ -227,16 +227,31 @@ def printTranslatedMemory(four_hex_uints):
uuid.setFromMemoryDump(four_hex_uints)
print uuid.toString()
-def isPossiblyID(id_str):
+def isUUID(id_str):
"""
- This function returns 1 if the string passed has some uuid-like
- characteristics. Otherwise returns 0.
+ This function returns:
+ - 1 if the string passed is a UUID
+ - 0 is the string passed is not a UUID
+ - None if it neither of the if's below is satisfied
"""
if not id_str or len(id_str) < 5 or len(id_str) > 36:
return 0
if isinstance(id_str, UUID) or UUID.uuid_regex.match(id_str):
return 1
+
+ return None
+
+def isPossiblyID(id_str):
+ """
+ This function returns 1 if the string passed has some uuid-like
+ characteristics. Otherwise returns 0.
+ """
+
+ is_uuid = isUUID(id_str)
+ if is_uuid is not None:
+ return is_uuid
+
# build a string which matches every character.
hex_wildcard = r"[0-9a-fA-F]"
chars = len(id_str)
diff --git a/linden/indra/lib/python/indra/base/metrics.py b/linden/indra/lib/python/indra/base/metrics.py
index e640c45..04e6286 100644
--- a/linden/indra/lib/python/indra/base/metrics.py
+++ b/linden/indra/lib/python/indra/base/metrics.py
@@ -31,12 +31,23 @@ $/LicenseInfo$
import sys
from indra.base import llsd
-def log(location, stats, file=None):
- "Write a standard llmetrics log"
- metrics = {'location':location, 'stats':stats}
- if file is None:
+_sequence_id = 0
+
+def record_metrics(table, stats, dest=None):
+ "Write a standard metrics log"
+ _log("LLMETRICS", table, stats, dest)
+
+def record_event(table, data, dest=None):
+ "Write a standard logmessage log"
+ _log("LLLOGMESSAGE", table, data, dest)
+
+def _log(header, table, data, dest):
+ if dest is None:
# do this check here in case sys.stdout changes at some
# point. as a default parameter, it will never be
# re-evaluated.
- file = sys.stdout
- print >>file, "LLMETRICS:", llsd.format_notation(metrics)
+ dest = sys.stdout
+ global _sequence_id
+ print >>dest, header, "(" + str(_sequence_id) + ")",
+ print >>dest, table, llsd.format_notation(data)
+ _sequence_id += 1
diff --git a/linden/indra/lib/python/indra/ipc/mysql_pool.py b/linden/indra/lib/python/indra/ipc/mysql_pool.py
index 0a06cdd..01e31bb 100644
--- a/linden/indra/lib/python/indra/ipc/mysql_pool.py
+++ b/linden/indra/lib/python/indra/ipc/mysql_pool.py
@@ -64,12 +64,13 @@ connection pools keyed on host,databasename"""
else:
return self._credentials.get('default', None)
- def get(self, host, dbname):
- key = (host, dbname)
+ def get(self, host, dbname, port=3306):
+ key = (host, dbname, port)
if key not in self._databases:
new_kwargs = self._kwargs.copy()
new_kwargs['db'] = dbname
new_kwargs['host'] = host
+ new_kwargs['port'] = port
new_kwargs.update(self.credentials_for(host))
dbpool = ConnectionPool(self._min_size, self._max_size, *self._args, **new_kwargs)
self._databases[key] = dbpool
diff --git a/linden/indra/lib/python/indra/ipc/russ.py b/linden/indra/lib/python/indra/ipc/russ.py
index a198acf..fbb1777 100644
--- a/linden/indra/lib/python/indra/ipc/russ.py
+++ b/linden/indra/lib/python/indra/ipc/russ.py
@@ -136,7 +136,15 @@ def _build_query_string(query_dict):
@returns Returns an urlencoded query string including leading '?'.
"""
if query_dict:
- return '?' + urllib.urlencode(query_dict)
+ keys = query_dict.keys()
+ keys.sort()
+ def stringize(value):
+ if type(value) in (str,unicode):
+ return value
+ else:
+ return str(value)
+ query_list = [urllib.quote(str(key)) + '=' + urllib.quote(stringize(query_dict[key])) for key in keys]
+ return '?' + '&'.join(query_list)
else:
return ''
diff --git a/linden/indra/lib/python/indra/util/llsubprocess.py b/linden/indra/lib/python/indra/util/llsubprocess.py
new file mode 100644
index 0000000..1c107d9
--- /dev/null
+++ b/linden/indra/lib/python/indra/util/llsubprocess.py
@@ -0,0 +1,106 @@
+"""\
+@file llsubprocess.py
+@author Phoenix
+@date 2008-01-18
+@brief The simplest possible wrapper for a common sub-process paradigm.
+
+$LicenseInfo:firstyear=2007&license=mit$
+
+Copyright (c) 2007-2008, Linden Research, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+$/LicenseInfo$
+"""
+
+import os
+import popen2
+import time
+import select
+
+class Timeout(RuntimeError):
+ "Exception raised when a subprocess times out."
+ pass
+
+def run(command, args=None, data=None, timeout=None):
+ """\
+@brief Run command with arguments
+
+This is it. This is the function I want to run all the time when doing
+subprocces, but end up copying the code everywhere. none of the
+standard commands are secure and provide a way to specify input, get
+all the output, and get the result.
+@param command A string specifying a process to launch.
+@param args Arguments to be passed to command. Must be list, tuple or None.
+@param data input to feed to the command.
+@param timeout Maximum number of many seconds to run.
+@return Returns (result, stdout, stderr) from process.
+"""
+ cmd = [command]
+ if args:
+ cmd.extend([str(arg) for arg in args])
+ #print "cmd: ","' '".join(cmd)
+ child = popen2.Popen3(cmd, True)
+ #print child.pid
+ out = []
+ err = []
+ result = -1
+ time_left = timeout
+ tochild = [child.tochild.fileno()]
+ while True:
+ time_start = time.time()
+ #print "time:",time_left
+ p_in, p_out, p_err = select.select(
+ [child.fromchild.fileno(), child.childerr.fileno()],
+ tochild,
+ [],
+ time_left)
+ if p_in:
+ new_line = os.read(child.fromchild.fileno(), 32 * 1024)
+ if new_line:
+ #print "line:",new_line
+ out.append(new_line)
+ new_line = os.read(child.childerr.fileno(), 32 * 1024)
+ if new_line:
+ #print "error:", new_line
+ err.append(new_line)
+ if p_out:
+ if data:
+ #print "p_out"
+ bytes = os.write(child.tochild.fileno(), data)
+ data = data[bytes:]
+ if len(data) == 0:
+ data = None
+ tochild = []
+ child.tochild.close()
+ result = child.poll()
+ if result != -1:
+ child.tochild.close()
+ child.fromchild.close()
+ child.childerr.close()
+ break
+ if time_left is not None:
+ time_left -= (time.time() - time_start)
+ if time_left < 0:
+ raise Timeout
+ #print "result:",result
+ out = ''.join(out)
+ #print "stdout:", out
+ err = ''.join(err)
+ #print "stderr:", err
+ return result, out, err
diff --git a/linden/indra/lib/python/indra/util/named_query.py b/linden/indra/lib/python/indra/util/named_query.py
index c462d9f..c52bfde 100644
--- a/linden/indra/lib/python/indra/util/named_query.py
+++ b/linden/indra/lib/python/indra/util/named_query.py
@@ -495,9 +495,51 @@ class _RewriteQueryForArray(object):
if type(value) in (list,tuple):
rv = []
for idx in range(len(value)):
- new_key = "_" + key + "_" + str(idx)
- self.new_params[new_key] = value[idx]
- rv.append("%(" + new_key + ")s")
+ # if the value@idx is array-like, we are
+ # probably dealing with a VALUES
+ new_key = "_%s_%s"%(key, str(idx))
+ val_item = value[idx]
+ if type(val_item) in (list, tuple, dict):
+ if type(val_item) is dict:
+ # this is because in Python, the order of
+ # key, value retrieval from the dict is not
+ # guaranteed to match what the input intended
+ # and for VALUES, order is important.
+ # TODO: Implemented ordered dict in LLSD parser?
+ raise ExpectationFailed('Only lists/tuples allowed,\
+ received dict')
+ values_keys = []
+ for value_idx, item in enumerate(val_item):
+ # we want a key of the format :
+ # key_#replacement_#value_row_#value_col
+ # ugh... so if we are replacing 10 rows in user_note,
+ # the first values clause would read (for @:user_notes) :-
+ # ( :_user_notes_0_1_1, :_user_notes_0_1_2, :_user_notes_0_1_3 )
+ # the input LLSD for VALUES will look like:
+ # ...
+ #
+ # ...
+ values_key = "%s_%s"%(new_key, value_idx)
+ self.new_params[values_key] = item
+ values_keys.append("%%(%s)s"%values_key)
+ # now collapse all these new place holders enclosed in ()
+ # from [':_key_0_1_1', ':_key_0_1_2', ':_key_0_1_3,...]
+ # rv will have [ '(:_key_0_1_1, :_key_0_1_2, :_key_0_1_3)', ]
+ # which is flattened a few lines below join(rv)
+ rv.append('(%s)' % ','.join(values_keys))
+ else:
+ self.new_params[new_key] = val_item
+ rv.append("%%(%s)s"%new_key)
return ','.join(rv)
else:
# not something that can be expanded, so just drop the
diff --git a/linden/indra/lib/python/indra/util/shutil2.py b/linden/indra/lib/python/indra/util/shutil2.py
new file mode 100644
index 0000000..2c504c2
--- /dev/null
+++ b/linden/indra/lib/python/indra/util/shutil2.py
@@ -0,0 +1,84 @@
+'''
+@file shutil2.py
+@brief a better shutil.copytree replacement
+
+$LicenseInfo:firstyear=2007&license=mit$
+
+Copyright (c) 2007-2008, Linden Research, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+$/LicenseInfo$
+'''
+
+#
+# shutil2.py
+# Taken from http://www.scons.org/wiki/AccumulateBuilder
+# the stock copytree sucks because it insists that the
+# target dir not exist
+#
+
+import os.path
+import shutil
+
+def copytree(src, dest, symlinks=False):
+ """My own copyTree which does not fail if the directory exists.
+
+ Recursively copy a directory tree using copy2().
+
+ If the optional symlinks flag is true, symbolic links in the
+ source tree result in symbolic links in the destination tree; if
+ it is false, the contents of the files pointed to by symbolic
+ links are copied.
+
+ Behavior is meant to be identical to GNU 'cp -R'.
+ """
+ def copyItems(src, dest, symlinks=False):
+ """Function that does all the work.
+
+ It is necessary to handle the two 'cp' cases:
+ - destination does exist
+ - destination does not exist
+
+ See 'cp -R' documentation for more details
+ """
+ for item in os.listdir(src):
+ srcPath = os.path.join(src, item)
+ if os.path.isdir(srcPath):
+ srcBasename = os.path.basename(srcPath)
+ destDirPath = os.path.join(dest, srcBasename)
+ if not os.path.exists(destDirPath):
+ os.makedirs(destDirPath)
+ copyItems(srcPath, destDirPath)
+ elif os.path.islink(item) and symlinks:
+ linkto = os.readlink(item)
+ os.symlink(linkto, dest)
+ else:
+ shutil.copy2(srcPath, dest)
+
+ # case 'cp -R src/ dest/' where dest/ already exists
+ if os.path.exists(dest):
+ destPath = os.path.join(dest, os.path.basename(src))
+ if not os.path.exists(destPath):
+ os.makedirs(destPath)
+ # case 'cp -R src/ dest/' where dest/ does not exist
+ else:
+ os.makedirs(dest)
+ destPath = dest
+ # actually copy the files
+ copyItems(src, destPath)
diff --git a/linden/indra/llaudio/llaudio_vc8.vcproj b/linden/indra/llaudio/llaudio_vc8.vcproj
index 6ca3e67..6cfe76c 100644
--- a/linden/indra/llaudio/llaudio_vc8.vcproj
+++ b/linden/indra/llaudio/llaudio_vc8.vcproj
@@ -1,323 +1,323 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/linden/indra/llaudio/llaudio_vc9.vcproj b/linden/indra/llaudio/llaudio_vc9.vcproj
index a1a8d91..e51623c 100644
--- a/linden/indra/llaudio/llaudio_vc9.vcproj
+++ b/linden/indra/llaudio/llaudio_vc9.vcproj
@@ -1,324 +1,324 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/linden/indra/llcharacter/llcharacter.cpp b/linden/indra/llcharacter/llcharacter.cpp
index af4c5aa..0339cf0 100644
--- a/linden/indra/llcharacter/llcharacter.cpp
+++ b/linden/indra/llcharacter/llcharacter.cpp
@@ -241,33 +241,15 @@ void LLCharacter::dumpCharacter( LLJoint* joint )
//-----------------------------------------------------------------------------
void LLCharacter::setAnimationData(std::string name, void *data)
{
- if(mAnimationData.getValue(name))
- {
- *mAnimationData[name] = data;
- }
- else
- {
- mAnimationData.addToHead(name, data);
- }
+ mAnimationData[name] = data;
}
//-----------------------------------------------------------------------------
// getAnimationData()
//-----------------------------------------------------------------------------
-void * LLCharacter::getAnimationData(std::string name)
+void* LLCharacter::getAnimationData(std::string name)
{
- void **result = mAnimationData.getValue(name);
- void *return_value; // Necessary to suppress VC6 warning. JC
- if (!result)
- {
- return_value = NULL;
- }
- else
- {
- return_value = *result;
- }
-
- return return_value;
+ return get_if_there(mAnimationData, name, (void*)NULL);
}
//-----------------------------------------------------------------------------
@@ -275,7 +257,7 @@ void * LLCharacter::getAnimationData(std::string name)
//-----------------------------------------------------------------------------
void LLCharacter::removeAnimationData(std::string name)
{
- mAnimationData.remove(name);
+ mAnimationData.erase(name);
}
//-----------------------------------------------------------------------------
diff --git a/linden/indra/llcharacter/llcharacter.h b/linden/indra/llcharacter/llcharacter.h
index 6699796..46faab1 100644
--- a/linden/indra/llcharacter/llcharacter.h
+++ b/linden/indra/llcharacter/llcharacter.h
@@ -39,9 +39,7 @@
#include "lljoint.h"
#include "llmotioncontroller.h"
-#include "llassoclist.h"
#include "llvisualparam.h"
-#include "linked_lists.h"
#include "string_table.h"
#include "llmemory.h"
#include "llthread.h"
@@ -255,7 +253,8 @@ public:
protected:
LLMotionController mMotionController;
- LLAssocList mAnimationData;
+ typedef std::map animation_data_map_t;
+ animation_data_map_t mAnimationData;
F32 mPreferredPelvisHeight;
ESex mSex;
diff --git a/linden/indra/llcharacter/llcharacter_vc8.vcproj b/linden/indra/llcharacter/llcharacter_vc8.vcproj
index 00ceb88..fdad9c2 100644
--- a/linden/indra/llcharacter/llcharacter_vc8.vcproj
+++ b/linden/indra/llcharacter/llcharacter_vc8.vcproj
@@ -1,419 +1,419 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/linden/indra/llcharacter/llcharacter_vc9.vcproj b/linden/indra/llcharacter/llcharacter_vc9.vcproj
index 13e3b14..837ec04 100644
--- a/linden/indra/llcharacter/llcharacter_vc9.vcproj
+++ b/linden/indra/llcharacter/llcharacter_vc9.vcproj
@@ -1,420 +1,420 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/linden/indra/llcharacter/llkeyframemotion.cpp b/linden/indra/llcharacter/llkeyframemotion.cpp
index 4288b8d..0138860 100644
--- a/linden/indra/llcharacter/llkeyframemotion.cpp
+++ b/linden/indra/llcharacter/llkeyframemotion.cpp
@@ -122,6 +122,7 @@ U32 LLKeyframeMotion::JointMotionList::dumpDiagInfo()
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
+
//-----------------------------------------------------------------------------
// ScaleCurve::ScaleCurve()
//-----------------------------------------------------------------------------
@@ -136,7 +137,7 @@ LLKeyframeMotion::ScaleCurve::ScaleCurve()
//-----------------------------------------------------------------------------
LLKeyframeMotion::ScaleCurve::~ScaleCurve()
{
- mKeys.deleteAllData();
+ mKeys.clear();
mNumKeys = 0;
}
@@ -146,43 +147,42 @@ LLKeyframeMotion::ScaleCurve::~ScaleCurve()
LLVector3 LLKeyframeMotion::ScaleCurve::getValue(F32 time, F32 duration)
{
LLVector3 value;
- F32 index_before, index_after;
- ScaleKey* scale_before;
- ScaleKey* scale_after;
- mKeys.getInterval(time, index_before, index_after, scale_before, scale_after);
- if (scale_before)
+ if (mKeys.empty())
{
- if (!scale_after)
- {
- scale_after = &mLoopInKey;
- index_after = duration;
- }
-
- if (index_after == index_before)
- {
- value = scale_after->mScale;
- }
- else
- {
- F32 u = (time - index_before) / (index_after - index_before);
- value = interp(u, *scale_before, *scale_after);
- }
+ value.clearVec();
+ return value;
+ }
+
+ key_map_t::iterator right = mKeys.lower_bound(time);
+ if (right == mKeys.end())
+ {
+ // Past last key
+ --right;
+ value = right->second.mScale;
+ }
+ else if (right == mKeys.begin() || right->first == time)
+ {
+ // Before first key or exactly on a key
+ value = right->second.mScale;
}
else
{
- // before first key
- if (scale_after)
- {
- value = scale_after->mScale;
- }
- // no keys?
- else
+ // Between two keys
+ key_map_t::iterator left = right; --left;
+ F32 index_before = left->first;
+ F32 index_after = right->first;
+ ScaleKey& scale_before = left->second;
+ ScaleKey& scale_after = right->second;
+ if (right == mKeys.end())
{
- value.clearVec();
+ scale_after = mLoopInKey;
+ index_after = duration;
}
- }
+ F32 u = (time - index_before) / (index_after - index_before);
+ value = interp(u, scale_before, scale_after);
+ }
return value;
}
@@ -217,7 +217,7 @@ LLKeyframeMotion::RotationCurve::RotationCurve()
//-----------------------------------------------------------------------------
LLKeyframeMotion::RotationCurve::~RotationCurve()
{
- mKeys.deleteAllData();
+ mKeys.clear();
mNumKeys = 0;
}
@@ -227,44 +227,42 @@ LLKeyframeMotion::RotationCurve::~RotationCurve()
LLQuaternion LLKeyframeMotion::RotationCurve::getValue(F32 time, F32 duration)
{
LLQuaternion value;
- F32 index_before, index_after;
- RotationKey* rot_before;
- RotationKey* rot_after;
- mKeys.getInterval(time, index_before, index_after, rot_before, rot_after);
-
- if (rot_before)
+ if (mKeys.empty())
{
- if (!rot_after)
- {
- rot_after = &mLoopInKey;
- index_after = duration;
- }
-
- if (index_after == index_before)
- {
- value = rot_after->mRotation;
- }
- else
- {
- F32 u = (time - index_before) / (index_after - index_before);
- value = interp(u, *rot_before, *rot_after);
- }
+ value = LLQuaternion::DEFAULT;
+ return value;
+ }
+
+ key_map_t::iterator right = mKeys.lower_bound(time);
+ if (right == mKeys.end())
+ {
+ // Past last key
+ --right;
+ value = right->second.mRotation;
+ }
+ else if (right == mKeys.begin() || right->first == time)
+ {
+ // Before first key or exactly on a key
+ value = right->second.mRotation;
}
else
{
- // before first key
- if (rot_after)
+ // Between two keys
+ key_map_t::iterator left = right; --left;
+ F32 index_before = left->first;
+ F32 index_after = right->first;
+ RotationKey& rot_before = left->second;
+ RotationKey& rot_after = right->second;
+ if (right == mKeys.end())
{
- value = rot_after->mRotation;
- }
- // no keys?
- else
- {
- value = LLQuaternion::DEFAULT;
+ rot_after = mLoopInKey;
+ index_after = duration;
}
- }
+ F32 u = (time - index_before) / (index_after - index_before);
+ value = interp(u, rot_before, rot_after);
+ }
return value;
}
@@ -300,7 +298,7 @@ LLKeyframeMotion::PositionCurve::PositionCurve()
//-----------------------------------------------------------------------------
LLKeyframeMotion::PositionCurve::~PositionCurve()
{
- mKeys.deleteAllData();
+ mKeys.clear();
mNumKeys = 0;
}
@@ -310,46 +308,45 @@ LLKeyframeMotion::PositionCurve::~PositionCurve()
LLVector3 LLKeyframeMotion::PositionCurve::getValue(F32 time, F32 duration)
{
LLVector3 value;
- F32 index_before, index_after;
- PositionKey* pos_before;
- PositionKey* pos_after;
-
- mKeys.getInterval(time, index_before, index_after, pos_before, pos_after);
- if (pos_before)
+ if (mKeys.empty())
{
- if (!pos_after)
- {
- pos_after = &mLoopInKey;
- index_after = duration;
- }
-
- if (index_after == index_before)
- {
- value = pos_after->mPosition;
- }
- else
- {
- F32 u = (time - index_before) / (index_after - index_before);
- value = interp(u, *pos_before, *pos_after);
- }
+ value.clearVec();
+ return value;
+ }
+
+ key_map_t::iterator right = mKeys.lower_bound(time);
+ if (right == mKeys.end())
+ {
+ // Past last key
+ --right;
+ value = right->second.mPosition;
+ }
+ else if (right == mKeys.begin() || right->first == time)
+ {
+ // Before first key or exactly on a key
+ value = right->second.mPosition;
}
else
{
- // before first key
- if (pos_after)
+ // Between two keys
+ key_map_t::iterator left = right; --left;
+ F32 index_before = left->first;
+ F32 index_after = right->first;
+ PositionKey& pos_before = left->second;
+ PositionKey& pos_after = right->second;
+ if (right == mKeys.end())
{
- value = pos_after->mPosition;
- }
- // no keys?
- else
- {
- value.clearVec();
+ pos_after = mLoopInKey;
+ index_after = duration;
}
+
+ F32 u = (time - index_before) / (index_after - index_before);
+ value = interp(u, pos_before, pos_after);
}
llassert(value.isFinite());
-
+
return value;
}
@@ -1404,8 +1401,8 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
time = U16_to_F32(time_short, 0.f, mJointMotionList->mDuration);
}
- RotationKey *rot_key = new RotationKey;
- rot_key->mTime = time;
+ RotationKey rot_key;
+ rot_key.mTime = time;
LLVector3 rot_angles;
U16 x, y, z;
@@ -1416,7 +1413,7 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
success = dp.unpackVector3(rot_angles, "rot_angles");
LLQuaternion::Order ro = StringToOrder("ZYX");
- rot_key->mRotation = mayaQ(rot_angles.mV[VX], rot_angles.mV[VY], rot_angles.mV[VZ], ro);
+ rot_key.mRotation = mayaQ(rot_angles.mV[VX], rot_angles.mV[VY], rot_angles.mV[VZ], ro);
}
else
{
@@ -1428,13 +1425,12 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
rot_vec.mV[VX] = U16_to_F32(x, -1.f, 1.f);
rot_vec.mV[VY] = U16_to_F32(y, -1.f, 1.f);
rot_vec.mV[VZ] = U16_to_F32(z, -1.f, 1.f);
- rot_key->mRotation.unpackFromVector3(rot_vec);
+ rot_key.mRotation.unpackFromVector3(rot_vec);
}
if (!success)
{
llwarns << "can't read rotation key (" << k << ")" << llendl;
- delete rot_key;
return FALSE;
}
@@ -1464,14 +1460,13 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
for (S32 k = 0; k < joint_motion->mPositionCurve.mNumKeys; k++)
{
U16 time_short;
- PositionKey* pos_key = new PositionKey;
+ PositionKey pos_key;
if (old_version)
{
- if (!dp.unpackF32(pos_key->mTime, "time"))
+ if (!dp.unpackF32(pos_key.mTime, "time"))
{
llwarns << "can't read position key (" << k << ")" << llendl;
- delete pos_key;
return FALSE;
}
}
@@ -1480,18 +1475,17 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
if (!dp.unpackU16(time_short, "time"))
{
llwarns << "can't read position key (" << k << ")" << llendl;
- delete pos_key;
return FALSE;
}
- pos_key->mTime = U16_to_F32(time_short, 0.f, mJointMotionList->mDuration);
+ pos_key.mTime = U16_to_F32(time_short, 0.f, mJointMotionList->mDuration);
}
BOOL success = TRUE;
if (old_version)
{
- success = dp.unpackVector3(pos_key->mPosition, "pos");
+ success = dp.unpackVector3(pos_key.mPosition, "pos");
}
else
{
@@ -1501,23 +1495,22 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
success &= dp.unpackU16(y, "pos_y");
success &= dp.unpackU16(z, "pos_z");
- pos_key->mPosition.mV[VX] = U16_to_F32(x, -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
- pos_key->mPosition.mV[VY] = U16_to_F32(y, -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
- pos_key->mPosition.mV[VZ] = U16_to_F32(z, -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
+ pos_key.mPosition.mV[VX] = U16_to_F32(x, -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
+ pos_key.mPosition.mV[VY] = U16_to_F32(y, -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
+ pos_key.mPosition.mV[VZ] = U16_to_F32(z, -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
}
if (!success)
{
llwarns << "can't read position key (" << k << ")" << llendl;
- delete pos_key;
return FALSE;
}
- pCurve->mKeys[pos_key->mTime] = pos_key;
+ pCurve->mKeys[pos_key.mTime] = pos_key;
if (is_pelvis)
{
- mJointMotionList->mPelvisBBox.addPoint(pos_key->mPosition);
+ mJointMotionList->mPelvisBBox.addPoint(pos_key.mPosition);
}
}
@@ -1724,14 +1717,14 @@ BOOL LLKeyframeMotion::serialize(LLDataPacker& dp) const
success &= dp.packS32(joint_motionp->mPriority, "joint_priority");
success &= dp.packS32(joint_motionp->mRotationCurve.mNumKeys, "num_rot_keys");
- for (RotationKey* rot_keyp = joint_motionp->mRotationCurve.mKeys.getFirstData();
- rot_keyp;
- rot_keyp = joint_motionp->mRotationCurve.mKeys.getNextData())
+ for (RotationCurve::key_map_t::iterator iter = joint_motionp->mRotationCurve.mKeys.begin();
+ iter != joint_motionp->mRotationCurve.mKeys.end(); ++iter)
{
- U16 time_short = F32_to_U16(rot_keyp->mTime, 0.f, mJointMotionList->mDuration);
+ RotationKey& rot_key = iter->second;
+ U16 time_short = F32_to_U16(rot_key.mTime, 0.f, mJointMotionList->mDuration);
success &= dp.packU16(time_short, "time");
- LLVector3 rot_angles = rot_keyp->mRotation.packToVector3();
+ LLVector3 rot_angles = rot_key.mRotation.packToVector3();
U16 x, y, z;
rot_angles.quantize16(-1.f, 1.f, -1.f, 1.f);
@@ -1744,18 +1737,18 @@ BOOL LLKeyframeMotion::serialize(LLDataPacker& dp) const
}
success &= dp.packS32(joint_motionp->mPositionCurve.mNumKeys, "num_pos_keys");
- for (PositionKey* pos_keyp = joint_motionp->mPositionCurve.mKeys.getFirstData();
- pos_keyp;
- pos_keyp = joint_motionp->mPositionCurve.mKeys.getNextData())
+ for (PositionCurve::key_map_t::iterator iter = joint_motionp->mPositionCurve.mKeys.begin();
+ iter != joint_motionp->mPositionCurve.mKeys.end(); ++iter)
{
- U16 time_short = F32_to_U16(pos_keyp->mTime, 0.f, mJointMotionList->mDuration);
+ PositionKey& pos_key = iter->second;
+ U16 time_short = F32_to_U16(pos_key.mTime, 0.f, mJointMotionList->mDuration);
success &= dp.packU16(time_short, "time");
U16 x, y, z;
- pos_keyp->mPosition.quantize16(-LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET, -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
- x = F32_to_U16(pos_keyp->mPosition.mV[VX], -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
- y = F32_to_U16(pos_keyp->mPosition.mV[VY], -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
- z = F32_to_U16(pos_keyp->mPosition.mV[VZ], -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
+ pos_key.mPosition.quantize16(-LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET, -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
+ x = F32_to_U16(pos_key.mPosition.mV[VX], -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
+ y = F32_to_U16(pos_key.mPosition.mV[VY], -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
+ z = F32_to_U16(pos_key.mPosition.mV[VZ], -LL_MAX_PELVIS_OFFSET, LL_MAX_PELVIS_OFFSET);
success &= dp.packU16(x, "pos_x");
success &= dp.packU16(y, "pos_y");
success &= dp.packU16(z, "pos_z");
@@ -2030,64 +2023,6 @@ void LLKeyframeMotion::onLoadComplete(LLVFS *vfs,
}
}
-
-//-----------------------------------------------------------------------------
-// writeCAL3D()
-//-----------------------------------------------------------------------------
-void LLKeyframeMotion::writeCAL3D(apr_file_t* fp)
-{
-//
-//
-//
-
- apr_file_printf(fp, "\n", getDuration(), mJointMotionList->getNumJointMotions());
- for (U32 joint_index = 0; joint_index < mJointMotionList->getNumJointMotions(); joint_index++)
- {
- JointMotion* joint_motionp = mJointMotionList->getJointMotion(joint_index);
- LLJoint* animated_joint = mCharacter->getJoint(joint_motionp->mJointName);
- S32 joint_num = animated_joint->mJointNum + 1;
-
- apr_file_printf(fp, " \n");
- }
- apr_file_printf(fp, "\n");
-}
-
//--------------------------------------------------------------------
// LLKeyframeDataCache::dumpDiagInfo()
//--------------------------------------------------------------------
diff --git a/linden/indra/llcharacter/llkeyframemotion.h b/linden/indra/llcharacter/llkeyframemotion.h
index 0ad0181..5f897cf 100644
--- a/linden/indra/llcharacter/llkeyframemotion.h
+++ b/linden/indra/llcharacter/llkeyframemotion.h
@@ -43,7 +43,6 @@
#include "llhandmotion.h"
#include "lljointstate.h"
#include "llmotion.h"
-#include "llptrskipmap.h"
#include "llquaternion.h"
#include "v3dmath.h"
#include "v3math.h"
@@ -158,7 +157,6 @@ public:
U32 getFileSize();
BOOL serialize(LLDataPacker& dp) const;
BOOL deserialize(LLDataPacker& dp);
- void writeCAL3D(apr_file_t* fp);
BOOL isLoaded() { return mJointMotionList != NULL; }
@@ -339,7 +337,8 @@ public:
InterpolationType mInterpolationType;
S32 mNumKeys;
- LLPtrSkipMap mKeys;
+ typedef std::map key_map_t;
+ key_map_t mKeys;
ScaleKey mLoopInKey;
ScaleKey mLoopOutKey;
};
@@ -357,7 +356,8 @@ public:
InterpolationType mInterpolationType;
S32 mNumKeys;
- LLPtrSkipMap mKeys;
+ typedef std::map key_map_t;
+ key_map_t mKeys;
RotationKey mLoopInKey;
RotationKey mLoopOutKey;
};
@@ -375,7 +375,8 @@ public:
InterpolationType mInterpolationType;
S32 mNumKeys;
- LLPtrSkipMap mKeys;
+ typedef std::map key_map_t;
+ key_map_t mKeys;
PositionKey mLoopInKey;
PositionKey mLoopOutKey;
};
diff --git a/linden/indra/llcharacter/llkeyframemotionparam.cpp b/linden/indra/llcharacter/llkeyframemotionparam.cpp
index 2dd935c..106c02c 100644
--- a/linden/indra/llcharacter/llkeyframemotionparam.cpp
+++ b/linden/indra/llcharacter/llkeyframemotionparam.cpp
@@ -48,14 +48,6 @@
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
-// sortFunc()
-//-----------------------------------------------------------------------------
-BOOL LLKeyframeMotionParam::sortFunc(ParameterizedMotion *new_motion, ParameterizedMotion *tested_motion)
-{
- return (new_motion->second < tested_motion->second);
-}
-
-//-----------------------------------------------------------------------------
// LLKeyframeMotionParam()
// Class Constructor
//-----------------------------------------------------------------------------
@@ -77,17 +69,18 @@ LLKeyframeMotionParam::LLKeyframeMotionParam( const LLUUID &id) : LLMotion(id)
//-----------------------------------------------------------------------------
LLKeyframeMotionParam::~LLKeyframeMotionParam()
{
- for (U32 i = 0; i < mParameterizedMotions.length(); i++)
+ for (motion_map_t::iterator iter = mParameterizedMotions.begin();
+ iter != mParameterizedMotions.end(); ++iter)
{
- LLLinkedList< ParameterizedMotion > *motionList = *mParameterizedMotions.getValueAt(i);
- for (ParameterizedMotion* paramMotion = motionList->getFirstData(); paramMotion; paramMotion = motionList->getNextData())
+ motion_list_t& motionList = iter->second;
+ for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2)
{
- delete paramMotion->first;
+ const ParameterizedMotion& paramMotion = *iter2;
+ delete paramMotion.first; // note - deletes the structure; ParameterizedMotion pair remains intact
}
- delete motionList;
+ motionList.clear();
}
-
- mParameterizedMotions.removeAll();
+ mParameterizedMotions.clear();
}
//-----------------------------------------------------------------------------
@@ -102,36 +95,39 @@ LLMotion::LLMotionInitStatus LLKeyframeMotionParam::onInitialize(LLCharacter *ch
return STATUS_FAILURE;
}
- for (U32 i = 0; i < mParameterizedMotions.length(); i++)
+ for (motion_map_t::iterator iter = mParameterizedMotions.begin();
+ iter != mParameterizedMotions.end(); ++iter)
{
- LLLinkedList< ParameterizedMotion > *motionList = *mParameterizedMotions.getValueAt(i);
- for (ParameterizedMotion* paramMotion = motionList->getFirstData(); paramMotion; paramMotion = motionList->getNextData())
+ motion_list_t& motionList = iter->second;
+ for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2)
{
- paramMotion->first->onInitialize(character);
+ const ParameterizedMotion& paramMotion = *iter2;
- if (paramMotion->first->getDuration() > mEaseInDuration)
+ paramMotion.first->onInitialize(character);
+
+ if (paramMotion.first->getDuration() > mEaseInDuration)
{
- mEaseInDuration = paramMotion->first->getEaseInDuration();
+ mEaseInDuration = paramMotion.first->getEaseInDuration();
}
- if (paramMotion->first->getEaseOutDuration() > mEaseOutDuration)
+ if (paramMotion.first->getEaseOutDuration() > mEaseOutDuration)
{
- mEaseOutDuration = paramMotion->first->getEaseOutDuration();
+ mEaseOutDuration = paramMotion.first->getEaseOutDuration();
}
- if (paramMotion->first->getDuration() > mDuration)
+ if (paramMotion.first->getDuration() > mDuration)
{
- mDuration = paramMotion->first->getDuration();
+ mDuration = paramMotion.first->getDuration();
}
- if (paramMotion->first->getPriority() > mPriority)
+ if (paramMotion.first->getPriority() > mPriority)
{
- mPriority = paramMotion->first->getPriority();
+ mPriority = paramMotion.first->getPriority();
}
- LLPose *pose = paramMotion->first->getPose();
+ LLPose *pose = paramMotion.first->getPose();
- mPoseBlender.addMotion(paramMotion->first);
+ mPoseBlender.addMotion(paramMotion.first);
for (LLJointState *jsp = pose->getFirstJointState(); jsp; jsp = pose->getNextJointState())
{
LLPose *blendedPose = mPoseBlender.getBlendedPose();
@@ -148,12 +144,14 @@ LLMotion::LLMotionInitStatus LLKeyframeMotionParam::onInitialize(LLCharacter *ch
//-----------------------------------------------------------------------------
BOOL LLKeyframeMotionParam::onActivate()
{
- for (U32 i = 0; i < mParameterizedMotions.length(); i++)
+ for (motion_map_t::iterator iter = mParameterizedMotions.begin();
+ iter != mParameterizedMotions.end(); ++iter)
{
- LLLinkedList< ParameterizedMotion > *motionList = *mParameterizedMotions.getValueAt(i);
- for (ParameterizedMotion* paramMotion = motionList->getFirstData(); paramMotion; paramMotion = motionList->getNextData())
+ motion_list_t& motionList = iter->second;
+ for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2)
{
- paramMotion->first->activate();
+ const ParameterizedMotion& paramMotion = *iter2;
+ paramMotion.first->activate();
}
}
return TRUE;
@@ -165,46 +163,48 @@ BOOL LLKeyframeMotionParam::onActivate()
//-----------------------------------------------------------------------------
BOOL LLKeyframeMotionParam::onUpdate(F32 time, U8* joint_mask)
{
- F32 weightFactor = 1.f / (F32)mParameterizedMotions.length();
- U32 i;
+ F32 weightFactor = 1.f / (F32)mParameterizedMotions.size();
// zero out all pose weights
- for (i = 0; i < mParameterizedMotions.length(); i++)
+ for (motion_map_t::iterator iter = mParameterizedMotions.begin();
+ iter != mParameterizedMotions.end(); ++iter)
{
- LLLinkedList< ParameterizedMotion > *motionList = *mParameterizedMotions.getValueAt(i);
-
- for (ParameterizedMotion* paramMotion = motionList->getFirstData(); paramMotion; paramMotion = motionList->getNextData())
+ motion_list_t& motionList = iter->second;
+ for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2)
{
-// llinfos << "Weight for pose " << paramMotion->first->getName() << " is " << paramMotion->first->getPose()->getWeight() << llendl;
- paramMotion->first->getPose()->setWeight(0.f);
+ const ParameterizedMotion& paramMotion = *iter2;
+// llinfos << "Weight for pose " << paramMotion.first->getName() << " is " << paramMotion.first->getPose()->getWeight() << llendl;
+ paramMotion.first->getPose()->setWeight(0.f);
}
}
- for (i = 0; i < mParameterizedMotions.length(); i++)
+ for (motion_map_t::iterator iter = mParameterizedMotions.begin();
+ iter != mParameterizedMotions.end(); ++iter)
{
- LLLinkedList< ParameterizedMotion > *motionList = *mParameterizedMotions.getValueAt(i);
- std::string *paramName = mParameterizedMotions.getIndexAt(i);
- F32* paramValue = (F32 *)mCharacter->getAnimationData(*paramName);
- ParameterizedMotion* firstMotion = NULL;
- ParameterizedMotion* secondMotion = NULL;
-
+ const std::string& paramName = iter->first;
+ F32* paramValue = (F32 *)mCharacter->getAnimationData(paramName);
if (NULL == paramValue) // unexpected, but...
{
llwarns << "paramValue == NULL" << llendl;
continue;
}
- for (ParameterizedMotion* paramMotion = motionList->getFirstData(); paramMotion; paramMotion = motionList->getNextData())
+ const ParameterizedMotion* firstMotion = NULL;
+ const ParameterizedMotion* secondMotion = NULL;
+
+ motion_list_t& motionList = iter->second;
+ for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2)
{
- paramMotion->first->onUpdate(time, joint_mask);
+ const ParameterizedMotion& paramMotion = *iter2;
+ paramMotion.first->onUpdate(time, joint_mask);
- F32 distToParam = paramMotion->second - *paramValue;
+ F32 distToParam = paramMotion.second - *paramValue;
if ( distToParam <= 0.f)
{
// keep track of the motion closest to the parameter value
- firstMotion = paramMotion;
+ firstMotion = ¶mMotion;
}
else
{
@@ -212,13 +212,13 @@ BOOL LLKeyframeMotionParam::onUpdate(F32 time, U8* joint_mask)
// so store the first motion we find as the second one we want to blend...
if (firstMotion && !secondMotion )
{
- secondMotion = paramMotion;
+ secondMotion = ¶mMotion;
}
//...or, if we've seen no other motion so far, make sure we blend to this only
else if (!firstMotion)
{
- firstMotion = paramMotion;
- secondMotion = paramMotion;
+ firstMotion = ¶mMotion;
+ secondMotion = ¶mMotion;
}
}
}
@@ -283,12 +283,14 @@ BOOL LLKeyframeMotionParam::onUpdate(F32 time, U8* joint_mask)
//-----------------------------------------------------------------------------
void LLKeyframeMotionParam::onDeactivate()
{
- for (U32 i = 0; i < mParameterizedMotions.length(); i++)
+ for (motion_map_t::iterator iter = mParameterizedMotions.begin();
+ iter != mParameterizedMotions.end(); ++iter)
{
- LLLinkedList< ParameterizedMotion > *motionList = *mParameterizedMotions.getValueAt(i);
- for (ParameterizedMotion* paramMotion = motionList->getFirstData(); paramMotion; paramMotion = motionList->getNextData())
+ motion_list_t& motionList = iter->second;
+ for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2)
{
- paramMotion->first->onDeactivate();
+ const ParameterizedMotion& paramMotion = *iter2;
+ paramMotion.first->onDeactivate();
}
}
}
@@ -307,23 +309,8 @@ BOOL LLKeyframeMotionParam::addKeyframeMotion(char *name, const LLUUID &id, char
newMotion->setName(name);
- // make sure a list of motions exists for this parameter
- LLLinkedList< ParameterizedMotion > *motionList;
- if (mParameterizedMotions.getValue(param))
- {
- motionList = *mParameterizedMotions.getValue(param);
- }
- else
- {
- motionList = new LLLinkedList< ParameterizedMotion >;
- motionList->setInsertBefore(sortFunc);
- mParameterizedMotions.addToHead(param, motionList);
- }
-
// now add motion to this list
- ParameterizedMotion *parameterizedMotion = new ParameterizedMotion(newMotion, value);
-
- motionList->addDataSorted(parameterizedMotion);
+ mParameterizedMotions[param].insert(ParameterizedMotion(newMotion, value));
return TRUE;
}
@@ -334,14 +321,16 @@ BOOL LLKeyframeMotionParam::addKeyframeMotion(char *name, const LLUUID &id, char
//-----------------------------------------------------------------------------
void LLKeyframeMotionParam::setDefaultKeyframeMotion(char *name)
{
- for (U32 i = 0; i < mParameterizedMotions.length(); i++)
+ for (motion_map_t::iterator iter = mParameterizedMotions.begin();
+ iter != mParameterizedMotions.end(); ++iter)
{
- LLLinkedList< ParameterizedMotion > *motionList = *mParameterizedMotions.getValueAt(i);
- for (ParameterizedMotion* paramMotion = motionList->getFirstData(); paramMotion; paramMotion = motionList->getNextData())
+ motion_list_t& motionList = iter->second;
+ for (motion_list_t::iterator iter2 = motionList.begin(); iter2 != motionList.end(); ++iter2)
{
- if (paramMotion->first->getName() == name)
+ const ParameterizedMotion& paramMotion = *iter2;
+ if (paramMotion.first->getName() == name)
{
- mDefaultKeyframeMotion = paramMotion->first;
+ mDefaultKeyframeMotion = paramMotion.first;
}
}
}
diff --git a/linden/indra/llcharacter/llkeyframemotionparam.h b/linden/indra/llcharacter/llkeyframemotionparam.h
index a5bc2cb..f509e6a 100644
--- a/linden/indra/llcharacter/llkeyframemotionparam.h
+++ b/linden/indra/llcharacter/llkeyframemotionparam.h
@@ -143,8 +143,20 @@ protected:
// Member Data
//-------------------------------------------------------------------------
- typedef LLLinkedList < ParameterizedMotion > motion_list_t;
- LLAssocList mParameterizedMotions;
+ struct compare_motions
+ {
+ bool operator() (const ParameterizedMotion& a, const ParameterizedMotion& b) const
+ {
+ if (a.second != b.second)
+ return (a.second < b.second);
+ else
+ return a.first < b.first;
+ }
+ };
+
+ typedef std::set < ParameterizedMotion, compare_motions > motion_list_t;
+ typedef std::map motion_map_t;
+ motion_map_t mParameterizedMotions;
LLMotion* mDefaultKeyframeMotion;
LLCharacter* mCharacter;
LLPoseBlender mPoseBlender;
diff --git a/linden/indra/llcharacter/llmotioncontroller.cpp b/linden/indra/llcharacter/llmotioncontroller.cpp
index d1a2a53..028cf22 100644
--- a/linden/indra/llcharacter/llmotioncontroller.cpp
+++ b/linden/indra/llcharacter/llmotioncontroller.cpp
@@ -746,7 +746,7 @@ void LLMotionController::updateMotion()
// is calculating a new keyframe pose, make sure the last one gets applied
mPoseBlender.interpolate(1.f);
- mPoseBlender.clearBlenders();
+ clearBlenders();
mTimeStepCount = quantum_count;
mLastTime = mTime;
@@ -824,6 +824,13 @@ void LLMotionController::updateMotion()
//-----------------------------------------------------------------------------
BOOL LLMotionController::activateMotionInstance(LLMotion *motion, F32 time)
{
+ // It's not clear why the getWeight() line seems to be crashing this, but
+ // hopefully this fixes it.
+ if (motion == NULL || motion->getPose() == NULL)
+ {
+ return FALSE;
+ }
+
if (mLoadingMotions.find(motion) != mLoadingMotions.end())
{
// we want to start this motion, but we can't yet, so flag it as started
diff --git a/linden/indra/llcharacter/llmotioncontroller.h b/linden/indra/llcharacter/llmotioncontroller.h
index e66edcb..48e184d 100644
--- a/linden/indra/llcharacter/llmotioncontroller.h
+++ b/linden/indra/llcharacter/llmotioncontroller.h
@@ -157,6 +157,8 @@ public:
// deactivates terminated motions`
void updateMotion();
+ void clearBlenders() { mPoseBlender.clearBlenders(); }
+
// flush motions
// releases all motion instances
void flushAllMotions();
diff --git a/linden/indra/llcharacter/llpose.cpp b/linden/indra/llcharacter/llpose.cpp
index 3a6a221..f496b7b 100644
--- a/linden/indra/llcharacter/llpose.cpp
+++ b/linden/indra/llcharacter/llpose.cpp
@@ -379,15 +379,20 @@ void LLJointStateBlender::blendJointStates(BOOL apply_now)
}
}
- // apply blended transforms
- target_joint->setPosition(blended_pos);
- target_joint->setScale(blended_scale);
- target_joint->setRotation(blended_rot);
-
- // apply additive transforms
- target_joint->setPosition(target_joint->getPosition() + added_pos);
- target_joint->setScale(target_joint->getScale() + added_scale);
- target_joint->setRotation(added_rot * target_joint->getRotation());
+ if (!added_scale.isFinite())
+ {
+ added_scale.clearVec();
+ }
+
+ if (!blended_scale.isFinite())
+ {
+ blended_scale.setVec(1,1,1);
+ }
+
+ // apply transforms
+ target_joint->setPosition(blended_pos + added_pos);
+ target_joint->setScale(blended_scale + added_scale);
+ target_joint->setRotation(added_rot * blended_rot);
if (apply_now)
{
diff --git a/linden/indra/llcharacter/llpose.h b/linden/indra/llcharacter/llpose.h
index f67a26b..075a456 100644
--- a/linden/indra/llcharacter/llpose.h
+++ b/linden/indra/llcharacter/llpose.h
@@ -37,10 +37,8 @@
//-----------------------------------------------------------------------------
#include
-#include "linked_lists.h"
#include "llmap.h"
#include "lljointstate.h"
-#include "llassoclist.h"
#include "lljoint.h"
#include