From e62261edb2e031154c1ca6334a29823cd0d200e8 Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Sun, 27 Mar 2016 23:24:17 -0400 Subject: [PATCH] Sync with Alchemy, includes much awaited lib updates for Linux Applies ALCH-420 - Replace all invisiprims with fully transparent texture and remove dead code paths -ARC no longer takes invisis into consideration. Syncs some script keywords updates. Changes all "\n" in llfloaterabout.cpp to '\n' because screw.dat --- autobuild.xml | 446 ++++++++++------- indra/cmake/CEFPlugin.cmake | 5 + indra/cmake/Copy3rdPartyLibs.cmake | 2 +- indra/llcommon/lldate.cpp | 202 ++++---- indra/llwindow/llwindowsdl.cpp | 107 +--- indra/llwindow/llwindowsdl.h | 3 +- indra/newview/CMakeLists.txt | 1 + indra/newview/app_settings/keywords.ini | 5 + indra/newview/app_settings/settings.xml | 12 - indra/newview/lldrawpool.cpp | 3 - indra/newview/lldrawpool.h | 8 - indra/newview/lldrawpoolavatar.cpp | 8 +- indra/newview/lldrawpoolbump.cpp | 110 +--- indra/newview/lldrawpoolbump.h | 36 +- indra/newview/lldrawpoolterrain.cpp | 11 +- indra/newview/lldrawpoolterrain.h | 2 - indra/newview/llfloaterabout.cpp | 33 +- indra/newview/llviewerdisplay.cpp | 2 - indra/newview/llviewerkeyboard.cpp | 11 +- indra/newview/llviewertexturelist.cpp | 14 + indra/newview/llvovolume.cpp | 46 +- indra/newview/pipeline.cpp | 34 -- indra/newview/pipeline.h | 5 - indra/newview/skins/apollo/keywords.ini | 4 + .../default/xui/en-us/mime_types_linux.xml | 40 +- indra/newview/skins/gemini/keywords.ini | 4 + indra/newview/viewer_manifest.py | 106 +++- indra/plugins/CMakeLists.txt | 9 +- indra/plugins/cef/CMakeLists.txt | 21 +- indra/plugins/cef/dummy_volume_catcher.cpp | 58 +++ indra/plugins/cef/linux_volume_catcher.cpp | 468 ++++++++++++++++++ .../cef/linux_volume_catcher_pa_syms.inc | 21 + .../cef/linux_volume_catcher_paglib_syms.inc | 6 + indra/plugins/cef/media_plugin_cef.cpp | 55 +- 34 files changed, 1191 insertions(+), 707 deletions(-) create mode 100644 indra/plugins/cef/dummy_volume_catcher.cpp create mode 100644 indra/plugins/cef/linux_volume_catcher.cpp create mode 100644 indra/plugins/cef/linux_volume_catcher_pa_syms.inc create mode 100644 indra/plugins/cef/linux_volume_catcher_paglib_syms.inc diff --git a/autobuild.xml b/autobuild.xml index 2c40fd105..9c93704b6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -22,9 +22,9 @@ archive hash - 459cdc8d7c19a8025f98f61db95622ff + 8da309d24fb0bad8eaaa667fb04c6dc7 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/sdl_3p-update-sdl/rev/297546/arch/Linux/installer/SDL-1.2.15-linux-297546.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-sdl-update/rev/290561/arch/Linux/installer/SDL-1.2.15-linux-20140602.tar.bz2 name linux @@ -34,11 +34,11 @@ archive hash - 0af4eae4fd3a969ff3af542e1b3e4381 + 5c8df43ff04799f3f675b8a0f328f184 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/SDL-1.2.15-linux64-201504222326.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/SDL-1.2.15-linux64-201603241005.tar.bz2 name linux64 @@ -66,9 +66,11 @@ archive hash - 0c53148aa00e51c06fa246c4130915be + 1eca2a268913083596127b46570779ab + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/apr_3p-update-apr/rev/297252/arch/Darwin/installer/apr_suite-1.4.5.297252-darwin-297252.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/apr_suite-1.5.2-darwin-201511222106.tar.bz2 name darwin @@ -78,9 +80,9 @@ archive hash - 402552cf158e2fe953b7224f4615a957 + f38c966a430012dc157fdc104f23a59b url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/apr_3p-update-apr/rev/297252/arch/Linux/installer/apr_suite-1.4.5.297252-linux-297252.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-apr/rev/259951/arch/Linux/installer/apr_suite-1.4.5-linux-20120618.tar.bz2 name linux @@ -90,11 +92,11 @@ archive hash - e66a2e7fb424f37aa4a02e854c240b3c + cd30af9b015c373bed5062b1642a1b3e hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/apr_suite-1.5.2-linux64-201506231118.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/apr_suite-1.5.2-linux64-201603240800.tar.bz2 name linux64 @@ -104,11 +106,11 @@ archive hash - a0674f9dfce2b15bc90bf86ef2b01196 + 76186b09770cab66dba6586cb1d2123f hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows/lib-vc14/apr_suite-1.5.2-windows-201601151037.tar.bz2 + http://depot.alchemyviewer.org/pub/windows/lib-vc14/apr_suite-1.5.2-windows-201603261507.tar.bz2 name windows @@ -118,11 +120,11 @@ archive hash - 31c5f5b399da00037edd5b094ac6b97b + 586739a99e1366cd9e270dc7c9a4e519 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows64/lib-vc14/apr_suite-1.5.2-windows64-201512102110.tar.bz2 + http://depot.alchemyviewer.org/pub/windows64/lib-vc14/apr_suite-1.5.2-windows64-201603261452.tar.bz2 name windows64 @@ -150,9 +152,11 @@ archive hash - 637b4996f703f3e5bf835d847fc4cb81 + 9a42795b21203afe858db16703929436 + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/ares_3p-update-ares/rev/295506/arch/Darwin/installer/ares-1.10.0.295506-darwin-295506.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/ares-1.10.0-darwin-201511222040.tar.bz2 name darwin @@ -162,9 +166,9 @@ archive hash - 7771d3653a0daf22d35bf96055d02d9a + 92f6a454d90b5740a38fb68e369cc13e url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/ares_3p-update-ares/rev/295506/arch/Linux/installer/ares-1.10.0.295506-linux-295506.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-ares-update/rev/290399/arch/Linux/installer/ares-1.10.0-linux-20140529.tar.bz2 name linux @@ -174,11 +178,11 @@ archive hash - 1539cf5db47189e670401ba587e14e3c + bef927b60affa6b5c0520f45c56b5cb3 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/ares-1.10.0-linux64-201504222057.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/ares-1.10.0-linux64-201603240702.tar.bz2 name linux64 @@ -234,9 +238,11 @@ archive hash - c296845cad075250c1ae2620f175a957 + 5e6a0930ca5c9e3c26970ac8589a538c + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/boost_3p-update-boost/rev/297445/arch/Darwin/installer/boost-1.57-darwin-297445.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/boost-1.59.0-darwin-201601091139.tar.bz2 name darwin @@ -246,9 +252,9 @@ archive hash - fb1537f7ad0b490fcb4f096c15dce9cd + 2f076eae296600a1b810ce375dc4b42d url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/boost_3p-update-boost/rev/297445/arch/Linux/installer/boost-1.57-linux-297445.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-boost-update/rev/290566/arch/Linux/installer/boost-1.55.0-linux-20140602.tar.bz2 name linux @@ -258,11 +264,11 @@ archive hash - 543643b22f086af333a3dcfbf75742e2 + 74a88afa7ff50462059c17321f91a359 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/boost-1.59.0-linux64-201509201640.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/boost-1.60.0-linux64-201603241316.tar.bz2 name linux64 @@ -316,9 +322,11 @@ archive hash - 66849777a83cb69cec3c06b07da7cd3d + d6e279fb5ce9093c89819803be5562db + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/colladadom_3p-update-colladadom/rev/297450/arch/Darwin/installer/colladadom-2.3.297450-darwin-297450.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/colladadom-2.3-darwin-201601091204.tar.bz2 name darwin @@ -328,9 +336,9 @@ archive hash - d627c2a679f3afb8d3e090d42f53cd2e + bdec5fe5fd008da4328f84115128ee61 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/colladadom_3p-update-colladadom/rev/297450/arch/Linux/installer/colladadom-2.3.297450-linux-297450.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-colladadom-update/rev/290576/arch/Linux/installer/colladadom-2.3-linux-20140602.tar.bz2 name linux @@ -340,11 +348,11 @@ archive hash - f5f4552817b4d0533c21cb20369fac6d + c84d1be467d7198103d905f710fa31d3 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/colladadom-2.3-linux64-201509211635.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/colladadom-2.3-linux64-201603241731.tar.bz2 name linux @@ -384,7 +392,7 @@ curl copyright - Copyright (c) 1996 - 2015, Daniel Stenberg, (daniel@haxx.se). + Copyright (c) 1996 - 2016, Daniel Stenberg, (daniel@haxx.se). description Library for transferring data specified with URL syntax license @@ -400,9 +408,11 @@ archive hash - d1c5125650a339a5209f429c70f4d395 + cc59e267a98b1b433574470a07737609 + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/curl_3p-update-curl/rev/297172/arch/Darwin/installer/curl-7.38.0.297172-darwin-297172.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/curl-7.48.0-darwin-201603231616.tar.bz2 name darwin @@ -412,9 +422,9 @@ archive hash - ee6c089ee193e551040d610befc5d1c1 + 06149da3d7a34adf40853f813ae55328 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/curl_3p-update-curl/rev/297172/arch/Linux/installer/curl-7.38.0.297172-linux-297172.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-curl-update/rev/295367/arch/Linux/installer/curl-7.38.0-linux-20141010.tar.bz2 name linux @@ -424,11 +434,11 @@ archive hash - 7c9d714545fcdc9de26da1ce673fe000 + 24a88e015ee9c1806e7aeb46887d38f5 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/curl-7.45.0-linux64-201510120428.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/curl-7.48.0-linux64-201603240914.tar.bz2 name linux64 @@ -438,11 +448,11 @@ archive hash - edeb99f22363e6c7dde1ade2d2810246 + f20491b59795d311cf8d730556cd141e hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows/lib-vc14/curl-7.47.0-windows-201601291530.tar.bz2 + http://depot.alchemyviewer.org/pub/windows/lib-vc14/curl-7.48.0-windows-201603231720.tar.bz2 name windows @@ -452,18 +462,18 @@ archive hash - c822bf688eaaa9524d821c8a9d72e1d7 + 86feef4905c2e46a9cbdc7a1df23d83f hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows64/lib-vc14/curl-7.47.0-windows64-201601291527.tar.bz2 + http://depot.alchemyviewer.org/pub/windows64/lib-vc14/curl-7.48.0-windows64-201603231658.tar.bz2 name windows64 version - 7.47.0 + 7.48.0 dbus-glib @@ -484,9 +494,9 @@ archive hash - c11ff7e2e0bd59e6e59628f24902bbcd + 94b058b9a81114dc4567bd78e4335425 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/dbus-glib_3p-update-dbus-glib/rev/297768/arch/Linux/installer/dbus_glib-0.76-linux-297768.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/dbus_glib-0.76-linux-20110310.tar.bz2 name linux @@ -560,9 +570,11 @@ archive hash - 452d1910ef853329cd59858e6c5b2c48 + fc3e46e4737b326b0ca926534ddce9f3 + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/expat_3p-update-expat/rev/297014/arch/Darwin/installer/expat-2.0.1.297014-darwin-297014.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/expat-2.1.1-darwin-201603271445.tar.bz2 name darwin @@ -572,9 +584,9 @@ archive hash - f546615d76bc0f9e8bc2b9ef89f0ca86 + 9bd79781b58e556ab1c36084ec4a1c0c url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/expat_3p-update-expat/rev/297014/arch/Linux/installer/expat-2.0.1.297014-linux-297014.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-expat/rev/221695/arch/Linux/installer/expat-2.0.1-linux-20110219.tar.bz2 name linux @@ -584,11 +596,11 @@ archive hash - b863aeee79defcd7f10860f19b97e254 + 3ed12f7d7b1a3bda07a3c6d8227a3bf2 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/expat-2.1.0-linux64-201504222216.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/expat-2.1.1-linux64-201603232308.tar.bz2 name linux64 @@ -598,11 +610,11 @@ archive hash - 97786c456086c2aeb7554c755361df81 + 454170939e4d1ba07060b73d6f81b9fc hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows/lib-vc14/expat-2.1.0-windows-201601150958.tar.bz2 + http://depot.alchemyviewer.org/pub/windows/lib-vc14/expat-2.1.1-windows-201603261409.tar.bz2 name windows @@ -612,18 +624,18 @@ archive hash - 7a08c54a3a869068f40a6ad4ea2716bb + 0cf6f4529ade22b7ae78da5d6303ed87 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows64/lib-vc14/expat-2.1.0-windows64-201512092314.tar.bz2 + http://depot.alchemyviewer.org/pub/windows64/lib-vc14/expat-2.1.1-windows64-201603261406.tar.bz2 name windows64 version - 2.1.0 + 2.1.1 fmodstudio @@ -644,11 +656,11 @@ archive hash - a51da309dd81293ae2940181d345bb77 + ef91e9966ffd6303a8805146c046c659 hash_algorithm md5 url - https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/fmodstudio-1.07.00-darwin-201510062322.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/fmodstudio-1.08.00-darwin-201603070723.tar.bz2 name darwin @@ -672,11 +684,11 @@ archive hash - adc55fd330f41a66dc64a6c3f7084e79 + 47f5754929fed18fd5ffff8cda2d84e2 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/fmodstudio-1.07.00-linux64-201510070033.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/fmodstudio-1.08.00-linux64-201603232053.tar.bz2 name linux64 @@ -686,11 +698,11 @@ archive hash - b8de0e7146e671c6cf1171f86a7b46a1 + 6548495a886b385c238167f4d5e6182d hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows/lib/fmodstudio-1.07.05-windows-201601151004.tar.bz2 + http://depot.alchemyviewer.org/pub/windows/lib/fmodstudio-1.08.00-windows-201603070824.tar.bz2 name windows @@ -700,18 +712,18 @@ archive hash - 8b80c508ebb6cd923d3448ba6f48fe3c + b80d49fd91e407fc8ab8afb3fcb4b138 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows64/lib/fmodstudio-1.07.05-windows64-201601160255.tar.bz2 + http://depot.alchemyviewer.org/pub/windows64/lib/fmodstudio-1.08.00-windows64-201603070822.tar.bz2 name windows64 version - 1.07.05 + 1.08.00 fontconfig @@ -732,9 +744,9 @@ archive hash - 864f9361661748ecf0e2cec7110d70b3 + 2843c48e6c84a51e3d6aa05dace4c8c0 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/fontconfig_3p-update-fontconfig/rev/297551/arch/Linux/installer/fontconfig-2.11.0-linux-297551.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-fontconfig-update/rev/290569/arch/Linux/installer/fontconfig-2.11.0-linux-20140602.tar.bz2 name linux @@ -744,11 +756,11 @@ archive hash - 333c37f6ec2c1db04b2d73493b3a4c09 + 25726244f5bcd05f412514b030098c3c hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/fontconfig-2.11.0-linux64-201507231614.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/fontconfig-2.11.0-linux64-201603241804.tar.bz2 name linux64 @@ -806,7 +818,7 @@ freetype copyright - Copyright 2006-2015 by David Turner, Robert Wilhelm, and Werner Lemberg. + Copyright 2006-2016 by David Turner, Robert Wilhelm, and Werner Lemberg. description Font rendering library license @@ -822,9 +834,11 @@ archive hash - 83618d16d974eb0af93926a10ac13297 + 8d41fe8cb821e7e080160586a53feec8 + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/freetype_3p-update-freetype/rev/297053/arch/Darwin/installer/freetype-2.4.4.297053-darwin-297053.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/freetype-2.6.1-darwin-201511222222.tar.bz2 name darwin @@ -834,9 +848,9 @@ archive hash - 1ac3152b440287c58509d8af0a50326d + 52f87a65cc61ec4b05721c079d015b19 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/freetype_3p-update-freetype/rev/297053/arch/Linux/installer/freetype-2.4.4.297053-linux-297053.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-freetype-update/rev/290557/arch/Linux/installer/freetype-2.4.4-linux-20140602.tar.bz2 name linux @@ -846,11 +860,11 @@ archive hash - f0588eb6aba810febd3ad48e6a259436 + b10ba0775b9f1033daf580a2cb55789d hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/freetype-2.6.0-linux64-201507231602.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/freetype-2.6.3-linux64-201603241755.tar.bz2 name linux64 @@ -860,11 +874,11 @@ archive hash - 980d01acc3f88ed345dc20fc3e0ba6c0 + e5be5197f12f9ca8078ba9ce4f1bce10 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows/lib-vc14/freetype-2.6.2-windows-201601151045.tar.bz2 + http://depot.alchemyviewer.org/pub/windows/lib-vc14/freetype-2.6.3-windows-201603011805.tar.bz2 name windows @@ -874,18 +888,18 @@ archive hash - 80d268872b1e9209b8932390caacd550 + e8c0acbe631d7a4cb1a2890b90e5bc8c hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows64/lib-vc14/freetype-2.6.2-windows64-201512130440.tar.bz2 + http://depot.alchemyviewer.org/pub/windows64/lib-vc14/freetype-2.6.3-windows64-201603011807.tar.bz2 name windows64 version - 2.6.2 + 2.6.3 glext @@ -970,11 +984,11 @@ archive hash - 71e678d70e276fc42a56926fc28a7abd + 6c6b3b06a4305c2da0aad1de132e6a07 hash_algorithm md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/glod_3p-update-glod/rev/296895/arch/Darwin/installer/glod-1.0pre4.296895-darwin-296895.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/glod-1.0pre4-darwin-201511222034.tar.bz2 name darwin @@ -984,11 +998,9 @@ archive hash - fffd130f17cbbe2b93cc241b27262647 - hash_algorithm - md5 + 176736c52b3cde6ca8e7d9e173d91731 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/glod_3p-update-glod/rev/296895/arch/Linux/installer/glod-1.0pre4.296895-linux-296895.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/268002/arch/Linux/installer/glod-1.0pre4-linux-20121212.tar.bz2 name linux @@ -998,11 +1010,11 @@ archive hash - 677a0141c4d9fd8778cd497c293b1704 + f7172928ba2201d4b9aeb2c70d7a55b9 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/glod-1.0pre4-linux64-201504222107.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/glod-1.0pre4-linux64-201603240031.tar.bz2 name linux64 @@ -1058,9 +1070,11 @@ archive hash - 171b39db6d0702535b41fad5b476e39d + 9f963eb1728e6d5077d4feba805d4896 + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/google-breakpad_3p-update-google-breakpad/rev/298033/arch/Darwin/installer/google_breakpad-1413.298033-darwin-298033.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/google_breakpad-9e60a27-darwin-201511222009.tar.bz2 name darwin @@ -1070,9 +1084,9 @@ archive hash - 0bf69fbc829d964820b798a0494278c9 + 52257e5eb166a0b69c9c0c38f6e1920e url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/google-breakpad_3p-update-google-breakpad/rev/298033/arch/Linux/installer/google_breakpad-1413.298033-linux-298033.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-breakpad/rev/273079/arch/Linux/installer/google_breakpad-0.0.0-rev1099-linux-20130329.tar.bz2 name linux @@ -1082,11 +1096,11 @@ archive hash - 97d74247b36e67d88f4a8ba8c7ee96a4 + 3709a51d4d5dff5ec0c4656623eaa05d hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/google_breakpad-1474-linux64-201507231539.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/google_breakpad-9e60a27-linux64-201603240004.tar.bz2 name linux64 @@ -1142,9 +1156,9 @@ archive hash - 0c252bcaa1cb852f5c4e46a13ed459c5 + 8aedfdcf670348c18a9991ae1b384a61 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/google-perftools_3p-update-google-perftools/rev/297263/arch/Linux/installer/gperftools-2.0.297263-linux-297263.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-google-perftools/rev/262672/arch/Linux/installer/gperftools-2.0-linux-20120727.tar.bz2 name linux @@ -1226,9 +1240,9 @@ archive hash - 15af375116f5c943ea6f4190bc764224 + 03694ade27f53199229c03cbbda89214 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/gtk_3p-gtk-atk-pango-glib/rev/294804/arch/Linux/installer/gtk_atk_pango_glib-0.1-linux-294804.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/gtk-atk-pango-glib-linux-20101001.tar.bz2 name linux @@ -1238,11 +1252,11 @@ archive hash - 5d820cbb71bac0ccc142622bc3a7d56f + 9678056c5ad714aa7ba1ba4ffcb09859 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/gtk_atk_pango_glib-0.0.2-linux64-201507231955.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/gtk_atk_pango_glib-0.0.2-linux64-201603241949.tar.bz2 name linux64 @@ -1270,9 +1284,11 @@ archive hash - 4d7658997fd0f93a9c55e40e40b1b0e5 + 5cf289747de86451b6a956adea468ac7 + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/jpeglib_3p-update-jpeglib/rev/296854/arch/Darwin/installer/jpeglib-8c.296854-darwin-296854.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/jpeglib-1.4.2-darwin-201511222055.tar.bz2 name darwin @@ -1282,9 +1298,9 @@ archive hash - 0a6641f030e173a7bc0dc8a3087b6c7d + dcca1db348831cdb7c6b26dc4076c597 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/jpeglib_3p-update-jpeglib/rev/296854/arch/Linux/installer/jpeglib-8c.296854-linux-296854.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-jpeglib/rev/224895/arch/Linux/installer/jpeglib-8c-linux-20110323.tar.bz2 name linux @@ -1294,11 +1310,11 @@ archive hash - bb3cfffb1e0079c0a4e1a731ca404e99 + 256812a20a66081e05578f91bab5b3e4 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/jpeglib-1.4.1-linux64-201507231342.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/jpeglib-1.4.2-linux64-201603240711.tar.bz2 name linux64 @@ -1354,9 +1370,11 @@ archive hash - b25a4f480e07c670ffef00c3da578f87 + 3243745940e8419f93abf39fd3358158 + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/jsoncpp_3p-update-jsoncpp/rev/297281/arch/Darwin/installer/jsoncpp-0.5.0.297281-darwin-297281.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/jsoncpp-1.6.5-darwin-201511222000.tar.bz2 name darwin @@ -1366,9 +1384,9 @@ archive hash - 5b3b5dbf0c82c1046482a74ce9e11c38 + 840cd9455638c0ea52c613cfddd07d5b url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/jsoncpp_3p-update-jsoncpp/rev/297281/arch/Linux/installer/jsoncpp-0.5.0.297281-linux-297281.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/jsoncpp-0.5.0-linux-20110315.tar.bz2 name linux @@ -1378,11 +1396,11 @@ archive hash - 07f1fc5de319f5ab4e73eaeaab11655f + 3ebbace19eb931d9236432ba537c3727 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/jsoncpp-1.6.5-linux64-201508261319.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/jsoncpp-1.6.5-linux64-201603232323.tar.bz2 name linux64 @@ -1438,9 +1456,11 @@ archive hash - 05eda16106df26a211f8bdd874d1fca5 + c897e44b3f5ac33436a028e6e3a5b29b + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/hunspell_3p-update-hunspell/rev/296916/arch/Darwin/installer/libhunspell-1.3.2.296916-darwin-296916.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/libhunspell-1.3.3-darwin-201511222015.tar.bz2 name darwin @@ -1450,9 +1470,9 @@ archive hash - 988deae5c63ec638ad222b400a431f5b + 0c432d2626aea2e91a56335879c92965 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/hunspell_3p-update-hunspell/rev/296916/arch/Linux/installer/libhunspell-1.3.2.296916-linux-296916.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-hunspell/rev/259874/arch/Linux/installer/libhunspell-1.3.2-linux-20120616.tar.bz2 name linux @@ -1462,11 +1482,11 @@ archive hash - f9c2a23d112f4401366e4cf61f12919f + f58652f3217c1e897e9051aa19d99139 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/libhunspell-1.3.3-linux64-201504222121.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/libhunspell-1.3.3-linux64-201603240026.tar.bz2 name linux64 @@ -1536,11 +1556,11 @@ archive hash - 25cc66cae22fdeacec871477c6c0ff9e + e3d59bdb4418f50365fbae7a866b4e23 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/libidn-1.31-linux64-201507111804.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/libidn-1.32-linux64-201603240734.tar.bz2 name linux64 @@ -1568,9 +1588,11 @@ archive hash - a01b411433dbf8a4b481de9e76d9a652 + 1d542606b146462cdfdc47a94f14eaf5 + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/libndofdev_3p-update-libndofdev/rev/297264/arch/Darwin/installer/libndofdev-0.1.297264-darwin-297264.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/libndofdev-0.1-darwin-201504232110.tar.bz2 name darwin @@ -1626,23 +1648,23 @@ archive hash - 79ab48e71adda5759685d17d2497cdc7 + d3fd1dab78123c39391b0afb372e5cf1 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/libndofdev_open-0.6-linux64-201504222332.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/libndofdev_open-0.8-linux64-201603241018.tar.bz2 name linux64 version - 0.6 + 0.8 libpng copyright - Copyright (c) 2004, 2006-2014 Glenn Randers-Pehrson + Copyright (c) 2004, 2006-2016 Glenn Randers-Pehrson description PNG Reference library license @@ -1658,9 +1680,11 @@ archive hash - 14cb5c8686a472e9e60179e46cd196f7 + 7c315d3fee9f9bf7e36c4251c41fa378 + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/libpng_3p-update-libpng/rev/297708/arch/Darwin/installer/libpng-1.6.8.297708-darwin-297708.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/libpng-1.6.19-darwin-201511222146.tar.bz2 name darwin @@ -1670,9 +1694,9 @@ archive hash - 6dec32fc2527f8cafd616f9271ff3478 + 3368a25b361c22a03f7ec7e0f8d5ff9d url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/libpng_3p-update-libpng/rev/297051/arch/Linux/installer/libpng-1.6.8.297051-linux-297051.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-libpng-update/rev/290558/arch/Linux/installer/libpng-1.6.8-linux-20140602.tar.bz2 name linux @@ -1682,11 +1706,11 @@ archive hash - e12673f5a2806cb5f7c22b432e4c18e2 + cd64cda7107b967279d5af03b0d46a8f hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/libpng-1.6.17-linux64-201504222318.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/libpng-1.6.21-linux64-201603240933.tar.bz2 name linux64 @@ -1696,11 +1720,11 @@ archive hash - 28c4370ae17b7881a8604ff0ed6c204b + 5e7b3ea13fec60f6c9a8965a390cfbd5 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows/lib-vc14/libpng-1.6.19-windows-201601151047.tar.bz2 + http://depot.alchemyviewer.org/pub/windows/lib-vc14/libpng-1.6.21-windows-201603011800.tar.bz2 name windows @@ -1710,18 +1734,18 @@ archive hash - a6646a596c1f015831c337605bb907e5 + b2f166e496fc19958777c92ffd032331 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows64/lib-vc14/libpng-1.6.19-windows64-201512122034.tar.bz2 + http://depot.alchemyviewer.org/pub/windows64/lib-vc14/libpng-1.6.21-windows64-201603011809.tar.bz2 name windows64 version - 1.6.19 + 1.6.21 libxml2 @@ -1742,9 +1766,11 @@ archive hash - 9303f0dd174129e297eca6cc2eb1ab3f + 242ffec9e9f8fca818b750c578eba0dd + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/libxml_3p-update-libxml/rev/297050/arch/Darwin/installer/libxml2-2.9.1.297050-darwin-297050.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/libxml2-2.9.3-darwin-201511222121.tar.bz2 name darwin @@ -1754,9 +1780,9 @@ archive hash - b8b584853dc1344bb3571c13b06ec39e + 7eb90f075730f8d7d176f8fb7bad5ef5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/libxml_3p-update-libxml/rev/297050/arch/Linux/installer/libxml2-2.9.1.297050-linux-297050.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-libxml-update/rev/290562/arch/Linux/installer/libxml2-2.9.1-linux-20140602.tar.bz2 name linux @@ -1766,11 +1792,11 @@ archive hash - bcfb3196df9b18aaf4f25ae40c8eda69 + 61351b10787b06045a70c905a58ca2f6 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/libxml2-2.9.2-linux64-201507231608.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/libxml2-2.9.3-linux64-201603241216.tar.bz2 name linux64 @@ -1826,15 +1852,29 @@ archive hash - 5a0f74f8e736d91d2c2c6cbc71db90bd + 9551150830531abc405888066437e2c2 hash_algorithm md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llceflib_3p-llceflib/rev/309177/arch/Darwin/installer/llceflib-1.5.1.309177-darwin-309177.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/llceflib-3.2526.1364.gf6bf57b-darwin-201601160847.tar.bz2 name darwin + linux64 + + archive + + hash + 6d832d5ed191e61c7aec6d8a10bb3062 + hash_algorithm + md5 + url + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/llceflib-3.2623.1395.g3034273-linux64-201603262117.tar.bz2 + + name + linux64 + windows archive @@ -1865,7 +1905,7 @@ version - 3.2526.1364.gf6bf57b + 3.2623.1395.g3034273 llphysicsextensions_stub @@ -2036,9 +2076,11 @@ archive hash - 07fca1531a27915f642a5c1d95008d54 + 83959618755a09d1af245e402f4b6232 + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/oggvorbis_3p-update-oggvorbis/rev/296878/arch/Darwin/installer/ogg_vorbis-1.2.2-1.3.2.296878-darwin-296878.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/ogg_vorbis-1.3.2-1.3.5-darwin-201511222036.tar.bz2 name darwin @@ -2048,9 +2090,9 @@ archive hash - b0cd31d5b07a9fc25c4d69ba2f95eace + 71eaa462eb0bf8842277a3436483a354 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/oggvorbis_3p-update-oggvorbis/rev/296878/arch/Linux/installer/ogg_vorbis-1.2.2-1.3.2.296878-linux-296878.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/229529/arch/Linux/installer/ogg_vorbis-1.2.2-1.3.2-linux-20110511.tar.bz2 name linux @@ -2060,11 +2102,11 @@ archive hash - f177439b76c57a9950949a239032e4e8 + d847ea384530e0bbb3774065dbdae65c hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/ogg_vorbis-1.3.2-1.3.5-linux64-201504222220.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/ogg_vorbis-1.3.2-1.3.5-linux64-201603240037.tar.bz2 name linux64 @@ -2115,16 +2157,30 @@ openal platforms + darwin + + archive + + hash + 4c0dd5385dbd8787d134e5e91f82f04a + hash_algorithm + md5 + url + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/openal-1.16.0-1.1.0-darwin-201412160747.tar.bz2 + + name + darwin + linux archive hash - 15ebe611213c9577691ffbade081549d + fccdca18a950ac9363c6fb39118b80e1 hash_algorithm md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/openal_3p-update-openal/rev/297677/arch/Linux/installer/openal-1.12.854-1.1.0.297677-linux-297677.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-3ad86a1c-linux-20110114.tar.bz2 name linux @@ -2134,11 +2190,11 @@ archive hash - b74ae4a2f23f69c19f2860d9b5290a75 + 7fea13f8caab7bf9184e0790eab9c2f3 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/openal-1.16.0-1.1.0-linux64-201504222210.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/openal-1.17.2-1.1.0-linux64-201603232035.tar.bz2 name linux64 @@ -2178,7 +2234,7 @@ openssl copyright - Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved; Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + Copyright (c) 1998-2016 The OpenSSL Project. All rights reserved; Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) description Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) Library license @@ -2194,9 +2250,11 @@ archive hash - 0a77d56769e6075957f614be6575423e + d415e218a7f3d0d1e3dd4f99d6129e6c + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/openssl_3p-update-openssl/rev/297168/arch/Darwin/installer/openssl-1.0.1h.297168-darwin-297168.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/openssl-1.0.2g-darwin-201603010806.tar.bz2 name darwin @@ -2206,9 +2264,9 @@ archive hash - c310ba9971cbd796b303c3be67fb11c6 + 0665c18f8cdbe2f90cb0a2f088cfe1a6 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/openssl_3p-update-openssl/rev/297168/arch/Linux/installer/openssl-1.0.1h.297168-linux-297168.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-openssl-update/rev/290662/arch/Linux/installer/openssl-1.0.1h-linux-20140605.tar.bz2 name linux @@ -2218,11 +2276,11 @@ archive hash - 92570921c5de44dd4b554cabb386bdc6 + 2a50dcb704f6af595fff44defc4b65df hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/openssl-1.0.2d-linux64-201507111825.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/openssl-1.0.2g-linux64-201603240821.tar.bz2 name linux64 @@ -2232,11 +2290,11 @@ archive hash - 835a1e2a994acd82a51d99e382de1549 + 91b9fa570258f627a9265452d9e65231 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows/lib-vc14/openssl-1.0.2f-windows-201601291508.tar.bz2 + http://depot.alchemyviewer.org/pub/windows/lib-vc14/openssl-1.0.2g-windows-201603011823.tar.bz2 name windows @@ -2246,18 +2304,18 @@ archive hash - 5aae87070da31ed959585ca641ba3ad9 + ec86d96ffcbdc10e715e27b4b0bbda43 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows64/lib-vc14/openssl-1.0.2f-windows64-201601291450.tar.bz2 + http://depot.alchemyviewer.org/pub/windows64/lib-vc14/openssl-1.0.2g-windows64-201603011842.tar.bz2 name windows64 version - 1.0.2f + 1.0.2g quicktime @@ -2428,9 +2486,11 @@ archive hash - 22608adaf54e8ddc9182a719ba6e2b32 + 364cbc9a049acb2a0d2cd6719a02adf0 + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/uriparser_3p-update-uriparser/rev/299435/arch/Darwin/installer/uriparser-0.8.0.1-darwin-299435.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/uriparser-0.8.4-darwin-201511221948.tar.bz2 name darwin @@ -2440,9 +2500,9 @@ archive hash - dddfc8dea540801f93ba0382cb1e3685 + 34306fb90364b182dc770375140d8557 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/uriparser_3p-update-uriparser/rev/299435/arch/Linux/installer/uriparser-0.8.0.1-linux-299435.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-uriparser/rev/294298/arch/Linux/installer/uriparser-0.8.0.1-linux-20140918.tar.bz2 name linux @@ -2452,11 +2512,11 @@ archive hash - 185066409eccc8f4fbb8a8ba00cace8a + 69224d9285e5a26fc7a9aca5d3da7543 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/uriparser-0.8.2-linux64-201507231504.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/uriparser-0.8.4-linux64-201603240044.tar.bz2 name linux64 @@ -2558,9 +2618,11 @@ archive hash - ffd3aab8e0c0ff6dadbce49ca2809078 + 408e34531c6a8ac20ccc8c917435071f + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/xmlrpc-emi_3p-update-xmlrpc-epi/rev/297075/arch/Darwin/installer/xmlrpc_epi-0.54.1.297075-darwin-297075.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/xmlrpc_epi-0.54.2-darwin-201603271451.tar.bz2 name darwin @@ -2570,9 +2632,9 @@ archive hash - 30bb26d6cc78c16047fc85a63f48fcdb + 174ab797440157956eda7061dae37564 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/xmlrpc-emi_3p-update-xmlrpc-epi/rev/297075/arch/Linux/installer/xmlrpc_epi-0.54.1.297075-linux-297075.tar.bz2 + http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/xmlrpc_epi-0.54.1-linux-20110314.tar.bz2 name linux @@ -2582,11 +2644,11 @@ archive hash - 7ea8eebdfb17f57a5327bf50f23dd99e + 0465334ff0f1d57cf354867fd21ee137 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/xmlrpc_epi-0.54.2-linux64-201504222313.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/xmlrpc_epi-0.54.2-linux64-201603240753.tar.bz2 name linux64 @@ -2610,11 +2672,11 @@ archive hash - 727dd03de835cb4b0ab201101f3025da + 1afa5a6bdbc5689e14120628dc0fc124 hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/windows64/lib-vc14/xmlrpc_epi-0.54.2-windows64-201512102119.tar.bz2 + http://depot.alchemyviewer.org/pub/windows64/lib-vc14/xmlrpc_epi-0.54.2-windows64-201603261459.tar.bz2 name windows64 @@ -2642,9 +2704,11 @@ archive hash - 1a79eeac199c2d94e4ae4e5d0194e25f + 635ee875ba478b17b6c64d9698cdf0dd + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/zlib_3p-update-zlib/rev/296881/arch/Darwin/installer/zlib-1.2.8.296881-darwin-296881.tar.bz2 + https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/zlib-1.2.8-darwin-201511221937.tar.bz2 name darwin @@ -2654,11 +2718,9 @@ archive hash - 2eb8e59b6464222dcf4435016ad5f618 - hash_algorithm - md5 + 63a62bb3cbef2aad3cca49cb6f2d0aeb url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/zlib_3p-update-zlib/rev/296881/arch/Linux/installer/zlib-1.2.8.296881-linux-296881.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-zlib-update/rev/290556/arch/Linux/installer/zlib-1.2.8-linux-20140602.tar.bz2 name linux @@ -2668,11 +2730,11 @@ archive hash - 461a0af0346a9140e7bb598eb8e78905 + 1eaee9888043648d5f09716b771dcb4b hash_algorithm md5 url - http://depot.alchemyviewer.org/pub/linux64/lib/zlib-1.2.8-linux64-201504222303.tar.bz2 + http://depot.alchemyviewer.org/pub/linux64/lib-trusty/zlib-1.2.8-linux64-201603240746.tar.bz2 name linux64 diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake index 9cfb7d14c..1b4c20ed3 100644 --- a/indra/cmake/CEFPlugin.cmake +++ b/indra/cmake/CEFPlugin.cmake @@ -37,4 +37,9 @@ elseif (DARWIN) ) elseif (LINUX) + set(CEF_PLUGIN_LIBRARIES + llceflib + cef_dll_wrapper + cef + ) endif (WINDOWS) diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 9b66e0724..0f3c98785 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -137,7 +137,7 @@ elseif(LINUX) libatk-1.0.so libexpat.so libexpat.so.1 - libfreetype.so.6.12.0 + libfreetype.so.6.12.3 libfreetype.so.6 libfreetype.so libGLOD.so diff --git a/indra/llcommon/lldate.cpp b/indra/llcommon/lldate.cpp index 823075eba..065a72215 100644 --- a/indra/llcommon/lldate.cpp +++ b/indra/llcommon/lldate.cpp @@ -4,69 +4,60 @@ * @date 2006-02-05 * @brief Implementation of the date class * - * $LicenseInfo:firstyear=2006&license=viewergpl$ - * - * Copyright (c) 2006-2009, Linden Research, Inc. - * + * $LicenseInfo:firstyear=2006&license=viewerlgpl$ * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * Copyright (C) 2010, Linden Research, Inc. * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ #include "linden_common.h" #include "lldate.h" -#include "apr_time.h" - #include #include #include #include +#include #include -#include "llfasttimer.h" #include "lltimer.h" #include "llstring.h" +#include "llfasttimer.h" +#if defined(LL_WINDOWS) && !defined(timegm) +# define timegm _mkgmtime +#endif + +#define EPOCH_STR "1970-01-01T00:00:00Z" static const F64 DATE_EPOCH = 0.0; - -static const F64 LL_APR_USEC_PER_SEC = 1000000.0; - // should be APR_USEC_PER_SEC, but that relies on INT64_C which - // isn't defined in glib under our build set up for some reason - +static std::string sPrevLocale = ""; LLDate::LLDate() : mSecondsSinceEpoch(DATE_EPOCH) -{ -} +{} LLDate::LLDate(const LLDate& date) : mSecondsSinceEpoch(date.mSecondsSinceEpoch) -{ -} +{} LLDate::LLDate(F64 seconds_since_epoch) : mSecondsSinceEpoch(seconds_since_epoch) -{ -} +{} LLDate::LLDate(const std::string& iso8601_date) { @@ -92,37 +83,43 @@ std::string LLDate::asString() const // is one of the standards used and the prefered format std::string LLDate::asRFC1123() const { - return toHTTPDateString (std::string ("%A, %d %b %Y %H:%M:%S GMT")); + return toHTTPDateString(LLStringExplicit("%A, %d %b %Y %H:%M:%S GMT")); } LLFastTimer::DeclareTimer FT_DATE_FORMAT("Date Format"); -std::string LLDate::toHTTPDateString (std::string fmt) const +std::string LLDate::toHTTPDateString(std::string fmt) const { LLFastTimer ft1(FT_DATE_FORMAT); - time_t locSeconds = (time_t) mSecondsSinceEpoch; - struct tm * gmt = gmtime (&locSeconds); + std::time_t locSeconds = (std::time_t) mSecondsSinceEpoch; + std::tm * gmt = gmtime (&locSeconds); + if (!gmt) + { + LL_WARNS() << "The impossible has happened!" << LL_ENDL; + return LLStringExplicit(EPOCH_STR); + } return toHTTPDateString(gmt, fmt); } -std::string LLDate::toHTTPDateString (tm * gmt, std::string fmt) +std::string LLDate::toHTTPDateString(tm * gmt, std::string fmt) { LLFastTimer ft1(FT_DATE_FORMAT); // avoid calling setlocale() unnecessarily - it's expensive. - static std::string prev_locale = ""; std::string this_locale = LLStringUtil::getLocale(); - if (this_locale != prev_locale) + if (this_locale != sPrevLocale) { setlocale(LC_TIME, this_locale.c_str()); - prev_locale = this_locale; + sPrevLocale = this_locale; } // use strftime() as it appears to be faster than std::time_put char buffer[128]; - strftime(buffer, 128, fmt.c_str(), gmt); + if (std::strftime(buffer, 128, fmt.c_str(), gmt) == 0) + return LLStringExplicit(EPOCH_STR); std::string res(buffer); + #if LL_WINDOWS // Convert from locale-dependant charset to UTF-8 (EXT-8524). res = ll_convert_string_to_utf8_string(res); @@ -132,39 +129,56 @@ std::string LLDate::toHTTPDateString (tm * gmt, std::string fmt) void LLDate::toStream(std::ostream& s) const { - apr_time_t time = (apr_time_t)(mSecondsSinceEpoch * LL_APR_USEC_PER_SEC); + std::ios::fmtflags f( s.flags() ); - apr_time_exp_t exp_time; - if (apr_time_exp_gmt(&exp_time, time) != APR_SUCCESS) + std::tm exp_time = {0}; + std::time_t time = static_cast(mSecondsSinceEpoch); + +#if LL_WINDOWS + if (gmtime_s(&exp_time, &time) != 0) +#else + if (!gmtime_r(&time, &exp_time)) +#endif { - s << "1970-01-01T00:00:00Z"; + s << EPOCH_STR; return; } s << std::dec << std::setfill('0'); +#if( LL_WINDOWS || __GNUC__ > 2) s << std::right; +#else + s.setf(ios::right); +#endif s << std::setw(4) << (exp_time.tm_year + 1900) << '-' << std::setw(2) << (exp_time.tm_mon + 1) << '-' << std::setw(2) << (exp_time.tm_mday) << 'T' << std::setw(2) << (exp_time.tm_hour) << ':' << std::setw(2) << (exp_time.tm_min) << ':' << std::setw(2) << (exp_time.tm_sec); - if (exp_time.tm_usec > 0) - { - s << '.' << std::setw(2) - << (int)(exp_time.tm_usec / (LL_APR_USEC_PER_SEC / 100)); - } s << 'Z' << std::setfill(' '); + + s.flags( f ); } bool LLDate::split(S32 *year, S32 *month, S32 *day, S32 *hour, S32 *min, S32 *sec) const { - apr_time_t time = (apr_time_t)(mSecondsSinceEpoch * LL_APR_USEC_PER_SEC); + std::tm exp_time = {0}; + std::time_t time = static_cast(mSecondsSinceEpoch); - apr_time_exp_t exp_time; - if (apr_time_exp_gmt(&exp_time, time) != APR_SUCCESS) +#if LL_WINDOWS + if (gmtime_s(&exp_time, &time) != 0) +#else + if (!gmtime_r(&time, &exp_time)) +#endif { + *year = 1970; + *month = 01; + *day = 01; + *hour = 00; + *min = 00; + *sec = 00; return false; } @@ -197,60 +211,63 @@ bool LLDate::fromString(const std::string& iso8601_date) bool LLDate::fromStream(std::istream& s) { - struct apr_time_exp_t exp_time; - apr_int32_t tm_part; + std::tm time = {0}; int c; - +#if LL_WINDOWS || LL_LINUX // GCC 4.8 lacks this Windows has broken std::get_time() Time for things to get ugly! + int32_t tm_part; s >> tm_part; - exp_time.tm_year = tm_part - 1900; + time.tm_year = tm_part - 1900; c = s.get(); // skip the hypen if (c != '-') { return false; } s >> tm_part; - exp_time.tm_mon = tm_part - 1; + time.tm_mon = tm_part - 1; c = s.get(); // skip the hypen if (c != '-') { return false; } s >> tm_part; - exp_time.tm_mday = tm_part; + time.tm_mday = tm_part; c = s.get(); // skip the T if (c != 'T') { return false; } s >> tm_part; - exp_time.tm_hour = tm_part; + time.tm_hour = tm_part; c = s.get(); // skip the : if (c != ':') { return false; } s >> tm_part; - exp_time.tm_min = tm_part; + time.tm_min = tm_part; c = s.get(); // skip the : if (c != ':') { return false; } s >> tm_part; - exp_time.tm_sec = tm_part; + time.tm_sec = tm_part; - // zero out the unused fields - exp_time.tm_usec = 0; - exp_time.tm_wday = 0; - exp_time.tm_yday = 0; - exp_time.tm_isdst = 0; - exp_time.tm_gmtoff = 0; - - // generate a time_t from that - apr_time_t time; - if (apr_time_exp_gmt_get(&time, &exp_time) != APR_SUCCESS) - { - return false; - } - - F64 seconds_since_epoch = time / LL_APR_USEC_PER_SEC; - - // check for fractional c = s.peek(); if(c == '.') { F64 fractional = 0.0; s >> fractional; - seconds_since_epoch += fractional; } +#else + std::string this_locale = LLStringUtil::getLocale(); + if (this_locale != sPrevLocale) + { + setlocale(LC_TIME, this_locale.c_str()); + sPrevLocale = this_locale; + } + + // Isn't stdlib nice? + s.imbue(std::locale(sPrevLocale.c_str())); + s >> std::get_time(&time, "%Y-%m-%dT%H:%M:%S"); + if (s.fail()) + { + return false; + } +#endif + std::time_t tm = timegm(&time); + if (tm == -1) + return false; + + F64 seconds_since_epoch = static_cast(tm); c = s.peek(); // check for offset if (c == '+' || c == '-') { @@ -266,7 +283,6 @@ bool LLDate::fromStream(std::istream& s) { s >> offset_minutes; } - offset_in_seconds = (offset_hours * 60 + offset_sign * offset_minutes) * 60; seconds_since_epoch -= offset_in_seconds; } @@ -278,7 +294,7 @@ bool LLDate::fromStream(std::istream& s) bool LLDate::fromYMDHMS(S32 year, S32 month, S32 day, S32 hour, S32 min, S32 sec) { - struct apr_time_exp_t exp_time; + std::tm exp_time = {0}; exp_time.tm_year = year - 1900; exp_time.tm_mon = month - 1; @@ -287,21 +303,11 @@ bool LLDate::fromYMDHMS(S32 year, S32 month, S32 day, S32 hour, S32 min, S32 sec exp_time.tm_min = min; exp_time.tm_sec = sec; - // zero out the unused fields - exp_time.tm_usec = 0; - exp_time.tm_wday = 0; - exp_time.tm_yday = 0; - exp_time.tm_isdst = 0; - exp_time.tm_gmtoff = 0; - - // generate a time_t from that - apr_time_t time; - if (apr_time_exp_gmt_get(&time, &exp_time) != APR_SUCCESS) - { + std::time_t tm = timegm(&exp_time); + if (tm == -1) return false; - } - mSecondsSinceEpoch = time / LL_APR_USEC_PER_SEC; + mSecondsSinceEpoch = static_cast(tm); return true; } diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index 7ab4b0cbc..2887d2ce5 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -45,7 +45,10 @@ #if LL_GTK extern "C" { -# include "gtk/gtk.h" +# include +#if GTK_CHECK_VERSION(2, 24, 0) +#include +#endif } #include #endif // LL_GTK @@ -86,23 +89,6 @@ static bool ATIbug = false; // be only one object of this class at any time. Currently this is true. static LLWindowSDL *gWindowImplementation = NULL; - -void maybe_lock_display(void) -{ - if (gWindowImplementation && gWindowImplementation->Lock_Display) { - gWindowImplementation->Lock_Display(); - } -} - - -void maybe_unlock_display(void) -{ - if (gWindowImplementation && gWindowImplementation->Unlock_Display) { - gWindowImplementation->Unlock_Display(); - } -} - - #if LL_GTK // Lazily initialize and check the runtime GTK version for goodness. // static @@ -116,9 +102,7 @@ bool LLWindowSDL::ll_try_gtk_init(void) if (!done_setlocale) { LL_INFOS() << "Starting GTK Initialization." << LL_ENDL; - maybe_lock_display(); gtk_disable_setlocale(); - maybe_unlock_display(); done_setlocale = TRUE; } @@ -128,9 +112,7 @@ bool LLWindowSDL::ll_try_gtk_init(void) #if !GLIB_CHECK_VERSION(2, 32, 0) if (!g_thread_supported ()) g_thread_init (NULL); #endif - maybe_lock_display(); gtk_is_good = gtk_init_check(NULL, NULL); - maybe_unlock_display(); if (!gtk_is_good) LL_WARNS() << "GTK Initialization failed." << LL_ENDL; } @@ -146,12 +128,10 @@ bool LLWindowSDL::ll_try_gtk_init(void) << gtk_major_version << "." << gtk_minor_version << "." << gtk_micro_version << LL_ENDL; - maybe_lock_display(); const gchar* gtk_warning = gtk_check_version( GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); - maybe_unlock_display(); if (gtk_warning) { LL_WARNS() << "- GTK COMPATIBILITY WARNING: " << @@ -198,13 +178,13 @@ LLWindowSDL::LLWindowSDL(LLWindowCallbacks* callbacks, BOOL ignore_pixel_depth, U32 fsaa_samples) : LLWindow(callbacks, fullscreen, flags), Lock_Display(NULL), - Unlock_Display(NULL), mGamma(1.0f) { // Initialize the keyboard gKeyboard = new LLKeyboardSDL(); gKeyboard->setCallbacks(callbacks); // Note that we can't set up key-repeat until after SDL has init'd video + // Ignore use_gl for now, only used for drones on PC mWindow = NULL; mNeedsResize = FALSE; mOverrideAspectRatio = 0.f; @@ -230,7 +210,7 @@ LLWindowSDL::LLWindowSDL(LLWindowCallbacks* callbacks, mOriginalAspectRatio = 1024.0 / 768.0; if (title.empty()) - mWindowTitle = "SDL Window"; // *FIX: (???) + mWindowTitle = "SDL Window"; // *FIX: (?) else mWindowTitle = title; @@ -315,7 +295,7 @@ static int x11_detect_VRAM_kb() #if LL_SOLARIS && defined(__sparc) // NOTE: there's no Xorg server on SPARC so just return 0 // and allow SDL to attempt to get the amount of VRAM - return(0); + return 0; #else std::string x_log_location("/var/log/"); @@ -594,7 +574,6 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B mWindow = SDL_SetVideoMode(width, height, bits, sdlflags); } - if (!mWindow) { LL_WARNS() << "createContext: window creation failure. SDL: " << SDL_GetError() << LL_ENDL; @@ -607,13 +586,14 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B } // Detect video memory size. -# if LL_X11 +#if LL_X11 gGLManager.mVRAM = x11_detect_VRAM_kb() / 1024; if (gGLManager.mVRAM != 0) { LL_INFOS() << "X11 log-parser detected " << gGLManager.mVRAM << "MB VRAM." << LL_ENDL; - } else -# endif // LL_X11 + } + else +#endif // LL_X11 { // fallback to letting SDL detect VRAM. // note: I've not seen SDL's detection ever actually find @@ -677,23 +657,6 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B return FALSE; } -#if 0 // *FIX: we're going to brave it for now... - if (alphaBits < 8) - { - close(); - setupFailure( - "Second Life is unable to run because it can't get an 8 bit alpha\n" - "channel. Usually this is due to video card driver issues.\n" - "Please make sure you have the latest video card drivers installed.\n" - "Also be sure your monitor is set to True Color (32-bit) in\n" - "Control Panels -> Display -> Settings.\n" - "If you continue to receive this message, contact customer service.", - "Error", - OSMB_OK); - return FALSE; - } -#endif - #if LL_X11 /* Grab the window manager specific information */ SDL_SysWMinfo info; @@ -705,8 +668,6 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B { mSDL_Display = info.info.x11.display; mSDL_XWindowID = info.info.x11.wmwindow; - Lock_Display = info.info.x11.lock_func; - Unlock_Display = info.info.x11.unlock_func; } else { @@ -804,8 +765,6 @@ void LLWindowSDL::destroyContext() #if LL_X11 mSDL_Display = NULL; mSDL_XWindowID = None; - Lock_Display = NULL; - Unlock_Display = NULL; #endif // LL_X11 // Clean up remaining GL state before blowing away window @@ -960,7 +919,7 @@ BOOL LLWindowSDL::setPosition(const LLCoordScreen position) { if(mWindow) { - // *FIX: (???) + // *FIX: (?) //MacMoveWindow(mWindow, position.mX, position.mY, false); } @@ -1206,9 +1165,7 @@ void LLWindowSDL::beforeDialog() { // Everything that we/SDL asked for should happen before we // potentially hand control over to GTK. - maybe_lock_display(); XSync(mSDL_Display, False); - maybe_unlock_display(); } #endif // LL_X11 @@ -1217,8 +1174,6 @@ void LLWindowSDL::beforeDialog() // diagnostics, if not already done. ll_try_gtk_init(); #endif // LL_GTK - - maybe_lock_display(); } void LLWindowSDL::afterDialog() @@ -1230,8 +1185,6 @@ void LLWindowSDL::afterDialog() LL_INFOS() << "LLWindowSDL::afterDialog()" << LL_ENDL; - maybe_unlock_display(); - if (mFullscreen) { // need to restore fullscreen mode after dialog - only works @@ -1254,7 +1207,6 @@ void LLWindowSDL::x11_set_urgent(BOOL urgent) LL_INFOS() << "X11 hint for urgency, " << urgent << LL_ENDL; - maybe_lock_display(); wm_hints = XGetWMHints(mSDL_Display, mSDL_XWindowID); if (!wm_hints) wm_hints = XAllocWMHints(); @@ -1267,7 +1219,6 @@ void LLWindowSDL::x11_set_urgent(BOOL urgent) XSetWMHints(mSDL_Display, mSDL_XWindowID, wm_hints); XFree(wm_hints); XSync(mSDL_Display, False); - maybe_unlock_display(); } } #endif // LL_X11 @@ -1567,12 +1518,10 @@ BOOL LLWindowSDL::SDLReallyCaptureInput(BOOL capture) { //LL_INFOS() << "X11 POINTER GRABBY" << LL_ENDL; //newmode = SDL_WM_GrabInput(wantmode); - maybe_lock_display(); result = XGrabPointer(mSDL_Display, mSDL_XWindowID, True, 0, GrabModeAsync, GrabModeAsync, None, None, CurrentTime); - maybe_unlock_display(); if (GrabSuccess == result) newmode = SDL_GRAB_ON; else @@ -1583,11 +1532,9 @@ BOOL LLWindowSDL::SDLReallyCaptureInput(BOOL capture) newmode = SDL_GRAB_OFF; //newmode = SDL_WM_GrabInput(SDL_GRAB_OFF); - maybe_lock_display(); XUngrabPointer(mSDL_Display, CurrentTime); // Make sure the ungrab happens RIGHT NOW. XSync(mSDL_Display, False); - maybe_unlock_display(); } else { newmode = SDL_GRAB_QUERY; // neutral @@ -1784,6 +1731,7 @@ void LLWindowSDL::gatherInput() mKeyScanCode = event.key.keysym.scancode; mKeyVirtualKey = event.key.keysym.unicode; mKeyModifiers = event.key.keysym.mod; + mKeySym = event.key.keysym.sym; gKeyboard->handleKeyDown(event.key.keysym.sym, event.key.keysym.mod); // part of the fix for SL-13243 @@ -1801,6 +1749,7 @@ void LLWindowSDL::gatherInput() mKeyScanCode = event.key.keysym.scancode; mKeyVirtualKey = event.key.keysym.unicode; mKeyModifiers = event.key.keysym.mod; + mKeySym = event.key.keysym.sym; if (SDLCheckGrabbyKeys(event.key.keysym.sym, FALSE) == 0) SDLReallyCaptureInput(FALSE); // part of the fix for SL-13243 @@ -2312,8 +2261,7 @@ S32 OSMessageBoxSDL(const std::string& text, const std::string& caption, U32 typ { gtk_widget_realize(GTK_WIDGET(win)); // so we can get its gdkwin GdkWindow *gdkwin = gdk_window_foreign_new(gWindowImplementation->mSDL_XWindowID); - gdk_window_set_transient_for(GTK_WIDGET(win)->window, - gdkwin); + gdk_window_set_transient_for(GTK_WIDGET(win)->window, gdkwin); } # endif //LL_X11 @@ -2402,6 +2350,7 @@ LLSD LLWindowSDL::getNativeKeyData() result["scan_code"] = (S32)mKeyScanCode; result["virtual_key"] = (S32)mKeyVirtualKey; result["modifiers"] = (S32)modifiers; + result[ "sdl_sym" ] = (S32)mKeySym; return result; } @@ -2427,8 +2376,7 @@ BOOL LLWindowSDL::dialogColorPicker( F32 *r, F32 *g, F32 *b) { gtk_widget_realize(GTK_WIDGET(win)); // so we can get its gdkwin GdkWindow *gdkwin = gdk_window_foreign_new(mSDL_XWindowID); - gdk_window_set_transient_for(GTK_WIDGET(win)->window, - gdkwin); + gdk_window_set_transient_for(GTK_WIDGET(win)->window, gdkwin); } # endif //LL_X11 @@ -2551,10 +2499,8 @@ void LLWindowSDL::spawnWebBrowser(const std::string& escaped_url, bool async) # if LL_X11 if (mSDL_Display) { - maybe_lock_display(); // Just in case - before forking. XSync(mSDL_Display, False); - maybe_unlock_display(); } # endif // LL_X11 @@ -2571,19 +2517,12 @@ void LLWindowSDL::spawnWebBrowser(const std::string& escaped_url, bool async) LL_INFOS() << "spawn_web_browser returning." << LL_ENDL; } -void LLWindowSDL::setTitle(const std::string &title) -{ - mWindowTitle = title; - SDL_WM_SetCaption(mWindowTitle.c_str(),mWindowTitle.c_str()); -} void *LLWindowSDL::getPlatformWindow() { #if LL_GTK && LL_LLMOZLIB_ENABLED if (LLWindowSDL::ll_try_gtk_init()) { - maybe_lock_display(); - GtkWidget *owin = gtk_window_new(GTK_WINDOW_POPUP); // Why a layout widget? A MozContainer would be ideal, but // it involves exposing Mozilla headers to mozlib-using apps. @@ -2595,8 +2534,6 @@ void *LLWindowSDL::getPlatformWindow() gtk_widget_realize(rtnw); GTK_WIDGET_UNSET_FLAGS(GTK_WIDGET(rtnw), GTK_NO_WINDOW); - maybe_unlock_display(); - return rtnw; } #endif // LL_GTK && LL_LLMOZLIB_ENABLED @@ -2612,10 +2549,8 @@ void LLWindowSDL::bringToFront() #if LL_X11 if (mSDL_Display && !mFullscreen) { - maybe_lock_display(); XRaiseWindow(mSDL_Display, mSDL_XWindowID); XSync(mSDL_Display, False); - maybe_unlock_display(); } #endif // LL_X11 } @@ -2626,7 +2561,7 @@ std::vector LLWindowSDL::getDynamicFallbackFontList() // Use libfontconfig to find us a nice ordered list of fallback fonts // specific to this system. std::string final_fallback("/usr/share/fonts/truetype/kochi/kochi-gothic.ttf"); - const int max_font_count_cutoff = 100; // fonts are expensive in the current system, don't enumerate an arbitrary number of them + const int max_font_count_cutoff = 40; // fonts are expensive in the current system, don't enumerate an arbitrary number of them // Our 'ideal' font properties which define the sorting results. // slant=0 means Roman, index=0 means the first face in a font file // (the one we actually use), weight=80 means medium weight, @@ -2721,4 +2656,10 @@ std::vector LLWindowSDL::getDynamicFallbackFontList() return rtns; } +void LLWindowSDL::setTitle(const std::string& title) +{ + mWindowTitle = title; + SDL_WM_SetCaption(mWindowTitle.c_str(),mWindowTitle.c_str()); +} + #endif // LL_SDL diff --git a/indra/llwindow/llwindowsdl.h b/indra/llwindow/llwindowsdl.h index 3334fcb98..a180be319 100644 --- a/indra/llwindow/llwindowsdl.h +++ b/indra/llwindow/llwindowsdl.h @@ -135,8 +135,6 @@ public: Window mSDL_XWindowID; Display *mSDL_Display; #endif - void (*Lock_Display)(void); - void (*Unlock_Display)(void); #if LL_GTK // Lazily initialize and check the runtime GTK version for goodness. @@ -216,6 +214,7 @@ private: U32 mKeyScanCode; U32 mKeyVirtualKey; SDLMod mKeyModifiers; + U32 mKeySym; }; diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index f6026c458..f8a4dc60a 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1539,6 +1539,7 @@ if (WINDOWS) --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/copy_touched.bat DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py + generate_viewer_version stage_third_party_libs ${COPY_INPUT_DEPENDENCIES} COMMENT "Performing viewer_manifest copy" diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini index d880d48f3..a4a448ca8 100644 --- a/indra/newview/app_settings/keywords.ini +++ b/indra/newview/app_settings/keywords.ini @@ -182,6 +182,8 @@ PSYS_SRC_PATTERN_ANGLE_CONE PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY OBJECT_UNKNOWN_DETAIL Returned by llGetObjectDetails when passed an invalid object parameter type +OBJECT_HOVER_HEIGHT This is a flag used with llGetObjectDetails to get hover height of the avatar. If no data is available, 0.0 is returned. +OBJECT_LAST_OWNER_ID Gets the object's last owner ID. OBJECT_NAME Used with llGetObjectDetails to get an object's name OBJECT_DESC Used with llGetObjectDetails to get an object's description OBJECT_POS Used with llGetObjectDetails to get an object's position @@ -189,6 +191,7 @@ OBJECT_ROT Used with llGetObjectDetails to get an o OBJECT_VELOCITY Used with llGetObjectDetails to get an object's velocity OBJECT_OWNER Used with llGetObjectDetails to get an object's owner's key. Will be NULL_KEY if group owned OBJECT_GROUP Used with llGetObjectDetails to get an object's group's key +OBJECT_CLICK_ACTION This is a flag used with llGetObjectDetails to get the click action. The default is 0. OBJECT_CREATOR Used with llGetObjectDetails to get an object's creator's key OBJECT_RUNNING_SCRIPT_COUNT Gets the number of running scripts attached to the object or agent OBJECT_TOTAL_SCRIPT_COUNT Gets the number of scripts, both running and stopped, attached to the object or agent. @@ -199,6 +202,7 @@ OBJECT_SERVER_COST Used with llGetObjectDetails to get the OBJECT_STREAMING_COST Used with llGetObjectDetails to get the streaming (download) cost. OBJECT_PHYSICS_COST Used with llGetObjectDetails to get the physics cost. OBJECT_PATHFINDING_TYPE Used with llGetObjectDetails to get an object's pathfinding settings. +OBJECT_BODY_SHAPE_TYPE This is a flag used with llGetObjectDetails to get the body type of the avatar, based on shape data. If no data is available, -1.0 is returned. This is normally between 0 and 1.0, with 0.5 and larger considered 'male' OBJECT_CHARACTER_TIME Used with llGetObjectDetails to get an object's average CPU time (in seconds) used by the object for navigation, if the object is a pathfinding character. Returns 0 for non-characters. OBJECT_ROOT Used with llGetObjectDetails to get an object's root prim ID. OBJECT_ATTACHED_POINT Used with llGetObjectDetails to get an object's attachment point. @@ -454,6 +458,7 @@ PRIM_SHINY_LOW Low shininess PRIM_SHINY_MEDIUM Medium shininess PRIM_SHINY_HIGH High shininess + PRIM_BUMP_NONE No bump map PRIM_BUMP_BRIGHT Generate bump map from highlights PRIM_BUMP_DARK Generate bump map from lowlights diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index a06d787ab..add66a4bc 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -86,18 +86,6 @@ 0 - SianaRenderDeferredInvisiprim - - Comment - Support invisiprims in deferred mode - Persist - 1 - Type - Boolean - Value - 1 - - SianaVoidWaterSubdivision Comment diff --git a/indra/newview/lldrawpool.cpp b/indra/newview/lldrawpool.cpp index d8e9864f2..b1d393e9b 100644 --- a/indra/newview/lldrawpool.cpp +++ b/indra/newview/lldrawpool.cpp @@ -75,9 +75,6 @@ LLDrawPool *LLDrawPool::createPool(const U32 type, LLViewerTexture *tex0) case POOL_FULLBRIGHT: poolp = new LLDrawPoolFullbright(); break; - case POOL_INVISIBLE: - poolp = new LLDrawPoolInvisible(); - break; case POOL_GLOW: poolp = new LLDrawPoolGlow(); break; diff --git a/indra/newview/lldrawpool.h b/indra/newview/lldrawpool.h index fa8fc3675..95af2d0b6 100644 --- a/indra/newview/lldrawpool.h +++ b/indra/newview/lldrawpool.h @@ -58,18 +58,12 @@ public: POOL_SKY, POOL_WL_SKY, POOL_GRASS, - POOL_INVISIBLE, // see below * POOL_AVATAR, POOL_VOIDWATER, POOL_WATER, POOL_GLOW, POOL_ALPHA, NUM_POOL_TYPES, - // * invisiprims work by rendering to the depth buffer but not the color buffer, occluding anything rendered after them - // - and the LLDrawPool types enum controls what order things are rendered in - // - so, it has absolute control over what invisprims block - // ...invisiprims being rendered in pool_invisible - // ...shiny/bump mapped objects in rendered in POOL_BUMP }; LLDrawPool(const U32 type); @@ -126,8 +120,6 @@ public: PASS_SIMPLE = NUM_POOL_TYPES, PASS_GRASS, PASS_FULLBRIGHT, - PASS_INVISIBLE, - PASS_INVISI_SHINY, PASS_FULLBRIGHT_SHINY, PASS_SHINY, PASS_BUMP, diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp index 9831a0875..9e3776761 100644 --- a/indra/newview/lldrawpoolavatar.cpp +++ b/indra/newview/lldrawpoolavatar.cpp @@ -918,7 +918,7 @@ void LLDrawPoolAvatar::beginRiggedShinySimple() llassert_always(sVertexProgram->mProgramObject > 0); sVertexProgram->bind(); - LLDrawPoolBump::bindCubeMap(sVertexProgram, 2, sDiffuseChannel, cube_channel, false); + LLDrawPoolBump::bindCubeMap(sVertexProgram, 2, sDiffuseChannel, cube_channel); } void LLDrawPoolAvatar::endRiggedShinySimple() @@ -928,7 +928,7 @@ void LLDrawPoolAvatar::endRiggedShinySimple() if(!sVertexProgram) return; - LLDrawPoolBump::unbindCubeMap(sVertexProgram, 2, sDiffuseChannel, cube_channel, false); + LLDrawPoolBump::unbindCubeMap(sVertexProgram, 2, sDiffuseChannel, cube_channel); sVertexProgram->unbind(); sVertexProgram = NULL; } @@ -951,7 +951,7 @@ void LLDrawPoolAvatar::beginRiggedFullbrightShiny() llassert_always(sVertexProgram->mProgramObject > 0); sVertexProgram->bind(); - LLDrawPoolBump::bindCubeMap(sVertexProgram, 2, sDiffuseChannel, cube_channel, false); + LLDrawPoolBump::bindCubeMap(sVertexProgram, 2, sDiffuseChannel, cube_channel); if (LLPipeline::sRenderingHUDs || !LLPipeline::sRenderDeferred) { sVertexProgram->uniform1f(LLShaderMgr::TEXTURE_GAMMA, 1.0f); @@ -971,7 +971,7 @@ void LLDrawPoolAvatar::endRiggedFullbrightShiny() if(!sVertexProgram) return; - LLDrawPoolBump::unbindCubeMap(sVertexProgram, 2, sDiffuseChannel, cube_channel, false); + LLDrawPoolBump::unbindCubeMap(sVertexProgram, 2, sDiffuseChannel, cube_channel); sVertexProgram->unbind(); sVertexProgram = NULL; } diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp index 81cbfd075..7e4266666 100644 --- a/indra/newview/lldrawpoolbump.cpp +++ b/indra/newview/lldrawpoolbump.cpp @@ -330,11 +330,10 @@ void LLDrawPoolBump::endRenderPass(S32 pass) } //static -void LLDrawPoolBump::beginShiny(bool invisible) +void LLDrawPoolBump::beginShiny() { LLFastTimer t(FTM_RENDER_SHINY); - if ((!invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY))|| - (invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY))) + if (!gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY)) { return; } @@ -342,7 +341,7 @@ void LLDrawPoolBump::beginShiny(bool invisible) mShiny = TRUE; sVertexMask = VERTEX_MASK_SHINY; // Second pass: environment map - if (!invisible && mVertexShaderLevel > 1) + if (mVertexShaderLevel > 1) { sVertexMask = VERTEX_MASK_SHINY | LLVertexBuffer::MAP_TEXCOORD0; } @@ -357,7 +356,7 @@ void LLDrawPoolBump::beginShiny(bool invisible) shader = NULL; } - bindCubeMap(shader, mVertexShaderLevel, diffuse_channel, cube_channel, invisible); + bindCubeMap(shader, mVertexShaderLevel, diffuse_channel, cube_channel); if (mVertexShaderLevel > 1) { //indexed texture rendering, channel 0 is always diffuse @@ -366,12 +365,12 @@ void LLDrawPoolBump::beginShiny(bool invisible) } //static -void LLDrawPoolBump::bindCubeMap(LLGLSLShader* shader, S32 shader_level, S32& diffuse_channel, S32& cube_channel, bool invisible) +void LLDrawPoolBump::bindCubeMap(LLGLSLShader* shader, S32 shader_level, S32& diffuse_channel, S32& cube_channel) { LLCubeMap* cube_map = gSky.mVOSkyp ? gSky.mVOSkyp->getCubeMap() : NULL; if( cube_map ) { - if (!invisible && shader ) + if (shader) { LLMatrix4 mat(gGLModelView.getF32ptr()); LLVector3 vec = LLVector3(gShinyOrigin) * mat; @@ -412,11 +411,10 @@ void LLDrawPoolBump::bindCubeMap(LLGLSLShader* shader, S32 shader_level, S32& di } } -void LLDrawPoolBump::renderShiny(bool invisible) +void LLDrawPoolBump::renderShiny() { LLFastTimer t(FTM_RENDER_SHINY); - if ((!invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY))|| - (invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY))) + if (!gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY)) { return; } @@ -424,28 +422,24 @@ void LLDrawPoolBump::renderShiny(bool invisible) if( gSky.mVOSkyp->getCubeMap() ) { LLGLEnable blend_enable(GL_BLEND); - if (!invisible && mVertexShaderLevel > 1) + if (mVertexShaderLevel > 1) { LLRenderPass::pushBatches(LLRenderPass::PASS_SHINY, sVertexMask | LLVertexBuffer::MAP_TEXTURE_INDEX, TRUE, TRUE); } - else if (!invisible) + else { renderGroups(LLRenderPass::PASS_SHINY, sVertexMask); } - //else // invisible (deprecated) - //{ - //renderGroups(LLRenderPass::PASS_INVISI_SHINY, sVertexMask); - //} } } //static -void LLDrawPoolBump::unbindCubeMap(LLGLSLShader* shader, S32 shader_level, S32& diffuse_channel, S32& cube_channel, bool invisible) +void LLDrawPoolBump::unbindCubeMap(LLGLSLShader* shader, S32 shader_level, S32& diffuse_channel, S32& cube_channel) { LLCubeMap* cube_map = gSky.mVOSkyp ? gSky.mVOSkyp->getCubeMap() : NULL; if( cube_map ) { - if (!invisible && shader_level > 1) + if (shader_level > 1) { shader->disableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, LLTexUnit::TT_CUBE_MAP); @@ -473,16 +467,15 @@ void LLDrawPoolBump::unbindCubeMap(LLGLSLShader* shader, S32 shader_level, S32& } } -void LLDrawPoolBump::endShiny(bool invisible) +void LLDrawPoolBump::endShiny() { LLFastTimer t(FTM_RENDER_SHINY); - if ((!invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY))|| - (invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY))) + if (!gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY)) { return; } - unbindCubeMap(shader, mVertexShaderLevel, diffuse_channel, cube_channel, invisible); + unbindCubeMap(shader, mVertexShaderLevel, diffuse_channel, cube_channel); if (shader) { shader->unbind(); @@ -1545,76 +1538,3 @@ void LLDrawPoolBump::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture, BOOL gGL.matrixMode(LLRender::MM_MODELVIEW); } } - -void LLDrawPoolInvisible::render(S32 pass) -{ //render invisiprims - LLFastTimer t(FTM_RENDER_INVISIBLE); - - if (LLGLSLShader::sNoFixedFunction) - { - gOcclusionProgram.bind(); - } - - U32 invisi_mask = LLVertexBuffer::MAP_VERTEX; - glStencilMask(0); - gGL.setColorMask(false, false); - pushBatches(LLRenderPass::PASS_INVISIBLE, invisi_mask, FALSE); - gGL.setColorMask(true, false); - glStencilMask(0xFFFFFFFF); - - if (LLGLSLShader::sNoFixedFunction) - { - gOcclusionProgram.unbind(); - } - - /*if (gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY)) // invisible (deprecated) - { - beginShiny(true); - renderShiny(true); - endShiny(true); - }*/ -} - -void LLDrawPoolInvisible::beginDeferredPass(S32 pass) -{ - static const LLCachedControl enable("SianaRenderDeferredInvisiprim"); - if (!enable) - { - return; - } - beginRenderPass(pass); -} - -void LLDrawPoolInvisible::endDeferredPass( S32 pass ) -{ - endRenderPass(pass); -} - -void LLDrawPoolInvisible::renderDeferred( S32 pass ) -{ //render invisiprims; this doesn't work becaue it also blocks all the post-deferred stuff - static const LLCachedControl enable("SianaRenderDeferredInvisiprim"); - if (!enable) - { - return; - } - - LLFastTimer t(FTM_RENDER_INVISIBLE); - - gOcclusionProgram.bind(); - - U32 invisi_mask = LLVertexBuffer::MAP_VERTEX; - glStencilMask(0); - gGL.setColorMask(false, false); - pushBatches(LLRenderPass::PASS_INVISIBLE, invisi_mask, FALSE); - gGL.setColorMask(true, true); - glStencilMask(0xFFFFFFFF); - - gOcclusionProgram.unbind(); - - /*if (gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY)) // invisible (deprecated) - { - beginShiny(true); - renderShiny(true); - endShiny(true); - }*/ -} diff --git a/indra/newview/lldrawpoolbump.h b/indra/newview/lldrawpoolbump.h index 2611730ee..e51e56627 100644 --- a/indra/newview/lldrawpoolbump.h +++ b/indra/newview/lldrawpoolbump.h @@ -68,9 +68,9 @@ public: S32 numBumpPasses(); - void beginShiny(bool invisible = false); - void renderShiny(bool invisible = false); - void endShiny(bool invisible = false); + void beginShiny(); + void renderShiny(); + void endShiny(); void beginFullbrightShiny(); void renderFullbrightShiny(); @@ -80,8 +80,8 @@ public: void renderBump(U32 pass = LLRenderPass::PASS_BUMP); void endBump(U32 pass = LLRenderPass::PASS_BUMP); - static void bindCubeMap(LLGLSLShader* shader, S32 shader_level, S32& diffuse_channel, S32& cube_channel, bool invisible); - static void unbindCubeMap(LLGLSLShader* shader, S32 shader_level, S32& diffuse_channel, S32& cube_channel, bool invisible); + static void bindCubeMap(LLGLSLShader* shader, S32 shader_level, S32& diffuse_channel, S32& cube_channel); + static void unbindCubeMap(LLGLSLShader* shader, S32 shader_level, S32& diffuse_channel, S32& cube_channel); virtual S32 getNumDeferredPasses(); /*virtual*/ void beginDeferredPass(S32 pass); @@ -173,30 +173,4 @@ private: extern LLBumpImageList gBumpImageList; -class LLDrawPoolInvisible : public LLDrawPoolBump -{ -public: - LLDrawPoolInvisible() : LLDrawPoolBump(LLDrawPool::POOL_INVISIBLE) { } - - enum - { - VERTEX_DATA_MASK = LLVertexBuffer::MAP_VERTEX - }; - - virtual U32 getVertexDataMask() { return VERTEX_DATA_MASK; } - - virtual void prerender() { } - - virtual void render(S32 pass = 0); - virtual void beginRenderPass( S32 pass ) { } - virtual void endRenderPass( S32 pass ) { } - virtual S32 getNumPasses() {return 1;} - - virtual S32 getNumDeferredPasses() { return 1; } - /*virtual*/ void beginDeferredPass(S32 pass); - /*virtual*/ void endDeferredPass(S32 pass); - /*virtual*/ void renderDeferred(S32 pass); -}; - - #endif // LL_LLDRAWPOOLBUMP_H diff --git a/indra/newview/lldrawpoolterrain.cpp b/indra/newview/lldrawpoolterrain.cpp index 456fc3301..b4f7f8838 100644 --- a/indra/newview/lldrawpoolterrain.cpp +++ b/indra/newview/lldrawpoolterrain.cpp @@ -74,20 +74,11 @@ LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerTexture *texturep) : // Hack! sDetailScale = 1.f/gSavedSettings.getF32("RenderTerrainScale"); sDetailMode = gSavedSettings.getS32("RenderTerrainDetail"); - mAlphaRampImagep = LLViewerTextureManager::getFetchedTextureFromFile("alpha_gradient.tga", - TRUE, LLGLTexture::BOOST_UI, - LLViewerTexture::FETCHED_TEXTURE, - int_format, format, - LLUUID("e97cf410-8e61-7005-ec06-629eba4cd1fb")); - - //gGL.getTexUnit(0)->bind(mAlphaRampImagep.get()); - mAlphaRampImagep->setAddressMode(LLTexUnit::TAM_CLAMP); m2DAlphaRampImagep = LLViewerTextureManager::getFetchedTextureFromFile("alpha_gradient_2d.j2c", TRUE, LLGLTexture::BOOST_UI, LLViewerTexture::FETCHED_TEXTURE, - int_format, format, - LLUUID("38b86f85-2575-52a9-a531-23108d8da837")); + int_format, format); //gGL.getTexUnit(0)->bind(m2DAlphaRampImagep.get()); m2DAlphaRampImagep->setAddressMode(LLTexUnit::TAM_CLAMP); diff --git a/indra/newview/lldrawpoolterrain.h b/indra/newview/lldrawpoolterrain.h index a9fb48bac..e87229c0f 100644 --- a/indra/newview/lldrawpoolterrain.h +++ b/indra/newview/lldrawpoolterrain.h @@ -76,9 +76,7 @@ public: /*virtual*/ LLViewerTexture *getDebugTexture(); /*virtual*/ LLColor3 getDebugColor() const; // For AGP debug display - LLPointer mAlphaRampImagep; LLPointer m2DAlphaRampImagep; - LLPointer mAlphaNoiseImagep; static S32 sDetailMode; static F32 sDetailScale; // meters per texture diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp index 9d006d2e0..8588d514a 100644 --- a/indra/newview/llfloaterabout.cpp +++ b/indra/newview/llfloaterabout.cpp @@ -70,9 +70,7 @@ #include "lldxhardware.h" #endif -#if !LL_LINUX #include "cef/llceflib.h" -#endif extern LLMemoryInfo gSysMemory; extern U32 gPacketsIn; @@ -199,10 +197,10 @@ LLFloaterAbout::LLFloaterAbout() else support.append(RlvStrings::getString(RLV_STRING_HIDDEN_REGION)); // [/RLVa:KN] - support.append("\n"); + support.append('\n'); support.append(gLastVersionChannel); - support.append("\n"); + support.append('\n'); support_widget->appendColoredText(support, FALSE, FALSE, gColors.getColor("TextFgReadOnlyColor")); @@ -224,7 +222,7 @@ LLFloaterAbout::LLFloaterAbout() // CPU support.append("CPU: "); support.append( gSysCPU.getCPUString() ); - support.append("\n"); + support.append('\n'); /* This is confusing and WRONG. support.append("SSE Support:"); @@ -243,15 +241,15 @@ LLFloaterAbout::LLFloaterAbout() support.append("OS Version: "); support.append( LLAppViewer::instance()->getOSInfo().getOSString() ); - support.append("\n"); + support.append('\n'); support.append("Graphics Card Vendor: "); support.append( (const char*) glGetString(GL_VENDOR) ); - support.append("\n"); + support.append('\n'); support.append("Graphics Card: "); support.append( (const char*) glGetString(GL_RENDERER) ); - support.append("\n"); + support.append('\n'); #if LL_WINDOWS getWindow()->incBusyCount(); @@ -262,7 +260,7 @@ LLFloaterAbout::LLFloaterAbout() { support.append(driver_info["DriverVersion"]); } - support.append("\n"); + support.append('\n'); getWindow()->decBusyCount(); getWindow()->setCursor(UI_CURSOR_ARROW); #endif @@ -270,30 +268,27 @@ LLFloaterAbout::LLFloaterAbout() support.append("OpenGL Version: "); support.append( (const char*) glGetString(GL_VERSION) ); // [RLVa:KB] - Checked: 2010-04-18 (RLVa-1.2.0) - support.append("\n"); + support.append('\n'); support.append("RLV Version: " + (RlvActions::isRlvEnabled() ? RlvStrings::getVersionAbout() : "(disabled)")); // [/RLVa:KB] support.append("\n\n"); support.append("libcurl Version: "); support.append( LLCurl::getVersionString() ); - support.append("\n"); + support.append('\n'); support.append("J2C Decoder Version: "); support.append( LLImageJ2C::getEngineInfo() ); - support.append("\n"); + support.append('\n'); support.append("Audio Driver Version: "); bool want_fullname = true; support.append( gAudiop ? gAudiop->getDriverName(want_fullname) : "(none)" ); - support.append("\n"); + support.append('\n'); -#if !LL_LINUX - // TODO: Implement media plugin version query support.append("LLCEFLib/CEF Version: "); support.append(LLCEFLIB_VERSION); - support.append("\n"); -#endif + support.append('\n'); if (gPacketsIn > 0) { @@ -302,7 +297,7 @@ LLFloaterAbout::LLFloaterAbout() F32(gPacketsIn), 100.f*LLViewerStats::getInstance()->mPacketsLostStat.getCurrent() / F32(gPacketsIn) ); support.append(packet_loss); - support.append("\n"); + support.append('\n'); } support_widget->appendColoredText(support, FALSE, FALSE, gColors.getColor("TextFgReadOnlyColor")); @@ -328,7 +323,7 @@ LLFloaterAbout::LLFloaterAbout() licenses_widget->clear(); while (std::getline(licenses_file, license_line)) { - licenses_widget->appendColoredText(license_line + "\n", FALSE, FALSE, gColors.getColor("TextFgReadOnlyColor")); + licenses_widget->appendColoredText(license_line + '\n', FALSE, FALSE, gColors.getColor("TextFgReadOnlyColor")); } licenses_file.close(); } diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 3d57b6b4b..562605b19 100644 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -1213,8 +1213,6 @@ void render_hud_attachments() gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_ALPHA_MASK); gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_SHINY); gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_SHINY); - gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_INVISIBLE); - gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_INVISI_SHINY); gPipeline.stateSort(hud_cam, result); diff --git a/indra/newview/llviewerkeyboard.cpp b/indra/newview/llviewerkeyboard.cpp index 864dff39e..bb1c236c5 100644 --- a/indra/newview/llviewerkeyboard.cpp +++ b/indra/newview/llviewerkeyboard.cpp @@ -61,7 +61,7 @@ const S32 NUDGE_FRAMES = 2; const F32 ORBIT_NUDGE_RATE = 0.05f; // fraction of normal speed struct LLKeyboardActionRegistry -: public LLRegistrySingleton, LLKeyboardActionRegistry> +: public LLRegistrySingleton, LLKeyboardActionRegistry> { }; @@ -87,7 +87,7 @@ void agent_jump( EKeystate s ) gAgent.moveUp(1); } } -// + void agent_toggle_down( EKeystate s ) { if (KEYSTATE_UP == s) return; @@ -101,7 +101,6 @@ void agent_toggle_down( EKeystate s ) } gAgent.moveUp(-1); } -// void agent_push_down( EKeystate s ) { @@ -574,11 +573,11 @@ void start_gesture( EKeystate s ) #define REGISTER_KEYBOARD_ACTION(KEY, ACTION) LLREGISTER_STATIC(LLKeyboardActionRegistry, KEY, ACTION); REGISTER_KEYBOARD_ACTION("jump", agent_jump); REGISTER_KEYBOARD_ACTION("push_down", agent_push_down); +REGISTER_KEYBOARD_ACTION("toggle_down", agent_toggle_down); REGISTER_KEYBOARD_ACTION("push_forward", agent_push_forward); REGISTER_KEYBOARD_ACTION("push_backward", agent_push_backward); REGISTER_KEYBOARD_ACTION("look_up", agent_look_up); REGISTER_KEYBOARD_ACTION("look_down", agent_look_down); -REGISTER_KEYBOARD_ACTION("toggle_down", agent_toggle_down); REGISTER_KEYBOARD_ACTION("toggle_fly", agent_toggle_fly); REGISTER_KEYBOARD_ACTION("turn_left", agent_turn_left); REGISTER_KEYBOARD_ACTION("turn_right", agent_turn_right); @@ -714,8 +713,8 @@ BOOL LLViewerKeyboard::handleKeyUp(KEY translated_key, MASK translated_mask) BOOL LLViewerKeyboard::bindKey(const S32 mode, const KEY key, const MASK mask, const std::string& function_name) { S32 index; - typedef boost::function function_t; - function_t function = NULL; + typedef std::function function_t; + function_t function; std::string name; // Allow remapping of F2-F12 diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index a5ec4c9a7..d67fc1e08 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -171,6 +171,20 @@ void LLViewerTextureList::doPreloadImages() image->setAddressMode(LLTexUnit::TAM_WRAP); mImagePreloads.insert(image); } + image = LLViewerTextureManager::getFetchedTextureFromFile("transparent.j2c", MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI, LLViewerTexture::FETCHED_TEXTURE, + 0,0,LLUUID("e97cf410-8e61-7005-ec06-629eba4cd1fb")); + if (image) + { + image->setAddressMode(LLTexUnit::TAM_WRAP); + mImagePreloads.insert(image); + } + image = LLViewerTextureManager::getFetchedTextureFromFile("transparent.j2c", MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI, LLViewerTexture::FETCHED_TEXTURE, + 0,0,LLUUID("38b86f85-2575-52a9-a531-23108d8da837")); + if (image) + { + image->setAddressMode(LLTexUnit::TAM_WRAP); + mImagePreloads.insert(image); + } //Hideous hack to set filtering and address modes without messing with our texture classes. { LLPointer temp_image = image_list->getUIImage("checkerboard.tga",LLViewerFetchedTexture::BOOST_UI); diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index e24e14493..2faca387d 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -3073,7 +3073,6 @@ U32 LLVOVolume::getRenderCost(texture_cost_t &textures) const static const F32 ARC_BUMP_MULT = 1.25f; // tested based on performance static const F32 ARC_FLEXI_MULT = 5; // tested based on performance static const F32 ARC_SHINY_MULT = 1.6f; // tested based on performance - static const F32 ARC_INVISI_COST = 1.2f; // tested based on performance static const F32 ARC_WEIGHTED_MESH = 1.2f; // tested based on performance static const F32 ARC_PLANAR_COST = 1.0f; // tested based on performance to have negligible impact @@ -3082,7 +3081,6 @@ U32 LLVOVolume::getRenderCost(texture_cost_t &textures) const F32 shame = 0; - U32 invisi = 0; U32 shiny = 0; U32 glow = 0; U32 alpha = 0; @@ -3190,10 +3188,6 @@ U32 LLVOVolume::getRenderCost(texture_cost_t &textures) const { alpha = 1; } - else if (img && img->getPrimaryFormat() == GL_ALPHA) - { - invisi = 1; - } if (face->hasMedia()) { media_faces++; @@ -3247,11 +3241,6 @@ U32 LLVOVolume::getRenderCost(texture_cost_t &textures) const shame *= alpha * ARC_ALPHA_COST; } - if(invisi) - { - shame *= invisi * ARC_INVISI_COST; - } - if (glow) { shame *= glow * ARC_GLOW_MULT; @@ -4057,11 +4046,6 @@ bool can_batch_texture(const LLFace* facep) return false; } - if (facep->getTexture() && facep->getTexture()->getPrimaryFormat() == GL_ALPHA) - { //can't batch invisiprims - return false; - } - if (facep->isState(LLFace::TEXTURE_ANIM) && facep->getVirtualSize() > MIN_TEX_ANIM_SIZE) { //texture animation breaks batches return false; @@ -4080,11 +4064,6 @@ bool can_batch_texture(const LLFace* facep) return false; } - if (facep->getPoolType() != LLDrawPool::POOL_ALPHA && facep->getTexture() && facep->getTexture()->getPrimaryFormat() == GL_ALPHA) - { //can't batch invisiprims - return false; - } - if (facep->isState(LLFace::TEXTURE_ANIM) && facep->getVirtualSize() > MIN_TEX_ANIM_SIZE) { //texture animation breaks batches return false; @@ -4118,7 +4097,6 @@ void LLVolumeGeometryManager::registerFace(LLSpatialGroup* group, LLFace* facep, if(!facep->mShinyInAlpha) facep->mShinyInAlpha = (type == LLRenderPass::PASS_FULLBRIGHT_SHINY) || - (type == LLRenderPass::PASS_INVISI_SHINY) || (type == LLRenderPass::PASS_SHINY) || (LLPipeline::sRenderDeferred && type == LLRenderPass::PASS_BUMP) || (LLPipeline::sRenderDeferred && type == LLRenderPass::PASS_SIMPLE); @@ -4133,7 +4111,6 @@ void LLVolumeGeometryManager::registerFace(LLSpatialGroup* group, LLFace* facep, if(!alt_batching) { fullbright = (type == LLRenderPass::PASS_FULLBRIGHT) || - (type == LLRenderPass::PASS_INVISIBLE) || (type == LLRenderPass::PASS_FULLBRIGHT_ALPHA_MASK) || (type == LLRenderPass::PASS_ALPHA && facep->isState(LLFace::FULLBRIGHT)) || (facep->getTextureEntry()->getFullbright()); @@ -6050,12 +6027,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFac && te->getShiny() && can_be_shiny) { //shiny - if (tex->getPrimaryFormat() == GL_ALPHA) - { //invisiprim+shiny - registerFace(group, facep, LLRenderPass::PASS_INVISI_SHINY); - registerFace(group, facep, LLRenderPass::PASS_INVISIBLE); - } - else if (LLPipeline::sRenderDeferred && !hud_group) + if (LLPipeline::sRenderDeferred && !hud_group) { //deferred rendering if (te->getFullbright()) { //register in post deferred fullbright shiny pass @@ -6086,11 +6058,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFac } else { //not alpha and not shiny - if (!is_alpha && tex->getPrimaryFormat() == GL_ALPHA) - { //invisiprim - registerFace(group, facep, LLRenderPass::PASS_INVISIBLE); - } - else if (fullbright) + if (fullbright) { //fullbright if (mat && mat->getDiffuseAlphaMode() == LLMaterial::DIFFUSE_ALPHA_MODE_MASK) { @@ -6213,15 +6181,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFac } else { - if (tex->getPrimaryFormat() == GL_ALPHA) - { - if(is_shiny_shader && facep->getPoolType() == LLDrawPool::POOL_BUMP) - { - registerFace(group, facep, LLRenderPass::PASS_INVISI_SHINY); - } - registerFace(group, facep, LLRenderPass::PASS_INVISIBLE); - } - else if (facep->getPoolType() == LLDrawPool::POOL_SIMPLE) + if (facep->getPoolType() == LLDrawPool::POOL_SIMPLE) { registerFace(group, facep, LLRenderPass::PASS_SIMPLE); } diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index bc579fd29..3befdff47 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -174,7 +174,6 @@ const LLMatrix4a* gGLLastMatrix = NULL; LLFastTimer::DeclareTimer FTM_RENDER_GEOMETRY("Geometry"); LLFastTimer::DeclareTimer FTM_RENDER_GRASS("Grass"); -LLFastTimer::DeclareTimer FTM_RENDER_INVISIBLE("Invisible"); LLFastTimer::DeclareTimer FTM_RENDER_OCCLUSION("Occlusion"); LLFastTimer::DeclareTimer FTM_RENDER_SHINY("Shiny"); LLFastTimer::DeclareTimer FTM_RENDER_SIMPLE("Simple"); @@ -234,7 +233,6 @@ std::string gPoolNames[] = "POOL_SKY", "POOL_WL_SKY", "POOL_GRASS", - "POOL_INVISIBLE", "POOL_AVATAR", "POOL_VOIDWATER", "POOL_WATER", @@ -382,7 +380,6 @@ LLPipeline::LLPipeline() : mAlphaMaskPool(NULL), mFullbrightAlphaMaskPool(NULL), mFullbrightPool(NULL), - mInvisiblePool(NULL), mGlowPool(NULL), mBumpPool(NULL), mMaterialsPool(NULL), @@ -421,7 +418,6 @@ void LLPipeline::init() getPool(LLDrawPool::POOL_FULLBRIGHT_ALPHA_MASK); getPool(LLDrawPool::POOL_GRASS); getPool(LLDrawPool::POOL_FULLBRIGHT); - getPool(LLDrawPool::POOL_INVISIBLE); getPool(LLDrawPool::POOL_BUMP); getPool(LLDrawPool::POOL_MATERIALS); getPool(LLDrawPool::POOL_GLOW); @@ -553,8 +549,6 @@ void LLPipeline::cleanup() mSimplePool = NULL; delete mFullbrightPool; mFullbrightPool = NULL; - delete mInvisiblePool; - mInvisiblePool = NULL; delete mGlowPool; mGlowPool = NULL; delete mBumpPool; @@ -1395,10 +1389,6 @@ LLDrawPool *LLPipeline::findPool(const U32 type, LLViewerTexture *tex0) poolp = mFullbrightPool; break; - case LLDrawPool::POOL_INVISIBLE: - poolp = mInvisiblePool; - break; - case LLDrawPool::POOL_GLOW: poolp = mGlowPool; break; @@ -5059,18 +5049,6 @@ void LLPipeline::addToQuickLookup( LLDrawPool* new_poolp ) } break; - case LLDrawPool::POOL_INVISIBLE: - if (mInvisiblePool) - { - llassert(0); - LL_WARNS() << "Ignoring duplicate simple pool." << LL_ENDL; - } - else - { - mInvisiblePool = (LLRenderPass*) new_poolp; - } - break; - case LLDrawPool::POOL_GLOW: if (mGlowPool) { @@ -5221,11 +5199,6 @@ void LLPipeline::removeFromQuickLookup( LLDrawPool* poolp ) mFullbrightPool = NULL; break; - case LLDrawPool::POOL_INVISIBLE: - llassert(mInvisiblePool == poolp); - mInvisiblePool = NULL; - break; - case LLDrawPool::POOL_WL_SKY: llassert(mWLSkyPool == poolp); mWLSkyPool = NULL; @@ -8314,8 +8287,6 @@ void LLPipeline::renderDeferredLighting() LLPipeline::RENDER_TYPE_PASS_GLOW, LLPipeline::RENDER_TYPE_PASS_GRASS, LLPipeline::RENDER_TYPE_PASS_SHINY, - LLPipeline::RENDER_TYPE_PASS_INVISIBLE, - LLPipeline::RENDER_TYPE_PASS_INVISI_SHINY, LLPipeline::RENDER_TYPE_AVATAR, LLPipeline::RENDER_TYPE_ALPHA_MASK, LLPipeline::RENDER_TYPE_FULLBRIGHT_ALPHA_MASK, @@ -8886,8 +8857,6 @@ void LLPipeline::renderDeferredLightingToRT(LLRenderTarget* target) LLPipeline::RENDER_TYPE_PASS_GLOW, LLPipeline::RENDER_TYPE_PASS_GRASS, LLPipeline::RENDER_TYPE_PASS_SHINY, - LLPipeline::RENDER_TYPE_PASS_INVISIBLE, - LLPipeline::RENDER_TYPE_PASS_INVISI_SHINY, LLPipeline::RENDER_TYPE_AVATAR, LLPipeline::RENDER_TYPE_ALPHA_MASK, LLPipeline::RENDER_TYPE_FULLBRIGHT_ALPHA_MASK, @@ -10542,12 +10511,9 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar) LLPipeline::RENDER_TYPE_PASS_GLOW, LLPipeline::RENDER_TYPE_PASS_GRASS, LLPipeline::RENDER_TYPE_PASS_SHINY, - LLPipeline::RENDER_TYPE_PASS_INVISIBLE, - LLPipeline::RENDER_TYPE_PASS_INVISI_SHINY, LLPipeline::RENDER_TYPE_AVATAR, LLPipeline::RENDER_TYPE_ALPHA_MASK, LLPipeline::RENDER_TYPE_FULLBRIGHT_ALPHA_MASK, - LLPipeline::RENDER_TYPE_INVISIBLE, LLPipeline::RENDER_TYPE_SIMPLE, END_RENDER_TYPES); } diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index 1cf400446..b7d357f97 100644 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -86,7 +86,6 @@ void glh_set_current_projection(const LLMatrix4a& mat); extern LLFastTimer::DeclareTimer FTM_RENDER_GEOMETRY; extern LLFastTimer::DeclareTimer FTM_RENDER_GRASS; -extern LLFastTimer::DeclareTimer FTM_RENDER_INVISIBLE; extern LLFastTimer::DeclareTimer FTM_RENDER_OCCLUSION; extern LLFastTimer::DeclareTimer FTM_RENDER_SHINY; extern LLFastTimer::DeclareTimer FTM_RENDER_SIMPLE; @@ -448,7 +447,6 @@ public: RENDER_TYPE_MATERIALS = LLDrawPool::POOL_MATERIALS, RENDER_TYPE_AVATAR = LLDrawPool::POOL_AVATAR, RENDER_TYPE_TREE = LLDrawPool::POOL_TREE, - RENDER_TYPE_INVISIBLE = LLDrawPool::POOL_INVISIBLE, RENDER_TYPE_VOIDWATER = LLDrawPool::POOL_VOIDWATER, RENDER_TYPE_WATER = LLDrawPool::POOL_WATER, RENDER_TYPE_ALPHA = LLDrawPool::POOL_ALPHA, @@ -456,8 +454,6 @@ public: RENDER_TYPE_PASS_SIMPLE = LLRenderPass::PASS_SIMPLE, RENDER_TYPE_PASS_GRASS = LLRenderPass::PASS_GRASS, RENDER_TYPE_PASS_FULLBRIGHT = LLRenderPass::PASS_FULLBRIGHT, - RENDER_TYPE_PASS_INVISIBLE = LLRenderPass::PASS_INVISIBLE, - RENDER_TYPE_PASS_INVISI_SHINY = LLRenderPass::PASS_INVISI_SHINY, RENDER_TYPE_PASS_FULLBRIGHT_SHINY = LLRenderPass::PASS_FULLBRIGHT_SHINY, RENDER_TYPE_PASS_SHINY = LLRenderPass::PASS_SHINY, RENDER_TYPE_PASS_BUMP = LLRenderPass::PASS_BUMP, @@ -771,7 +767,6 @@ private: LLRenderPass* mAlphaMaskPool; LLRenderPass* mFullbrightAlphaMaskPool; LLRenderPass* mFullbrightPool; - LLDrawPool* mInvisiblePool; LLDrawPool* mGlowPool; LLDrawPool* mBumpPool; LLDrawPool* mMaterialsPool; diff --git a/indra/newview/skins/apollo/keywords.ini b/indra/newview/skins/apollo/keywords.ini index 8d0fd6b71..26c994488 100644 --- a/indra/newview/skins/apollo/keywords.ini +++ b/indra/newview/skins/apollo/keywords.ini @@ -182,6 +182,8 @@ PSYS_SRC_PATTERN_ANGLE_CONE PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY OBJECT_UNKNOWN_DETAIL Returned by llGetObjectDetails when passed an invalid object parameter type +OBJECT_HOVER_HEIGHT This is a flag used with llGetObjectDetails to get hover height of the avatar. If no data is available, 0.0 is returned. +OBJECT_LAST_OWNER_ID Gets the object's last owner ID. OBJECT_NAME Used with llGetObjectDetails to get an object's name OBJECT_DESC Used with llGetObjectDetails to get an object's description OBJECT_POS Used with llGetObjectDetails to get an object's position @@ -189,6 +191,7 @@ OBJECT_ROT Used with llGetObjectDetails to get an o OBJECT_VELOCITY Used with llGetObjectDetails to get an object's velocity OBJECT_OWNER Used with llGetObjectDetails to get an object's owner's key. Will be NULL_KEY if group owned OBJECT_GROUP Used with llGetObjectDetails to get an object's group's key +OBJECT_CLICK_ACTION This is a flag used with llGetObjectDetails to get the click action. The default is 0. OBJECT_CREATOR Used with llGetObjectDetails to get an object's creator's key OBJECT_RUNNING_SCRIPT_COUNT Gets the number of running scripts attached to the object or agent OBJECT_TOTAL_SCRIPT_COUNT Gets the number of scripts, both running and stopped, attached to the object or agent. @@ -199,6 +202,7 @@ OBJECT_SERVER_COST Used with llGetObjectDetails to get the OBJECT_STREAMING_COST Used with llGetObjectDetails to get the streaming (download) cost. OBJECT_PHYSICS_COST Used with llGetObjectDetails to get the physics cost. OBJECT_PATHFINDING_TYPE Used with llGetObjectDetails to get an object's pathfinding settings. +OBJECT_BODY_SHAPE_TYPE This is a flag used with llGetObjectDetails to get the body type of the avatar, based on shape data. If no data is available, -1.0 is returned. This is normally between 0 and 1.0, with 0.5 and larger considered 'male' OBJECT_CHARACTER_TIME Used with llGetObjectDetails to get an object's average CPU time (in seconds) used by the object for navigation, if the object is a pathfinding character. Returns 0 for non-characters. OBJECT_ROOT Used with llGetObjectDetails to get an object's root prim ID. OBJECT_ATTACHED_POINT Used with llGetObjectDetails to get an object's attachment point. diff --git a/indra/newview/skins/default/xui/en-us/mime_types_linux.xml b/indra/newview/skins/default/xui/en-us/mime_types_linux.xml index e95b371d0..4ff7221c6 100644 --- a/indra/newview/skins/default/xui/en-us/mime_types_linux.xml +++ b/indra/newview/skins/default/xui/en-us/mime_types_linux.xml @@ -7,7 +7,7 @@ none - media_plugin_webkit + media_plugin_cef