From 0517fe4322443bdc317f8185590a63134e3f8394 Mon Sep 17 00:00:00 2001 From: Jacek Antonelli Date: Sat, 13 Jun 2009 13:17:14 -0500 Subject: Second Life viewer sources 1.23.3-RC --- linden/doc/contributions.txt | 2 + linden/indra/llcommon/llversionserver.h | 2 +- linden/indra/llcommon/llversionviewer.h | 6 +- linden/indra/llrender/llimagegl.cpp | 12 +- linden/indra/llrender/llimagegl.h | 7 +- linden/indra/llui/llview.cpp | 27 +- linden/indra/llwindow/glh/glh_linear.h | 1621 ++++ .../indra/newview/English.lproj/InfoPlist.strings | 4 +- linden/indra/newview/English.lproj/language.txt | 1 + linden/indra/newview/German.lproj/language.txt | 1 + linden/indra/newview/Info-SecondLife.plist | 2 +- linden/indra/newview/Japanese.lproj/language.txt | 1 + linden/indra/newview/Korean.lproj/language.txt | 1 + linden/indra/newview/app_settings/settings.xml | 15 +- linden/indra/newview/da.lproj/language.txt | 1 + linden/indra/newview/es.lproj/language.txt | 1 + linden/indra/newview/featuretable.txt | 3 +- linden/indra/newview/featuretable_linux.txt | 2 +- linden/indra/newview/featuretable_mac.txt | 2 +- linden/indra/newview/fr.lproj/language.txt | 1 + linden/indra/newview/hu.lproj/language.txt | 1 + linden/indra/newview/it.lproj/language.txt | 1 + linden/indra/newview/linux_tools/wrapper.sh | 4 +- linden/indra/newview/llagent.cpp | 15 +- linden/indra/newview/llappviewer.cpp | 35 +- linden/indra/newview/llappviewerwin32.cpp | 39 +- linden/indra/newview/lldrawable.cpp | 16 +- linden/indra/newview/lldrawable.h | 2 +- linden/indra/newview/lldrawpoolsky.cpp | 68 +- linden/indra/newview/lldrawpoolsky.h | 4 - linden/indra/newview/llface.cpp | 15 + linden/indra/newview/llfloaterchat.cpp | 3 + linden/indra/newview/llfloaterimagepreview.cpp | 48 +- linden/indra/newview/llfloaterlagmeter.cpp | 2 +- linden/indra/newview/llsky.cpp | 14 - linden/indra/newview/llspatialpartition.h | 2 +- linden/indra/newview/lltexlayer.cpp | 6 +- linden/indra/newview/lltextureview.cpp | 8 +- linden/indra/newview/lltoolcomp.cpp | 12 +- linden/indra/newview/llviewerimage.cpp | 44 +- linden/indra/newview/llviewerimage.h | 13 +- linden/indra/newview/llviewerimagelist.cpp | 43 +- linden/indra/newview/llviewerimagelist.h | 8 +- linden/indra/newview/llviewerobject.cpp | 3 +- linden/indra/newview/llviewerstats.cpp | 4 +- linden/indra/newview/llviewerwindow.cpp | 2 +- linden/indra/newview/llvoavatar.cpp | 4 +- linden/indra/newview/llvosky.cpp | 4 +- linden/indra/newview/llvovolume.cpp | 43 +- linden/indra/newview/llvovolume.h | 1 + linden/indra/newview/nl.lproj/language.txt | 1 + linden/indra/newview/pipeline.cpp | 14 +- linden/indra/newview/pl.lproj/language.txt | 1 + linden/indra/newview/pt.lproj/language.txt | 1 + linden/indra/newview/res/viewerRes.rc | 8 +- linden/indra/newview/ru.lproj/language.txt | 1 + .../indra/newview/skins/default/xui/da/alerts.xml | 4 + .../newview/skins/default/xui/da/floater_about.xml | 36 + .../skins/default/xui/da/floater_about_land.xml | 517 ++ .../default/xui/da/floater_active_speakers.xml | 12 + .../default/xui/da/floater_animation_preview.xml | 171 + .../skins/default/xui/da/floater_auction.xml | 9 + .../skins/default/xui/da/floater_audio_volume.xml | 4 + .../skins/default/xui/da/floater_avatar_picker.xml | 40 + .../default/xui/da/floater_avatar_textures.xml | 30 + .../skins/default/xui/da/floater_beacons.xml | 15 + .../skins/default/xui/da/floater_build_options.xml | 8 + .../skins/default/xui/da/floater_bulk_perms.xml | 44 + .../newview/skins/default/xui/da/floater_bumps.xml | 21 + .../skins/default/xui/da/floater_buy_contents.xml | 21 + .../skins/default/xui/da/floater_buy_currency.xml | 68 + .../skins/default/xui/da/floater_buy_land.xml | 245 + .../skins/default/xui/da/floater_buy_object.xml | 26 + .../skins/default/xui/da/floater_camera.xml | 12 + .../skins/default/xui/da/floater_chat_history.xml | 92 + .../skins/default/xui/da/floater_chatterbox.xml | 2 + .../skins/default/xui/da/floater_choose_group.xml | 8 + .../skins/default/xui/da/floater_color_picker.xml | 31 + .../skins/default/xui/da/floater_critical.xml | 11 + .../skins/default/xui/da/floater_customize.xml | 483 ++ .../default/xui/da/floater_day_cycle_options.xml | 97 + .../default/xui/da/floater_device_settings.xml | 2 + .../skins/default/xui/da/floater_directory.xml | 422 + .../skins/default/xui/da/floater_env_settings.xml | 26 + .../skins/default/xui/da/floater_font_test.xml | 6 + .../skins/default/xui/da/floater_gesture.xml | 16 + .../skins/default/xui/da/floater_group_info.xml | 268 + .../default/xui/da/floater_hardware_settings.xml | 40 + .../newview/skins/default/xui/da/floater_html.xml | 13 + .../newview/skins/default/xui/da/floater_hud.xml | 2 + .../newview/skins/default/xui/da/floater_im.xml | 45 + .../skins/default/xui/da/floater_image_preview.xml | 52 + .../skins/default/xui/da/floater_import.xml | 17 + .../skins/default/xui/da/floater_inspect.xml | 11 + .../default/xui/da/floater_instant_message.xml | 50 + .../xui/da/floater_instant_message_ad_hoc.xml | 43 + .../xui/da/floater_instant_message_group.xml | 49 + .../skins/default/xui/da/floater_inventory.xml | 47 + .../xui/da/floater_inventory_item_properties.xml | 85 + .../xui/da/floater_inventory_view_finder.xml | 24 + .../skins/default/xui/da/floater_joystick.xml | 90 + .../skins/default/xui/da/floater_lagmeter.xml | 152 + .../skins/default/xui/da/floater_land_holdings.xml | 40 + .../skins/default/xui/da/floater_landmark_ctrl.xml | 10 + .../default/xui/da/floater_live_lsleditor.xml | 12 + .../skins/default/xui/da/floater_lsl_guide.xml | 7 + .../skins/default/xui/da/floater_media_browser.xml | 19 + .../skins/default/xui/da/floater_mem_leaking.xml | 18 + .../skins/default/xui/da/floater_mini_map.xml | 4 + .../skins/default/xui/da/floater_moveview.xml | 11 + .../newview/skins/default/xui/da/floater_mute.xml | 11 + .../skins/default/xui/da/floater_mute_object.xml | 12 + .../skins/default/xui/da/floater_my_friends.xml | 7 + .../default/xui/da/floater_name_description.xml | 11 + .../skins/default/xui/da/floater_new_im.xml | 11 + .../default/xui/da/floater_new_outfit_dialog.xml | 85 + .../default/xui/da/floater_object_im_info.xml | 16 + .../skins/default/xui/da/floater_openobject.xml | 10 + .../newview/skins/default/xui/da/floater_pay.xml | 21 + .../skins/default/xui/da/floater_pay_object.xml | 30 + .../skins/default/xui/da/floater_perm_prefs.xml | 16 + .../skins/default/xui/da/floater_postcard.xml | 36 + .../skins/default/xui/da/floater_preferences.xml | 8 + .../default/xui/da/floater_preview_animation.xml | 10 + .../default/xui/da/floater_preview_classified.xml | 2 + .../xui/da/floater_preview_embedded_texture.xml | 7 + .../skins/default/xui/da/floater_preview_event.xml | 2 + .../xui/da/floater_preview_existing_landmark.xml | 2 + .../default/xui/da/floater_preview_gesture.xml | 60 + .../default/xui/da/floater_preview_notecard.xml | 16 + .../da/floater_preview_notecard_keep_discard.xml | 17 + .../skins/default/xui/da/floater_preview_sound.xml | 10 + .../default/xui/da/floater_preview_texture.xml | 9 + .../da/floater_preview_texture_keep_discard.xml | 11 + .../skins/default/xui/da/floater_preview_url.xml | 2 + .../default/xui/da/floater_price_for_listing.xml | 18 + .../skins/default/xui/da/floater_profile.xml | 2 + .../skins/default/xui/da/floater_region_info.xml | 2 + .../skins/default/xui/da/floater_report_abuse.xml | 181 + .../skins/default/xui/da/floater_report_bug.xml | 109 + .../skins/default/xui/da/floater_script_debug.xml | 6 + .../default/xui/da/floater_script_ed_panel.xml | 43 + .../default/xui/da/floater_script_preview.xml | 6 + .../skins/default/xui/da/floater_script_queue.xml | 4 + .../skins/default/xui/da/floater_script_search.xml | 13 + .../skins/default/xui/da/floater_select_key.xml | 7 + .../skins/default/xui/da/floater_sell_land.xml | 68 + .../default/xui/da/floater_settings_debug.xml | 17 + .../default/xui/da/floater_sim_release_message.xml | 16 + .../skins/default/xui/da/floater_snapshot.xml | 137 + .../skins/default/xui/da/floater_sound_preview.xml | 11 + .../skins/default/xui/da/floater_statistics.xml | 2 + .../skins/default/xui/da/floater_telehub.xml | 28 + .../newview/skins/default/xui/da/floater_test.xml | 2 + .../skins/default/xui/da/floater_texture_ctrl.xml | 24 + .../newview/skins/default/xui/da/floater_tools.xml | 625 ++ .../skins/default/xui/da/floater_top_objects.xml | 55 + .../newview/skins/default/xui/da/floater_tos.xml | 16 + .../skins/default/xui/da/floater_url_entry.xml | 12 + .../newview/skins/default/xui/da/floater_water.xml | 103 + .../default/xui/da/floater_wearable_save_as.xml | 11 + .../default/xui/da/floater_windlight_options.xml | 228 + .../skins/default/xui/da/floater_world_map.xml | 61 + .../skins/default/xui/da/menu_inventory.xml | 66 + .../newview/skins/default/xui/da/menu_login.xml | 13 + .../newview/skins/default/xui/da/menu_mini_map.xml | 8 + .../skins/default/xui/da/menu_pie_attachment.xml | 15 + .../skins/default/xui/da/menu_pie_avatar.xml | 18 + .../newview/skins/default/xui/da/menu_pie_land.xml | 10 + .../skins/default/xui/da/menu_pie_object.xml | 30 + .../newview/skins/default/xui/da/menu_pie_self.xml | 29 + .../newview/skins/default/xui/da/menu_slurl.xml | 6 + .../newview/skins/default/xui/da/menu_viewer.xml | 207 + .../newview/skins/default/xui/da/mime_types.xml | 230 + .../newview/skins/default/xui/da/notifications.xml | 1182 +++ .../indra/newview/skins/default/xui/da/notify.xml | 4 + .../newview/skins/default/xui/da/panel_audio.xml | 17 + .../skins/default/xui/da/panel_audio_device.xml | 25 + .../newview/skins/default/xui/da/panel_avatar.xml | 194 + .../default/xui/da/panel_avatar_classified.xml | 37 + .../skins/default/xui/da/panel_avatar_pick.xml | 10 + .../skins/default/xui/da/panel_chat_bar.xml | 22 + .../skins/default/xui/da/panel_classified.xml | 31 + .../newview/skins/default/xui/da/panel_event.xml | 70 + .../newview/skins/default/xui/da/panel_friends.xml | 26 + .../newview/skins/default/xui/da/panel_group.xml | 13 + .../skins/default/xui/da/panel_group_finder.xml | 9 + .../skins/default/xui/da/panel_group_general.xml | 80 + .../skins/default/xui/da/panel_group_invite.xml | 31 + .../default/xui/da/panel_group_land_money.xml | 82 + .../skins/default/xui/da/panel_group_notices.xml | 73 + .../skins/default/xui/da/panel_group_roles.xml | 161 + .../skins/default/xui/da/panel_group_voting.xml | 113 + .../newview/skins/default/xui/da/panel_groups.xml | 18 + .../skins/default/xui/da/panel_land_covenant.xml | 39 + .../newview/skins/default/xui/da/panel_login.xml | 43 + .../skins/default/xui/da/panel_master_volume.xml | 7 + .../skins/default/xui/da/panel_media_controls.xml | 38 + .../default/xui/da/panel_media_remote_expanded.xml | 28 + .../skins/default/xui/da/panel_mini_map.xml | 27 + .../skins/default/xui/da/panel_overlaybar.xml | 16 + .../newview/skins/default/xui/da/panel_place.xml | 39 + .../skins/default/xui/da/panel_place_small.xml | 42 + .../default/xui/da/panel_preferences_audio.xml | 24 + .../default/xui/da/panel_preferences_chat.xml | 61 + .../default/xui/da/panel_preferences_general.xml | 146 + .../default/xui/da/panel_preferences_graphics1.xml | 179 + .../skins/default/xui/da/panel_preferences_im.xml | 33 + .../default/xui/da/panel_preferences_input.xml | 30 + .../default/xui/da/panel_preferences_network.xml | 23 + .../default/xui/da/panel_preferences_popups.xml | 20 + .../default/xui/da/panel_preferences_skins.xml | 16 + .../default/xui/da/panel_preferences_voice.xml | 36 + .../skins/default/xui/da/panel_preferences_web.xml | 31 + .../skins/default/xui/da/panel_region_covenant.xml | 77 + .../skins/default/xui/da/panel_region_debug.xml | 51 + .../skins/default/xui/da/panel_region_estate.xml | 71 + .../skins/default/xui/da/panel_region_general.xml | 59 + .../skins/default/xui/da/panel_region_terrain.xml | 30 + .../skins/default/xui/da/panel_region_texture.xml | 57 + .../skins/default/xui/da/panel_scrolling_param.xml | 12 + .../default/xui/da/panel_speaker_controls.xml | 43 + .../skins/default/xui/da/panel_status_bar.xml | 44 + .../newview/skins/default/xui/da/panel_toolbar.xml | 24 + .../skins/default/xui/da/panel_top_pick.xml | 10 + .../skins/default/xui/da/panel_voice_controls.xml | 7 + .../skins/default/xui/da/panel_voice_enable.xml | 24 + .../skins/default/xui/da/panel_voice_options.xml | 21 + .../default/xui/da/panel_voice_remote_expanded.xml | 7 + .../newview/skins/default/xui/da/role_actions.xml | 201 + .../indra/newview/skins/default/xui/da/strings.xml | 486 ++ .../skins/default/xui/da/teleport_strings.xml | 81 + .../newview/skins/default/xui/da/ui_strings.xml | 28 + .../newview/skins/default/xui/da/xui_version.xml | 4 + .../default/xui/de/floater_active_speakers.xml | 2 +- .../skins/default/xui/de/floater_buy_land.xml | 1 + .../skins/default/xui/de/floater_directory.xml | 2 +- .../xui/de/floater_instant_message_ad_hoc.xml | 4 +- .../skins/default/xui/de/floater_mute_object.xml | 4 +- .../default/xui/de/floater_object_im_info.xml | 2 +- .../default/xui/de/floater_sim_release_message.xml | 2 +- .../newview/skins/default/xui/de/floater_tools.xml | 2 +- .../newview/skins/default/xui/de/menu_viewer.xml | 4 +- .../newview/skins/default/xui/de/notifications.xml | 2 +- .../skins/default/xui/de/panel_preferences_im.xml | 2 +- .../skins/default/xui/en-us/floater_telehub.xml | 2 +- .../skins/default/xui/en-us/menu_viewer.xml | 2 +- .../skins/default/xui/en-us/notifications.xml | 2 +- .../default/xui/en-us/panel_preferences_im.xml | 2 +- .../skins/default/xui/es/floater_about_land.xml | 26 +- .../default/xui/es/floater_animation_preview.xml | 25 +- .../skins/default/xui/es/floater_avatar_picker.xml | 8 +- .../skins/default/xui/es/floater_build_options.xml | 6 +- .../skins/default/xui/es/floater_buy_contents.xml | 2 +- .../skins/default/xui/es/floater_buy_currency.xml | 12 +- .../skins/default/xui/es/floater_buy_land.xml | 11 +- .../skins/default/xui/es/floater_color_picker.xml | 3 +- .../skins/default/xui/es/floater_customize.xml | 4 +- .../default/xui/es/floater_day_cycle_options.xml | 12 +- .../skins/default/xui/es/floater_directory.xml | 10 +- .../skins/default/xui/es/floater_env_settings.xml | 15 +- .../skins/default/xui/es/floater_gesture.xml | 5 +- .../default/xui/es/floater_hardware_settings.xml | 4 +- .../skins/default/xui/es/floater_image_preview.xml | 10 +- .../skins/default/xui/es/floater_inspect.xml | 10 +- .../xui/es/floater_inventory_item_properties.xml | 8 +- .../xui/es/floater_inventory_view_finder.xml | 10 +- .../skins/default/xui/es/floater_joystick.xml | 29 +- .../skins/default/xui/es/floater_lagmeter.xml | 13 +- .../skins/default/xui/es/floater_land_holdings.xml | 2 +- .../default/xui/es/floater_live_lsleditor.xml | 4 +- .../skins/default/xui/es/floater_lsl_guide.xml | 4 +- .../skins/default/xui/es/floater_media_browser.xml | 9 +- .../newview/skins/default/xui/es/floater_mute.xml | 6 +- .../skins/default/xui/es/floater_mute_object.xml | 7 +- .../default/xui/es/floater_new_outfit_dialog.xml | 67 +- .../default/xui/es/floater_object_im_info.xml | 4 +- .../newview/skins/default/xui/es/floater_pay.xml | 9 +- .../skins/default/xui/es/floater_pay_object.xml | 10 +- .../skins/default/xui/es/floater_postcard.xml | 17 +- .../skins/default/xui/es/floater_preferences.xml | 5 +- .../default/xui/es/floater_preview_animation.xml | 4 +- .../default/xui/es/floater_preview_gesture.xml | 16 +- .../default/xui/es/floater_price_for_listing.xml | 15 +- .../skins/default/xui/es/floater_script_search.xml | 16 +- .../skins/default/xui/es/floater_select_key.xml | 2 +- .../default/xui/es/floater_settings_debug.xml | 6 +- .../skins/default/xui/es/floater_snapshot.xml | 12 +- .../skins/default/xui/es/floater_telehub.xml | 18 +- .../skins/default/xui/es/floater_texture_ctrl.xml | 4 +- .../newview/skins/default/xui/es/floater_tools.xml | 64 +- .../skins/default/xui/es/floater_top_objects.xml | 21 +- .../newview/skins/default/xui/es/floater_tos.xml | 4 +- .../skins/default/xui/es/floater_url_entry.xml | 3 +- .../newview/skins/default/xui/es/floater_water.xml | 22 +- .../default/xui/es/floater_windlight_options.xml | 20 +- .../newview/skins/default/xui/es/menu_viewer.xml | 12 +- .../newview/skins/default/xui/es/notifications.xml | 50 +- .../newview/skins/default/xui/es/panel_avatar.xml | 8 +- .../default/xui/es/panel_avatar_classified.xml | 14 +- .../skins/default/xui/es/panel_avatar_pick.xml | 6 +- .../skins/default/xui/es/panel_classified.xml | 4 +- .../newview/skins/default/xui/es/panel_event.xml | 18 +- .../skins/default/xui/es/panel_group_general.xml | 12 +- .../skins/default/xui/es/panel_group_invite.xml | 17 +- .../default/xui/es/panel_group_land_money.xml | 15 +- .../skins/default/xui/es/panel_group_notices.xml | 17 +- .../skins/default/xui/es/panel_group_roles.xml | 46 +- .../skins/default/xui/es/panel_group_voting.xml | 37 +- .../newview/skins/default/xui/es/panel_groups.xml | 8 +- .../skins/default/xui/es/panel_overlaybar.xml | 12 +- .../newview/skins/default/xui/es/panel_place.xml | 3 +- .../skins/default/xui/es/panel_place_small.xml | 6 +- .../default/xui/es/panel_preferences_chat.xml | 5 +- .../default/xui/es/panel_preferences_graphics1.xml | 42 +- .../skins/default/xui/es/panel_preferences_im.xml | 11 +- .../default/xui/es/panel_preferences_input.xml | 14 +- .../default/xui/es/panel_preferences_network.xml | 2 +- .../default/xui/es/panel_preferences_popups.xml | 8 +- .../default/xui/es/panel_preferences_voice.xml | 4 +- .../skins/default/xui/es/panel_preferences_web.xml | 6 +- .../skins/default/xui/es/panel_region_covenant.xml | 10 +- .../skins/default/xui/es/panel_region_debug.xml | 16 +- .../skins/default/xui/es/panel_region_estate.xml | 16 +- .../skins/default/xui/es/panel_region_general.xml | 10 +- .../skins/default/xui/es/panel_region_terrain.xml | 16 +- .../skins/default/xui/es/panel_region_texture.xml | 2 +- .../skins/default/xui/es/panel_voice_controls.xml | 7 +- .../skins/default/xui/es/panel_voice_remote.xml | 5 + .../default/xui/es/panel_voice_remote_expanded.xml | 1 + .../newview/skins/default/xui/es/role_actions.xml | 195 +- .../skins/default/xui/fr/floater_buy_land.xml | 1 + .../skins/default/xui/fr/floater_directory.xml | 2 +- .../skins/default/xui/fr/floater_inventory.xml | 4 +- .../xui/fr/floater_inventory_view_finder.xml | 8 +- .../skins/default/xui/fr/floater_mem_leaking.xml | 6 +- .../default/xui/fr/floater_preview_gesture.xml | 1 + .../newview/skins/default/xui/fr/floater_tools.xml | 2 +- .../newview/skins/default/xui/fr/menu_viewer.xml | 4 +- .../newview/skins/default/xui/fr/notifications.xml | 2 +- .../skins/default/xui/fr/panel_preferences_im.xml | 2 +- .../indra/newview/skins/default/xui/hu/alerts.xml | 4 + .../newview/skins/default/xui/hu/floater_about.xml | 38 + .../skins/default/xui/hu/floater_about_land.xml | 521 ++ .../default/xui/hu/floater_active_speakers.xml | 12 + .../default/xui/hu/floater_animation_preview.xml | 165 + .../skins/default/xui/hu/floater_auction.xml | 9 + .../skins/default/xui/hu/floater_audio_volume.xml | 4 + .../skins/default/xui/hu/floater_avatar_picker.xml | 39 + .../default/xui/hu/floater_avatar_textures.xml | 30 + .../skins/default/xui/hu/floater_beacons.xml | 15 + .../skins/default/xui/hu/floater_build_options.xml | 8 + .../skins/default/xui/hu/floater_bulk_perms.xml | 44 + .../newview/skins/default/xui/hu/floater_bumps.xml | 21 + .../skins/default/xui/hu/floater_buy_contents.xml | 21 + .../skins/default/xui/hu/floater_buy_currency.xml | 68 + .../skins/default/xui/hu/floater_buy_land.xml | 242 + .../skins/default/xui/hu/floater_buy_object.xml | 27 + .../skins/default/xui/hu/floater_camera.xml | 12 + .../skins/default/xui/hu/floater_chat_history.xml | 91 + .../skins/default/xui/hu/floater_chatterbox.xml | 2 + .../skins/default/xui/hu/floater_choose_group.xml | 8 + .../skins/default/xui/hu/floater_color_picker.xml | 38 + .../skins/default/xui/hu/floater_critical.xml | 14 + .../skins/default/xui/hu/floater_customize.xml | 458 ++ .../default/xui/hu/floater_day_cycle_options.xml | 99 + .../default/xui/hu/floater_device_settings.xml | 2 + .../skins/default/xui/hu/floater_directory.xml | 424 + .../skins/default/xui/hu/floater_env_settings.xml | 26 + .../skins/default/xui/hu/floater_font_test.xml | 6 + .../skins/default/xui/hu/floater_gesture.xml | 17 + .../skins/default/xui/hu/floater_god_tools.xml | 36 + .../skins/default/xui/hu/floater_group_info.xml | 283 + .../default/xui/hu/floater_hardware_settings.xml | 40 + .../newview/skins/default/xui/hu/floater_html.xml | 23 + .../newview/skins/default/xui/hu/floater_hud.xml | 2 + .../newview/skins/default/xui/hu/floater_im.xml | 45 + .../skins/default/xui/hu/floater_image_preview.xml | 53 + .../skins/default/xui/hu/floater_import.xml | 17 + .../skins/default/xui/hu/floater_inspect.xml | 13 + .../default/xui/hu/floater_instant_message.xml | 50 + .../xui/hu/floater_instant_message_ad_hoc.xml | 42 + .../xui/hu/floater_instant_message_group.xml | 49 + .../skins/default/xui/hu/floater_inventory.xml | 47 + .../xui/hu/floater_inventory_item_properties.xml | 86 + .../xui/hu/floater_inventory_view_finder.xml | 24 + .../skins/default/xui/hu/floater_joystick.xml | 91 + .../skins/default/xui/hu/floater_lagmeter.xml | 155 + .../skins/default/xui/hu/floater_land_holdings.xml | 40 + .../skins/default/xui/hu/floater_landmark_ctrl.xml | 10 + .../default/xui/hu/floater_live_lsleditor.xml | 12 + .../skins/default/xui/hu/floater_lsl_guide.xml | 7 + .../skins/default/xui/hu/floater_media_browser.xml | 19 + .../skins/default/xui/hu/floater_mini_map.xml | 4 + .../skins/default/xui/hu/floater_moveview.xml | 13 + .../newview/skins/default/xui/hu/floater_mute.xml | 12 + .../skins/default/xui/hu/floater_mute_object.xml | 13 + .../skins/default/xui/hu/floater_my_friends.xml | 7 + .../default/xui/hu/floater_name_description.xml | 11 + .../skins/default/xui/hu/floater_new_im.xml | 11 + .../default/xui/hu/floater_new_outfit_dialog.xml | 90 + .../default/xui/hu/floater_object_im_info.xml | 16 + .../skins/default/xui/hu/floater_openobject.xml | 10 + .../newview/skins/default/xui/hu/floater_pay.xml | 21 + .../skins/default/xui/hu/floater_pay_object.xml | 30 + .../skins/default/xui/hu/floater_perm_prefs.xml | 16 + .../skins/default/xui/hu/floater_post_process.xml | 64 + .../skins/default/xui/hu/floater_postcard.xml | 40 + .../skins/default/xui/hu/floater_preferences.xml | 9 + .../default/xui/hu/floater_preview_animation.xml | 10 + .../default/xui/hu/floater_preview_classified.xml | 2 + .../xui/hu/floater_preview_embedded_texture.xml | 7 + .../skins/default/xui/hu/floater_preview_event.xml | 2 + .../xui/hu/floater_preview_existing_landmark.xml | 2 + .../default/xui/hu/floater_preview_gesture.xml | 62 + .../default/xui/hu/floater_preview_notecard.xml | 16 + .../hu/floater_preview_notecard_keep_discard.xml | 17 + .../skins/default/xui/hu/floater_preview_sound.xml | 11 + .../default/xui/hu/floater_preview_texture.xml | 9 + .../hu/floater_preview_texture_keep_discard.xml | 11 + .../skins/default/xui/hu/floater_preview_url.xml | 2 + .../default/xui/hu/floater_price_for_listing.xml | 15 + .../skins/default/xui/hu/floater_profile.xml | 4 + .../skins/default/xui/hu/floater_region_info.xml | 2 + .../skins/default/xui/hu/floater_report_abuse.xml | 184 + .../skins/default/xui/hu/floater_report_bug.xml | 108 + .../skins/default/xui/hu/floater_script_debug.xml | 6 + .../default/xui/hu/floater_script_ed_panel.xml | 43 + .../default/xui/hu/floater_script_preview.xml | 6 + .../skins/default/xui/hu/floater_script_queue.xml | 4 + .../skins/default/xui/hu/floater_script_search.xml | 14 + .../skins/default/xui/hu/floater_select_key.xml | 8 + .../skins/default/xui/hu/floater_sell_land.xml | 72 + .../default/xui/hu/floater_settings_debug.xml | 17 + .../default/xui/hu/floater_sim_release_message.xml | 16 + .../skins/default/xui/hu/floater_snapshot.xml | 137 + .../skins/default/xui/hu/floater_sound_preview.xml | 11 + .../skins/default/xui/hu/floater_statistics.xml | 2 + .../skins/default/xui/hu/floater_telehub.xml | 32 + .../skins/default/xui/hu/floater_texture_ctrl.xml | 24 + .../newview/skins/default/xui/hu/floater_tools.xml | 621 ++ .../skins/default/xui/hu/floater_top_objects.xml | 58 + .../newview/skins/default/xui/hu/floater_tos.xml | 16 + .../skins/default/xui/hu/floater_url_entry.xml | 13 + .../newview/skins/default/xui/hu/floater_water.xml | 101 + .../default/xui/hu/floater_wearable_save_as.xml | 11 + .../default/xui/hu/floater_windlight_options.xml | 228 + .../skins/default/xui/hu/floater_world_map.xml | 61 + .../skins/default/xui/hu/menu_inventory.xml | 66 + .../newview/skins/default/xui/hu/menu_login.xml | 13 + .../newview/skins/default/xui/hu/menu_mini_map.xml | 8 + .../skins/default/xui/hu/menu_pie_attachment.xml | 15 + .../skins/default/xui/hu/menu_pie_avatar.xml | 18 + .../newview/skins/default/xui/hu/menu_pie_land.xml | 10 + .../skins/default/xui/hu/menu_pie_object.xml | 30 + .../newview/skins/default/xui/hu/menu_pie_self.xml | 29 + .../newview/skins/default/xui/hu/menu_slurl.xml | 6 + .../newview/skins/default/xui/hu/menu_viewer.xml | 207 + .../newview/skins/default/xui/hu/mime_types.xml | 230 + .../newview/skins/default/xui/hu/notifications.xml | 2673 +++++++ .../indra/newview/skins/default/xui/hu/notify.xml | 4 + .../newview/skins/default/xui/hu/panel_audio.xml | 17 + .../skins/default/xui/hu/panel_audio_device.xml | 26 + .../newview/skins/default/xui/hu/panel_avatar.xml | 212 + .../default/xui/hu/panel_avatar_classified.xml | 37 + .../skins/default/xui/hu/panel_avatar_pick.xml | 10 + .../skins/default/xui/hu/panel_chat_bar.xml | 20 + .../skins/default/xui/hu/panel_classified.xml | 31 + .../newview/skins/default/xui/hu/panel_event.xml | 70 + .../newview/skins/default/xui/hu/panel_friends.xml | 20 + .../newview/skins/default/xui/hu/panel_group.xml | 13 + .../skins/default/xui/hu/panel_group_finder.xml | 9 + .../skins/default/xui/hu/panel_group_general.xml | 79 + .../skins/default/xui/hu/panel_group_invite.xml | 24 + .../default/xui/hu/panel_group_land_money.xml | 83 + .../skins/default/xui/hu/panel_group_notices.xml | 72 + .../skins/default/xui/hu/panel_group_roles.xml | 158 + .../skins/default/xui/hu/panel_group_voting.xml | 117 + .../newview/skins/default/xui/hu/panel_groups.xml | 18 + .../skins/default/xui/hu/panel_land_covenant.xml | 39 + .../newview/skins/default/xui/hu/panel_login.xml | 44 + .../skins/default/xui/hu/panel_master_volume.xml | 8 + .../skins/default/xui/hu/panel_media_controls.xml | 42 + .../skins/default/xui/hu/panel_media_remote.xml | 2 + .../default/xui/hu/panel_media_remote_expanded.xml | 28 + .../skins/default/xui/hu/panel_mini_map.xml | 27 + .../skins/default/xui/hu/panel_overlaybar.xml | 16 + .../newview/skins/default/xui/hu/panel_place.xml | 39 + .../skins/default/xui/hu/panel_place_small.xml | 42 + .../default/xui/hu/panel_preferences_audio.xml | 25 + .../default/xui/hu/panel_preferences_chat.xml | 62 + .../default/xui/hu/panel_preferences_general.xml | 146 + .../default/xui/hu/panel_preferences_graphics1.xml | 178 + .../skins/default/xui/hu/panel_preferences_im.xml | 32 + .../default/xui/hu/panel_preferences_input.xml | 30 + .../default/xui/hu/panel_preferences_network.xml | 23 + .../default/xui/hu/panel_preferences_popups.xml | 22 + .../default/xui/hu/panel_preferences_skins.xml | 14 + .../default/xui/hu/panel_preferences_voice.xml | 36 + .../skins/default/xui/hu/panel_preferences_web.xml | 28 + .../skins/default/xui/hu/panel_region_covenant.xml | 83 + .../skins/default/xui/hu/panel_region_debug.xml | 47 + .../skins/default/xui/hu/panel_region_estate.xml | 69 + .../skins/default/xui/hu/panel_region_general.xml | 59 + .../skins/default/xui/hu/panel_region_terrain.xml | 28 + .../skins/default/xui/hu/panel_region_texture.xml | 58 + .../skins/default/xui/hu/panel_scrolling_param.xml | 12 + .../default/xui/hu/panel_speaker_controls.xml | 43 + .../skins/default/xui/hu/panel_status_bar.xml | 43 + .../newview/skins/default/xui/hu/panel_toolbar.xml | 24 + .../skins/default/xui/hu/panel_top_pick.xml | 10 + .../skins/default/xui/hu/panel_voice_controls.xml | 12 + .../skins/default/xui/hu/panel_voice_enable.xml | 23 + .../skins/default/xui/hu/panel_voice_options.xml | 22 + .../skins/default/xui/hu/panel_voice_remote.xml | 2 + .../default/xui/hu/panel_voice_remote_expanded.xml | 8 + .../newview/skins/default/xui/hu/role_actions.xml | 155 + .../indra/newview/skins/default/xui/hu/strings.xml | 486 ++ .../skins/default/xui/hu/teleport_strings.xml | 81 + .../newview/skins/default/xui/hu/ui_strings.xml | 28 + .../newview/skins/default/xui/hu/xui_version.xml | 4 + .../indra/newview/skins/default/xui/it/alerts.xml | 4 + .../newview/skins/default/xui/it/floater_about.xml | 36 + .../skins/default/xui/it/floater_about_land.xml | 527 ++ .../default/xui/it/floater_active_speakers.xml | 11 + .../default/xui/it/floater_animation_preview.xml | 164 + .../skins/default/xui/it/floater_auction.xml | 9 + .../skins/default/xui/it/floater_audio_volume.xml | 4 + .../skins/default/xui/it/floater_avatar_picker.xml | 42 + .../default/xui/it/floater_avatar_textures.xml | 30 + .../skins/default/xui/it/floater_beacons.xml | 15 + .../skins/default/xui/it/floater_build_options.xml | 8 + .../skins/default/xui/it/floater_bulk_perms.xml | 44 + .../newview/skins/default/xui/it/floater_bumps.xml | 21 + .../skins/default/xui/it/floater_buy_contents.xml | 21 + .../skins/default/xui/it/floater_buy_currency.xml | 69 + .../skins/default/xui/it/floater_buy_land.xml | 244 + .../skins/default/xui/it/floater_buy_object.xml | 26 + .../skins/default/xui/it/floater_camera.xml | 12 + .../skins/default/xui/it/floater_chat_history.xml | 91 + .../skins/default/xui/it/floater_chatterbox.xml | 2 + .../skins/default/xui/it/floater_choose_group.xml | 8 + .../skins/default/xui/it/floater_color_picker.xml | 38 + .../skins/default/xui/it/floater_critical.xml | 11 + .../skins/default/xui/it/floater_customize.xml | 472 ++ .../default/xui/it/floater_day_cycle_options.xml | 94 + .../default/xui/it/floater_device_settings.xml | 2 + .../skins/default/xui/it/floater_directory.xml | 412 + .../skins/default/xui/it/floater_env_settings.xml | 27 + .../skins/default/xui/it/floater_font_test.xml | 6 + .../skins/default/xui/it/floater_gesture.xml | 16 + .../skins/default/xui/it/floater_group_info.xml | 262 + .../default/xui/it/floater_hardware_settings.xml | 38 + .../newview/skins/default/xui/it/floater_html.xml | 13 + .../newview/skins/default/xui/it/floater_hud.xml | 2 + .../newview/skins/default/xui/it/floater_im.xml | 45 + .../skins/default/xui/it/floater_image_preview.xml | 53 + .../skins/default/xui/it/floater_import.xml | 17 + .../skins/default/xui/it/floater_inspect.xml | 11 + .../default/xui/it/floater_instant_message.xml | 50 + .../xui/it/floater_instant_message_ad_hoc.xml | 42 + .../xui/it/floater_instant_message_group.xml | 48 + .../skins/default/xui/it/floater_inventory.xml | 47 + .../xui/it/floater_inventory_item_properties.xml | 85 + .../xui/it/floater_inventory_view_finder.xml | 24 + .../skins/default/xui/it/floater_joystick.xml | 86 + .../skins/default/xui/it/floater_lagmeter.xml | 155 + .../skins/default/xui/it/floater_land_holdings.xml | 39 + .../skins/default/xui/it/floater_landmark_ctrl.xml | 10 + .../default/xui/it/floater_live_lsleditor.xml | 12 + .../skins/default/xui/it/floater_lsl_guide.xml | 7 + .../skins/default/xui/it/floater_media_browser.xml | 20 + .../skins/default/xui/it/floater_mem_leaking.xml | 18 + .../skins/default/xui/it/floater_mini_map.xml | 4 + .../skins/default/xui/it/floater_moveview.xml | 11 + .../newview/skins/default/xui/it/floater_mute.xml | 7 + .../skins/default/xui/it/floater_mute_object.xml | 12 + .../skins/default/xui/it/floater_my_friends.xml | 7 + .../default/xui/it/floater_name_description.xml | 11 + .../skins/default/xui/it/floater_new_im.xml | 11 + .../default/xui/it/floater_new_outfit_dialog.xml | 88 + .../default/xui/it/floater_object_im_info.xml | 16 + .../skins/default/xui/it/floater_openobject.xml | 8 + .../newview/skins/default/xui/it/floater_pay.xml | 22 + .../skins/default/xui/it/floater_pay_object.xml | 31 + .../skins/default/xui/it/floater_perm_prefs.xml | 16 + .../skins/default/xui/it/floater_post_process.xml | 53 + .../skins/default/xui/it/floater_postcard.xml | 40 + .../skins/default/xui/it/floater_preferences.xml | 9 + .../default/xui/it/floater_preview_animation.xml | 8 + .../default/xui/it/floater_preview_classified.xml | 2 + .../xui/it/floater_preview_embedded_texture.xml | 7 + .../skins/default/xui/it/floater_preview_event.xml | 2 + .../xui/it/floater_preview_existing_landmark.xml | 8 + .../default/xui/it/floater_preview_gesture.xml | 62 + .../default/xui/it/floater_preview_notecard.xml | 16 + .../it/floater_preview_notecard_keep_discard.xml | 17 + .../skins/default/xui/it/floater_preview_sound.xml | 8 + .../default/xui/it/floater_preview_texture.xml | 9 + .../it/floater_preview_texture_keep_discard.xml | 11 + .../skins/default/xui/it/floater_preview_url.xml | 2 + .../default/xui/it/floater_price_for_listing.xml | 18 + .../skins/default/xui/it/floater_profile.xml | 4 + .../skins/default/xui/it/floater_region_info.xml | 2 + .../skins/default/xui/it/floater_report_abuse.xml | 180 + .../skins/default/xui/it/floater_report_bug.xml | 104 + .../skins/default/xui/it/floater_script_debug.xml | 6 + .../default/xui/it/floater_script_ed_panel.xml | 43 + .../default/xui/it/floater_script_preview.xml | 6 + .../skins/default/xui/it/floater_script_queue.xml | 4 + .../skins/default/xui/it/floater_script_search.xml | 15 + .../skins/default/xui/it/floater_select_key.xml | 7 + .../skins/default/xui/it/floater_sell_land.xml | 71 + .../default/xui/it/floater_settings_debug.xml | 17 + .../default/xui/it/floater_sim_release_message.xml | 16 + .../xui/it/floater_skin_preview_template.xml | 33 + .../skins/default/xui/it/floater_snapshot.xml | 137 + .../skins/default/xui/it/floater_sound_preview.xml | 11 + .../skins/default/xui/it/floater_statistics.xml | 2 + .../skins/default/xui/it/floater_telehub.xml | 32 + .../newview/skins/default/xui/it/floater_test.xml | 2 + .../skins/default/xui/it/floater_texture_ctrl.xml | 23 + .../newview/skins/default/xui/it/floater_tools.xml | 625 ++ .../skins/default/xui/it/floater_top_objects.xml | 58 + .../newview/skins/default/xui/it/floater_tos.xml | 16 + .../skins/default/xui/it/floater_url_entry.xml | 12 + .../skins/default/xui/it/floater_voice_wizard.xml | 9 + .../newview/skins/default/xui/it/floater_water.xml | 92 + .../default/xui/it/floater_wearable_save_as.xml | 11 + .../default/xui/it/floater_windlight_options.xml | 189 + .../skins/default/xui/it/floater_world_map.xml | 63 + .../skins/default/xui/it/menu_inventory.xml | 66 + .../newview/skins/default/xui/it/menu_login.xml | 13 + .../newview/skins/default/xui/it/menu_mini_map.xml | 8 + .../skins/default/xui/it/menu_pie_attachment.xml | 15 + .../skins/default/xui/it/menu_pie_avatar.xml | 18 + .../newview/skins/default/xui/it/menu_pie_land.xml | 10 + .../skins/default/xui/it/menu_pie_object.xml | 30 + .../newview/skins/default/xui/it/menu_pie_self.xml | 29 + .../newview/skins/default/xui/it/menu_slurl.xml | 6 + .../newview/skins/default/xui/it/menu_viewer.xml | 207 + .../newview/skins/default/xui/it/mime_types.xml | 230 + .../newview/skins/default/xui/it/notifications.xml | 3089 +++++++ .../indra/newview/skins/default/xui/it/notify.xml | 4 + .../newview/skins/default/xui/it/panel_audio.xml | 10 + .../skins/default/xui/it/panel_audio_device.xml | 25 + .../newview/skins/default/xui/it/panel_avatar.xml | 210 + .../default/xui/it/panel_avatar_classified.xml | 36 + .../skins/default/xui/it/panel_avatar_pick.xml | 10 + .../skins/default/xui/it/panel_chat_bar.xml | 20 + .../skins/default/xui/it/panel_classified.xml | 30 + .../newview/skins/default/xui/it/panel_event.xml | 70 + .../newview/skins/default/xui/it/panel_friends.xml | 20 + .../newview/skins/default/xui/it/panel_group.xml | 13 + .../skins/default/xui/it/panel_group_finder.xml | 9 + .../skins/default/xui/it/panel_group_general.xml | 80 + .../skins/default/xui/it/panel_group_invite.xml | 23 + .../default/xui/it/panel_group_land_money.xml | 81 + .../skins/default/xui/it/panel_group_notices.xml | 70 + .../skins/default/xui/it/panel_group_roles.xml | 149 + .../skins/default/xui/it/panel_group_voting.xml | 113 + .../newview/skins/default/xui/it/panel_groups.xml | 17 + .../skins/default/xui/it/panel_land_covenant.xml | 39 + .../newview/skins/default/xui/it/panel_login.xml | 45 + .../skins/default/xui/it/panel_master_volume.xml | 5 + .../skins/default/xui/it/panel_media_controls.xml | 38 + .../default/xui/it/panel_media_remote_expanded.xml | 28 + .../skins/default/xui/it/panel_mini_map.xml | 27 + .../skins/default/xui/it/panel_overlaybar.xml | 16 + .../newview/skins/default/xui/it/panel_place.xml | 39 + .../skins/default/xui/it/panel_place_small.xml | 45 + .../default/xui/it/panel_preferences_audio.xml | 24 + .../default/xui/it/panel_preferences_chat.xml | 58 + .../default/xui/it/panel_preferences_general.xml | 147 + .../default/xui/it/panel_preferences_graphics1.xml | 176 + .../skins/default/xui/it/panel_preferences_im.xml | 33 + .../default/xui/it/panel_preferences_input.xml | 36 + .../default/xui/it/panel_preferences_network.xml | 23 + .../default/xui/it/panel_preferences_popups.xml | 18 + .../default/xui/it/panel_preferences_skins.xml | 14 + .../default/xui/it/panel_preferences_voice.xml | 37 + .../skins/default/xui/it/panel_preferences_web.xml | 29 + .../skins/default/xui/it/panel_region_covenant.xml | 84 + .../skins/default/xui/it/panel_region_debug.xml | 40 + .../skins/default/xui/it/panel_region_estate.xml | 69 + .../skins/default/xui/it/panel_region_general.xml | 59 + .../skins/default/xui/it/panel_region_terrain.xml | 27 + .../skins/default/xui/it/panel_region_texture.xml | 57 + .../skins/default/xui/it/panel_scrolling_param.xml | 10 + .../default/xui/it/panel_speaker_controls.xml | 41 + .../skins/default/xui/it/panel_status_bar.xml | 38 + .../newview/skins/default/xui/it/panel_toolbar.xml | 17 + .../skins/default/xui/it/panel_top_pick.xml | 10 + .../skins/default/xui/it/panel_voice_controls.xml | 7 + .../skins/default/xui/it/panel_voice_enable.xml | 23 + .../skins/default/xui/it/panel_voice_options.xml | 21 + .../default/xui/it/panel_voice_remote_expanded.xml | 4 + .../indra/newview/skins/default/xui/it/strings.xml | 486 ++ .../skins/default/xui/it/teleport_strings.xml | 75 + .../newview/skins/default/xui/it/ui_strings.xml | 28 + .../default/xui/ja/floater_active_speakers.xml | 2 +- .../skins/default/xui/ja/floater_buy_contents.xml | 13 +- .../skins/default/xui/ja/floater_buy_land.xml | 1 + .../skins/default/xui/ja/floater_chat_history.xml | 7 +- .../xui/ja/floater_instant_message_ad_hoc.xml | 10 +- .../xui/ja/floater_instant_message_group.xml | 18 +- .../ja/floater_preview_notecard_keep_discard.xml | 2 +- .../newview/skins/default/xui/ja/floater_tools.xml | 2 +- .../default/xui/ja/floater_wearable_save_as.xml | 2 +- .../newview/skins/default/xui/ja/menu_viewer.xml | 4 +- .../newview/skins/default/xui/ja/notifications.xml | 2 +- .../default/xui/ja/panel_group_land_money.xml | 3 +- .../newview/skins/default/xui/ja/panel_login.xml | 2 +- .../skins/default/xui/ja/panel_preferences_im.xml | 2 +- .../default/xui/ja/panel_speaker_controls.xml | 19 +- .../skins/default/xui/ko/floater_about_land.xml | 2 +- .../skins/default/xui/ko/floater_customize.xml | 84 +- .../skins/default/xui/ko/floater_sound_preview.xml | 2 +- .../newview/skins/default/xui/ko/floater_tools.xml | 2 +- .../newview/skins/default/xui/ko/menu_viewer.xml | 4 +- .../xui/pl/floater_instant_message_ad_hoc.xml | 2 +- .../skins/default/xui/pl/floater_joystick.xml | 89 +- .../skins/default/xui/pl/floater_preview_sound.xml | 2 +- .../skins/default/xui/pl/floater_report_abuse.xml | 2 +- .../default/xui/pl/floater_sim_release_message.xml | 2 +- .../skins/default/xui/pl/floater_telehub.xml | 4 +- .../newview/skins/default/xui/pl/floater_tools.xml | 30 +- .../newview/skins/default/xui/pl/floater_tos.xml | 2 +- .../newview/skins/default/xui/pl/menu_viewer.xml | 4 +- .../newview/skins/default/xui/pl/notifications.xml | 2 +- .../skins/default/xui/pl/panel_group_voting.xml | 5 +- .../skins/default/xui/pl/panel_preferences_im.xml | 2 +- .../skins/default/xui/pt/floater_about_land.xml | 6 +- .../default/xui/pt/floater_animation_preview.xml | 25 +- .../skins/default/xui/pt/floater_avatar_picker.xml | 12 +- .../skins/default/xui/pt/floater_build_options.xml | 6 +- .../skins/default/xui/pt/floater_buy_contents.xml | 6 +- .../skins/default/xui/pt/floater_buy_land.xml | 19 +- .../skins/default/xui/pt/floater_color_picker.xml | 6 +- .../default/xui/pt/floater_day_cycle_options.xml | 28 +- .../skins/default/xui/pt/floater_directory.xml | 55 +- .../skins/default/xui/pt/floater_env_settings.xml | 12 +- .../skins/default/xui/pt/floater_image_preview.xml | 5 +- .../skins/default/xui/pt/floater_inspect.xml | 10 +- .../xui/pt/floater_instant_message_ad_hoc.xml | 4 +- .../xui/pt/floater_inventory_item_properties.xml | 2 +- .../xui/pt/floater_inventory_view_finder.xml | 6 +- .../skins/default/xui/pt/floater_joystick.xml | 41 +- .../skins/default/xui/pt/floater_lagmeter.xml | 13 +- .../skins/default/xui/pt/floater_land_holdings.xml | 10 +- .../default/xui/pt/floater_live_lsleditor.xml | 2 +- .../skins/default/xui/pt/floater_lsl_guide.xml | 4 +- .../skins/default/xui/pt/floater_mute_object.xml | 5 +- .../default/xui/pt/floater_new_outfit_dialog.xml | 40 +- .../newview/skins/default/xui/pt/floater_pay.xml | 2 +- .../skins/default/xui/pt/floater_postcard.xml | 2 +- .../skins/default/xui/pt/floater_preferences.xml | 3 +- .../default/xui/pt/floater_preview_gesture.xml | 24 +- .../skins/default/xui/pt/floater_preview_sound.xml | 4 +- .../default/xui/pt/floater_price_for_listing.xml | 3 +- .../skins/default/xui/pt/floater_script_search.xml | 16 +- .../default/xui/pt/floater_sim_release_message.xml | 2 +- .../skins/default/xui/pt/floater_snapshot.xml | 12 +- .../skins/default/xui/pt/floater_telehub.xml | 18 +- .../newview/skins/default/xui/pt/floater_tools.xml | 61 +- .../skins/default/xui/pt/floater_top_objects.xml | 13 +- .../newview/skins/default/xui/pt/floater_tos.xml | 3 +- .../skins/default/xui/pt/floater_url_entry.xml | 1 + .../newview/skins/default/xui/pt/floater_water.xml | 23 +- .../default/xui/pt/floater_windlight_options.xml | 23 +- .../newview/skins/default/xui/pt/menu_viewer.xml | 12 +- .../newview/skins/default/xui/pt/notifications.xml | 20 +- .../skins/default/xui/pt/panel_account_details.xml | 7 - .../default/xui/pt/panel_account_planning.xml | 2 - .../default/xui/pt/panel_account_transactions.xml | 7 - .../newview/skins/default/xui/pt/panel_avatar.xml | 6 +- .../default/xui/pt/panel_avatar_classified.xml | 6 +- .../skins/default/xui/pt/panel_avatar_pick.xml | 6 +- .../skins/default/xui/pt/panel_classified.xml | 4 +- .../newview/skins/default/xui/pt/panel_event.xml | 18 +- .../newview/skins/default/xui/pt/panel_friends.xml | 12 +- .../skins/default/xui/pt/panel_group_general.xml | 6 +- .../skins/default/xui/pt/panel_group_invite.xml | 10 +- .../default/xui/pt/panel_group_land_money.xml | 11 +- .../skins/default/xui/pt/panel_group_notices.xml | 21 +- .../skins/default/xui/pt/panel_group_roles.xml | 45 +- .../skins/default/xui/pt/panel_group_voting.xml | 37 +- .../newview/skins/default/xui/pt/panel_groups.xml | 17 +- .../newview/skins/default/xui/pt/panel_login.xml | 6 +- .../newview/skins/default/xui/pt/panel_place.xml | 2 +- .../skins/default/xui/pt/panel_place_small.xml | 4 +- .../default/xui/pt/panel_preferences_chat.xml | 2 +- .../default/xui/pt/panel_preferences_graphics1.xml | 20 +- .../skins/default/xui/pt/panel_preferences_im.xml | 8 +- .../default/xui/pt/panel_preferences_input.xml | 12 +- .../default/xui/pt/panel_preferences_network.xml | 2 +- .../default/xui/pt/panel_preferences_voice.xml | 6 +- .../skins/default/xui/pt/panel_region_covenant.xml | 20 +- .../skins/default/xui/pt/panel_region_debug.xml | 10 +- .../skins/default/xui/pt/panel_region_estate.xml | 4 +- .../skins/default/xui/pt/panel_region_terrain.xml | 10 +- .../skins/default/xui/pt/panel_region_texture.xml | 2 +- .../skins/default/xui/ru/floater_about_land.xml | 18 +- .../default/xui/ru/floater_animation_preview.xml | 19 +- .../skins/default/xui/ru/floater_avatar_picker.xml | 12 +- .../skins/default/xui/ru/floater_beacons.xml | 6 +- .../skins/default/xui/ru/floater_build_options.xml | 6 +- .../skins/default/xui/ru/floater_bulk_perms.xml | 5 +- .../skins/default/xui/ru/floater_buy_contents.xml | 9 +- .../skins/default/xui/ru/floater_buy_currency.xml | 19 +- .../skins/default/xui/ru/floater_buy_land.xml | 23 +- .../skins/default/xui/ru/floater_chat_history.xml | 5 +- .../skins/default/xui/ru/floater_color_picker.xml | 9 +- .../default/xui/ru/floater_day_cycle_options.xml | 18 +- .../skins/default/xui/ru/floater_directory.xml | 10 +- .../skins/default/xui/ru/floater_env_settings.xml | 11 +- .../default/xui/ru/floater_hardware_settings.xml | 6 +- .../skins/default/xui/ru/floater_image_preview.xml | 7 +- .../skins/default/xui/ru/floater_inspect.xml | 6 +- .../xui/ru/floater_instant_message_ad_hoc.xml | 3 +- .../xui/ru/floater_instant_message_group.xml | 1 + .../xui/ru/floater_inventory_item_properties.xml | 12 +- .../xui/ru/floater_inventory_view_finder.xml | 11 +- .../skins/default/xui/ru/floater_joystick.xml | 13 +- .../skins/default/xui/ru/floater_lagmeter.xml | 17 +- .../skins/default/xui/ru/floater_land_holdings.xml | 18 +- .../default/xui/ru/floater_live_lsleditor.xml | 4 +- .../skins/default/xui/ru/floater_lsl_guide.xml | 4 +- .../skins/default/xui/ru/floater_media_browser.xml | 13 +- .../skins/default/xui/ru/floater_mute_object.xml | 7 +- .../default/xui/ru/floater_name_description.xml | 2 +- .../default/xui/ru/floater_new_outfit_dialog.xml | 45 +- .../default/xui/ru/floater_object_im_info.xml | 2 +- .../skins/default/xui/ru/floater_openobject.xml | 6 +- .../newview/skins/default/xui/ru/floater_pay.xml | 11 +- .../skins/default/xui/ru/floater_pay_object.xml | 23 +- .../skins/default/xui/ru/floater_perm_prefs.xml | 8 +- .../skins/default/xui/ru/floater_postcard.xml | 3 +- .../skins/default/xui/ru/floater_preferences.xml | 2 +- .../default/xui/ru/floater_preview_animation.xml | 4 +- .../default/xui/ru/floater_preview_gesture.xml | 31 +- .../skins/default/xui/ru/floater_preview_sound.xml | 4 +- .../default/xui/ru/floater_preview_texture.xml | 2 +- .../default/xui/ru/floater_price_for_listing.xml | 2 +- .../skins/default/xui/ru/floater_script_search.xml | 16 +- .../default/xui/ru/floater_settings_debug.xml | 2 +- .../default/xui/ru/floater_sim_release_message.xml | 2 +- .../skins/default/xui/ru/floater_snapshot.xml | 4 +- .../skins/default/xui/ru/floater_telehub.xml | 14 +- .../skins/default/xui/ru/floater_texture_ctrl.xml | 6 +- .../newview/skins/default/xui/ru/floater_tools.xml | 134 +- .../skins/default/xui/ru/floater_top_objects.xml | 23 +- .../newview/skins/default/xui/ru/floater_tos.xml | 2 +- .../skins/default/xui/ru/floater_url_entry.xml | 2 +- .../newview/skins/default/xui/ru/floater_water.xml | 22 +- .../default/xui/ru/floater_wearable_save_as.xml | 2 +- .../default/xui/ru/floater_windlight_options.xml | 27 +- .../newview/skins/default/xui/ru/menu_viewer.xml | 4 +- .../newview/skins/default/xui/ru/notifications.xml | 6 +- .../newview/skins/default/xui/ru/panel_audio.xml | 14 +- .../skins/default/xui/ru/panel_audio_device.xml | 6 +- .../default/xui/ru/panel_avatar_classified.xml | 6 +- .../skins/default/xui/ru/panel_avatar_pick.xml | 6 +- .../skins/default/xui/ru/panel_chat_bar.xml | 6 +- .../skins/default/xui/ru/panel_classified.xml | 4 +- .../newview/skins/default/xui/ru/panel_event.xml | 18 +- .../skins/default/xui/ru/panel_group_invite.xml | 21 +- .../default/xui/ru/panel_group_land_money.xml | 17 +- .../skins/default/xui/ru/panel_group_notices.xml | 21 +- .../skins/default/xui/ru/panel_group_roles.xml | 22 +- .../skins/default/xui/ru/panel_group_voting.xml | 37 +- .../newview/skins/default/xui/ru/panel_groups.xml | 16 +- .../newview/skins/default/xui/ru/panel_place.xml | 4 +- .../skins/default/xui/ru/panel_place_small.xml | 2 +- .../default/xui/ru/panel_preferences_chat.xml | 7 +- .../default/xui/ru/panel_preferences_graphics1.xml | 30 +- .../skins/default/xui/ru/panel_preferences_im.xml | 5 +- .../default/xui/ru/panel_preferences_network.xml | 2 +- .../default/xui/ru/panel_preferences_popups.xml | 6 +- .../default/xui/ru/panel_preferences_voice.xml | 6 +- .../skins/default/xui/ru/panel_preferences_web.xml | 5 +- .../skins/default/xui/ru/panel_region_covenant.xml | 25 +- .../skins/default/xui/ru/panel_region_debug.xml | 8 +- .../skins/default/xui/ru/panel_region_estate.xml | 10 +- .../skins/default/xui/ru/panel_region_general.xml | 10 +- .../skins/default/xui/ru/panel_region_terrain.xml | 20 +- .../skins/default/xui/ru/panel_region_texture.xml | 11 +- .../default/xui/ru/panel_speaker_controls.xml | 14 +- .../indra/newview/skins/default/xui/tr/alerts.xml | 4 + .../newview/skins/default/xui/tr/floater_about.xml | 35 + .../skins/default/xui/tr/floater_about_land.xml | 521 ++ .../default/xui/tr/floater_active_speakers.xml | 12 + .../default/xui/tr/floater_animation_preview.xml | 143 + .../skins/default/xui/tr/floater_avatar_picker.xml | 40 + .../skins/default/xui/tr/floater_beacons.xml | 15 + .../skins/default/xui/tr/floater_bulk_perms.xml | 44 + .../newview/skins/default/xui/tr/floater_bumps.xml | 21 + .../skins/default/xui/tr/floater_buy_contents.xml | 21 + .../skins/default/xui/tr/floater_buy_currency.xml | 68 + .../skins/default/xui/tr/floater_buy_land.xml | 242 + .../skins/default/xui/tr/floater_buy_object.xml | 26 + .../skins/default/xui/tr/floater_camera.xml | 12 + .../skins/default/xui/tr/floater_chat_history.xml | 91 + .../skins/default/xui/tr/floater_chatterbox.xml | 2 + .../skins/default/xui/tr/floater_choose_group.xml | 8 + .../skins/default/xui/tr/floater_color_picker.xml | 32 + .../skins/default/xui/tr/floater_customize.xml | 484 ++ .../default/xui/tr/floater_device_settings.xml | 2 + .../skins/default/xui/tr/floater_directory.xml | 404 + .../skins/default/xui/tr/floater_font_test.xml | 6 + .../skins/default/xui/tr/floater_gesture.xml | 16 + .../default/xui/tr/floater_hardware_settings.xml | 38 + .../newview/skins/default/xui/tr/floater_hud.xml | 2 + .../skins/default/xui/tr/floater_image_preview.xml | 52 + .../skins/default/xui/tr/floater_inspect.xml | 14 + .../default/xui/tr/floater_instant_message.xml | 44 + .../xui/tr/floater_instant_message_group.xml | 43 + .../skins/default/xui/tr/floater_inventory.xml | 47 + .../xui/tr/floater_inventory_item_properties.xml | 85 + .../xui/tr/floater_inventory_view_finder.xml | 24 + .../skins/default/xui/tr/floater_joystick.xml | 86 + .../skins/default/xui/tr/floater_lagmeter.xml | 152 + .../skins/default/xui/tr/floater_land_holdings.xml | 40 + .../skins/default/xui/tr/floater_lsl_guide.xml | 7 + .../skins/default/xui/tr/floater_media_browser.xml | 19 + .../skins/default/xui/tr/floater_mini_map.xml | 4 + .../skins/default/xui/tr/floater_moveview.xml | 11 + .../newview/skins/default/xui/tr/floater_mute.xml | 10 + .../skins/default/xui/tr/floater_mute_object.xml | 12 + .../skins/default/xui/tr/floater_my_friends.xml | 7 + .../default/xui/tr/floater_object_im_info.xml | 16 + .../newview/skins/default/xui/tr/floater_pay.xml | 21 + .../skins/default/xui/tr/floater_pay_object.xml | 30 + .../skins/default/xui/tr/floater_perm_prefs.xml | 16 + .../skins/default/xui/tr/floater_postcard.xml | 36 + .../skins/default/xui/tr/floater_preferences.xml | 8 + .../default/xui/tr/floater_preview_animation.xml | 10 + .../default/xui/tr/floater_preview_classified.xml | 2 + .../xui/tr/floater_preview_embedded_texture.xml | 7 + .../default/xui/tr/floater_preview_gesture.xml | 62 + .../default/xui/tr/floater_preview_notecard.xml | 16 + .../tr/floater_preview_notecard_keep_discard.xml | 17 + .../skins/default/xui/tr/floater_preview_sound.xml | 10 + .../default/xui/tr/floater_preview_texture.xml | 9 + .../tr/floater_preview_texture_keep_discard.xml | 11 + .../skins/default/xui/tr/floater_preview_url.xml | 2 + .../default/xui/tr/floater_price_for_listing.xml | 17 + .../skins/default/xui/tr/floater_profile.xml | 2 + .../skins/default/xui/tr/floater_region_info.xml | 2 + .../skins/default/xui/tr/floater_report_abuse.xml | 182 + .../skins/default/xui/tr/floater_script_debug.xml | 6 + .../default/xui/tr/floater_script_ed_panel.xml | 43 + .../default/xui/tr/floater_script_preview.xml | 6 + .../skins/default/xui/tr/floater_script_search.xml | 14 + .../skins/default/xui/tr/floater_select_key.xml | 7 + .../skins/default/xui/tr/floater_sell_land.xml | 68 + .../skins/default/xui/tr/floater_snapshot.xml | 137 + .../skins/default/xui/tr/floater_sound_preview.xml | 11 + .../skins/default/xui/tr/floater_statistics.xml | 2 + .../skins/default/xui/tr/floater_texture_ctrl.xml | 24 + .../newview/skins/default/xui/tr/floater_tools.xml | 572 ++ .../skins/default/xui/tr/floater_top_objects.xml | 55 + .../newview/skins/default/xui/tr/floater_tos.xml | 16 + .../skins/default/xui/tr/floater_world_map.xml | 63 + .../skins/default/xui/tr/menu_inventory.xml | 66 + .../newview/skins/default/xui/tr/menu_login.xml | 13 + .../newview/skins/default/xui/tr/menu_mini_map.xml | 8 + .../skins/default/xui/tr/menu_pie_attachment.xml | 15 + .../skins/default/xui/tr/menu_pie_avatar.xml | 18 + .../newview/skins/default/xui/tr/menu_pie_land.xml | 10 + .../skins/default/xui/tr/menu_pie_object.xml | 30 + .../newview/skins/default/xui/tr/menu_pie_self.xml | 29 + .../newview/skins/default/xui/tr/menu_viewer.xml | 207 + .../newview/skins/default/xui/tr/notifications.xml | 2032 +++++ .../indra/newview/skins/default/xui/tr/notify.xml | 4 + .../newview/skins/default/xui/tr/panel_audio.xml | 17 + .../skins/default/xui/tr/panel_audio_device.xml | 26 + .../newview/skins/default/xui/tr/panel_avatar.xml | 196 + .../default/xui/tr/panel_avatar_classified.xml | 37 + .../skins/default/xui/tr/panel_avatar_pick.xml | 10 + .../skins/default/xui/tr/panel_chat_bar.xml | 20 + .../skins/default/xui/tr/panel_classified.xml | 31 + .../newview/skins/default/xui/tr/panel_event.xml | 70 + .../newview/skins/default/xui/tr/panel_friends.xml | 20 + .../newview/skins/default/xui/tr/panel_group.xml | 13 + .../skins/default/xui/tr/panel_group_general.xml | 80 + .../skins/default/xui/tr/panel_group_invite.xml | 24 + .../default/xui/tr/panel_group_land_money.xml | 82 + .../skins/default/xui/tr/panel_group_notices.xml | 71 + .../skins/default/xui/tr/panel_group_roles.xml | 158 + .../skins/default/xui/tr/panel_group_voting.xml | 113 + .../newview/skins/default/xui/tr/panel_groups.xml | 18 + .../newview/skins/default/xui/tr/panel_login.xml | 43 + .../skins/default/xui/tr/panel_mini_map.xml | 27 + .../skins/default/xui/tr/panel_overlaybar.xml | 20 + .../newview/skins/default/xui/tr/panel_place.xml | 39 + .../skins/default/xui/tr/panel_place_small.xml | 42 + .../default/xui/tr/panel_preferences_audio.xml | 21 + .../default/xui/tr/panel_preferences_chat.xml | 54 + .../default/xui/tr/panel_preferences_general.xml | 146 + .../default/xui/tr/panel_preferences_graphics1.xml | 177 + .../skins/default/xui/tr/panel_preferences_im.xml | 34 + .../default/xui/tr/panel_preferences_input.xml | 30 + .../default/xui/tr/panel_preferences_network.xml | 23 + .../default/xui/tr/panel_preferences_popups.xml | 21 + .../default/xui/tr/panel_preferences_skins.xml | 16 + .../default/xui/tr/panel_preferences_voice.xml | 36 + .../skins/default/xui/tr/panel_preferences_web.xml | 31 + .../skins/default/xui/tr/panel_region_covenant.xml | 82 + .../skins/default/xui/tr/panel_region_debug.xml | 40 + .../skins/default/xui/tr/panel_region_estate.xml | 69 + .../skins/default/xui/tr/panel_region_general.xml | 59 + .../skins/default/xui/tr/panel_region_terrain.xml | 27 + .../skins/default/xui/tr/panel_region_texture.xml | 57 + .../default/xui/tr/panel_speaker_controls.xml | 43 + .../skins/default/xui/tr/panel_status_bar.xml | 39 + .../newview/skins/default/xui/tr/panel_toolbar.xml | 22 + .../skins/default/xui/tr/panel_voice_controls.xml | 8 + .../skins/default/xui/tr/panel_voice_enable.xml | 23 + .../skins/default/xui/tr/panel_voice_options.xml | 23 + .../skins/default/xui/tr/panel_voice_remote.xml | 5 + .../default/xui/tr/panel_voice_remote_expanded.xml | 8 + .../indra/newview/skins/default/xui/tr/strings.xml | 460 ++ .../skins/default/xui/tr/teleport_strings.xml | 77 + .../newview/skins/default/xui/tr/ui_strings.xml | 28 + .../newview/skins/default/xui/tr/xui_version.xml | 4 + .../skins/default/xui/uk/floater_about_land.xml | 10 +- .../default/xui/uk/floater_animation_preview.xml | 19 +- .../skins/default/xui/uk/floater_avatar_picker.xml | 8 +- .../skins/default/xui/uk/floater_beacons.xml | 6 +- .../skins/default/xui/uk/floater_bulk_perms.xml | 5 +- .../skins/default/xui/uk/floater_buy_contents.xml | 9 +- .../skins/default/xui/uk/floater_buy_currency.xml | 15 +- .../skins/default/xui/uk/floater_buy_land.xml | 7 +- .../skins/default/xui/uk/floater_chat_history.xml | 5 +- .../skins/default/xui/uk/floater_color_picker.xml | 11 +- .../default/xui/uk/floater_day_cycle_options.xml | 18 +- .../skins/default/xui/uk/floater_directory.xml | 2 +- .../skins/default/xui/uk/floater_env_settings.xml | 11 +- .../default/xui/uk/floater_hardware_settings.xml | 9 +- .../skins/default/xui/uk/floater_image_preview.xml | 7 +- .../skins/default/xui/uk/floater_inspect.xml | 6 +- .../xui/uk/floater_instant_message_ad_hoc.xml | 3 +- .../xui/uk/floater_instant_message_group.xml | 1 + .../xui/uk/floater_inventory_item_properties.xml | 8 +- .../xui/uk/floater_inventory_view_finder.xml | 11 +- .../skins/default/xui/uk/floater_joystick.xml | 19 +- .../skins/default/xui/uk/floater_lagmeter.xml | 17 +- .../skins/default/xui/uk/floater_land_holdings.xml | 18 +- .../default/xui/uk/floater_live_lsleditor.xml | 2 +- .../skins/default/xui/uk/floater_lsl_guide.xml | 4 +- .../skins/default/xui/uk/floater_media_browser.xml | 13 +- .../default/xui/uk/floater_name_description.xml | 2 +- .../default/xui/uk/floater_new_outfit_dialog.xml | 45 +- .../default/xui/uk/floater_object_im_info.xml | 2 +- .../skins/default/xui/uk/floater_openobject.xml | 6 +- .../newview/skins/default/xui/uk/floater_pay.xml | 11 +- .../skins/default/xui/uk/floater_pay_object.xml | 23 +- .../skins/default/xui/uk/floater_perm_prefs.xml | 8 +- .../skins/default/xui/uk/floater_postcard.xml | 3 +- .../skins/default/xui/uk/floater_preferences.xml | 2 +- .../default/xui/uk/floater_preview_animation.xml | 4 +- .../default/xui/uk/floater_preview_gesture.xml | 31 +- .../default/xui/uk/floater_preview_texture.xml | 2 +- .../default/xui/uk/floater_price_for_listing.xml | 8 +- .../skins/default/xui/uk/floater_script_search.xml | 16 +- .../default/xui/uk/floater_settings_debug.xml | 2 +- .../default/xui/uk/floater_sim_release_message.xml | 2 +- .../skins/default/xui/uk/floater_telehub.xml | 14 +- .../skins/default/xui/uk/floater_texture_ctrl.xml | 4 +- .../newview/skins/default/xui/uk/floater_tools.xml | 136 +- .../skins/default/xui/uk/floater_top_objects.xml | 23 +- .../skins/default/xui/uk/floater_url_entry.xml | 2 +- .../newview/skins/default/xui/uk/floater_water.xml | 10 +- .../default/xui/uk/floater_wearable_save_as.xml | 2 +- .../default/xui/uk/floater_windlight_options.xml | 25 +- .../newview/skins/default/xui/uk/menu_viewer.xml | 4 +- .../newview/skins/default/xui/uk/notifications.xml | 6 +- .../newview/skins/default/xui/uk/panel_audio.xml | 14 +- .../skins/default/xui/uk/panel_audio_device.xml | 4 +- .../default/xui/uk/panel_avatar_classified.xml | 6 +- .../skins/default/xui/uk/panel_avatar_pick.xml | 6 +- .../skins/default/xui/uk/panel_chat_bar.xml | 6 +- .../skins/default/xui/uk/panel_classified.xml | 4 +- .../newview/skins/default/xui/uk/panel_event.xml | 18 +- .../skins/default/xui/uk/panel_group_invite.xml | 21 +- .../default/xui/uk/panel_group_land_money.xml | 4 +- .../skins/default/xui/uk/panel_group_notices.xml | 13 +- .../skins/default/xui/uk/panel_group_roles.xml | 10 +- .../skins/default/xui/uk/panel_group_voting.xml | 39 +- .../newview/skins/default/xui/uk/panel_groups.xml | 16 +- .../newview/skins/default/xui/uk/panel_place.xml | 4 +- .../skins/default/xui/uk/panel_place_small.xml | 2 +- .../default/xui/uk/panel_preferences_chat.xml | 7 +- .../default/xui/uk/panel_preferences_graphics1.xml | 26 +- .../skins/default/xui/uk/panel_preferences_im.xml | 5 +- .../default/xui/uk/panel_preferences_network.xml | 2 +- .../default/xui/uk/panel_preferences_popups.xml | 6 +- .../default/xui/uk/panel_preferences_voice.xml | 2 +- .../skins/default/xui/uk/panel_preferences_web.xml | 5 +- .../skins/default/xui/uk/panel_region_covenant.xml | 17 +- .../skins/default/xui/uk/panel_region_debug.xml | 10 +- .../skins/default/xui/uk/panel_region_estate.xml | 8 +- .../skins/default/xui/uk/panel_region_general.xml | 4 +- .../skins/default/xui/uk/panel_region_terrain.xml | 16 +- .../skins/default/xui/uk/panel_region_texture.xml | 8 +- .../default/xui/uk/panel_speaker_controls.xml | 12 +- .../skins/default/xui/zh/floater_about_land.xml | 183 +- .../skins/default/xui/zh/floater_avatar_picker.xml | 60 +- .../skins/default/xui/zh/floater_bulk_perms.xml | 44 + .../skins/default/xui/zh/floater_buy_land.xml | 216 +- .../skins/default/xui/zh/floater_customize.xml | 79 +- .../skins/default/xui/zh/floater_directory.xml | 142 +- .../skins/default/xui/zh/floater_font_test.xml | 6 + .../default/xui/zh/floater_instant_message.xml | 3 + .../xui/zh/floater_instant_message_ad_hoc.xml | 4 +- .../skins/default/xui/zh/floater_joystick.xml | 5 + .../skins/default/xui/zh/floater_land_holdings.xml | 5 +- .../skins/default/xui/zh/floater_mini_map.xml | 4 + .../default/xui/zh/floater_object_im_info.xml | 16 + .../skins/default/xui/zh/floater_perm_prefs.xml | 16 + .../default/xui/zh/floater_preview_gesture.xml | 6 + .../skins/default/xui/zh/floater_report_abuse.xml | 18 +- .../skins/default/xui/zh/floater_sound_preview.xml | 2 +- .../skins/default/xui/zh/floater_statistics.xml | 2 + .../newview/skins/default/xui/zh/floater_tools.xml | 84 +- .../default/xui/zh/floater_wearable_save_as.xml | 2 +- .../skins/default/xui/zh/floater_world_map.xml | 35 +- .../skins/default/xui/zh/menu_inventory.xml | 1 + .../newview/skins/default/xui/zh/menu_mini_map.xml | 8 + .../skins/default/xui/zh/menu_pie_attachment.xml | 2 +- .../skins/default/xui/zh/menu_pie_avatar.xml | 1 + .../skins/default/xui/zh/menu_pie_object.xml | 2 +- .../newview/skins/default/xui/zh/menu_viewer.xml | 18 +- .../newview/skins/default/xui/zh/notifications.xml | 8390 +++++++------------- .../default/xui/zh/panel_avatar_classified.xml | 12 +- .../skins/default/xui/zh/panel_classified.xml | 12 +- .../newview/skins/default/xui/zh/panel_event.xml | 10 +- .../skins/default/xui/zh/panel_group_general.xml | 12 +- .../skins/default/xui/zh/panel_group_invite.xml | 2 +- .../default/xui/zh/panel_group_land_money.xml | 9 +- .../skins/default/xui/zh/panel_group_notices.xml | 2 +- .../skins/default/xui/zh/panel_group_roles.xml | 2 +- .../skins/default/xui/zh/panel_mini_map.xml | 27 + .../skins/default/xui/zh/panel_overlaybar.xml | 21 +- .../newview/skins/default/xui/zh/panel_place.xml | 6 +- .../skins/default/xui/zh/panel_place_small.xml | 62 +- .../default/xui/zh/panel_preferences_general.xml | 82 +- .../skins/default/xui/zh/panel_preferences_im.xml | 2 +- .../default/xui/zh/panel_preferences_input.xml | 12 +- .../default/xui/zh/panel_preferences_voice.xml | 96 +- .../skins/default/xui/zh/panel_region_covenant.xml | 84 +- .../skins/default/xui/zh/panel_region_debug.xml | 85 +- .../skins/default/xui/zh/panel_region_general.xml | 76 +- .../indra/newview/skins/default/xui/zh/strings.xml | 77 +- .../skins/default/xui/zh/teleport_strings.xml | 13 +- .../newview/skins/default/xui/zh/ui_strings.xml | 28 + linden/indra/newview/tr.lproj/language.txt | 1 + linden/indra/newview/uk.lproj/language.txt | 1 + linden/indra/newview/viewer_manifest.py | 12 + linden/indra/newview/zh-Hans.lproj/language.txt | 1 + 1161 files changed, 53785 insertions(+), 8585 deletions(-) create mode 100755 linden/indra/llwindow/glh/glh_linear.h create mode 100644 linden/indra/newview/English.lproj/language.txt create mode 100644 linden/indra/newview/German.lproj/language.txt create mode 100644 linden/indra/newview/Japanese.lproj/language.txt create mode 100644 linden/indra/newview/Korean.lproj/language.txt create mode 100644 linden/indra/newview/da.lproj/language.txt create mode 100644 linden/indra/newview/es.lproj/language.txt create mode 100644 linden/indra/newview/fr.lproj/language.txt create mode 100644 linden/indra/newview/hu.lproj/language.txt create mode 100644 linden/indra/newview/it.lproj/language.txt create mode 100644 linden/indra/newview/nl.lproj/language.txt create mode 100644 linden/indra/newview/pl.lproj/language.txt create mode 100644 linden/indra/newview/pt.lproj/language.txt create mode 100644 linden/indra/newview/ru.lproj/language.txt create mode 100644 linden/indra/newview/skins/default/xui/da/alerts.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_about.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_about_land.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_active_speakers.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_animation_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_auction.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_audio_volume.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_avatar_picker.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_avatar_textures.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_beacons.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_build_options.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_bulk_perms.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_bumps.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_buy_contents.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_buy_currency.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_buy_land.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_buy_object.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_camera.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_chat_history.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_chatterbox.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_choose_group.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_color_picker.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_critical.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_customize.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_day_cycle_options.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_device_settings.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_directory.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_env_settings.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_font_test.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_gesture.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_group_info.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_hardware_settings.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_html.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_hud.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_im.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_image_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_import.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_inspect.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_instant_message.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_instant_message_ad_hoc.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_instant_message_group.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_inventory.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_inventory_item_properties.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_joystick.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_lagmeter.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_land_holdings.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_landmark_ctrl.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_live_lsleditor.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_lsl_guide.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_media_browser.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_mem_leaking.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_moveview.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_mute.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_mute_object.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_my_friends.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_name_description.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_new_im.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_new_outfit_dialog.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_object_im_info.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_openobject.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_pay.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_pay_object.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_perm_prefs.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_postcard.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_preferences.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_preview_animation.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_preview_classified.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_preview_embedded_texture.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_preview_event.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_preview_existing_landmark.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_preview_gesture.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_preview_notecard.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_preview_notecard_keep_discard.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_preview_sound.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_preview_texture.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_preview_texture_keep_discard.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_preview_url.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_price_for_listing.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_profile.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_region_info.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_report_abuse.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_report_bug.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_script_debug.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_script_ed_panel.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_script_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_script_queue.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_script_search.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_select_key.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_sell_land.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_settings_debug.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_sim_release_message.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_snapshot.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_sound_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_statistics.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_telehub.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_test.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_texture_ctrl.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_tools.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_top_objects.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_tos.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_url_entry.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_water.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_wearable_save_as.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_windlight_options.xml create mode 100644 linden/indra/newview/skins/default/xui/da/floater_world_map.xml create mode 100644 linden/indra/newview/skins/default/xui/da/menu_inventory.xml create mode 100644 linden/indra/newview/skins/default/xui/da/menu_login.xml create mode 100644 linden/indra/newview/skins/default/xui/da/menu_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/da/menu_pie_attachment.xml create mode 100644 linden/indra/newview/skins/default/xui/da/menu_pie_avatar.xml create mode 100644 linden/indra/newview/skins/default/xui/da/menu_pie_land.xml create mode 100644 linden/indra/newview/skins/default/xui/da/menu_pie_object.xml create mode 100644 linden/indra/newview/skins/default/xui/da/menu_pie_self.xml create mode 100644 linden/indra/newview/skins/default/xui/da/menu_slurl.xml create mode 100644 linden/indra/newview/skins/default/xui/da/menu_viewer.xml create mode 100644 linden/indra/newview/skins/default/xui/da/mime_types.xml create mode 100644 linden/indra/newview/skins/default/xui/da/notifications.xml create mode 100644 linden/indra/newview/skins/default/xui/da/notify.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_audio.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_audio_device.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_avatar.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_avatar_classified.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_avatar_pick.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_chat_bar.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_classified.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_event.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_friends.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_group.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_group_finder.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_group_general.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_group_invite.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_group_land_money.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_group_notices.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_group_roles.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_group_voting.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_groups.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_land_covenant.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_login.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_master_volume.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_media_controls.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_media_remote_expanded.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_overlaybar.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_place.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_place_small.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_preferences_audio.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_preferences_chat.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_preferences_general.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_preferences_im.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_preferences_input.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_preferences_network.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_preferences_popups.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_preferences_skins.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_preferences_voice.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_preferences_web.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_region_covenant.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_region_debug.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_region_estate.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_region_general.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_region_terrain.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_region_texture.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_scrolling_param.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_speaker_controls.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_status_bar.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_toolbar.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_top_pick.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_voice_controls.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_voice_enable.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_voice_options.xml create mode 100644 linden/indra/newview/skins/default/xui/da/panel_voice_remote_expanded.xml create mode 100644 linden/indra/newview/skins/default/xui/da/role_actions.xml create mode 100644 linden/indra/newview/skins/default/xui/da/strings.xml create mode 100644 linden/indra/newview/skins/default/xui/da/teleport_strings.xml create mode 100644 linden/indra/newview/skins/default/xui/da/ui_strings.xml create mode 100644 linden/indra/newview/skins/default/xui/da/xui_version.xml create mode 100644 linden/indra/newview/skins/default/xui/es/panel_voice_remote.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/alerts.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_about.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_about_land.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_active_speakers.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_animation_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_auction.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_audio_volume.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_avatar_picker.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_avatar_textures.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_beacons.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_build_options.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_bulk_perms.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_bumps.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_buy_contents.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_buy_currency.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_buy_land.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_buy_object.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_camera.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_chat_history.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_chatterbox.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_choose_group.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_color_picker.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_critical.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_customize.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_day_cycle_options.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_device_settings.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_directory.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_env_settings.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_font_test.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_gesture.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_god_tools.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_group_info.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_hardware_settings.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_html.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_hud.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_im.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_image_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_import.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_inspect.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_instant_message.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_instant_message_ad_hoc.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_instant_message_group.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_inventory.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_inventory_item_properties.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_inventory_view_finder.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_joystick.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_lagmeter.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_land_holdings.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_landmark_ctrl.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_live_lsleditor.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_lsl_guide.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_media_browser.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_moveview.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_mute.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_mute_object.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_my_friends.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_name_description.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_new_im.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_new_outfit_dialog.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_object_im_info.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_openobject.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_pay.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_pay_object.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_perm_prefs.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_post_process.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_postcard.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_preferences.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_preview_animation.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_preview_classified.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_preview_embedded_texture.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_preview_event.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_preview_existing_landmark.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_preview_gesture.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_preview_notecard.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_preview_notecard_keep_discard.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_preview_sound.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_preview_texture.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_preview_texture_keep_discard.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_preview_url.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_price_for_listing.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_profile.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_region_info.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_report_abuse.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_report_bug.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_script_debug.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_script_ed_panel.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_script_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_script_queue.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_script_search.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_select_key.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_sell_land.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_settings_debug.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_sim_release_message.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_snapshot.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_sound_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_statistics.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_telehub.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_texture_ctrl.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_tools.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_top_objects.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_tos.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_url_entry.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_water.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_wearable_save_as.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_windlight_options.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/floater_world_map.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/menu_inventory.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/menu_login.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/menu_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/menu_pie_attachment.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/menu_pie_avatar.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/menu_pie_land.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/menu_pie_object.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/menu_pie_self.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/menu_slurl.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/menu_viewer.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/mime_types.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/notifications.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/notify.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_audio.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_audio_device.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_avatar.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_avatar_classified.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_avatar_pick.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_chat_bar.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_classified.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_event.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_friends.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_group.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_group_finder.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_group_general.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_group_invite.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_group_land_money.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_group_notices.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_group_roles.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_group_voting.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_groups.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_land_covenant.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_login.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_master_volume.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_media_controls.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_media_remote.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_media_remote_expanded.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_overlaybar.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_place.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_place_small.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_preferences_audio.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_preferences_chat.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_preferences_general.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_preferences_graphics1.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_preferences_im.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_preferences_input.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_preferences_network.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_preferences_popups.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_preferences_skins.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_preferences_voice.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_preferences_web.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_region_covenant.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_region_debug.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_region_estate.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_region_general.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_region_terrain.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_region_texture.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_scrolling_param.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_speaker_controls.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_status_bar.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_toolbar.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_top_pick.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_voice_controls.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_voice_enable.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_voice_options.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_voice_remote.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/panel_voice_remote_expanded.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/role_actions.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/strings.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/teleport_strings.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/ui_strings.xml create mode 100644 linden/indra/newview/skins/default/xui/hu/xui_version.xml create mode 100644 linden/indra/newview/skins/default/xui/it/alerts.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_about.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_about_land.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_active_speakers.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_animation_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_auction.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_audio_volume.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_avatar_picker.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_avatar_textures.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_beacons.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_build_options.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_bulk_perms.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_bumps.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_buy_contents.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_buy_currency.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_buy_land.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_buy_object.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_camera.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_chat_history.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_chatterbox.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_choose_group.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_color_picker.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_critical.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_customize.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_device_settings.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_directory.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_env_settings.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_font_test.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_gesture.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_group_info.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_hardware_settings.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_html.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_hud.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_im.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_image_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_import.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_inspect.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_instant_message.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_instant_message_ad_hoc.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_instant_message_group.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_inventory.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_joystick.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_lagmeter.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_land_holdings.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_landmark_ctrl.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_live_lsleditor.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_lsl_guide.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_media_browser.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_mem_leaking.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_moveview.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_mute.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_mute_object.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_my_friends.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_name_description.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_new_im.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_new_outfit_dialog.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_object_im_info.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_openobject.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_pay.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_pay_object.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_perm_prefs.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_post_process.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_postcard.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_preferences.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_preview_animation.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_preview_classified.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_preview_embedded_texture.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_preview_event.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_preview_existing_landmark.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_preview_gesture.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_preview_notecard.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_preview_notecard_keep_discard.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_preview_sound.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_preview_texture.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_preview_texture_keep_discard.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_preview_url.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_price_for_listing.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_profile.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_region_info.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_report_abuse.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_report_bug.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_script_debug.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_script_ed_panel.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_script_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_script_queue.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_script_search.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_select_key.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_sell_land.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_settings_debug.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_sim_release_message.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_skin_preview_template.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_snapshot.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_sound_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_statistics.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_telehub.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_test.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_texture_ctrl.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_tools.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_top_objects.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_tos.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_url_entry.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_voice_wizard.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_water.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_wearable_save_as.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_windlight_options.xml create mode 100644 linden/indra/newview/skins/default/xui/it/floater_world_map.xml create mode 100644 linden/indra/newview/skins/default/xui/it/menu_inventory.xml create mode 100644 linden/indra/newview/skins/default/xui/it/menu_login.xml create mode 100644 linden/indra/newview/skins/default/xui/it/menu_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/it/menu_pie_attachment.xml create mode 100644 linden/indra/newview/skins/default/xui/it/menu_pie_avatar.xml create mode 100644 linden/indra/newview/skins/default/xui/it/menu_pie_land.xml create mode 100644 linden/indra/newview/skins/default/xui/it/menu_pie_object.xml create mode 100644 linden/indra/newview/skins/default/xui/it/menu_pie_self.xml create mode 100644 linden/indra/newview/skins/default/xui/it/menu_slurl.xml create mode 100644 linden/indra/newview/skins/default/xui/it/menu_viewer.xml create mode 100644 linden/indra/newview/skins/default/xui/it/mime_types.xml create mode 100644 linden/indra/newview/skins/default/xui/it/notifications.xml create mode 100644 linden/indra/newview/skins/default/xui/it/notify.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_audio.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_audio_device.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_avatar.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_avatar_classified.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_avatar_pick.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_chat_bar.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_classified.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_event.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_friends.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_group.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_group_finder.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_group_general.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_group_invite.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_group_land_money.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_group_notices.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_group_roles.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_group_voting.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_groups.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_land_covenant.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_login.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_master_volume.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_media_controls.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_media_remote_expanded.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_overlaybar.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_place.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_place_small.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_preferences_audio.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_preferences_chat.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_preferences_general.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_preferences_im.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_preferences_input.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_preferences_network.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_preferences_popups.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_preferences_skins.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_preferences_voice.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_preferences_web.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_region_covenant.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_region_debug.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_region_estate.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_region_general.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_region_terrain.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_region_texture.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_scrolling_param.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_speaker_controls.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_status_bar.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_toolbar.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_top_pick.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_voice_controls.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_voice_enable.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_voice_options.xml create mode 100644 linden/indra/newview/skins/default/xui/it/panel_voice_remote_expanded.xml create mode 100644 linden/indra/newview/skins/default/xui/it/strings.xml create mode 100644 linden/indra/newview/skins/default/xui/it/teleport_strings.xml create mode 100644 linden/indra/newview/skins/default/xui/it/ui_strings.xml delete mode 100644 linden/indra/newview/skins/default/xui/pt/panel_account_details.xml delete mode 100644 linden/indra/newview/skins/default/xui/pt/panel_account_planning.xml delete mode 100644 linden/indra/newview/skins/default/xui/pt/panel_account_transactions.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/alerts.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_about.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_about_land.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_active_speakers.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_animation_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_avatar_picker.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_beacons.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_bulk_perms.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_bumps.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_buy_contents.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_buy_currency.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_buy_land.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_buy_object.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_camera.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_chat_history.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_chatterbox.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_choose_group.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_color_picker.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_customize.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_device_settings.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_directory.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_font_test.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_gesture.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_hardware_settings.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_hud.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_image_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_inspect.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_instant_message.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_instant_message_group.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_inventory.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_inventory_item_properties.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_inventory_view_finder.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_joystick.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_lagmeter.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_land_holdings.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_lsl_guide.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_media_browser.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_moveview.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_mute.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_mute_object.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_my_friends.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_object_im_info.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_pay.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_pay_object.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_perm_prefs.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_postcard.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_preferences.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_preview_animation.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_preview_classified.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_preview_embedded_texture.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_preview_gesture.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_preview_notecard.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_preview_notecard_keep_discard.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_preview_sound.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_preview_texture.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_preview_texture_keep_discard.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_preview_url.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_price_for_listing.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_profile.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_region_info.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_report_abuse.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_script_debug.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_script_ed_panel.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_script_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_script_search.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_select_key.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_sell_land.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_snapshot.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_sound_preview.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_statistics.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_tools.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_top_objects.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_tos.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/floater_world_map.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/menu_inventory.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/menu_login.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/menu_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/menu_pie_attachment.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/menu_pie_avatar.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/menu_pie_land.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/menu_pie_object.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/menu_pie_self.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/menu_viewer.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/notifications.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/notify.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_audio.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_audio_device.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_avatar.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_avatar_classified.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_avatar_pick.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_chat_bar.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_classified.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_event.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_friends.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_group.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_group_general.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_group_invite.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_group_land_money.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_group_notices.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_group_roles.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_group_voting.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_groups.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_login.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_overlaybar.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_place.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_place_small.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_preferences_audio.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_preferences_general.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_preferences_graphics1.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_preferences_im.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_preferences_input.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_preferences_network.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_preferences_popups.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_preferences_skins.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_preferences_voice.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_preferences_web.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_region_covenant.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_region_debug.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_region_estate.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_region_general.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_region_terrain.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_region_texture.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_speaker_controls.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_status_bar.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_toolbar.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_voice_controls.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_voice_enable.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_voice_options.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_voice_remote.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/panel_voice_remote_expanded.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/strings.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/teleport_strings.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/ui_strings.xml create mode 100644 linden/indra/newview/skins/default/xui/tr/xui_version.xml create mode 100644 linden/indra/newview/skins/default/xui/zh/floater_bulk_perms.xml create mode 100644 linden/indra/newview/skins/default/xui/zh/floater_font_test.xml create mode 100644 linden/indra/newview/skins/default/xui/zh/floater_joystick.xml create mode 100644 linden/indra/newview/skins/default/xui/zh/floater_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/zh/floater_object_im_info.xml create mode 100644 linden/indra/newview/skins/default/xui/zh/floater_perm_prefs.xml create mode 100644 linden/indra/newview/skins/default/xui/zh/floater_statistics.xml create mode 100644 linden/indra/newview/skins/default/xui/zh/menu_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/zh/panel_mini_map.xml create mode 100644 linden/indra/newview/skins/default/xui/zh/ui_strings.xml create mode 100644 linden/indra/newview/tr.lproj/language.txt create mode 100644 linden/indra/newview/uk.lproj/language.txt create mode 100644 linden/indra/newview/zh-Hans.lproj/language.txt diff --git a/linden/doc/contributions.txt b/linden/doc/contributions.txt index 1b880bb..204ba67 100644 --- a/linden/doc/contributions.txt +++ b/linden/doc/contributions.txt @@ -188,6 +188,7 @@ Feep Larsson VWR-4444 Flemming Congrejo CT-193 + CT-318 Fluf Fredriksson VWR-3450 Fremont Cunningham @@ -335,6 +336,7 @@ Michelle2 Zenovka Mm Alder VWR-3777 VWR-4794 + VWR-13578 Mr Greggan VWR-445 Nicholaz Beresford diff --git a/linden/indra/llcommon/llversionserver.h b/linden/indra/llcommon/llversionserver.h index f9b84dd..571bd1f 100644 --- a/linden/indra/llcommon/llversionserver.h +++ b/linden/indra/llcommon/llversionserver.h @@ -36,7 +36,7 @@ const S32 LL_VERSION_MAJOR = 1; const S32 LL_VERSION_MINOR = 27; const S32 LL_VERSION_PATCH = 0; -const S32 LL_VERSION_BUILD = 112940; +const S32 LL_VERSION_BUILD = 122255; const char * const LL_CHANNEL = "Second Life Server"; diff --git a/linden/indra/llcommon/llversionviewer.h b/linden/indra/llcommon/llversionviewer.h index e18befc..34d0335 100644 --- a/linden/indra/llcommon/llversionviewer.h +++ b/linden/indra/llcommon/llversionviewer.h @@ -35,9 +35,9 @@ const S32 LL_VERSION_MAJOR = 1; const S32 LL_VERSION_MINOR = 23; -const S32 LL_VERSION_PATCH = 2; -const S32 LL_VERSION_BUILD = 0; +const S32 LL_VERSION_PATCH = 3; +const S32 LL_VERSION_BUILD = 122255; -const char * const LL_CHANNEL = "Second Life Release"; +const char * const LL_CHANNEL = "Second Life Release Candidate"; #endif diff --git a/linden/indra/llrender/llimagegl.cpp b/linden/indra/llrender/llimagegl.cpp index cdf626e..d1efb11 100644 --- a/linden/indra/llrender/llimagegl.cpp +++ b/linden/indra/llrender/llimagegl.cpp @@ -54,8 +54,8 @@ LLGLuint LLImageGL::sCurrentBoundTextures[MAX_GL_TEXTURE_UNITS] = { 0 }; U32 LLImageGL::sUniqueCount = 0; U32 LLImageGL::sBindCount = 0; -S32 LLImageGL::sGlobalTextureMemory = 0; -S32 LLImageGL::sBoundTextureMemory = 0; +S32 LLImageGL::sGlobalTextureMemoryInBytes = 0; +S32 LLImageGL::sBoundTextureMemoryInBytes = 0; S32 LLImageGL::sCurBoundTextureMemory = 0; S32 LLImageGL::sCount = 0; @@ -174,7 +174,7 @@ S32 LLImageGL::dataFormatComponents(S32 dataformat) void LLImageGL::updateStats(F32 current_time) { sLastFrameTime = current_time; - sBoundTextureMemory = sCurBoundTextureMemory; + sBoundTextureMemoryInBytes = sCurBoundTextureMemory; sCurBoundTextureMemory = 0; } @@ -1013,13 +1013,13 @@ BOOL LLImageGL::createGLTexture(S32 discard_level, const U8* data_in, BOOL data_ if (old_name != 0) { - sGlobalTextureMemory -= mTextureMemory; + sGlobalTextureMemoryInBytes -= mTextureMemory; LLImageGL::deleteTextures(1, &old_name); stop_glerror(); } mTextureMemory = getMipBytes(discard_level); - sGlobalTextureMemory += mTextureMemory; + sGlobalTextureMemoryInBytes += mTextureMemory; setActive() ; // mark this as bound at this point, so we don't throw it out immediately @@ -1220,7 +1220,7 @@ void LLImageGL::destroyGLTexture() } } - sGlobalTextureMemory -= mTextureMemory; + sGlobalTextureMemoryInBytes -= mTextureMemory; mTextureMemory = 0; LLImageGL::deleteTextures(1, &mTexName); diff --git a/linden/indra/llrender/llimagegl.h b/linden/indra/llrender/llimagegl.h index 4f737bc..2f08a5a 100644 --- a/linden/indra/llrender/llimagegl.h +++ b/linden/indra/llrender/llimagegl.h @@ -42,6 +42,9 @@ #include "llrender.h" +#define BYTES_TO_MEGA_BYTES(x) ((x) >> 20) +#define MEGA_BYTES_TO_BYTES(x) ((x) << 20) + //============================================================================ class LLImageGL : public LLRefCount @@ -238,8 +241,8 @@ public: static LLGLuint sCurrentBoundTextures[MAX_GL_TEXTURE_UNITS]; // Currently bound texture ID // Global memory statistics - static S32 sGlobalTextureMemory; // Tracks main memory texmem - static S32 sBoundTextureMemory; // Tracks bound texmem for last completed frame + static S32 sGlobalTextureMemoryInBytes; // Tracks main memory texmem + static S32 sBoundTextureMemoryInBytes; // Tracks bound texmem for last completed frame static S32 sCurBoundTextureMemory; // Tracks bound texmem for current frame static U32 sBindCount; // Tracks number of texture binds for current frame static U32 sUniqueCount; // Tracks number of unique texture binds for current frame diff --git a/linden/indra/llui/llview.cpp b/linden/indra/llui/llview.cpp index 444922a..7047afc 100644 --- a/linden/indra/llui/llview.cpp +++ b/linden/indra/llui/llview.cpp @@ -741,23 +741,20 @@ BOOL LLView::handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect_s // don't allow any siblings to handle this event // even if we don't have a tooltip - if (getMouseOpaque() || show_names_text_box) + if (blockMouseEvent(x, y) || show_names_text_box) { - handled = TRUE; - } - - if(!tool_tip.empty()) - { - msg = tool_tip; + if(!tool_tip.empty()) + { + msg = tool_tip; - // Convert rect local to screen coordinates - localPointToScreen( - 0, 0, - &(sticky_rect_screen->mLeft), &(sticky_rect_screen->mBottom) ); - localPointToScreen( - mRect.getWidth(), mRect.getHeight(), - &(sticky_rect_screen->mRight), &(sticky_rect_screen->mTop) ); - + // Convert rect local to screen coordinates + localPointToScreen( + 0, 0, + &(sticky_rect_screen->mLeft), &(sticky_rect_screen->mBottom) ); + localPointToScreen( + mRect.getWidth(), mRect.getHeight(), + &(sticky_rect_screen->mRight), &(sticky_rect_screen->mTop) ); + } handled = TRUE; } diff --git a/linden/indra/llwindow/glh/glh_linear.h b/linden/indra/llwindow/glh/glh_linear.h new file mode 100755 index 0000000..04ae1bd --- /dev/null +++ b/linden/indra/llwindow/glh/glh_linear.h @@ -0,0 +1,1621 @@ +/* + glh - is a platform-indepenedent C++ OpenGL helper library + + + Copyright (c) 2000 Cass Everitt + Copyright (c) 2000 NVIDIA Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + * The names of contributors to this software may not be used + to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + + Cass Everitt - cass@r3.nu +*/ + +/* +glh_linear.h +*/ + +// Author: Cass W. Everitt + +#ifndef GLH_LINEAR_H +#define GLH_LINEAR_H + +#include +#include +#include + +// only supports float for now... +#define GLH_REAL_IS_FLOAT + +#ifdef GLH_REAL_IS_FLOAT +# define GLH_REAL float +# define GLH_REAL_NAMESPACE ns_float +#endif + +#define GLH_QUATERNION_NORMALIZATION_THRESHOLD 64 + +#define GLH_RAD_TO_DEG GLH_REAL(57.2957795130823208767981548141052) +#define GLH_DEG_TO_RAD GLH_REAL(0.0174532925199432957692369076848861) +#define GLH_ZERO GLH_REAL(0.0) +#define GLH_ONE GLH_REAL(1.0) +#define GLH_TWO GLH_REAL(2.0) +#define GLH_EPSILON GLH_REAL(10e-6) +#define GLH_PI GLH_REAL(3.1415926535897932384626433832795) + +#define equivalent(a,b) (((a < b + GLH_EPSILON) && (a > b - GLH_EPSILON)) ? true : false) + +namespace glh +{ + + inline GLH_REAL to_degrees(GLH_REAL radians) { return radians*GLH_RAD_TO_DEG; } + inline GLH_REAL to_radians(GLH_REAL degrees) { return degrees*GLH_DEG_TO_RAD; } + + // forward declarations for friend template functions. + template class vec; + + // forward declarations for friend template functions. + template + bool operator == ( const vec & v1, const vec & v2 ); + + // forward declarations for friend template functions. + template + bool operator != ( const vec & v1, const vec & v2 ); + + template + class vec + { + public: + int size() const { return N; } + + vec(const T & t = T()) + { for(int i = 0; i < N; i++) v[i] = t; } + vec(const T * tp) + { for(int i = 0; i < N; i++) v[i] = tp[i]; } + + const T * get_value() const + { return v; } + + + T dot( const vec & rhs ) const + { + T r = 0; + for(int i = 0; i < N; i++) r += v[i]*rhs.v[i]; + return r; + } + + T length() const + { + T r = 0; + for(int i = 0; i < N; i++) r += v[i]*v[i]; + return T(sqrt(r)); + } + + T square_norm() const + { + T r = 0; + for(int i = 0; i < N; i++) r += v[i]*v[i]; + return r; + } + + void negate() + { for(int i = 0; i < N; i++) v[i] = -v[i]; } + + + T normalize() + { + T sum(0); + for(int i = 0; i < N; i++) + sum += v[i]*v[i]; + sum = T(sqrt(sum)); + if (sum > GLH_EPSILON) + for(int i = 0; i < N; i++) + v[i] /= sum; + return sum; + } + + + vec & set_value( const T * rhs ) + { for(int i = 0; i < N; i++) v[i] = rhs[i]; return *this; } + + T & operator [] ( int i ) + { return v[i]; } + + const T & operator [] ( int i ) const + { return v[i]; } + + vec & operator *= ( T d ) + { for(int i = 0; i < N; i++) v[i] *= d; return *this;} + + vec & operator *= ( const vec & u ) + { for(int i = 0; i < N; i++) v[i] *= u[i]; return *this;} + + vec & operator /= ( T d ) + { if(d == 0) return *this; for(int i = 0; i < N; i++) v[i] /= d; return *this;} + + vec & operator += ( const vec & u ) + { for(int i = 0; i < N; i++) v[i] += u.v[i]; return *this;} + + vec & operator -= ( const vec & u ) + { for(int i = 0; i < N; i++) v[i] -= u.v[i]; return *this;} + + + vec operator - () const + { vec rv = v; rv.negate(); return rv; } + + vec operator + ( const vec &v) const + { vec rt(*this); return rt += v; } + + vec operator - ( const vec &v) const + { vec rt(*this); return rt -= v; } + + vec operator * ( T d) const + { vec rt(*this); return rt *= d; } + + friend bool operator == <> ( const vec &v1, const vec &v2 ); + friend bool operator != <> ( const vec &v1, const vec &v2 ); + + + //protected: + T v[N]; + }; + + + + // vector friend operators + + template inline + vec operator * ( const vec & b, T d ) + { + vec rt(b); + return rt *= d; + } + + template inline + vec operator * ( T d, const vec & b ) + { return b*d; } + + template inline + vec operator * ( const vec & b, const vec & d ) + { + vec rt(b); + return rt *= d; + } + + template inline + vec operator / ( const vec & b, T d ) + { vec rt(b); return rt /= d; } + + template inline + vec operator + ( const vec & v1, const vec & v2 ) + { vec rt(v1); return rt += v2; } + + template inline + vec operator - ( const vec & v1, const vec & v2 ) + { vec rt(v1); return rt -= v2; } + + + template inline + bool operator == ( const vec & v1, const vec & v2 ) + { + for(int i = 0; i < N; i++) + if(v1.v[i] != v2.v[i]) + return false; + return true; + } + + template inline + bool operator != ( const vec & v1, const vec & v2 ) + { return !(v1 == v2); } + + + typedef vec<3,unsigned char> vec3ub; + typedef vec<4,unsigned char> vec4ub; + + + + + + namespace GLH_REAL_NAMESPACE + { + typedef GLH_REAL real; + + class line; + class plane; + class matrix4; + class quaternion; + typedef quaternion rotation; + + class vec2 : public vec<2,real> + { + public: + vec2(const real & t = real()) : vec<2,real>(t) + {} + vec2(const vec<2,real> & t) : vec<2,real>(t) + {} + vec2(const real * tp) : vec<2,real>(tp) + {} + + vec2(real x, real y ) + { v[0] = x; v[1] = y; } + + void get_value(real & x, real & y) const + { x = v[0]; y = v[1]; } + + vec2 & set_value( const real & x, const real & y) + { v[0] = x; v[1] = y; return *this; } + + }; + + + class vec3 : public vec<3,real> + { + public: + vec3(const real & t = real()) : vec<3,real>(t) + {} + vec3(const vec<3,real> & t) : vec<3,real>(t) + {} + vec3(const real * tp) : vec<3,real>(tp) + {} + + vec3(real x, real y, real z) + { v[0] = x; v[1] = y; v[2] = z; } + + void get_value(real & x, real & y, real & z) const + { x = v[0]; y = v[1]; z = v[2]; } + + vec3 cross( const vec3 &rhs ) const + { + vec3 rt; + rt.v[0] = v[1]*rhs.v[2]-v[2]*rhs.v[1]; + rt.v[1] = v[2]*rhs.v[0]-v[0]*rhs.v[2]; + rt.v[2] = v[0]*rhs.v[1]-v[1]*rhs.v[0]; + return rt; + } + + vec3 & set_value( const real & x, const real & y, const real & z) + { v[0] = x; v[1] = y; v[2] = z; return *this; } + + }; + + + class vec4 : public vec<4,real> + { + public: + vec4(const real & t = real()) : vec<4,real>(t) + {} + vec4(const vec<4,real> & t) : vec<4,real>(t) + {} + + vec4(const vec<3,real> & t, real fourth) + + { v[0] = t.v[0]; v[1] = t.v[1]; v[2] = t.v[2]; v[3] = fourth; } + vec4(const real * tp) : vec<4,real>(tp) + {} + vec4(real x, real y, real z, real w) + { v[0] = x; v[1] = y; v[2] = z; v[3] = w; } + + void get_value(real & x, real & y, real & z, real & w) const + { x = v[0]; y = v[1]; z = v[2]; w = v[3]; } + + vec4 & set_value( const real & x, const real & y, const real & z, const real & w) + { v[0] = x; v[1] = y; v[2] = z; v[3] = w; return *this; } + }; + + inline + vec3 homogenize(const vec4 & v) + { + vec3 rt; + assert(v.v[3] != GLH_ZERO); + rt.v[0] = v.v[0]/v.v[3]; + rt.v[1] = v.v[1]/v.v[3]; + rt.v[2] = v.v[2]/v.v[3]; + return rt; + } + + + + class line + { + public: + + line() + { set_value(vec3(0,0,0),vec3(0,0,1)); } + + line( const vec3 & p0, const vec3 &p1) + { set_value(p0,p1); } + + void set_value( const vec3 &p0, const vec3 &p1) + { + position = p0; + direction = p1-p0; + direction.normalize(); + } + + bool get_closest_points(const line &line2, + vec3 &pointOnThis, + vec3 &pointOnThat) + { + + // quick check to see if parallel -- if so, quit. + if(fabs(direction.dot(line2.direction)) == 1.0) + return 0; + line l2 = line2; + + // Algorithm: Brian Jean + // + register real u; + register real v; + vec3 Vr = direction; + vec3 Vs = l2.direction; + register real Vr_Dot_Vs = Vr.dot(Vs); + register real detA = real(1.0 - (Vr_Dot_Vs * Vr_Dot_Vs)); + vec3 C = l2.position - position; + register real C_Dot_Vr = C.dot(Vr); + register real C_Dot_Vs = C.dot(Vs); + + u = (C_Dot_Vr - Vr_Dot_Vs * C_Dot_Vs)/detA; + v = (C_Dot_Vr * Vr_Dot_Vs - C_Dot_Vs)/detA; + + pointOnThis = position; + pointOnThis += direction * u; + pointOnThat = l2.position; + pointOnThat += l2.direction * v; + + return 1; + } + + vec3 get_closest_point(const vec3 &point) + { + vec3 np = point - position; + vec3 rp = direction*direction.dot(np)+position; + return rp; + } + + const vec3 & get_position() const {return position;} + + const vec3 & get_direction() const {return direction;} + + //protected: + vec3 position; + vec3 direction; + }; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // matrix + + + class matrix4 + { + + public: + + matrix4() { make_identity(); } + + matrix4( real r ) + { set_value(r); } + + matrix4( real * m ) + { set_value(m); } + + matrix4( real a00, real a01, real a02, real a03, + real a10, real a11, real a12, real a13, + real a20, real a21, real a22, real a23, + real a30, real a31, real a32, real a33 ) + { + element(0,0) = a00; + element(0,1) = a01; + element(0,2) = a02; + element(0,3) = a03; + + element(1,0) = a10; + element(1,1) = a11; + element(1,2) = a12; + element(1,3) = a13; + + element(2,0) = a20; + element(2,1) = a21; + element(2,2) = a22; + element(2,3) = a23; + + element(3,0) = a30; + element(3,1) = a31; + element(3,2) = a32; + element(3,3) = a33; + } + + + void get_value( real * mp ) const + { + int c = 0; + for(int j=0; j < 4; j++) + for(int i=0; i < 4; i++) + mp[c++] = element(i,j); + } + + + const real * get_value() const + { return m; } + + void set_value( real * mp) + { + int c = 0; + for(int j=0; j < 4; j++) + for(int i=0; i < 4; i++) + element(i,j) = mp[c++]; + } + + void set_value( real r ) + { + for(int i=0; i < 4; i++) + for(int j=0; j < 4; j++) + element(i,j) = r; + } + + void make_identity() + { + element(0,0) = 1.0; + element(0,1) = 0.0; + element(0,2) = 0.0; + element(0,3) = 0.0; + + element(1,0) = 0.0; + element(1,1) = 1.0; + element(1,2) = 0.0; + element(1,3) = 0.0; + + element(2,0) = 0.0; + element(2,1) = 0.0; + element(2,2) = 1.0; + element(2,3) = 0.0; + + element(3,0) = 0.0; + element(3,1) = 0.0; + element(3,2) = 0.0; + element(3,3) = 1.0; + } + + + static matrix4 identity() + { + static matrix4 mident ( + 1.0, 0.0, 0.0, 0.0, + 0.0, 1.0, 0.0, 0.0, + 0.0, 0.0, 1.0, 0.0, + 0.0, 0.0, 0.0, 1.0 ); + return mident; + } + + + void set_scale( real s ) + { + element(0,0) = s; + element(1,1) = s; + element(2,2) = s; + } + + void set_scale( const vec3 & s ) + { + element(0,0) = s.v[0]; + element(1,1) = s.v[1]; + element(2,2) = s.v[2]; + } + + + void set_translate( const vec3 & t ) + { + element(0,3) = t.v[0]; + element(1,3) = t.v[1]; + element(2,3) = t.v[2]; + } + + void set_row(int r, const vec4 & t) + { + element(r,0) = t.v[0]; + element(r,1) = t.v[1]; + element(r,2) = t.v[2]; + element(r,3) = t.v[3]; + } + + void set_column(int c, const vec4 & t) + { + element(0,c) = t.v[0]; + element(1,c) = t.v[1]; + element(2,c) = t.v[2]; + element(3,c) = t.v[3]; + } + + + void get_row(int r, vec4 & t) const + { + t.v[0] = element(r,0); + t.v[1] = element(r,1); + t.v[2] = element(r,2); + t.v[3] = element(r,3); + } + + vec4 get_row(int r) const + { + vec4 v; get_row(r, v); + return v; + } + + void get_column(int c, vec4 & t) const + { + t.v[0] = element(0,c); + t.v[1] = element(1,c); + t.v[2] = element(2,c); + t.v[3] = element(3,c); + } + + vec4 get_column(int c) const + { + vec4 v; get_column(c, v); + return v; + } + + matrix4 inverse() const + { + matrix4 minv; + + real r1[8], r2[8], r3[8], r4[8]; + real *s[4], *tmprow; + + s[0] = &r1[0]; + s[1] = &r2[0]; + s[2] = &r3[0]; + s[3] = &r4[0]; + + register int i,j,p,jj; + for(i=0;i<4;i++) + { + for(j=0;j<4;j++) + { + s[i][j] = element(i,j); + if(i==j) s[i][j+4] = 1.0; + else s[i][j+4] = 0.0; + } + } + real scp[4]; + for(i=0;i<4;i++) + { + scp[i] = real(fabs(s[i][0])); + for(j=1;j<4;j++) + if(real(fabs(s[i][j])) > scp[i]) scp[i] = real(fabs(s[i][j])); + if(scp[i] == 0.0) return minv; // singular matrix! + } + + int pivot_to; + real scp_max; + for(i=0;i<4;i++) + { + // select pivot row + pivot_to = i; + scp_max = real(fabs(s[i][i]/scp[i])); + // find out which row should be on top + for(p=i+1;p<4;p++) + if(real(fabs(s[p][i]/scp[p])) > scp_max) + { scp_max = real(fabs(s[p][i]/scp[p])); pivot_to = p; } + // Pivot if necessary + if(pivot_to != i) + { + tmprow = s[i]; + s[i] = s[pivot_to]; + s[pivot_to] = tmprow; + real tmpscp; + tmpscp = scp[i]; + scp[i] = scp[pivot_to]; + scp[pivot_to] = tmpscp; + } + + real mji; + // perform gaussian elimination + for(j=i+1;j<4;j++) + { + mji = s[j][i]/s[i][i]; + s[j][i] = 0.0; + for(jj=i+1;jj<8;jj++) + s[j][jj] -= mji*s[i][jj]; + } + } + if(s[3][3] == 0.0) return minv; // singular matrix! + + // + // Now we have an upper triangular matrix. + // + // x x x x | y y y y + // 0 x x x | y y y y + // 0 0 x x | y y y y + // 0 0 0 x | y y y y + // + // we'll back substitute to get the inverse + // + // 1 0 0 0 | z z z z + // 0 1 0 0 | z z z z + // 0 0 1 0 | z z z z + // 0 0 0 1 | z z z z + // + + real mij; + for(i=3;i>0;i--) + { + for(j=i-1;j > -1; j--) + { + mij = s[j][i]/s[i][i]; + for(jj=j+1;jj<8;jj++) + s[j][jj] -= mij*s[i][jj]; + } + } + + for(i=0;i<4;i++) + for(j=0;j<4;j++) + minv(i,j) = s[i][j+4] / s[i][i]; + + return minv; + } + + + matrix4 transpose() const + { + matrix4 mtrans; + + for(int i=0;i<4;i++) + for(int j=0;j<4;j++) + mtrans(i,j) = element(j,i); + return mtrans; + } + + matrix4 & mult_right( const matrix4 & b ) + { + matrix4 mt(*this); + set_value(real(0)); + + for(int i=0; i < 4; i++) + for(int j=0; j < 4; j++) + for(int c=0; c < 4; c++) + element(i,j) += mt(i,c) * b(c,j); + return *this; + } + + matrix4 & mult_left( const matrix4 & b ) + { + matrix4 mt(*this); + set_value(real(0)); + + for(int i=0; i < 4; i++) + for(int j=0; j < 4; j++) + for(int c=0; c < 4; c++) + element(i,j) += b(i,c) * mt(c,j); + return *this; + } + + // dst = M * src + void mult_matrix_vec( const vec3 &src, vec3 &dst ) const + { + real w = ( + src.v[0] * element(3,0) + + src.v[1] * element(3,1) + + src.v[2] * element(3,2) + + element(3,3) ); + + assert(w != GLH_ZERO); + + dst.v[0] = ( + src.v[0] * element(0,0) + + src.v[1] * element(0,1) + + src.v[2] * element(0,2) + + element(0,3) ) / w; + dst.v[1] = ( + src.v[0] * element(1,0) + + src.v[1] * element(1,1) + + src.v[2] * element(1,2) + + element(1,3) ) / w; + dst.v[2] = ( + src.v[0] * element(2,0) + + src.v[1] * element(2,1) + + src.v[2] * element(2,2) + + element(2,3) ) / w; + } + + void mult_matrix_vec( vec3 & src_and_dst) const + { mult_matrix_vec(vec3(src_and_dst), src_and_dst); } + + + // dst = src * M + void mult_vec_matrix( const vec3 &src, vec3 &dst ) const + { + real w = ( + src.v[0] * element(0,3) + + src.v[1] * element(1,3) + + src.v[2] * element(2,3) + + element(3,3) ); + + assert(w != GLH_ZERO); + + dst.v[0] = ( + src.v[0] * element(0,0) + + src.v[1] * element(1,0) + + src.v[2] * element(2,0) + + element(3,0) ) / w; + dst.v[1] = ( + src.v[0] * element(0,1) + + src.v[1] * element(1,1) + + src.v[2] * element(2,1) + + element(3,1) ) / w; + dst.v[2] = ( + src.v[0] * element(0,2) + + src.v[1] * element(1,2) + + src.v[2] * element(2,2) + + element(3,2) ) / w; + } + + + void mult_vec_matrix( vec3 & src_and_dst) const + { mult_vec_matrix(vec3(src_and_dst), src_and_dst); } + + // dst = M * src + void mult_matrix_vec( const vec4 &src, vec4 &dst ) const + { + dst.v[0] = ( + src.v[0] * element(0,0) + + src.v[1] * element(0,1) + + src.v[2] * element(0,2) + + src.v[3] * element(0,3)); + dst.v[1] = ( + src.v[0] * element(1,0) + + src.v[1] * element(1,1) + + src.v[2] * element(1,2) + + src.v[3] * element(1,3)); + dst.v[2] = ( + src.v[0] * element(2,0) + + src.v[1] * element(2,1) + + src.v[2] * element(2,2) + + src.v[3] * element(2,3)); + dst.v[3] = ( + src.v[0] * element(3,0) + + src.v[1] * element(3,1) + + src.v[2] * element(3,2) + + src.v[3] * element(3,3)); + } + + void mult_matrix_vec( vec4 & src_and_dst) const + { mult_matrix_vec(vec4(src_and_dst), src_and_dst); } + + + // dst = src * M + void mult_vec_matrix( const vec4 &src, vec4 &dst ) const + { + dst.v[0] = ( + src.v[0] * element(0,0) + + src.v[1] * element(1,0) + + src.v[2] * element(2,0) + + src.v[3] * element(3,0)); + dst.v[1] = ( + src.v[0] * element(0,1) + + src.v[1] * element(1,1) + + src.v[2] * element(2,1) + + src.v[3] * element(3,1)); + dst.v[2] = ( + src.v[0] * element(0,2) + + src.v[1] * element(1,2) + + src.v[2] * element(2,2) + + src.v[3] * element(3,2)); + dst.v[3] = ( + src.v[0] * element(0,3) + + src.v[1] * element(1,3) + + src.v[2] * element(2,3) + + src.v[3] * element(3,3)); + } + + + void mult_vec_matrix( vec4 & src_and_dst) const + { mult_vec_matrix(vec4(src_and_dst), src_and_dst); } + + + // dst = M * src + void mult_matrix_dir( const vec3 &src, vec3 &dst ) const + { + dst.v[0] = ( + src.v[0] * element(0,0) + + src.v[1] * element(0,1) + + src.v[2] * element(0,2) ) ; + dst.v[1] = ( + src.v[0] * element(1,0) + + src.v[1] * element(1,1) + + src.v[2] * element(1,2) ) ; + dst.v[2] = ( + src.v[0] * element(2,0) + + src.v[1] * element(2,1) + + src.v[2] * element(2,2) ) ; + } + + + void mult_matrix_dir( vec3 & src_and_dst) const + { mult_matrix_dir(vec3(src_and_dst), src_and_dst); } + + + // dst = src * M + void mult_dir_matrix( const vec3 &src, vec3 &dst ) const + { + dst.v[0] = ( + src.v[0] * element(0,0) + + src.v[1] * element(1,0) + + src.v[2] * element(2,0) ) ; + dst.v[1] = ( + src.v[0] * element(0,1) + + src.v[1] * element(1,1) + + src.v[2] * element(2,1) ) ; + dst.v[2] = ( + src.v[0] * element(0,2) + + src.v[1] * element(1,2) + + src.v[2] * element(2,2) ) ; + } + + + void mult_dir_matrix( vec3 & src_and_dst) const + { mult_dir_matrix(vec3(src_and_dst), src_and_dst); } + + + real & operator () (int row, int col) + { return element(row,col); } + + const real & operator () (int row, int col) const + { return element(row,col); } + + real & element (int row, int col) + { return m[row | (col<<2)]; } + + const real & element (int row, int col) const + { return m[row | (col<<2)]; } + + matrix4 & operator *= ( const matrix4 & mat ) + { + mult_right( mat ); + return *this; + } + + matrix4 & operator *= ( const real & r ) + { + for (int i = 0; i < 4; ++i) + { + element(0,i) *= r; + element(1,i) *= r; + element(2,i) *= r; + element(3,i) *= r; + } + return *this; + } + + matrix4 & operator += ( const matrix4 & mat ) + { + for (int i = 0; i < 4; ++i) + { + element(0,i) += mat.element(0,i); + element(1,i) += mat.element(1,i); + element(2,i) += mat.element(2,i); + element(3,i) += mat.element(3,i); + } + return *this; + } + + friend matrix4 operator * ( const matrix4 & m1, const matrix4 & m2 ); + friend bool operator == ( const matrix4 & m1, const matrix4 & m2 ); + friend bool operator != ( const matrix4 & m1, const matrix4 & m2 ); + + //protected: + real m[16]; + }; + + inline + matrix4 operator * ( const matrix4 & m1, const matrix4 & m2 ) + { + matrix4 product; + + product = m1; + product.mult_right(m2); + + return product; + } + + inline + bool operator ==( const matrix4 &m1, const matrix4 &m2 ) + { + return ( + m1(0,0) == m2(0,0) && + m1(0,1) == m2(0,1) && + m1(0,2) == m2(0,2) && + m1(0,3) == m2(0,3) && + m1(1,0) == m2(1,0) && + m1(1,1) == m2(1,1) && + m1(1,2) == m2(1,2) && + m1(1,3) == m2(1,3) && + m1(2,0) == m2(2,0) && + m1(2,1) == m2(2,1) && + m1(2,2) == m2(2,2) && + m1(2,3) == m2(2,3) && + m1(3,0) == m2(3,0) && + m1(3,1) == m2(3,1) && + m1(3,2) == m2(3,2) && + m1(3,3) == m2(3,3) ); + } + + inline + bool operator != ( const matrix4 & m1, const matrix4 & m2 ) + { return !( m1 == m2 ); } + + + + + + + + + + + + + + class quaternion + { + public: + + quaternion() + { + *this = identity(); + } + + quaternion( const real v[4] ) + { + set_value( v ); + } + + + quaternion( real q0, real q1, real q2, real q3 ) + { + set_value( q0, q1, q2, q3 ); + } + + + quaternion( const matrix4 & m ) + { + set_value( m ); + } + + + quaternion( const vec3 &axis, real radians ) + { + set_value( axis, radians ); + } + + + quaternion( const vec3 &rotateFrom, const vec3 &rotateTo ) + { + set_value( rotateFrom, rotateTo ); + } + + quaternion( const vec3 & from_look, const vec3 & from_up, + const vec3 & to_look, const vec3& to_up) + { + set_value(from_look, from_up, to_look, to_up); + } + + const real * get_value() const + { + return &q[0]; + } + + void get_value( real &q0, real &q1, real &q2, real &q3 ) const + { + q0 = q[0]; + q1 = q[1]; + q2 = q[2]; + q3 = q[3]; + } + + quaternion & set_value( real q0, real q1, real q2, real q3 ) + { + q[0] = q0; + q[1] = q1; + q[2] = q2; + q[3] = q3; + counter = 0; + return *this; + } + + void get_value( vec3 &axis, real &radians ) const + { + radians = real(acos( q[3] ) * GLH_TWO); + if ( radians == GLH_ZERO ) + axis = vec3( 0.0, 0.0, 1.0 ); + else + { + axis.v[0] = q[0]; + axis.v[1] = q[1]; + axis.v[2] = q[2]; + axis.normalize(); + } + } + + void get_value( matrix4 & m ) const + { + real s, xs, ys, zs, wx, wy, wz, xx, xy, xz, yy, yz, zz; + + real norm = q[0] * q[0] + q[1] * q[1] + q[2] * q[2] + q[3] * q[3]; + + s = (equivalent(norm,GLH_ZERO)) ? GLH_ZERO : ( GLH_TWO / norm ); + + xs = q[0] * s; + ys = q[1] * s; + zs = q[2] * s; + + wx = q[3] * xs; + wy = q[3] * ys; + wz = q[3] * zs; + + xx = q[0] * xs; + xy = q[0] * ys; + xz = q[0] * zs; + + yy = q[1] * ys; + yz = q[1] * zs; + zz = q[2] * zs; + + m(0,0) = real( GLH_ONE - ( yy + zz )); + m(1,0) = real ( xy + wz ); + m(2,0) = real ( xz - wy ); + + m(0,1) = real ( xy - wz ); + m(1,1) = real ( GLH_ONE - ( xx + zz )); + m(2,1) = real ( yz + wx ); + + m(0,2) = real ( xz + wy ); + m(1,2) = real ( yz - wx ); + m(2,2) = real ( GLH_ONE - ( xx + yy )); + + m(3,0) = m(3,1) = m(3,2) = m(0,3) = m(1,3) = m(2,3) = GLH_ZERO; + m(3,3) = GLH_ONE; + } + + quaternion & set_value( const real * qp ) + { + memcpy(q,qp,sizeof(real) * 4); + + counter = 0; + return *this; + } + + quaternion & set_value( const matrix4 & m ) + { + real tr, s; + int i, j, k; + const int nxt[3] = { 1, 2, 0 }; + + tr = m(0,0) + m(1,1) + m(2,2); + + if ( tr > GLH_ZERO ) + { + s = real(sqrt( tr + m(3,3) )); + q[3] = real ( s * 0.5 ); + s = real(0.5) / s; + + q[0] = real ( ( m(1,2) - m(2,1) ) * s ); + q[1] = real ( ( m(2,0) - m(0,2) ) * s ); + q[2] = real ( ( m(0,1) - m(1,0) ) * s ); + } + else + { + i = 0; + if ( m(1,1) > m(0,0) ) + i = 1; + + if ( m(2,2) > m(i,i) ) + i = 2; + + j = nxt[i]; + k = nxt[j]; + + s = real(sqrt( ( m(i,j) - ( m(j,j) + m(k,k) )) + GLH_ONE )); + + q[i] = real ( s * 0.5 ); + s = real(0.5 / s); + + q[3] = real ( ( m(j,k) - m(k,j) ) * s ); + q[j] = real ( ( m(i,j) + m(j,i) ) * s ); + q[k] = real ( ( m(i,k) + m(k,i) ) * s ); + } + + counter = 0; + return *this; + } + + quaternion & set_value( const vec3 &axis, real theta ) + { + real sqnorm = axis.square_norm(); + + if (sqnorm <= GLH_EPSILON) + { + // axis too small. + x = y = z = 0.0; + w = 1.0; + } + else + { + theta *= real(0.5); + real sin_theta = real(sin(theta)); + + if (!equivalent(sqnorm,GLH_ONE)) + sin_theta /= real(sqrt(sqnorm)); + x = sin_theta * axis.v[0]; + y = sin_theta * axis.v[1]; + z = sin_theta * axis.v[2]; + w = real(cos(theta)); + } + return *this; + } + + quaternion & set_value( const vec3 & rotateFrom, const vec3 & rotateTo ) + { + vec3 p1, p2; + real alpha; + + p1 = rotateFrom; + p1.normalize(); + p2 = rotateTo; + p2.normalize(); + + alpha = p1.dot(p2); + + if(equivalent(alpha,GLH_ONE)) + { + *this = identity(); + return *this; + } + + // ensures that the anti-parallel case leads to a positive dot + if(equivalent(alpha,-GLH_ONE)) + { + vec3 v; + + if(p1.v[0] != p1.v[1] || p1.v[0] != p1.v[2]) + v = vec3(p1.v[1], p1.v[2], p1.v[0]); + else + v = vec3(-p1.v[0], p1.v[1], p1.v[2]); + + v -= p1 * p1.dot(v); + v.normalize(); + + set_value(v, GLH_PI); + return *this; + } + + p1 = p1.cross(p2); + p1.normalize(); + set_value(p1,real(acos(alpha))); + + counter = 0; + return *this; + } + + quaternion & set_value( const vec3 & from_look, const vec3 & from_up, + const vec3 & to_look, const vec3 & to_up) + { + quaternion r_look = quaternion(from_look, to_look); + + vec3 rotated_from_up(from_up); + r_look.mult_vec(rotated_from_up); + + quaternion r_twist = quaternion(rotated_from_up, to_up); + + *this = r_twist; + *this *= r_look; + return *this; + } + + quaternion & operator *= ( const quaternion & qr ) + { + quaternion ql(*this); + + w = ql.w * qr.w - ql.x * qr.x - ql.y * qr.y - ql.z * qr.z; + x = ql.w * qr.x + ql.x * qr.w + ql.y * qr.z - ql.z * qr.y; + y = ql.w * qr.y + ql.y * qr.w + ql.z * qr.x - ql.x * qr.z; + z = ql.w * qr.z + ql.z * qr.w + ql.x * qr.y - ql.y * qr.x; + + counter += qr.counter; + counter++; + counter_normalize(); + return *this; + } + + void normalize() + { + real rnorm = GLH_ONE / real(sqrt(w * w + x * x + y * y + z * z)); + if (equivalent(rnorm, GLH_ZERO)) + return; + x *= rnorm; + y *= rnorm; + z *= rnorm; + w *= rnorm; + counter = 0; + } + + friend bool operator == ( const quaternion & q1, const quaternion & q2 ); + + friend bool operator != ( const quaternion & q1, const quaternion & q2 ); + + friend quaternion operator * ( const quaternion & q1, const quaternion & q2 ); + + bool equals( const quaternion & r, real tolerance ) const + { + real t; + + t = ( + (q[0]-r.q[0])*(q[0]-r.q[0]) + + (q[1]-r.q[1])*(q[1]-r.q[1]) + + (q[2]-r.q[2])*(q[2]-r.q[2]) + + (q[3]-r.q[3])*(q[3]-r.q[3]) ); + if(t > GLH_EPSILON) + return false; + return 1; + } + + quaternion & conjugate() + { + q[0] *= -GLH_ONE; + q[1] *= -GLH_ONE; + q[2] *= -GLH_ONE; + return *this; + } + + quaternion & invert() + { + return conjugate(); + } + + quaternion inverse() const + { + quaternion r = *this; + return r.invert(); + } + + // + // Quaternion multiplication with cartesian vector + // v' = q*v*q(star) + // + void mult_vec( const vec3 &src, vec3 &dst ) const + { + real v_coef = w * w - x * x - y * y - z * z; + real u_coef = GLH_TWO * (src.v[0] * x + src.v[1] * y + src.v[2] * z); + real c_coef = GLH_TWO * w; + + dst.v[0] = v_coef * src.v[0] + u_coef * x + c_coef * (y * src.v[2] - z * src.v[1]); + dst.v[1] = v_coef * src.v[1] + u_coef * y + c_coef * (z * src.v[0] - x * src.v[2]); + dst.v[2] = v_coef * src.v[2] + u_coef * z + c_coef * (x * src.v[1] - y * src.v[0]); + } + + void mult_vec( vec3 & src_and_dst) const + { + mult_vec(vec3(src_and_dst), src_and_dst); + } + + void scale_angle( real scaleFactor ) + { + vec3 axis; + real radians; + + get_value(axis, radians); + radians *= scaleFactor; + set_value(axis, radians); + } + + static quaternion slerp( const quaternion & p, const quaternion & q, real alpha ) + { + quaternion r; + + real cos_omega = p.x * q.x + p.y * q.y + p.z * q.z + p.w * q.w; + // if B is on opposite hemisphere from A, use -B instead + + int bflip; + if ( ( bflip = (cos_omega < GLH_ZERO)) ) + cos_omega = -cos_omega; + + // complementary interpolation parameter + real beta = GLH_ONE - alpha; + + if(cos_omega <= GLH_ONE - GLH_EPSILON) + return p; + + real omega = real(acos(cos_omega)); + real one_over_sin_omega = GLH_ONE / real(sin(omega)); + + beta = real(sin(omega*beta) * one_over_sin_omega); + alpha = real(sin(omega*alpha) * one_over_sin_omega); + + if (bflip) + alpha = -alpha; + + r.x = beta * p.q[0]+ alpha * q.q[0]; + r.y = beta * p.q[1]+ alpha * q.q[1]; + r.z = beta * p.q[2]+ alpha * q.q[2]; + r.w = beta * p.q[3]+ alpha * q.q[3]; + return r; + } + + static quaternion identity() + { + static quaternion ident( vec3( 0.0, 0.0, 0.0 ), GLH_ONE ); + return ident; + } + + real & operator []( int i ) + { + assert(i < 4); + return q[i]; + } + + const real & operator []( int i ) const + { + assert(i < 4); + return q[i]; + } + + protected: + + void counter_normalize() + { + if (counter > GLH_QUATERNION_NORMALIZATION_THRESHOLD) + normalize(); + } + + union + { + struct + { + real q[4]; + }; + struct + { + real x; + real y; + real z; + real w; + }; + }; + + // renormalization counter + unsigned char counter; + }; + + inline + bool operator == ( const quaternion & q1, const quaternion & q2 ) + { + return (equivalent(q1.x, q2.x) && + equivalent(q1.y, q2.y) && + equivalent(q1.z, q2.z) && + equivalent(q1.w, q2.w) ); + } + + inline + bool operator != ( const quaternion & q1, const quaternion & q2 ) + { + return ! ( q1 == q2 ); + } + + inline + quaternion operator * ( const quaternion & q1, const quaternion & q2 ) + { + quaternion r(q1); + r *= q2; + return r; + } + + + + + + + + + + + class plane + { + public: + + plane() + { + planedistance = 0.0; + planenormal.set_value( 0.0, 0.0, 1.0 ); + } + + + plane( const vec3 &p0, const vec3 &p1, const vec3 &p2 ) + { + vec3 v0 = p1 - p0; + vec3 v1 = p2 - p0; + planenormal = v0.cross(v1); + planenormal.normalize(); + planedistance = p0.dot(planenormal); + } + + plane( const vec3 &normal, real distance ) + { + planedistance = distance; + planenormal = normal; + planenormal.normalize(); + } + + plane( const vec3 &normal, const vec3 &point ) + { + planenormal = normal; + planenormal.normalize(); + planedistance = point.dot(planenormal); + } + + void offset( real d ) + { + planedistance += d; + } + + bool intersect( const line &l, vec3 &intersection ) const + { + vec3 pos, dir; + vec3 pn = planenormal; + real pd = planedistance; + + pos = l.get_position(); + dir = l.get_direction(); + + if(dir.dot(pn) == 0.0) return 0; + pos -= pn*pd; + // now we're talking about a plane passing through the origin + if(pos.dot(pn) < 0.0) pn.negate(); + if(dir.dot(pn) > 0.0) dir.negate(); + vec3 ppos = pn * pos.dot(pn); + pos = (ppos.length()/dir.dot(-pn))*dir; + intersection = l.get_position(); + intersection += pos; + return 1; + } + void transform( const matrix4 &matrix ) + { + matrix4 invtr = matrix.inverse(); + invtr = invtr.transpose(); + + vec3 pntOnplane = planenormal * planedistance; + vec3 newPntOnplane; + vec3 newnormal; + + invtr.mult_dir_matrix(planenormal, newnormal); + matrix.mult_vec_matrix(pntOnplane, newPntOnplane); + + newnormal.normalize(); + planenormal = newnormal; + planedistance = newPntOnplane.dot(planenormal); + } + + bool is_in_half_space( const vec3 &point ) const + { + + if(( point.dot(planenormal) - planedistance) < 0.0) + return 0; + return 1; + } + + + real distance( const vec3 & point ) const + { + return planenormal.dot(point - planenormal*planedistance); + } + + const vec3 &get_normal() const + { + return planenormal; + } + + + real get_distance_from_origin() const + { + return planedistance; + } + + + friend bool operator == ( const plane & p1, const plane & p2 ); + + + friend bool operator != ( const plane & p1, const plane & p2 ); + + //protected: + vec3 planenormal; + real planedistance; + }; + + inline + bool operator == (const plane & p1, const plane & p2 ) + { + return ( p1.planedistance == p2.planedistance && p1.planenormal == p2.planenormal); + } + + inline + bool operator != ( const plane & p1, const plane & p2 ) + { return ! (p1 == p2); } + + + + } // "ns_##GLH_REAL" + + // make common typedefs... +#ifdef GLH_REAL_IS_FLOAT + typedef GLH_REAL_NAMESPACE::vec2 vec2f; + typedef GLH_REAL_NAMESPACE::vec3 vec3f; + typedef GLH_REAL_NAMESPACE::vec4 vec4f; + typedef GLH_REAL_NAMESPACE::quaternion quaternionf; + typedef GLH_REAL_NAMESPACE::quaternion rotationf; + typedef GLH_REAL_NAMESPACE::line linef; + typedef GLH_REAL_NAMESPACE::plane planef; + typedef GLH_REAL_NAMESPACE::matrix4 matrix4f; +#endif + + + + +} // namespace glh + + + +#endif + diff --git a/linden/indra/newview/English.lproj/InfoPlist.strings b/linden/indra/newview/English.lproj/InfoPlist.strings index cfd333f..b84c57d 100644 --- a/linden/indra/newview/English.lproj/InfoPlist.strings +++ b/linden/indra/newview/English.lproj/InfoPlist.strings @@ -2,6 +2,6 @@ CFBundleName = "Second Life"; -CFBundleShortVersionString = "Second Life version 1.23.0.0"; -CFBundleGetInfoString = "Second Life version 1.23.0.0, Copyright 2004-2008 Linden Research, Inc."; +CFBundleShortVersionString = "Second Life version 1.23.3.122255"; +CFBundleGetInfoString = "Second Life version 1.23.3.122255, Copyright 2004-2008 Linden Research, Inc."; diff --git a/linden/indra/newview/English.lproj/language.txt b/linden/indra/newview/English.lproj/language.txt new file mode 100644 index 0000000..bc0aa57 --- /dev/null +++ b/linden/indra/newview/English.lproj/language.txt @@ -0,0 +1 @@ +en-us \ No newline at end of file diff --git a/linden/indra/newview/German.lproj/language.txt b/linden/indra/newview/German.lproj/language.txt new file mode 100644 index 0000000..c42e816 --- /dev/null +++ b/linden/indra/newview/German.lproj/language.txt @@ -0,0 +1 @@ +de \ No newline at end of file diff --git a/linden/indra/newview/Info-SecondLife.plist b/linden/indra/newview/Info-SecondLife.plist index 62082fe..45878a0 100644 --- a/linden/indra/newview/Info-SecondLife.plist +++ b/linden/indra/newview/Info-SecondLife.plist @@ -32,7 +32,7 @@ CFBundleVersion - 1.23.0.0 + 1.23.3.122255 CSResourcesFileMapped diff --git a/linden/indra/newview/Japanese.lproj/language.txt b/linden/indra/newview/Japanese.lproj/language.txt new file mode 100644 index 0000000..c6e3ab6 --- /dev/null +++ b/linden/indra/newview/Japanese.lproj/language.txt @@ -0,0 +1 @@ +ja \ No newline at end of file diff --git a/linden/indra/newview/Korean.lproj/language.txt b/linden/indra/newview/Korean.lproj/language.txt new file mode 100644 index 0000000..b03ec72 --- /dev/null +++ b/linden/indra/newview/Korean.lproj/language.txt @@ -0,0 +1 @@ +ko \ No newline at end of file diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index 7ae9212..5ebf14d 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml @@ -4804,7 +4804,7 @@ IMInChatConsole Comment - Copy IM into background chat console + Copy IM into chat console Persist 1 Type @@ -4812,6 +4812,17 @@ Value 1 + IMInChatHistory + + Comment + Copy IM into chat history + Persist + 1 + Type + Boolean + Value + 0 + IMShowTimestamps Comment @@ -8777,7 +8788,7 @@ Comment Display XUI Names as Tooltips Persist - 1 + 0 Type Boolean Value diff --git a/linden/indra/newview/da.lproj/language.txt b/linden/indra/newview/da.lproj/language.txt new file mode 100644 index 0000000..316d25d --- /dev/null +++ b/linden/indra/newview/da.lproj/language.txt @@ -0,0 +1 @@ +da \ No newline at end of file diff --git a/linden/indra/newview/es.lproj/language.txt b/linden/indra/newview/es.lproj/language.txt new file mode 100644 index 0000000..6c43814 --- /dev/null +++ b/linden/indra/newview/es.lproj/language.txt @@ -0,0 +1 @@ +es \ No newline at end of file diff --git a/linden/indra/newview/featuretable.txt b/linden/indra/newview/featuretable.txt index 05bdf64..d557df3 100644 --- a/linden/indra/newview/featuretable.txt +++ b/linden/indra/newview/featuretable.txt @@ -1,4 +1,4 @@ -version 19 +version 20 // NOTE: This is mostly identical to featuretable_mac.txt with a few differences // Should be combined into one table @@ -245,6 +245,7 @@ RenderVBOEnable 1 0 list Intel RenderAnisotropic 1 0 RenderLightingDetail 1 0 +RenderUseImpostors 0 0 list GeForce2 RenderAnisotropic 1 0 diff --git a/linden/indra/newview/featuretable_linux.txt b/linden/indra/newview/featuretable_linux.txt index 09105b8..57d712e 100644 --- a/linden/indra/newview/featuretable_linux.txt +++ b/linden/indra/newview/featuretable_linux.txt @@ -1,4 +1,4 @@ -version 19 +version 20 // NOTE: This is mostly identical to featuretable_mac.txt with a few differences // Should be combined into one table diff --git a/linden/indra/newview/featuretable_mac.txt b/linden/indra/newview/featuretable_mac.txt index fd2496d..15974c0 100644 --- a/linden/indra/newview/featuretable_mac.txt +++ b/linden/indra/newview/featuretable_mac.txt @@ -1,4 +1,4 @@ -version 19 +version 20 // NOTE: This is mostly identical to featuretable_mac.txt with a few differences // Should be combined into one table diff --git a/linden/indra/newview/fr.lproj/language.txt b/linden/indra/newview/fr.lproj/language.txt new file mode 100644 index 0000000..717280a --- /dev/null +++ b/linden/indra/newview/fr.lproj/language.txt @@ -0,0 +1 @@ +fr \ No newline at end of file diff --git a/linden/indra/newview/hu.lproj/language.txt b/linden/indra/newview/hu.lproj/language.txt new file mode 100644 index 0000000..6c604cf --- /dev/null +++ b/linden/indra/newview/hu.lproj/language.txt @@ -0,0 +1 @@ +hu \ No newline at end of file diff --git a/linden/indra/newview/it.lproj/language.txt b/linden/indra/newview/it.lproj/language.txt new file mode 100644 index 0000000..c919714 --- /dev/null +++ b/linden/indra/newview/it.lproj/language.txt @@ -0,0 +1 @@ +it \ No newline at end of file diff --git a/linden/indra/newview/linux_tools/wrapper.sh b/linden/indra/newview/linux_tools/wrapper.sh index e188abe..dfe19c1 100755 --- a/linden/indra/newview/linux_tools/wrapper.sh +++ b/linden/indra/newview/linux_tools/wrapper.sh @@ -94,9 +94,7 @@ cd "${RUN_PATH}" ./register_secondlifeprotocol.sh ## Before we mess with LD_LIBRARY_PATH, save the old one to restore for ## subprocesses that care. -if [ "${LD_LIBRARY_PATH+isset}" = "isset" ]; then - export SAVED_LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" -fi +export SAVED_LD_LIBRARY_PATH="${LD_LIBRARY_PATH}" if [ -n "$LL_TCMALLOC" ]; then tcmalloc_libs='/usr/lib/libtcmalloc.so.0 /usr/lib/libstacktrace.so.0 /lib/libpthread.so.0' diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp index c722b89..6359794 100644 --- a/linden/indra/newview/llagent.cpp +++ b/linden/indra/newview/llagent.cpp @@ -1316,14 +1316,19 @@ LLQuaternion LLAgent::getQuat() const //----------------------------------------------------------------------------- LLVector3 LLAgent::calcFocusOffset(LLViewerObject *object, LLVector3 original_focus_point, S32 x, S32 y) { - // calculate offset based on view direction - BOOL is_avatar = object->isAvatar(); - // since the animation system allows the avatars facing and position to deviate from its nominal LLViewerObject/LLDrawable transform - // calculate the focus-specific orientation for avatars based off the pelvis joint - // NOTE: pelvis no longer good candidate, removed. DEV-30589 LLMatrix4 obj_matrix = object->getRenderMatrix(); LLQuaternion obj_rot = object->getRenderRotation(); LLVector3 obj_pos = object->getRenderPosition(); + + BOOL is_avatar = object->isAvatar(); + // if is avatar - don't do any funk heuristics to position the focal point + // see DEV-30589 + if (is_avatar) + { + return original_focus_point - obj_pos; + } + + LLQuaternion inv_obj_rot = ~obj_rot; // get inverse of rotation LLVector3 object_extents = object->getScale(); // make sure they object extents are non-zero diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp index 8fc2578..57bc230 100644 --- a/linden/indra/newview/llappviewer.cpp +++ b/linden/indra/newview/llappviewer.cpp @@ -2042,7 +2042,7 @@ bool LLAppViewer::initConfiguration() void LLAppViewer::checkForCrash(void) { -#if 1 //*REMOVE:Mani LL_SEND_CRASH_REPORTS +#if LL_SEND_CRASH_REPORTS //*NOTE:Mani The current state of the crash handler has the MacOSX // sending all crash reports as freezes, in order to let // the MacOSX CrashRepoter generate stacks before spawning the @@ -2052,23 +2052,36 @@ void LLAppViewer::checkForCrash(void) #if LL_DARWIN if(gLastExecEvent != LAST_EXEC_NORMAL) #else - if (gLastExecEvent == LAST_EXEC_FROZE || gLastExecEvent == LAST_EXEC_OTHER_CRASH) + if (gLastExecEvent == LAST_EXEC_FROZE) #endif { llinfos << "Last execution froze, requesting to send crash report." << llendl; // // Pop up a freeze or crash warning dialog // - std::ostringstream msg; - msg << gSecondLife - << " appears to have frozen or crashed on the previous run.\n" - << "Would you like to send a crash report?"; - std::string alert; - alert = gSecondLife; - alert += " Alert"; - S32 choice = OSMessageBox(msg.str(), + S32 choice; + if(gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING) == CRASH_BEHAVIOR_ASK) + { + std::ostringstream msg; + msg << gSecondLife + << " appears to have frozen or crashed on the previous run.\n" + << "Would you like to send a crash report?"; + std::string alert; + alert = gSecondLife; + alert += " Alert"; + choice = OSMessageBox(msg.str(), alert, OSMB_YESNO); + } + else if(gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING) == CRASH_BEHAVIOR_NEVER_SEND) + { + choice = OSBTN_NO; + } + else + { + choice = OSBTN_YES; + } + if (OSBTN_YES == choice) { llinfos << "Sending crash report." << llendl; @@ -2343,6 +2356,8 @@ void LLAppViewer::handleViewerCrash() gDebugInfo["SessionLength"] = F32(LLFrameTimer::getElapsedSeconds()); gDebugInfo["StartupState"] = LLStartUp::getStartupStateString(); gDebugInfo["RAMInfo"]["Allocated"] = (LLSD::Integer) getCurrentRSS() >> 10; + gDebugInfo["FirstLogin"] = (LLSD::Boolean) gAgent.isFirstLogin(); + gDebugInfo["FirstRunThisInstall"] = gSavedSettings.getBOOL("FirstRunThisInstall"); if(gLogoutInProgress) { diff --git a/linden/indra/newview/llappviewerwin32.cpp b/linden/indra/newview/llappviewerwin32.cpp index 1692892..7a8d486 100644 --- a/linden/indra/newview/llappviewerwin32.cpp +++ b/linden/indra/newview/llappviewerwin32.cpp @@ -159,9 +159,31 @@ int APIENTRY WINMAIN(HINSTANCE hInstance, int nCmdShow) { LLMemType mt1(LLMemType::MTYPE_STARTUP); + + const S32 MAX_HEAPS = 255; + DWORD heap_enable_lfh_error[MAX_HEAPS]; + S32 num_heaps = 0; #if WINDOWS_CRT_MEM_CHECKS && !INCLUDE_VLD _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); // dump memory leaks on exit +#elif 1 + // Experimental - enable the low fragmentation heap + // This results in a 2-3x improvement in opening a new Inventory window (which uses a large numebr of allocations) + // Note: This won't work when running from the debugger unless the _NO_DEBUG_HEAP environment variable is set to 1 + + _CrtSetDbgFlag(0); // default, just making explicit + + ULONG ulEnableLFH = 2; + HANDLE* hHeaps = new HANDLE[MAX_HEAPS]; + num_heaps = GetProcessHeaps(MAX_HEAPS, hHeaps); + for(S32 i = 0; i < num_heaps; i++) + { + bool success = HeapSetInformation(hHeaps[i], HeapCompatibilityInformation, &ulEnableLFH, sizeof(ulEnableLFH)); + if (success) + heap_enable_lfh_error[i] = 0; + else + heap_enable_lfh_error[i] = GetLastError(); + } #endif // *FIX: global @@ -183,8 +205,21 @@ int APIENTRY WINMAIN(HINSTANCE hInstance, llwarns << "Application init failed." << llendl; return -1; } - - // Run the application main loop + + // Have to wait until after logging is initialized to display LFH info + if (num_heaps > 0) + { + llinfos << "Attempted to enable LFH for " << num_heaps << " heaps." << llendl; + for(S32 i = 0; i < num_heaps; i++) + { + if (heap_enable_lfh_error[i]) + { + llinfos << " Failed to enable LFH for heap: " << i << " Error: " << heap_enable_lfh_error[i] << llendl; + } + } + } + + // Run the application main loop if(!LLApp::isQuitting()) { viewer_app_ptr->mainLoop(); diff --git a/linden/indra/newview/lldrawable.cpp b/linden/indra/newview/lldrawable.cpp index 47e4a22..44a5de9 100644 --- a/linden/indra/newview/lldrawable.cpp +++ b/linden/indra/newview/lldrawable.cpp @@ -673,7 +673,7 @@ BOOL LLDrawable::updateMoveDamped() return done_moving; } -void LLDrawable::updateDistance(LLCamera& camera) +void LLDrawable::updateDistance(LLCamera& camera, bool force_update) { //switch LOD with the spatial group to avoid artifacts //LLSpatialGroup* sg = getSpatialGroup(); @@ -695,7 +695,7 @@ void LLDrawable::updateDistance(LLCamera& camera) for (S32 i = 0; i < getNumFaces(); i++) { LLFace* facep = getFace(i); - if (facep->getPoolType() == LLDrawPool::POOL_ALPHA) + if (force_update || facep->getPoolType() == LLDrawPool::POOL_ALPHA) { LLVector3 box = (facep->mExtents[1] - facep->mExtents[0]) * 0.25f; LLVector3 v = (facep->mCenterLocal-camera.getOrigin()); @@ -736,11 +736,7 @@ void LLDrawable::updateTexture() if (getVOVolume()) { - if (!isActive()) - { - //gPipeline.markMoved(this); - } - else + if (isActive()) { if (isRoot()) { @@ -1269,7 +1265,7 @@ void LLSpatialBridge::setVisible(LLCamera& camera_in, std::vector* } } -void LLSpatialBridge::updateDistance(LLCamera& camera_in) +void LLSpatialBridge::updateDistance(LLCamera& camera_in, bool force_update) { if (mDrawable == NULL) { @@ -1279,7 +1275,7 @@ void LLSpatialBridge::updateDistance(LLCamera& camera_in) LLCamera camera = transformCamera(camera_in); - mDrawable->updateDistance(camera); + mDrawable->updateDistance(camera, force_update); if (mDrawable->getVObj()) { @@ -1296,7 +1292,7 @@ void LLSpatialBridge::updateDistance(LLCamera& camera_in) if (!drawable->isAvatar()) { - drawable->updateDistance(camera); + drawable->updateDistance(camera, force_update); } } } diff --git a/linden/indra/newview/lldrawable.h b/linden/indra/newview/lldrawable.h index f5a66a3..6e0b6e8 100644 --- a/linden/indra/newview/lldrawable.h +++ b/linden/indra/newview/lldrawable.h @@ -151,7 +151,7 @@ public: void updateTexture(); void updateMaterial(); - virtual void updateDistance(LLCamera& camera); + virtual void updateDistance(LLCamera& camera, bool force_update); BOOL updateGeometry(BOOL priority); void updateFaceSize(S32 idx); diff --git a/linden/indra/newview/lldrawpoolsky.cpp b/linden/indra/newview/lldrawpoolsky.cpp index 7f21adc..f0ed380 100644 --- a/linden/indra/newview/lldrawpoolsky.cpp +++ b/linden/indra/newview/lldrawpoolsky.cpp @@ -61,8 +61,8 @@ LLDrawPool *LLDrawPoolSky::instancePool() void LLDrawPoolSky::prerender() { - mVertexShaderLevel = LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_ENVIRONMENT); -// gSky.mVOSkyp->updateGeometry(gSky.mVOSkyp->mDrawable); + mVertexShaderLevel = LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_ENVIRONMENT); + gSky.mVOSkyp->updateGeometry(gSky.mVOSkyp->mDrawable); } void LLDrawPoolSky::render(S32 pass) @@ -97,7 +97,6 @@ void LLDrawPoolSky::render(S32 pass) } - LLVOSky *voskyp = gSky.mVOSkyp; LLGLSPipelineSkyBox gls_skybox; LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE); @@ -120,43 +119,9 @@ void LLDrawPoolSky::render(S32 pass) { renderSkyCubeFace(i); } - - LLFace *hbfaces[3]; - hbfaces[0] = NULL; - hbfaces[1] = NULL; - hbfaces[2] = NULL; - for (S32 curr_face = 0; curr_face < face_count; curr_face++) - { - LLFace* facep = mDrawFace[curr_face]; - if (voskyp->isSameFace(LLVOSky::FACE_SUN, facep)) - { - hbfaces[0] = facep; - } - if (voskyp->isSameFace(LLVOSky::FACE_MOON, facep)) - { - hbfaces[1] = facep; - } - if (voskyp->isSameFace(LLVOSky::FACE_BLOOM, facep)) - { - hbfaces[2] = facep; - } - } LLGLEnable blend(GL_BLEND); - if (hbfaces[2]) - { - // renderSunHalo(hbfaces[2]); - } - if (hbfaces[0]) - { - // renderHeavenlyBody(0, hbfaces[0]); - } - if (hbfaces[1]) - { - // renderHeavenlyBody(1, hbfaces[1]); - } - glPopMatrix(); } @@ -181,35 +146,6 @@ void LLDrawPoolSky::renderSkyCubeFace(U8 side) } } -void LLDrawPoolSky::renderHeavenlyBody(U8 hb, LLFace* face) -{ - if ( !mHB[hb]->getDraw() ) return; - if (! face->getGeomCount()) return; - - LLImageGL* tex = face->getTexture(); - gGL.getTexUnit(0)->bind(tex); - LLColor4 color(mHB[hb]->getInterpColor()); - LLOverrideFaceColor override(this, color); - face->renderIndexed(); -} - - - -void LLDrawPoolSky::renderSunHalo(LLFace* face) -{ - if (! mHB[0]->getDraw()) return; - if (! face->getGeomCount()) return; - - LLImageGL* tex = face->getTexture(); - gGL.getTexUnit(0)->bind(tex); - LLColor4 color(mHB[0]->getInterpColor()); - color.mV[3] = llclamp(mHB[0]->getHaloBrighness(), 0.f, 1.f); - - LLOverrideFaceColor override(this, color); - face->renderIndexed(); -} - - void LLDrawPoolSky::renderForSelect() { } diff --git a/linden/indra/newview/lldrawpoolsky.h b/linden/indra/newview/lldrawpoolsky.h index f35b114..8595d73 100644 --- a/linden/indra/newview/lldrawpoolsky.h +++ b/linden/indra/newview/lldrawpoolsky.h @@ -36,14 +36,12 @@ #include "lldrawpool.h" class LLSkyTex; -class LLHeavenBody; class LLGLSLShader; class LLDrawPoolSky : public LLFacePool { private: LLSkyTex *mSkyTex; - LLHeavenBody *mHB[2]; // Sun and Moon LLGLSLShader *mShader; public: @@ -69,8 +67,6 @@ public: /*virtual*/ void renderForSelect(); /*virtual*/ void endRenderPass(S32 pass); void setSkyTex(LLSkyTex* const st) { mSkyTex = st; } - void setSun(LLHeavenBody* sun_flag) { mHB[0] = sun_flag; } - void setMoon(LLHeavenBody* moon) { mHB[1] = moon; } void renderSkyCubeFace(U8 side); void renderHeavenlyBody(U8 hb, LLFace* face); diff --git a/linden/indra/newview/llface.cpp b/linden/indra/newview/llface.cpp index 3dfe6a2..69edcca 100644 --- a/linden/indra/newview/llface.cpp +++ b/linden/indra/newview/llface.cpp @@ -1150,6 +1150,21 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, BOOL LLFace::verify(const U32* indices_array) const { BOOL ok = TRUE; + + if( mVertexBuffer.isNull() ) + { + if( mGeomCount ) + { + // This happens before teleports as faces are torn down. + // Stop the crash in DEV-31893 with a null pointer check, + // but present this info. + // To clean up the log, the geometry could be cleared, or the + // face could otherwise be marked for no ::verify. + llinfos << "Face with no vertex buffer and " << mGeomCount << " mGeomCount" << llendl; + } + return TRUE; + } + // First, check whether the face data fits within the pool's range. if ((mGeomIndex + mGeomCount) > mVertexBuffer->getNumVerts()) { diff --git a/linden/indra/newview/llfloaterchat.cpp b/linden/indra/newview/llfloaterchat.cpp index ea529d1..0e9295f 100644 --- a/linden/indra/newview/llfloaterchat.cpp +++ b/linden/indra/newview/llfloaterchat.cpp @@ -406,6 +406,9 @@ void LLFloaterChat::addChat(const LLChat& chat, if(from_instant_message && gSavedPerAccountSettings.getBOOL("LogChatIM")) log_chat_text(chat); + + if(from_instant_message && gSavedSettings.getBOOL("IMInChatHistory")) + addChatHistory(chat,false); LLTextParser* highlight = LLTextParser::getInstance(); highlight->triggerAlerts(gAgent.getID(), gAgent.getPositionGlobal(), chat.mText, gViewerWindow->getWindow()); diff --git a/linden/indra/newview/llfloaterimagepreview.cpp b/linden/indra/newview/llfloaterimagepreview.cpp index 7dce9a5..24b9929 100644 --- a/linden/indra/newview/llfloaterimagepreview.cpp +++ b/linden/indra/newview/llfloaterimagepreview.cpp @@ -73,7 +73,9 @@ const S32 PREVIEW_TEXTURE_HEIGHT = 300; // LLFloaterImagePreview() //----------------------------------------------------------------------------- LLFloaterImagePreview::LLFloaterImagePreview(const std::string& filename) : - LLFloaterNameDesc(filename) + LLFloaterNameDesc(filename), + mAvatarPreview(NULL), + mSculptedPreview(NULL) { mLastMouseX = 0; mLastMouseY = 0; @@ -211,13 +213,16 @@ void LLFloaterImagePreview::onPreviewTypeCommit(LLUICtrl* ctrl, void* userdata) //----------------------------------------------------------------------------- void LLFloaterImagePreview::clearAllPreviewTextures() { - mAvatarPreview->clearPreviewTexture("mHairMesh0"); - mAvatarPreview->clearPreviewTexture("mUpperBodyMesh0"); - mAvatarPreview->clearPreviewTexture("mLowerBodyMesh0"); - mAvatarPreview->clearPreviewTexture("mHeadMesh0"); - mAvatarPreview->clearPreviewTexture("mUpperBodyMesh0"); - mAvatarPreview->clearPreviewTexture("mLowerBodyMesh0"); - mAvatarPreview->clearPreviewTexture("mSkirtMesh0"); + if (mAvatarPreview) + { + mAvatarPreview->clearPreviewTexture("mHairMesh0"); + mAvatarPreview->clearPreviewTexture("mUpperBodyMesh0"); + mAvatarPreview->clearPreviewTexture("mLowerBodyMesh0"); + mAvatarPreview->clearPreviewTexture("mHeadMesh0"); + mAvatarPreview->clearPreviewTexture("mUpperBodyMesh0"); + mAvatarPreview->clearPreviewTexture("mLowerBodyMesh0"); + mAvatarPreview->clearPreviewTexture("mSkirtMesh0"); + } } //----------------------------------------------------------------------------- @@ -668,11 +673,14 @@ void LLImagePreviewAvatar::setPreviewTarget(const std::string& joint_name, const //----------------------------------------------------------------------------- void LLImagePreviewAvatar::clearPreviewTexture(const std::string& mesh_name) { - LLViewerJointMesh *mesh = (LLViewerJointMesh*)mDummyAvatar->mRoot.findJoint(mesh_name); - // clear out existing test mesh - if (mesh) + if (mDummyAvatar) { - mesh->setTestTexture(0); + LLViewerJointMesh *mesh = (LLViewerJointMesh*)mDummyAvatar->mRoot.findJoint(mesh_name); + // clear out existing test mesh + if (mesh) + { + mesh->setTestTexture(0); + } } } @@ -793,27 +801,11 @@ LLImagePreviewSculpted::LLImagePreviewSculpted(S32 width, S32 height) : LLDynami F32 const HIGHEST_LOD = 4.0f; mVolume = new LLVolume(volume_params, HIGHEST_LOD); - - /* - mDummyAvatar = new LLVOAvatar(LLUUID::null, LL_PCODE_LEGACY_AVATAR, gAgent.getRegion()); - mDummyAvatar->createDrawable(&gPipeline); - mDummyAvatar->mIsDummy = TRUE; - mDummyAvatar->mSpecialRenderMode = 2; - mDummyAvatar->setPositionAgent(LLVector3::zero); - mDummyAvatar->slamPosition(); - mDummyAvatar->updateJointLODs(); - mDummyAvatar->updateGeometry(mDummyAvatar->mDrawable); - gPipeline.markVisible(mDummyAvatar->mDrawable, *LLViewerCamera::getInstance()); - mTextureName = 0; - */ } LLImagePreviewSculpted::~LLImagePreviewSculpted() { - /* - mDummyAvatar->markDead(); - */ } diff --git a/linden/indra/newview/llfloaterlagmeter.cpp b/linden/indra/newview/llfloaterlagmeter.cpp index 91471ca..8fe455f 100644 --- a/linden/indra/newview/llfloaterlagmeter.cpp +++ b/linden/indra/newview/llfloaterlagmeter.cpp @@ -180,7 +180,7 @@ void LLFloaterLagMeter::determineClient() { mClientCause->setText( getString("client_texture_loading_cause_msg", mStringArgs) ); } - else if((LLViewerImage::sBoundTextureMemory >> 20) > LLViewerImage::sMaxBoundTextureMem) + else if((BYTES_TO_MEGA_BYTES(LLViewerImage::sBoundTextureMemoryInBytes)) > LLViewerImage::sMaxBoundTextureMemInMegaBytes) { mClientCause->setText( getString("client_texture_memory_cause_msg", mStringArgs) ); } diff --git a/linden/indra/newview/llsky.cpp b/linden/indra/newview/llsky.cpp index b779aa0..ac7e865 100644 --- a/linden/indra/newview/llsky.cpp +++ b/linden/indra/newview/llsky.cpp @@ -422,20 +422,6 @@ void LLSky::updateFog(const F32 distance) void LLSky::updateCull() { - /*if (mVOSkyp.notNull() && mVOSkyp->mDrawable.notNull()) - { - gPipeline.markVisible(mVOSkyp->mDrawable); - } - else - { - llinfos << "No sky drawable!" << llendl; - }*/ - - /*if (mVOGroundp.notNull() && mVOGroundp->mDrawable.notNull()) - { - gPipeline.markVisible(mVOGroundp->mDrawable); - }*/ - // *TODO: do culling for wl sky properly -Brad } diff --git a/linden/indra/newview/llspatialpartition.h b/linden/indra/newview/llspatialpartition.h index 4d67b37..df96152 100644 --- a/linden/indra/newview/llspatialpartition.h +++ b/linden/indra/newview/llspatialpartition.h @@ -399,7 +399,7 @@ public: virtual void updateSpatialExtents(); virtual void updateBinRadius(); virtual void setVisible(LLCamera& camera_in, std::vector* results = NULL, BOOL for_select = FALSE); - virtual void updateDistance(LLCamera& camera_in); + virtual void updateDistance(LLCamera& camera_in, bool force_update); virtual void makeActive(); virtual void move(LLDrawable *drawablep, LLSpatialGroup *curp, BOOL immediate = FALSE); virtual BOOL updateMove(); diff --git a/linden/indra/newview/lltexlayer.cpp b/linden/indra/newview/lltexlayer.cpp index b05da8c..424c525 100644 --- a/linden/indra/newview/lltexlayer.cpp +++ b/linden/indra/newview/lltexlayer.cpp @@ -115,7 +115,7 @@ LLTexLayerSetBuffer::~LLTexLayerSetBuffer() if( mBumpTex.notNull()) { mBumpTex = NULL ; - LLImageGL::sGlobalTextureMemory -= mWidth * mHeight * 4; + LLImageGL::sGlobalTextureMemoryInBytes -= mWidth * mHeight * 4; LLTexLayerSetBuffer::sGLBumpByteCount -= mWidth * mHeight * 4; } } @@ -132,7 +132,7 @@ void LLTexLayerSetBuffer::destroyGLTexture() if( mBumpTex.notNull() ) { mBumpTex = NULL ; - LLImageGL::sGlobalTextureMemory -= mWidth * mHeight * 4; + LLImageGL::sGlobalTextureMemoryInBytes -= mWidth * mHeight * 4; LLTexLayerSetBuffer::sGLBumpByteCount -= mWidth * mHeight * 4; } @@ -163,7 +163,7 @@ void LLTexLayerSetBuffer::createBumpTexture() gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); - LLImageGL::sGlobalTextureMemory += mWidth * mHeight * 4; + LLImageGL::sGlobalTextureMemoryInBytes += mWidth * mHeight * 4; LLTexLayerSetBuffer::sGLBumpByteCount += mWidth * mHeight * 4; } } diff --git a/linden/indra/newview/lltextureview.cpp b/linden/indra/newview/lltextureview.cpp index f00d5e5..d356bf9 100644 --- a/linden/indra/newview/lltextureview.cpp +++ b/linden/indra/newview/lltextureview.cpp @@ -384,10 +384,10 @@ private: void LLGLTexMemBar::draw() { - S32 bound_mem = (LLViewerImage::sBoundTextureMemory >> 20); - S32 max_bound_mem = LLViewerImage::sMaxBoundTextureMem; - S32 total_mem = (LLViewerImage::sTotalTextureMemory >> 20); - S32 max_total_mem = LLViewerImage::sMaxTotalTextureMem; + S32 bound_mem = BYTES_TO_MEGA_BYTES(LLViewerImage::sBoundTextureMemoryInBytes); + S32 max_bound_mem = LLViewerImage::sMaxBoundTextureMemInMegaBytes; + S32 total_mem = BYTES_TO_MEGA_BYTES(LLViewerImage::sTotalTextureMemoryInBytes); + S32 max_total_mem = LLViewerImage::sMaxTotalTextureMemInMegaBytes; F32 discard_bias = LLViewerImage::sDesiredDiscardBias; S32 line_height = (S32)(LLFontGL::getFontMonospace()->getLineHeight() + .5f); diff --git a/linden/indra/newview/lltoolcomp.cpp b/linden/indra/newview/lltoolcomp.cpp index 0b6e018..b6090bc 100644 --- a/linden/indra/newview/lltoolcomp.cpp +++ b/linden/indra/newview/lltoolcomp.cpp @@ -64,6 +64,9 @@ const S32 HPAD = 4; extern LLControlGroup gSavedSettings; +// we use this in various places instead of NULL +static LLTool* sNullTool = new LLTool(std::string("null"), NULL); + //----------------------------------------------------------------------- // LLToolComposite @@ -87,7 +90,9 @@ void LLToolComposite::setCurrentTool( LLTool* new_tool ) LLToolComposite::LLToolComposite(const std::string& name) : LLTool(name), - mCur(NULL), mDefault(NULL), mSelected(FALSE), + mCur(sNullTool), + mDefault(sNullTool), + mSelected(FALSE), mMouseDown(FALSE), mManip(NULL), mSelectRect(NULL) { } @@ -638,7 +643,7 @@ LLToolCompGun::LLToolCompGun() { mGun = new LLToolGun(this); mGrab = new LLToolGrab(this); - mNull = new LLTool(std::string("null"), this); + mNull = sNullTool; setCurrentTool(mGun); mDefault = mGun; @@ -653,7 +658,8 @@ LLToolCompGun::~LLToolCompGun() delete mGrab; mGrab = NULL; - delete mNull; + // don't delete a static object + // delete mNull; mNull = NULL; } diff --git a/linden/indra/newview/llviewerimage.cpp b/linden/indra/newview/llviewerimage.cpp index ca8ed26..272fcb5 100644 --- a/linden/indra/newview/llviewerimage.cpp +++ b/linden/indra/newview/llviewerimage.cpp @@ -76,11 +76,11 @@ F32 LLViewerImage::sDesiredDiscardBias = 0.f; static F32 sDesiredDiscardBiasMin = -2.0f; // -max number of levels to improve image quality by static F32 sDesiredDiscardBiasMax = 1.5f; // max number of levels to reduce image quality by F32 LLViewerImage::sDesiredDiscardScale = 1.1f; -S32 LLViewerImage::sBoundTextureMemory = 0; -S32 LLViewerImage::sTotalTextureMemory = 0; -S32 LLViewerImage::sMaxBoundTextureMem = 0; -S32 LLViewerImage::sMaxTotalTextureMem = 0; -S32 LLViewerImage::sMaxDesiredTextureMem = 0 ; +S32 LLViewerImage::sBoundTextureMemoryInBytes = 0; +S32 LLViewerImage::sTotalTextureMemoryInBytes = 0; +S32 LLViewerImage::sMaxBoundTextureMemInMegaBytes = 0; +S32 LLViewerImage::sMaxTotalTextureMemInMegaBytes = 0; +S32 LLViewerImage::sMaxDesiredTextureMemInBytes = 0 ; BOOL LLViewerImage::sDontLoadVolumeTextures = FALSE; // static @@ -153,15 +153,17 @@ F32 texmem_middle_bound_scale = 0.925f; void LLViewerImage::updateClass(const F32 velocity, const F32 angular_velocity) { llpushcallstacks ; - sBoundTextureMemory = LLImageGL::sBoundTextureMemory;//in bytes - sTotalTextureMemory = LLImageGL::sGlobalTextureMemory;//in bytes - sMaxBoundTextureMem = gImageList.getMaxResidentTexMem();//in MB - sMaxTotalTextureMem = gImageList.getMaxTotalTextureMem() ;//in MB + sBoundTextureMemoryInBytes = LLImageGL::sBoundTextureMemoryInBytes;//in bytes + sTotalTextureMemoryInBytes = LLImageGL::sGlobalTextureMemoryInBytes;//in bytes + sMaxBoundTextureMemInMegaBytes = gImageList.getMaxResidentTexMem();//in MB + sMaxTotalTextureMemInMegaBytes = gImageList.getMaxTotalTextureMem() ;//in MB + sMaxDesiredTextureMemInBytes = MEGA_BYTES_TO_BYTES(sMaxTotalTextureMemInMegaBytes) ; //in Bytes, by default and when total used texture memory is small. - if ((sBoundTextureMemory >> 20) >= sMaxBoundTextureMem || - (sTotalTextureMemory >> 20) >= sMaxTotalTextureMem) + if (BYTES_TO_MEGA_BYTES(sBoundTextureMemoryInBytes) >= sMaxBoundTextureMemInMegaBytes || + BYTES_TO_MEGA_BYTES(sTotalTextureMemoryInBytes) >= sMaxTotalTextureMemInMegaBytes) { - sMaxDesiredTextureMem = llmin((S32)(sMaxTotalTextureMem * 0.75f) , 0x20000000) ;//512 MB + //when texture memory overflows, lower down the threashold to release the textures more aggressively. + sMaxDesiredTextureMemInBytes = llmin((S32)(sMaxDesiredTextureMemInBytes * 0.75f) , MEGA_BYTES_TO_BYTES(MAX_VIDEO_RAM_IN_MEGA_BYTES)) ;//512 MB // If we are using more texture memory than we should, // scale up the desired discard level @@ -172,8 +174,8 @@ void LLViewerImage::updateClass(const F32 velocity, const F32 angular_velocity) } } else if (sDesiredDiscardBias > 0.0f && - (sBoundTextureMemory >> 20) < sMaxBoundTextureMem*texmem_lower_bound_scale && - (sTotalTextureMemory >> 20) < sMaxTotalTextureMem*texmem_lower_bound_scale) + BYTES_TO_MEGA_BYTES(sBoundTextureMemoryInBytes) < sMaxBoundTextureMemInMegaBytes * texmem_lower_bound_scale && + BYTES_TO_MEGA_BYTES(sTotalTextureMemoryInBytes) < sMaxTotalTextureMemInMegaBytes * texmem_lower_bound_scale) { // If we are using less texture memory than we should, // scale down the desired discard level @@ -351,7 +353,7 @@ void LLViewerImage::reinit(BOOL usemipmaps /* = TRUE */) // ONLY called from LLViewerImageList void LLViewerImage::destroyTexture() { - if(sGlobalTextureMemory < sMaxDesiredTextureMem)//not ready to release unused memory. + if(sGlobalTextureMemoryInBytes < sMaxDesiredTextureMemInBytes)//not ready to release unused memory. { return ; } @@ -571,7 +573,7 @@ void LLViewerImage::processTextureStats() if ((sDesiredDiscardBias > 0.0f) && (current_discard >= 0 && mDesiredDiscardLevel >= current_discard)) { - if ( (sBoundTextureMemory >> 20) > sMaxBoundTextureMem*texmem_middle_bound_scale) + if ( BYTES_TO_MEGA_BYTES(sBoundTextureMemoryInBytes) > sMaxBoundTextureMemInMegaBytes * texmem_middle_bound_scale) { // Limit the amount of GL memory bound each frame if (mDesiredDiscardLevel > current_discard) @@ -579,7 +581,7 @@ void LLViewerImage::processTextureStats() increase_discard = TRUE; } } - if ( (sTotalTextureMemory >> 20) > sMaxTotalTextureMem*texmem_middle_bound_scale) + if ( BYTES_TO_MEGA_BYTES(sTotalTextureMemoryInBytes) > sMaxTotalTextureMemInMegaBytes*texmem_middle_bound_scale) { // Only allow GL to have 2x the video card memory if (!getBoundRecently()) @@ -590,13 +592,13 @@ void LLViewerImage::processTextureStats() if (increase_discard) { // llinfos << "DISCARDED: " << mID << " Discard: " << current_discard << llendl; - sBoundTextureMemory -= mTextureMemory; - sTotalTextureMemory -= mTextureMemory; + sBoundTextureMemoryInBytes -= mTextureMemory; + sTotalTextureMemoryInBytes -= mTextureMemory; // Increase the discard level (reduce the texture res) S32 new_discard = current_discard+1; setDiscardLevel(new_discard); - sBoundTextureMemory += mTextureMemory; - sTotalTextureMemory += mTextureMemory; + sBoundTextureMemoryInBytes += mTextureMemory; + sTotalTextureMemoryInBytes += mTextureMemory; } } } diff --git a/linden/indra/newview/llviewerimage.h b/linden/indra/newview/llviewerimage.h index a5aef01..980ff56 100644 --- a/linden/indra/newview/llviewerimage.h +++ b/linden/indra/newview/llviewerimage.h @@ -41,6 +41,9 @@ #include #include +#define MIN_VIDEO_RAM_IN_MEGA_BYTES 32 +#define MAX_VIDEO_RAM_IN_MEGA_BYTES 512 // 512MB max for performance reasons. + class LLViewerImage; typedef void (*loaded_callback_func)( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* src_aux, S32 discard_level, BOOL final, void* userdata ); @@ -360,11 +363,11 @@ public: static LLTimer sEvaluationTimer; static F32 sDesiredDiscardBias; static F32 sDesiredDiscardScale; - static S32 sBoundTextureMemory; - static S32 sTotalTextureMemory; - static S32 sMaxBoundTextureMem; - static S32 sMaxTotalTextureMem; - static S32 sMaxDesiredTextureMem ; + static S32 sBoundTextureMemoryInBytes; + static S32 sTotalTextureMemoryInBytes; + static S32 sMaxBoundTextureMemInMegaBytes; + static S32 sMaxTotalTextureMemInMegaBytes; + static S32 sMaxDesiredTextureMemInBytes ; static BOOL sDontLoadVolumeTextures; }; diff --git a/linden/indra/newview/llviewerimagelist.cpp b/linden/indra/newview/llviewerimagelist.cpp index 3a41cf8..bd834a0 100644 --- a/linden/indra/newview/llviewerimagelist.cpp +++ b/linden/indra/newview/llviewerimagelist.cpp @@ -90,16 +90,16 @@ LLStat LLViewerImageList::sFormattedMemStat(32, TRUE); LLViewerImageList::LLViewerImageList() : mForceResetTextureStats(FALSE), mUpdateStats(FALSE), - mMaxResidentTexMem(0), - mMaxTotalTextureMem(0) + mMaxResidentTexMemInMegaBytes(0), + mMaxTotalTextureMemInMegaBytes(0) { } void LLViewerImageList::init() { sNumImages = 0; - mMaxResidentTexMem = 0; - mMaxTotalTextureMem = 0 ; + mMaxResidentTexMemInMegaBytes = 0; + mMaxTotalTextureMemInMegaBytes = 0 ; if (gNoRender) { @@ -513,10 +513,10 @@ void LLViewerImageList::updateImages(F32 max_time) llpushcallstacks ; sNumImagesStat.addValue(sNumImages); sNumRawImagesStat.addValue(LLImageRaw::sRawImageCount); - sGLTexMemStat.addValue((F32)(LLImageGL::sGlobalTextureMemory >> 20)); - sGLBoundMemStat.addValue((F32)(LLImageGL::sBoundTextureMemory >> 20)); - sRawMemStat.addValue((F32)(LLImageRaw::sGlobalRawMemory >> 20)); - sFormattedMemStat.addValue((F32)(LLImageFormatted::sGlobalFormattedMemory >> 20)); + sGLTexMemStat.addValue((F32)BYTES_TO_MEGA_BYTES(LLImageGL::sGlobalTextureMemoryInBytes)); + sGLBoundMemStat.addValue((F32)BYTES_TO_MEGA_BYTES(LLImageGL::sBoundTextureMemoryInBytes)); + sRawMemStat.addValue((F32)BYTES_TO_MEGA_BYTES(LLImageRaw::sGlobalRawMemory)); + sFormattedMemStat.addValue((F32)BYTES_TO_MEGA_BYTES(LLImageFormatted::sGlobalFormattedMemory)); llpushcallstacks ; updateImagesDecodePriorities(); @@ -582,8 +582,8 @@ void LLViewerImageList::updateImagesDecodePriorities() // // Flush formatted images using a lazy flush // - const F32 LAZY_FLUSH_TIMEOUT = 30.f; - const F32 MAX_INACTIVE_TIME = 50.f ; + const F32 LAZY_FLUSH_TIMEOUT = 30.f; // stop decoding + const F32 MAX_INACTIVE_TIME = 50.f; // actually delete S32 min_refs = 3; // 1 for mImageList, 1 for mUUIDMap, 1 for local reference if (imagep->hasCallbacks()) { @@ -983,16 +983,13 @@ LLPointer LLViewerImageList::convertToUploadFile(LLPointer> 20); + S32 system_ram = (S32)BYTES_TO_MEGA_BYTES(gSysMemory.getPhysicalMemoryClamped()); //min texture mem sets to 64M if total physical mem is more than 1.5GB - return (system_ram > 1500) ? 64 : MIN_VIDEO_RAM; + return (system_ram > 1500) ? 64 : MIN_VIDEO_RAM_IN_MEGA_BYTES ; } //static @@ -1019,14 +1016,14 @@ S32 LLViewerImageList::getMaxVideoRamSetting(bool get_recommended) llwarns << "VRAM amount not detected, defaulting to " << max_texmem << " MB" << llendl; } - S32 system_ram = (S32)(gSysMemory.getPhysicalMemoryClamped() >> 20); // In MB + S32 system_ram = (S32)BYTES_TO_MEGA_BYTES(gSysMemory.getPhysicalMemoryClamped()); // In MB //llinfos << "*** DETECTED " << system_ram << " MB of system memory." << llendl; if (get_recommended) max_texmem = llmin(max_texmem, (S32)(system_ram/2)); else max_texmem = llmin(max_texmem, (S32)(system_ram)); - max_texmem = llclamp(max_texmem, getMinVideoRamSetting(), MAX_VIDEO_RAM); + max_texmem = llclamp(max_texmem, getMinVideoRamSetting(), MAX_VIDEO_RAM_IN_MEGA_BYTES); return max_texmem; } @@ -1063,17 +1060,17 @@ void LLViewerImageList::updateMaxResidentTexMem(S32 mem) S32 vb_mem = mem; S32 fb_mem = llmax(VIDEO_CARD_FRAMEBUFFER_MEM, vb_mem/4); - mMaxResidentTexMem = (vb_mem - fb_mem) ; //in MB + mMaxResidentTexMemInMegaBytes = (vb_mem - fb_mem) ; //in MB - mMaxTotalTextureMem = mMaxResidentTexMem * 2; - if (mMaxResidentTexMem > 640) + mMaxTotalTextureMemInMegaBytes = mMaxResidentTexMemInMegaBytes * 2; + if (mMaxResidentTexMemInMegaBytes > 640) { - mMaxTotalTextureMem -= (mMaxResidentTexMem >> 2); + mMaxTotalTextureMemInMegaBytes -= (mMaxResidentTexMemInMegaBytes >> 2); } - if (mMaxTotalTextureMem > (S32)(gSysMemory.getPhysicalMemoryClamped() >> 20) - 128) + if (mMaxTotalTextureMemInMegaBytes > (S32)BYTES_TO_MEGA_BYTES(gSysMemory.getPhysicalMemoryClamped()) - 128) { - mMaxTotalTextureMem = (gSysMemory.getPhysicalMemoryClamped() >> 20) - 128 ; + mMaxTotalTextureMemInMegaBytes = (S32)BYTES_TO_MEGA_BYTES(gSysMemory.getPhysicalMemoryClamped()) - 128 ; } llinfos << "Total Video Memory set to: " << vb_mem << " MB" << llendl; diff --git a/linden/indra/newview/llviewerimagelist.h b/linden/indra/newview/llviewerimagelist.h index 501c666..5fad0a2 100644 --- a/linden/indra/newview/llviewerimagelist.h +++ b/linden/indra/newview/llviewerimagelist.h @@ -130,8 +130,8 @@ public: void setUpdateStats(BOOL b) { mUpdateStats = b; } - S32 getMaxResidentTexMem() const { return mMaxResidentTexMem; } - S32 getMaxTotalTextureMem() const { return mMaxTotalTextureMem;} + S32 getMaxResidentTexMem() const { return mMaxResidentTexMemInMegaBytes; } + S32 getMaxTotalTextureMem() const { return mMaxTotalTextureMemInMegaBytes;} S32 getNumImages() { return mImageList.size(); } void updateMaxResidentTexMem(S32 mem); @@ -172,8 +172,8 @@ private: std::set > mImagePreloads; BOOL mUpdateStats; - S32 mMaxResidentTexMem; - S32 mMaxTotalTextureMem; + S32 mMaxResidentTexMemInMegaBytes; + S32 mMaxTotalTextureMemInMegaBytes; LLFrameTimer mForceDecodeTimer; public: diff --git a/linden/indra/newview/llviewerobject.cpp b/linden/indra/newview/llviewerobject.cpp index d4e5946..51b3e2a 100644 --- a/linden/indra/newview/llviewerobject.cpp +++ b/linden/indra/newview/llviewerobject.cpp @@ -2748,7 +2748,7 @@ void LLViewerObject::setPixelAreaAndAngle(LLAgent &agent) F32 mid_scale = getMidScale(); F32 min_scale = getMinScale(); - // IW: esitmate - when close to large objects, computing range based on distance from center is no good + // IW: estimate - when close to large objects, computing range based on distance from center is no good // to try to get a min distance from face, subtract min_scale/2 from the range. // This means we'll load too much detail sometimes, but that's better than not enough // I don't think there's a better way to do this without calculating distance per-poly @@ -3733,7 +3733,6 @@ S32 LLViewerObject::setTEColor(const U8 te, const LLColor4& color) else if (color != tep->getColor()) { retval = LLPrimitive::setTEColor(te, color); - //setChanged(TEXTURE); if (mDrawable.notNull() && retval) { // These should only happen on updates which are not the initial update. diff --git a/linden/indra/newview/llviewerstats.cpp b/linden/indra/newview/llviewerstats.cpp index 648fbd4..5f83cdd 100644 --- a/linden/indra/newview/llviewerstats.cpp +++ b/linden/indra/newview/llviewerstats.cpp @@ -365,8 +365,8 @@ void output_statistics(void*) llinfos << "Number of orphans: " << gObjectList.getOrphanCount() << llendl; llinfos << "Number of dead objects: " << gObjectList.mNumDeadObjects << llendl; llinfos << "Num images: " << gImageList.getNumImages() << llendl; - llinfos << "Texture usage: " << LLImageGL::sGlobalTextureMemory << llendl; - llinfos << "Texture working set: " << LLImageGL::sBoundTextureMemory << llendl; + llinfos << "Texture usage: " << LLImageGL::sGlobalTextureMemoryInBytes << llendl; + llinfos << "Texture working set: " << LLImageGL::sBoundTextureMemoryInBytes << llendl; llinfos << "Raw usage: " << LLImageRaw::sGlobalRawMemory << llendl; llinfos << "Formatted usage: " << LLImageFormatted::sGlobalFormattedMemory << llendl; llinfos << "Zombie Viewer Objects: " << LLViewerObject::getNumZombieObjects() << llendl; diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp index cb7dd57..f17d031 100644 --- a/linden/indra/newview/llviewerwindow.cpp +++ b/linden/indra/newview/llviewerwindow.cpp @@ -4649,7 +4649,7 @@ void LLViewerWindow::stopGL(BOOL save_state) gGLManager.mIsDisabled = TRUE; stop_glerror(); - llinfos << "Remaining allocated texture memory: " << LLImageGL::sGlobalTextureMemory << " bytes" << llendl; + llinfos << "Remaining allocated texture memory: " << LLImageGL::sGlobalTextureMemoryInBytes << " bytes" << llendl; } } diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index 168b005..6b63730 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp @@ -1276,7 +1276,7 @@ void LLVOAvatar::deleteCachedImages(bool clearAll) sScratchTexNames.deleteAllData(); LLVOAvatar::sScratchTexLastBindTime.deleteAllData(); - LLImageGL::sGlobalTextureMemory -= sScratchTexBytes; + LLImageGL::sGlobalTextureMemoryInBytes -= sScratchTexBytes; sScratchTexBytes = 0; } @@ -6781,7 +6781,7 @@ LLGLuint LLVOAvatar::getScratchTexName( LLGLenum format, U32* texture_bytes ) LLVOAvatar::sScratchTexNames.addData( format, new LLGLuint( name ) ); LLVOAvatar::sScratchTexBytes += *texture_bytes; - LLImageGL::sGlobalTextureMemory += *texture_bytes; + LLImageGL::sGlobalTextureMemoryInBytes += *texture_bytes; return name; } } diff --git a/linden/indra/newview/llvosky.cpp b/linden/indra/newview/llvosky.cpp index c3366ca..d4df141 100644 --- a/linden/indra/newview/llvosky.cpp +++ b/linden/indra/newview/llvosky.cpp @@ -1197,8 +1197,6 @@ LLDrawable *LLVOSky::createDrawable(LLPipeline *pipeline) LLDrawPoolSky *poolp = (LLDrawPoolSky*) gPipeline.getPool(LLDrawPool::POOL_SKY); poolp->setSkyTex(mSkyTex); - poolp->setSun(&mSun); - poolp->setMoon(&mMoon); mDrawable->setRenderType(LLPipeline::RENDER_TYPE_SKY); for (S32 i = 0; i < 6; ++i) @@ -1215,7 +1213,7 @@ LLDrawable *LLVOSky::createDrawable(LLPipeline *pipeline) //by bao //fake vertex buffer updating -//to guaranttee at least updating one VBO buffer every frame +//to guarantee at least updating one VBO buffer every frame //to walk around the bug caused by ATI card --> DEV-3855 // void LLVOSky::createDummyVertexBuffer() diff --git a/linden/indra/newview/llvovolume.cpp b/linden/indra/newview/llvovolume.cpp index 8f11661..c52d2d8 100644 --- a/linden/indra/newview/llvovolume.cpp +++ b/linden/indra/newview/llvovolume.cpp @@ -653,7 +653,8 @@ LLDrawable *LLVOVolume::createDrawable(LLPipeline *pipeline) } updateRadius(); - mDrawable->updateDistance(*LLViewerCamera::getInstance()); + bool force_update = true; // avoid non-alpha mDistance update being optimized away + mDrawable->updateDistance(*LLViewerCamera::getInstance(), force_update); return mDrawable; } @@ -1271,15 +1272,28 @@ S32 LLVOVolume::setTEColor(const U8 te, const LLColor3& color) S32 LLVOVolume::setTEColor(const U8 te, const LLColor4& color) { - S32 res = LLViewerObject::setTEColor(te, color); - if (res && mDrawable.notNull()) + S32 retval = 0; + const LLTextureEntry *tep = getTE(te); + if (!tep) { - //gPipeline.markTextured(mDrawable); - mDrawable->setState(LLDrawable::REBUILD_COLOR); - dirtyMesh(); - //mFaceMappingChanged = TRUE; + llwarns << "No texture entry for te " << (S32)te << ", object " << mID << llendl; } - return res; + else if (color != tep->getColor()) + { + if (color.mV[3] != tep->getColor().mV[3]) + { + gPipeline.markTextured(mDrawable); + } + retval = LLPrimitive::setTEColor(te, color); + if (mDrawable.notNull() && retval) + { + // These should only happen on updates which are not the initial update. + mDrawable->setState(LLDrawable::REBUILD_COLOR); + dirtyMesh(); + } + } + + return retval; } S32 LLVOVolume::setTEBumpmap(const U8 te, const U8 bumpmap) @@ -1326,6 +1340,17 @@ S32 LLVOVolume::setTEFullbright(const U8 te, const U8 fullbright) return res; } +S32 LLVOVolume::setTEBumpShinyFullbright(const U8 te, const U8 bump) +{ + S32 res = LLViewerObject::setTEBumpShinyFullbright(te, bump); + if (res) + { + gPipeline.markTextured(mDrawable); + mFaceMappingChanged = TRUE; + } + return res; +} + S32 LLVOVolume::setTEMediaFlags(const U8 te, const U8 media_flags) { S32 res = LLViewerObject::setTEMediaFlags(te, media_flags); @@ -2812,7 +2837,7 @@ LLHUDPartition::LLHUDPartition() mPartitionType = LLViewerRegion::PARTITION_HUD; mDrawableType = LLPipeline::RENDER_TYPE_HUD; mSlopRatio = 0.f; - mLODPeriod = 16; + mLODPeriod = 1; } void LLHUDPartition::shift(const LLVector3 &offset) diff --git a/linden/indra/newview/llvovolume.h b/linden/indra/newview/llvovolume.h index 1557755..9a0bb9b 100644 --- a/linden/indra/newview/llvovolume.h +++ b/linden/indra/newview/llvovolume.h @@ -158,6 +158,7 @@ public: /*virtual*/ S32 setTEBumpmap(const U8 te, const U8 bump); /*virtual*/ S32 setTEShiny(const U8 te, const U8 shiny); /*virtual*/ S32 setTEFullbright(const U8 te, const U8 fullbright); + /*virtual*/ S32 setTEBumpShinyFullbright(const U8 te, const U8 bump); /*virtual*/ S32 setTEMediaFlags(const U8 te, const U8 media_flags); /*virtual*/ S32 setTEGlow(const U8 te, const F32 glow); /*virtual*/ S32 setTEScale(const U8 te, const F32 s, const F32 t); diff --git a/linden/indra/newview/nl.lproj/language.txt b/linden/indra/newview/nl.lproj/language.txt new file mode 100644 index 0000000..d5f5c2a --- /dev/null +++ b/linden/indra/newview/nl.lproj/language.txt @@ -0,0 +1 @@ +nl \ No newline at end of file diff --git a/linden/indra/newview/pipeline.cpp b/linden/indra/newview/pipeline.cpp index 8dec9b9..ebf2f91 100644 --- a/linden/indra/newview/pipeline.cpp +++ b/linden/indra/newview/pipeline.cpp @@ -1945,7 +1945,8 @@ void LLPipeline::stateSort(LLSpatialBridge* bridge, LLCamera& camera) LLMemType mt(LLMemType::MTYPE_PIPELINE); if (!sSkipUpdate && bridge->getSpatialGroup()->changeLOD()) { - bridge->updateDistance(camera); + bool force_update = false; + bridge->updateDistance(camera, force_update); } } @@ -2006,11 +2007,13 @@ void LLPipeline::stateSort(LLDrawable* drawablep, LLCamera& camera) { if (!drawablep->isActive()) { - drawablep->updateDistance(camera); + bool force_update = false; + drawablep->updateDistance(camera, force_update); } else if (drawablep->isAvatar()) { - drawablep->updateDistance(camera); // calls vobj->updateLOD() which calls LLVOAvatar::updateVisibility() + bool force_update = false; + drawablep->updateDistance(camera, force_update); // calls vobj->updateLOD() which calls LLVOAvatar::updateVisibility() } } } @@ -2570,9 +2573,6 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate) stop_glerror(); LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderDrawPools"); - - LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderForSelect"); - LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderDeferred"); for (pool_set_t::iterator iter = mPools.begin(); iter != mPools.end(); ++iter) { LLDrawPool *poolp = *iter; @@ -2584,6 +2584,7 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate) if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_PICKING)) { + LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderForSelect"); gObjectList.renderObjectsForSelect(camera, gViewerWindow->getVirtualWindowRect()); } else @@ -2747,6 +2748,7 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate) void LLPipeline::renderGeomDeferred(LLCamera& camera) { + LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderGeomDeferred"); LLFastTimer t(LLFastTimer::FTM_RENDER_GEOMETRY); LLFastTimer t2(LLFastTimer::FTM_POOLS); diff --git a/linden/indra/newview/pl.lproj/language.txt b/linden/indra/newview/pl.lproj/language.txt new file mode 100644 index 0000000..55239f3 --- /dev/null +++ b/linden/indra/newview/pl.lproj/language.txt @@ -0,0 +1 @@ +pl \ No newline at end of file diff --git a/linden/indra/newview/pt.lproj/language.txt b/linden/indra/newview/pt.lproj/language.txt new file mode 100644 index 0000000..9e3340e --- /dev/null +++ b/linden/indra/newview/pt.lproj/language.txt @@ -0,0 +1 @@ +pt \ No newline at end of file diff --git a/linden/indra/newview/res/viewerRes.rc b/linden/indra/newview/res/viewerRes.rc index 908c4e1..d871de4 100644 --- a/linden/indra/newview/res/viewerRes.rc +++ b/linden/indra/newview/res/viewerRes.rc @@ -138,8 +138,8 @@ TOOLMEDIAOPEN CURSOR "toolmediaopen.cur" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,23,0,0 - PRODUCTVERSION 1,23,0,0 + FILEVERSION 1,23,3,122255 + PRODUCTVERSION 1,23,3,122255 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -156,12 +156,12 @@ BEGIN BEGIN VALUE "CompanyName", "Linden Lab" VALUE "FileDescription", "Second Life" - VALUE "FileVersion", "1.23.0.0" + VALUE "FileVersion", "1.23.3.122255" VALUE "InternalName", "Second Life" VALUE "LegalCopyright", "Copyright 2001-2008, Linden Research, Inc." VALUE "OriginalFilename", "SecondLife.exe" VALUE "ProductName", "Second Life" - VALUE "ProductVersion", "1.23.0.0" + VALUE "ProductVersion", "1.23.3.122255" END END BLOCK "VarFileInfo" diff --git a/linden/indra/newview/ru.lproj/language.txt b/linden/indra/newview/ru.lproj/language.txt new file mode 100644 index 0000000..adc719b --- /dev/null +++ b/linden/indra/newview/ru.lproj/language.txt @@ -0,0 +1 @@ +ru \ No newline at end of file diff --git a/linden/indra/newview/skins/default/xui/da/alerts.xml b/linden/indra/newview/skins/default/xui/da/alerts.xml new file mode 100644 index 0000000..9552091 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/da/alerts.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/linden/indra/newview/skins/default/xui/da/floater_about.xml b/linden/indra/newview/skins/default/xui/da/floater_about.xml new file mode 100644 index 0000000..b747bda --- /dev/null +++ b/linden/indra/newview/skins/default/xui/da/floater_about.xml @@ -0,0 +1,36 @@ + + + + Second Life er gjort muligt for dig af Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les and many others. + +Tak til følgende beboerne for at bidrage til at sikre, at dette er den bedste version til dato: afon shepherd, Aimee Trescothick, Alexandrea Fride, Alissa Sabre, Amber DeCuir, Asuka Neely, Auron Forcella, Blue Revolution, Bocan Undercroft, Boroondas Gupte, Brandon Shinobu, Bri Gufler, Buckaroo Mu, Celierra Darling, Christos Atlantis, Coder Kas, Cummere Mayo, dakota schwade, Dirk Talamasca, Dizzy Banjo, Drew Dwi, Duckling Kwak, Ellla McMahon, Erikah Jameson, Erinyse Planer, Eyana Yohkoh, Ezian Ecksol, Faron Karu, Fenoe Lowey, Fox Hwasung, Francisca Biedermann, Gally Young, Gellan Glenelg, Geneko Nemeth, Glenn Rotaru, Hagar Qinan, Harleen Gretzky, Holger Gilruth, hotrodjohnny gears, IAm Zabelin, Inigo Catteneo, Iustinian Tomsen, Jacek Antonell, James Benedek, Jim Kupferberg, Joeseph Albanese, JPT62089 Agnon, Kardargo Adamczyk, Kirstenlee Cinquetti, Latif Khalifa, lea Parnall, Lex Neva, Lillith Anatine, Lilly Zenovka, Lim Catteneo, Lindal Kidd, Mark Rosenbaum, MasterJ Chaplin, McCabe Maxsted, Melvin Starbrook, Meni Kaiousei, Mero Collas, Minakothegothicgeisha Kamachi, Moon Metty, neofilo aabye, Neutron Chesnokov, Nomad Ingwer, norritt Xi, Opensource Obscure, Oracle Weatherwax, Ourasi Ferraris, Pabl0 Roffo, Peyton Aleixandre, Phli Foxchase, Psi Merlin, r2d2 Wunderlich, Regi Yifu, Saijanai Kuhn, Sandor Balczo, Sarkan Dreamscape, Scree Raymaker, Sedona Mills, Selena Beale, Sheet Spotter, Shibari Twine, Silver Key, Simon Kline, SLB Wirefly, Stacy Wombat, Sugarcult Dagger, Tayra Dagostino, Tetsuryu Vlodovic, ThaBiGGDoGG Richez, Timo Gufler, tx Oh, wayfinder wishbringer, Wizzytoe McCullough, Wundur Primbee, Yann Dufaux, Yuu Nakamichi, Aminom Marvin, Andred Qinan, arminasx saiman, caroline apollo, Iskar Ariantho, Jenika Connolly, Maghnus Balogh, Nefertiti Nefarious, RodneyLee Jessop + + 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion + APR Copyright (C) 2000-2004 The Apache Software Foundation + cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se) + DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc. + expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd. + FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org). + GL Copyright (C) 1999-2004 Brian Paul. + Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited. + jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) + jpeglib Copyright (C) 1991-1998, Thomas G. Lane. + ogg/vorbis Copyright (C) 2001, Xiphophorus + OpenSSL Copyright (C) 1998-2002 The OpenSSL Project. + SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga + SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + xmlrpc-epi Copyright (C) 2000 Epinions, Inc. + zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler. + google-perftools Copyright (c) 2005, Google Inc. + +Alle rettigheder forbeholdes. Se licenses.txt for detaljer. + +Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) + + +I get by with a little help from my friends. --Richard Starkey + + + Du er ved [POSITION] + + diff --git a/linden/indra/newview/skins/default/xui/da/floater_about_land.xml b/linden/indra/newview/skins/default/xui/da/floater_about_land.xml new file mode 100644 index 0000000..772c333 --- /dev/null +++ b/linden/indra/newview/skins/default/xui/da/floater_about_land.xml @@ -0,0 +1,517 @@ + + + + + + Navn: + + + Beskrivelse: + + + Type: + + + Mainland / Homestead + + + Rating: + + + Adult + + + Ejer: + + + Leyla Linden + +