diff options
author | Jacek Antonelli | 2009-05-30 17:16:26 -0500 |
---|---|---|
committer | Jacek Antonelli | 2009-05-30 19:12:37 -0500 |
commit | 499afbab7be4c4136eea0e1897319c3ac4e9799d (patch) | |
tree | 95e9de524994eae69b0dd88b8c6608d5f45d030c /linden/indra/llimage | |
parent | Fixed end-of-line style for Info-Imprudence.plist. (diff) | |
parent | Second Life viewer sources 1.22.11 (diff) | |
download | meta-impy-499afbab7be4c4136eea0e1897319c3ac4e9799d.zip meta-impy-499afbab7be4c4136eea0e1897319c3ac4e9799d.tar.gz meta-impy-499afbab7be4c4136eea0e1897319c3ac4e9799d.tar.bz2 meta-impy-499afbab7be4c4136eea0e1897319c3ac4e9799d.tar.xz |
Merged SL 1.22.11 into Imprudence 1.1 RC2.
Conflicts:
linden/doc/contributions.txt
linden/indra/cmake/APR.cmake
linden/indra/cmake/CopyWinLibs.cmake
linden/indra/cmake/LLKDU.cmake (removed)
linden/indra/cmake/LLMedia.cmake
linden/indra/cmake/OPENAL.cmake
linden/indra/cmake/QuickTime.cmake (removed)
linden/indra/develop.py
linden/indra/lib/python/indra/base/llsd.py
linden/indra/lib/python/indra/util/fastest_elementtree.py
linden/indra/lib/python/indra/util/llmanifest.py
linden/indra/lib/python/indra/util/named_query.py
linden/indra/llaudio/CMakeLists.txt
linden/indra/llaudio/audioengine.cpp
linden/indra/llaudio/audioengine.h
linden/indra/llaudio/audioengine_fmod.cpp
linden/indra/llaudio/audioengine_fmod.h
linden/indra/llaudio/audioengine_openal.cpp
linden/indra/llaudio/audioengine_openal.h
linden/indra/llaudio/listener_openal.cpp
linden/indra/llaudio/listener_openal.h
linden/indra/llaudio/windgen.h
linden/indra/llcrashlogger/llcrashlogger.cpp
linden/indra/llmedia/llmediaimplgstreamer.cpp
linden/indra/llmedia/llmediaimplgstreamer_syms.cpp (removed)
linden/indra/llmedia/llmediaimplgstreamer_syms.h (removed)
linden/indra/llmessage/llcircuit.h
linden/indra/llrender/llgl.cpp
linden/indra/llrender/llrender.h
linden/indra/llui/llfloater.cpp
linden/indra/llui/lltexteditor.cpp
linden/indra/llwindow/llwindowsdl.cpp
linden/indra/mac_crash_logger/CMakeLists.txt
linden/indra/mac_updater/CMakeLists.txt
linden/indra/newview/CMakeLists.txt
linden/indra/newview/English.lproj/InfoPlist.strings
linden/indra/newview/Info-Imprudence.plist
linden/indra/newview/installers/windows/installer_template.nsi
linden/indra/newview/installers/windows/lang_de.nsi
linden/indra/newview/installers/windows/lang_en-us.nsi
linden/indra/newview/installers/windows/lang_ja.nsi
linden/indra/newview/installers/windows/lang_ko.nsi
linden/indra/newview/llappviewer.cpp
linden/indra/newview/llaudiosourcevo.cpp
linden/indra/newview/llfloaterabout.cpp
linden/indra/newview/llfloaterhtml.cpp
linden/indra/newview/llfloaterhtml.h
linden/indra/newview/llfloaterinspect.cpp
linden/indra/newview/llfloatersnapshot.cpp
linden/indra/newview/llpanelgeneral.cpp
linden/indra/newview/llpanelgeneral.h
linden/indra/newview/llpanellogin.cpp
linden/indra/newview/llpanelobject.cpp
linden/indra/newview/llurlhistory.cpp
linden/indra/newview/llviewermenu.cpp
linden/indra/newview/llviewernetwork.cpp
linden/indra/newview/llviewernetwork.h
linden/indra/newview/llviewerobject.cpp
linden/indra/newview/llviewerwindow.cpp
linden/indra/newview/llvoavatar.cpp
linden/indra/newview/res/viewerRes.rc
linden/indra/newview/skins/default/xui/de/floater_env_settings.xml
linden/indra/newview/skins/default/xui/de/floater_html.xml
linden/indra/newview/skins/default/xui/de/floater_inspect.xml
linden/indra/newview/skins/default/xui/de/floater_instant_message_group.xml
linden/indra/newview/skins/default/xui/de/floater_lagmeter.xml
linden/indra/newview/skins/default/xui/de/floater_lsl_guide.xml
linden/indra/newview/skins/default/xui/de/floater_url_entry.xml
linden/indra/newview/skins/default/xui/de/floater_water.xml
linden/indra/newview/skins/default/xui/de/mime_types.xml
linden/indra/newview/skins/default/xui/de/need_to_long.xml
linden/indra/newview/skins/default/xui/de/need_to_translate.xml
linden/indra/newview/skins/default/xui/de/need_to_update.xml
linden/indra/newview/skins/default/xui/de/panel_friends.xml
linden/indra/newview/skins/default/xui/de/panel_media_remote_expanded.xml
linden/indra/newview/skins/default/xui/de/panel_preferences_voice.xml
linden/indra/newview/skins/default/xui/de/panel_voice_controls.xml
linden/indra/newview/skins/default/xui/de/panel_voice_enable.xml
linden/indra/newview/skins/default/xui/de/panel_voice_options.xml
linden/indra/newview/skins/default/xui/de/strings.xml
linden/indra/newview/skins/default/xui/en-us/floater_chat_history.xml
linden/indra/newview/skins/default/xui/en-us/floater_instant_message_ad_hoc.xml
linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml
linden/indra/newview/skins/default/xui/en-us/floater_lagmeter.xml
linden/indra/newview/skins/default/xui/en-us/menu_pie_object.xml
linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
linden/indra/newview/skins/default/xui/en-us/panel_audio_device.xml
linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml
linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml
linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml
linden/indra/newview/skins/default/xui/en-us/panel_voice_remote.xml
linden/indra/newview/skins/default/xui/en-us/panel_voice_remote_expanded.xml
linden/indra/newview/skins/default/xui/es/alerts.xml
linden/indra/newview/skins/default/xui/es/floater_about_land.xml
linden/indra/newview/skins/default/xui/es/floater_mute.xml
linden/indra/newview/skins/default/xui/es/menu_viewer.xml
linden/indra/newview/skins/default/xui/es/panel_group_land_money.xml
linden/indra/newview/skins/default/xui/es/panel_preferences_general.xml
linden/indra/newview/skins/default/xui/fr/alerts.xml
linden/indra/newview/skins/default/xui/fr/floater_about.xml
linden/indra/newview/skins/default/xui/fr/floater_about_land.xml
linden/indra/newview/skins/default/xui/fr/floater_active_speakers.xml
linden/indra/newview/skins/default/xui/fr/floater_animation_preview.xml
linden/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml
linden/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml
linden/indra/newview/skins/default/xui/fr/floater_buy_contents.xml
linden/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
linden/indra/newview/skins/default/xui/fr/floater_buy_land.xml
linden/indra/newview/skins/default/xui/fr/floater_buy_object.xml
linden/indra/newview/skins/default/xui/fr/floater_chat_history.xml
linden/indra/newview/skins/default/xui/fr/floater_color_picker.xml
linden/indra/newview/skins/default/xui/fr/floater_customize.xml
linden/indra/newview/skins/default/xui/fr/floater_directory.xml
linden/indra/newview/skins/default/xui/fr/floater_env_settings.xml
linden/indra/newview/skins/default/xui/fr/floater_god_tools.xml
linden/indra/newview/skins/default/xui/fr/floater_group_info.xml
linden/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml
linden/indra/newview/skins/default/xui/fr/floater_html.xml
linden/indra/newview/skins/default/xui/fr/floater_image_preview.xml
linden/indra/newview/skins/default/xui/fr/floater_import.xml
linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml
linden/indra/newview/skins/default/xui/fr/floater_instant_message_ad_hoc.xml
linden/indra/newview/skins/default/xui/fr/floater_instant_message_group.xml
linden/indra/newview/skins/default/xui/fr/floater_inventory.xml
linden/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml
linden/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
linden/indra/newview/skins/default/xui/fr/floater_joystick.xml
linden/indra/newview/skins/default/xui/fr/floater_lagmeter.xml
linden/indra/newview/skins/default/xui/fr/floater_land_holdings.xml
linden/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml
linden/indra/newview/skins/default/xui/fr/floater_media_browser.xml
linden/indra/newview/skins/default/xui/fr/floater_moveview.xml
linden/indra/newview/skins/default/xui/fr/floater_mute.xml
linden/indra/newview/skins/default/xui/fr/floater_mute_object.xml
linden/indra/newview/skins/default/xui/fr/floater_name_description.xml
linden/indra/newview/skins/default/xui/fr/floater_new_outfit_dialog.xml
linden/indra/newview/skins/default/xui/fr/floater_openobject.xml
linden/indra/newview/skins/default/xui/fr/floater_pay.xml
linden/indra/newview/skins/default/xui/fr/floater_pay_object.xml
linden/indra/newview/skins/default/xui/fr/floater_preferences.xml
linden/indra/newview/skins/default/xui/fr/floater_preview_animation.xml
linden/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml
linden/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml
linden/indra/newview/skins/default/xui/fr/floater_preview_notecard_keep_discard.xml
linden/indra/newview/skins/default/xui/fr/floater_preview_sound.xml
linden/indra/newview/skins/default/xui/fr/floater_price_for_listing.xml
linden/indra/newview/skins/default/xui/fr/floater_region_info.xml
linden/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
linden/indra/newview/skins/default/xui/fr/floater_report_bug.xml
linden/indra/newview/skins/default/xui/fr/floater_script_ed_panel.xml
linden/indra/newview/skins/default/xui/fr/floater_sell_land.xml
linden/indra/newview/skins/default/xui/fr/floater_settings_debug.xml
linden/indra/newview/skins/default/xui/fr/floater_skin_preview_template.xml
linden/indra/newview/skins/default/xui/fr/floater_snapshot.xml
linden/indra/newview/skins/default/xui/fr/floater_sound_preview.xml
linden/indra/newview/skins/default/xui/fr/floater_telehub.xml
linden/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml
linden/indra/newview/skins/default/xui/fr/floater_tools.xml
linden/indra/newview/skins/default/xui/fr/floater_top_objects.xml
linden/indra/newview/skins/default/xui/fr/floater_url_entry.xml
linden/indra/newview/skins/default/xui/fr/floater_windlight_options.xml
linden/indra/newview/skins/default/xui/fr/floater_world_map.xml
linden/indra/newview/skins/default/xui/fr/menu_inventory.xml
linden/indra/newview/skins/default/xui/fr/menu_pie_avatar.xml
linden/indra/newview/skins/default/xui/fr/menu_pie_land.xml
linden/indra/newview/skins/default/xui/fr/menu_pie_self.xml
linden/indra/newview/skins/default/xui/fr/menu_viewer.xml
linden/indra/newview/skins/default/xui/fr/mime_types.xml
linden/indra/newview/skins/default/xui/fr/notify.xml
linden/indra/newview/skins/default/xui/fr/panel_audio.xml
linden/indra/newview/skins/default/xui/fr/panel_audio_device.xml
linden/indra/newview/skins/default/xui/fr/panel_avatar.xml
linden/indra/newview/skins/default/xui/fr/panel_avatar_classified.xml
linden/indra/newview/skins/default/xui/fr/panel_chat_bar.xml
linden/indra/newview/skins/default/xui/fr/panel_classified.xml
linden/indra/newview/skins/default/xui/fr/panel_event.xml
linden/indra/newview/skins/default/xui/fr/panel_friends.xml
linden/indra/newview/skins/default/xui/fr/panel_group.xml
linden/indra/newview/skins/default/xui/fr/panel_group_finder.xml
linden/indra/newview/skins/default/xui/fr/panel_group_general.xml
linden/indra/newview/skins/default/xui/fr/panel_group_invite.xml
linden/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
linden/indra/newview/skins/default/xui/fr/panel_group_notices.xml
linden/indra/newview/skins/default/xui/fr/panel_group_roles.xml
linden/indra/newview/skins/default/xui/fr/panel_group_voting.xml
linden/indra/newview/skins/default/xui/fr/panel_groups.xml
linden/indra/newview/skins/default/xui/fr/panel_login.xml
linden/indra/newview/skins/default/xui/fr/panel_master_volume.xml
linden/indra/newview/skins/default/xui/fr/panel_media_controls.xml
linden/indra/newview/skins/default/xui/fr/panel_media_remote.xml
linden/indra/newview/skins/default/xui/fr/panel_media_remote_expanded.xml
linden/indra/newview/skins/default/xui/fr/panel_overlaybar.xml
linden/indra/newview/skins/default/xui/fr/panel_place.xml
linden/indra/newview/skins/default/xui/fr/panel_place_small.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_audio.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_im.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_input.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_network.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_popups.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_voice.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_web.xml
linden/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
linden/indra/newview/skins/default/xui/fr/panel_region_debug.xml
linden/indra/newview/skins/default/xui/fr/panel_region_estate.xml
linden/indra/newview/skins/default/xui/fr/panel_region_general.xml
linden/indra/newview/skins/default/xui/fr/panel_region_terrain.xml
linden/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml
linden/indra/newview/skins/default/xui/fr/panel_speaker_controls.xml
linden/indra/newview/skins/default/xui/fr/panel_status_bar.xml
linden/indra/newview/skins/default/xui/fr/panel_toolbar.xml
linden/indra/newview/skins/default/xui/fr/panel_voice_controls.xml
linden/indra/newview/skins/default/xui/fr/panel_voice_enable.xml
linden/indra/newview/skins/default/xui/fr/panel_voice_options.xml
linden/indra/newview/skins/default/xui/fr/panel_voice_remote_expanded.xml
linden/indra/newview/skins/default/xui/fr/role_actions.xml
linden/indra/newview/skins/default/xui/fr/strings.xml
linden/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml
linden/indra/newview/skins/default/xui/ja/floater_inspect.xml
linden/indra/newview/skins/default/xui/ja/floater_instant_message_group.xml
linden/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
linden/indra/newview/skins/default/xui/ja/floater_media_browser.xml
linden/indra/newview/skins/default/xui/ja/floater_mute_object.xml
linden/indra/newview/skins/default/xui/ja/floater_url_entry.xml
linden/indra/newview/skins/default/xui/ja/need_to_long.xml
linden/indra/newview/skins/default/xui/ja/need_to_translate.xml
linden/indra/newview/skins/default/xui/ja/need_to_update.xml
linden/indra/newview/skins/default/xui/ja/panel_audio.xml
linden/indra/newview/skins/default/xui/ja/panel_groups.xml
linden/indra/newview/skins/default/xui/ja/panel_preferences_voice.xml
linden/indra/newview/skins/default/xui/ja/panel_preferences_web.xml
linden/indra/newview/skins/default/xui/ja/strings.xml
linden/indra/newview/skins/default/xui/ko/need_to_long.xml
linden/indra/newview/skins/default/xui/ko/need_to_translate.xml
linden/indra/newview/skins/default/xui/ko/need_to_update.xml
linden/indra/newview/skins/default/xui/pt/alerts.xml
linden/indra/newview/skins/default/xui/pt/floater_about.xml
linden/indra/newview/skins/default/xui/pt/floater_about_land.xml
linden/indra/newview/skins/default/xui/pt/floater_animation_preview.xml
linden/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml
linden/indra/newview/skins/default/xui/pt/floater_avatar_textures.xml
linden/indra/newview/skins/default/xui/pt/floater_build_options.xml
linden/indra/newview/skins/default/xui/pt/floater_buy_contents.xml
linden/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
linden/indra/newview/skins/default/xui/pt/floater_buy_land.xml
linden/indra/newview/skins/default/xui/pt/floater_buy_object.xml
linden/indra/newview/skins/default/xui/pt/floater_chat_history.xml
linden/indra/newview/skins/default/xui/pt/floater_color_picker.xml
linden/indra/newview/skins/default/xui/pt/floater_customize.xml
linden/indra/newview/skins/default/xui/pt/floater_directory.xml
linden/indra/newview/skins/default/xui/pt/floater_gesture.xml
linden/indra/newview/skins/default/xui/pt/floater_html.xml
linden/indra/newview/skins/default/xui/pt/floater_im.xml
linden/indra/newview/skins/default/xui/pt/floater_image_preview.xml
linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml
linden/indra/newview/skins/default/xui/pt/floater_instant_message_ad_hoc.xml
linden/indra/newview/skins/default/xui/pt/floater_inventory.xml
linden/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
linden/indra/newview/skins/default/xui/pt/floater_joystick.xml
linden/indra/newview/skins/default/xui/pt/floater_land_holdings.xml
linden/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml
linden/indra/newview/skins/default/xui/pt/floater_mute.xml
linden/indra/newview/skins/default/xui/pt/floater_new_outfit_dialog.xml
linden/indra/newview/skins/default/xui/pt/floater_openobject.xml
linden/indra/newview/skins/default/xui/pt/floater_pay.xml
linden/indra/newview/skins/default/xui/pt/floater_pay_object.xml
linden/indra/newview/skins/default/xui/pt/floater_postcard.xml
linden/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
linden/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml
linden/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml
linden/indra/newview/skins/default/xui/pt/floater_preview_notecard_keep_discard.xml
linden/indra/newview/skins/default/xui/pt/floater_report_abuse.xml
linden/indra/newview/skins/default/xui/pt/floater_report_bug.xml
linden/indra/newview/skins/default/xui/pt/floater_script_debug.xml
linden/indra/newview/skins/default/xui/pt/floater_script_ed_panel.xml
linden/indra/newview/skins/default/xui/pt/floater_snapshot.xml
linden/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml
linden/indra/newview/skins/default/xui/pt/floater_tools.xml
linden/indra/newview/skins/default/xui/pt/floater_top_objects.xml
linden/indra/newview/skins/default/xui/pt/floater_tos.xml
linden/indra/newview/skins/default/xui/pt/floater_world_map.xml
linden/indra/newview/skins/default/xui/pt/menu_inventory.xml
linden/indra/newview/skins/default/xui/pt/menu_pie_avatar.xml
linden/indra/newview/skins/default/xui/pt/menu_viewer.xml
linden/indra/newview/skins/default/xui/pt/notify.xml
linden/indra/newview/skins/default/xui/pt/panel_avatar.xml
linden/indra/newview/skins/default/xui/pt/panel_avatar_classified.xml
linden/indra/newview/skins/default/xui/pt/panel_chat_bar.xml
linden/indra/newview/skins/default/xui/pt/panel_classified.xml
linden/indra/newview/skins/default/xui/pt/panel_event.xml
linden/indra/newview/skins/default/xui/pt/panel_group_general.xml
linden/indra/newview/skins/default/xui/pt/panel_group_invite.xml
linden/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
linden/indra/newview/skins/default/xui/pt/panel_group_notices.xml
linden/indra/newview/skins/default/xui/pt/panel_group_roles.xml
linden/indra/newview/skins/default/xui/pt/panel_group_voting.xml
linden/indra/newview/skins/default/xui/pt/panel_login.xml
linden/indra/newview/skins/default/xui/pt/panel_overlaybar.xml
linden/indra/newview/skins/default/xui/pt/panel_place.xml
linden/indra/newview/skins/default/xui/pt/panel_place_small.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_audio.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_im.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_input.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_network.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_popups.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_web.xml
linden/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
linden/indra/newview/skins/default/xui/pt/panel_region_debug.xml
linden/indra/newview/skins/default/xui/pt/panel_region_estate.xml
linden/indra/newview/skins/default/xui/pt/panel_region_general.xml
linden/indra/newview/skins/default/xui/pt/panel_status_bar.xml
linden/indra/newview/skins/default/xui/pt/panel_toolbar.xml
linden/indra/newview/skins/default/xui/pt/teleport_strings.xml
linden/indra/newview/skins/default/xui/zh/floater_account_history.xml
linden/indra/newview/skins/default/xui/zh/floater_god_tools.xml
linden/indra/newview/skins/default/xui/zh/floater_html.xml
linden/indra/newview/skins/default/xui/zh/floater_inspect.xml
linden/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml
linden/indra/newview/skins/default/xui/zh/floater_preferences.xml
linden/indra/newview/skins/default/xui/zh/floater_sell_land.xml
linden/indra/newview/skins/default/xui/zh/floater_settings_debug.xml
linden/indra/newview/skins/default/xui/zh/menu_pie_attachment.xml
linden/indra/newview/skins/default/xui/zh/menu_pie_avatar.xml
linden/indra/newview/skins/default/xui/zh/menu_pie_land.xml
linden/indra/newview/skins/default/xui/zh/menu_pie_object.xml
linden/indra/newview/skins/default/xui/zh/menu_pie_self.xml
linden/indra/newview/skins/default/xui/zh/menu_viewer.xml
linden/indra/newview/skins/default/xui/zh/need_to_translate.xml
linden/indra/newview/skins/default/xui/zh/panel_account_details.xml
linden/indra/newview/skins/default/xui/zh/panel_account_planning.xml
linden/indra/newview/skins/default/xui/zh/panel_account_transactions.xml
linden/indra/newview/skins/default/xui/zh/panel_avatar.xml
linden/indra/newview/skins/default/xui/zh/panel_group.xml
linden/indra/newview/skins/default/xui/zh/panel_group_finder.xml
linden/indra/newview/skins/default/xui/zh/panel_group_general.xml
linden/indra/newview/skins/default/xui/zh/panel_group_invite.xml
linden/indra/newview/skins/default/xui/zh/panel_group_land_money.xml
linden/indra/newview/skins/default/xui/zh/panel_group_notices.xml
linden/indra/newview/skins/default/xui/zh/panel_group_roles.xml
linden/indra/newview/skins/default/xui/zh/panel_group_voting.xml
linden/indra/newview/skins/default/xui/zh/panel_preferences_audio.xml
linden/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml
linden/indra/newview/skins/default/xui/zh/panel_preferences_im.xml
linden/indra/newview/skins/default/xui/zh/panel_preferences_popups.xml
linden/indra/newview/skins/default/xui/zh/panel_region_covenant.xml
linden/indra/newview/skins/default/xui/zh/strings.xml
linden/indra/newview/skins/default/xui/zh/strings_long.xml
linden/indra/newview/skins/silver/xui/en-us/floater_about_land.xml
linden/indra/newview/skins/silver/xui/en-us/panel_status_bar.xml
linden/indra/newview/viewer_manifest.py
linden/indra/win_updater/updater.cpp
linden/install.xml
Diffstat (limited to 'linden/indra/llimage')
-rw-r--r-- | linden/indra/llimage/CMakeLists.txt | 7 | ||||
-rw-r--r-- | linden/indra/llimage/llimage.cpp | 77 | ||||
-rw-r--r-- | linden/indra/llimage/llimage.h | 35 | ||||
-rw-r--r-- | linden/indra/llimage/llimagebmp.cpp | 2 | ||||
-rw-r--r-- | linden/indra/llimage/llimagebmp.h | 2 | ||||
-rw-r--r-- | linden/indra/llimage/llimagedxt.cpp | 2 | ||||
-rw-r--r-- | linden/indra/llimage/llimagedxt.h | 2 | ||||
-rw-r--r-- | linden/indra/llimage/llimagej2c.cpp | 143 | ||||
-rw-r--r-- | linden/indra/llimage/llimagej2c.h | 7 | ||||
-rw-r--r-- | linden/indra/llimage/llimagejpeg.cpp | 5 | ||||
-rw-r--r-- | linden/indra/llimage/llimagejpeg.h | 2 | ||||
-rw-r--r-- | linden/indra/llimage/llimagepng.cpp | 2 | ||||
-rw-r--r-- | linden/indra/llimage/llimagepng.h | 2 | ||||
-rw-r--r-- | linden/indra/llimage/llimagetga.cpp | 2 | ||||
-rw-r--r-- | linden/indra/llimage/llimagetga.h | 2 | ||||
-rw-r--r-- | linden/indra/llimage/llimageworker.cpp | 6 | ||||
-rw-r--r-- | linden/indra/llimage/llimageworker.h | 8 | ||||
-rw-r--r-- | linden/indra/llimage/llmapimagetype.h | 2 | ||||
-rw-r--r-- | linden/indra/llimage/llpngwrapper.cpp | 2 | ||||
-rw-r--r-- | linden/indra/llimage/llpngwrapper.h | 2 |
20 files changed, 223 insertions, 89 deletions
diff --git a/linden/indra/llimage/CMakeLists.txt b/linden/indra/llimage/CMakeLists.txt index 5593b4a..1a4d92b 100644 --- a/linden/indra/llimage/CMakeLists.txt +++ b/linden/indra/llimage/CMakeLists.txt | |||
@@ -7,6 +7,7 @@ include(LLCommon) | |||
7 | include(LLImage) | 7 | include(LLImage) |
8 | include(LLMath) | 8 | include(LLMath) |
9 | include(LLVFS) | 9 | include(LLVFS) |
10 | include(ZLIB) | ||
10 | 11 | ||
11 | include_directories( | 12 | include_directories( |
12 | ${LLCOMMON_INCLUDE_DIRS} | 13 | ${LLCOMMON_INCLUDE_DIRS} |
@@ -48,3 +49,9 @@ set_source_files_properties(${llimage_HEADER_FILES} | |||
48 | list(APPEND llimage_SOURCE_FILES ${llimage_HEADER_FILES}) | 49 | list(APPEND llimage_SOURCE_FILES ${llimage_HEADER_FILES}) |
49 | 50 | ||
50 | add_library (llimage ${llimage_SOURCE_FILES}) | 51 | add_library (llimage ${llimage_SOURCE_FILES}) |
52 | target_link_libraries( | ||
53 | llimage | ||
54 | ${JPEG_LIBRARIES} | ||
55 | ${PNG_LIBRARIES} | ||
56 | ${ZLIB_LIBRARIES} | ||
57 | ) | ||
diff --git a/linden/indra/llimage/llimage.cpp b/linden/indra/llimage/llimage.cpp index 814e82f..d4489fc 100644 --- a/linden/indra/llimage/llimage.cpp +++ b/linden/indra/llimage/llimage.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -43,6 +43,49 @@ | |||
43 | #include "llimagejpeg.h" | 43 | #include "llimagejpeg.h" |
44 | #include "llimagepng.h" | 44 | #include "llimagepng.h" |
45 | #include "llimagedxt.h" | 45 | #include "llimagedxt.h" |
46 | #include "llimageworker.h" | ||
47 | |||
48 | //--------------------------------------------------------------------------- | ||
49 | // LLImage | ||
50 | //--------------------------------------------------------------------------- | ||
51 | |||
52 | //static | ||
53 | std::string LLImage::sLastErrorMessage; | ||
54 | LLMutex* LLImage::sMutex = NULL; | ||
55 | |||
56 | //static | ||
57 | void LLImage::initClass(LLWorkerThread* workerthread) | ||
58 | { | ||
59 | sMutex = new LLMutex(NULL); | ||
60 | if (workerthread) | ||
61 | { | ||
62 | LLImageWorker::initImageWorker(workerthread); | ||
63 | } | ||
64 | LLImageJ2C::openDSO(); | ||
65 | } | ||
66 | |||
67 | //static | ||
68 | void LLImage::cleanupClass() | ||
69 | { | ||
70 | LLImageJ2C::closeDSO(); | ||
71 | LLImageWorker::cleanupImageWorker(); | ||
72 | delete sMutex; | ||
73 | sMutex = NULL; | ||
74 | } | ||
75 | |||
76 | //static | ||
77 | const std::string& LLImage::getLastError() | ||
78 | { | ||
79 | static const std::string noerr("No Error"); | ||
80 | return sLastErrorMessage.empty() ? noerr : sLastErrorMessage; | ||
81 | } | ||
82 | |||
83 | //static | ||
84 | void LLImage::setLastError(const std::string& message) | ||
85 | { | ||
86 | LLMutexLock m(sMutex); | ||
87 | sLastErrorMessage = message; | ||
88 | } | ||
46 | 89 | ||
47 | //--------------------------------------------------------------------------- | 90 | //--------------------------------------------------------------------------- |
48 | // LLImageBase | 91 | // LLImageBase |
@@ -95,21 +138,8 @@ void LLImageBase::sanityCheck() | |||
95 | } | 138 | } |
96 | } | 139 | } |
97 | 140 | ||
98 | std::string LLImageBase::sLastErrorMessage; | ||
99 | BOOL LLImageBase::sSizeOverride = FALSE; | 141 | BOOL LLImageBase::sSizeOverride = FALSE; |
100 | 142 | ||
101 | BOOL LLImageBase::setLastError(const std::string& message, const std::string& filename) | ||
102 | { | ||
103 | sLastErrorMessage = message; | ||
104 | if (!filename.empty()) | ||
105 | { | ||
106 | sLastErrorMessage += " FILE:"; | ||
107 | sLastErrorMessage += filename; | ||
108 | } | ||
109 | llwarns << sLastErrorMessage << llendl; | ||
110 | return FALSE; | ||
111 | } | ||
112 | |||
113 | // virtual | 143 | // virtual |
114 | void LLImageBase::deleteData() | 144 | void LLImageBase::deleteData() |
115 | { | 145 | { |
@@ -136,8 +166,6 @@ U8* LLImageBase::allocateData(S32 size) | |||
136 | llerrs << "LLImageBase::allocateData: bad size: " << size << llendl; | 166 | llerrs << "LLImageBase::allocateData: bad size: " << size << llendl; |
137 | } | 167 | } |
138 | 168 | ||
139 | resetLastError(); | ||
140 | |||
141 | if (!mData || size != mDataSize) | 169 | if (!mData || size != mDataSize) |
142 | { | 170 | { |
143 | deleteData(); // virtual | 171 | deleteData(); // virtual |
@@ -1269,6 +1297,23 @@ LLImageFormatted::~LLImageFormatted() | |||
1269 | 1297 | ||
1270 | //---------------------------------------------------------------------------- | 1298 | //---------------------------------------------------------------------------- |
1271 | 1299 | ||
1300 | //virtual | ||
1301 | void LLImageFormatted::resetLastError() | ||
1302 | { | ||
1303 | LLImage::setLastError(""); | ||
1304 | } | ||
1305 | |||
1306 | //virtual | ||
1307 | void LLImageFormatted::setLastError(const std::string& message, const std::string& filename) | ||
1308 | { | ||
1309 | std::string error = message; | ||
1310 | if (!filename.empty()) | ||
1311 | error += std::string(" FILE: ") + filename; | ||
1312 | LLImage::setLastError(error); | ||
1313 | } | ||
1314 | |||
1315 | //---------------------------------------------------------------------------- | ||
1316 | |||
1272 | // static | 1317 | // static |
1273 | LLImageFormatted* LLImageFormatted::createFromType(S8 codec) | 1318 | LLImageFormatted* LLImageFormatted::createFromType(S8 codec) |
1274 | { | 1319 | { |
diff --git a/linden/indra/llimage/llimage.h b/linden/indra/llimage/llimage.h index 98a98c2..321eda8 100644 --- a/linden/indra/llimage/llimage.h +++ b/linden/indra/llimage/llimage.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2000&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2000&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2000-2008, Linden Research, Inc. | 7 | * Copyright (c) 2000-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -59,6 +59,7 @@ const S32 MAX_IMG_PACKET_SIZE = 1000; | |||
59 | class LLImageFormatted; | 59 | class LLImageFormatted; |
60 | class LLImageRaw; | 60 | class LLImageRaw; |
61 | class LLColor4U; | 61 | class LLColor4U; |
62 | class LLWorkerThread; | ||
62 | 63 | ||
63 | typedef enum e_image_codec | 64 | typedef enum e_image_codec |
64 | { | 65 | { |
@@ -74,6 +75,24 @@ typedef enum e_image_codec | |||
74 | } EImageCodec; | 75 | } EImageCodec; |
75 | 76 | ||
76 | //============================================================================ | 77 | //============================================================================ |
78 | // library initialization class | ||
79 | |||
80 | class LLImage | ||
81 | { | ||
82 | public: | ||
83 | static void initClass(LLWorkerThread* workerthread); | ||
84 | static void cleanupClass(); | ||
85 | |||
86 | static const std::string& getLastError(); | ||
87 | static void setLastError(const std::string& message); | ||
88 | |||
89 | protected: | ||
90 | static LLMutex* sMutex; | ||
91 | static std::string sLastErrorMessage; | ||
92 | }; | ||
93 | |||
94 | //============================================================================ | ||
95 | // Image base class | ||
77 | 96 | ||
78 | class LLImageBase : public LLThreadSafeRefCount | 97 | class LLImageBase : public LLThreadSafeRefCount |
79 | { | 98 | { |
@@ -113,10 +132,6 @@ protected: | |||
113 | void setDataAndSize(U8 *data, S32 size) { mData = data; mDataSize = size; }; | 132 | void setDataAndSize(U8 *data, S32 size) { mData = data; mDataSize = size; }; |
114 | 133 | ||
115 | public: | 134 | public: |
116 | static const std::string& getLastError() {return sLastErrorMessage;}; | ||
117 | static void resetLastError() {sLastErrorMessage = "No Error"; }; | ||
118 | static BOOL setLastError(const std::string& message, const std::string& filename = std::string()); // returns FALSE | ||
119 | |||
120 | static void generateMip(const U8 *indata, U8* mipdata, int width, int height, S32 nchannels); | 135 | static void generateMip(const U8 *indata, U8* mipdata, int width, int height, S32 nchannels); |
121 | 136 | ||
122 | // Function for calculating the download priority for textures | 137 | // Function for calculating the download priority for textures |
@@ -141,8 +156,6 @@ private: | |||
141 | public: | 156 | public: |
142 | S16 mMemType; // debug | 157 | S16 mMemType; // debug |
143 | 158 | ||
144 | static std::string sLastErrorMessage; | ||
145 | |||
146 | static BOOL sSizeOverride; | 159 | static BOOL sSizeOverride; |
147 | }; | 160 | }; |
148 | 161 | ||
@@ -245,7 +258,6 @@ public: | |||
245 | LLImageFormatted(S8 codec); | 258 | LLImageFormatted(S8 codec); |
246 | 259 | ||
247 | // LLImageBase | 260 | // LLImageBase |
248 | public: | ||
249 | /*virtual*/ void deleteData(); | 261 | /*virtual*/ void deleteData(); |
250 | /*virtual*/ U8* allocateData(S32 size = -1); | 262 | /*virtual*/ U8* allocateData(S32 size = -1); |
251 | /*virtual*/ U8* reallocateData(S32 size); | 263 | /*virtual*/ U8* reallocateData(S32 size); |
@@ -254,7 +266,6 @@ public: | |||
254 | /*virtual*/ void sanityCheck(); | 266 | /*virtual*/ void sanityCheck(); |
255 | 267 | ||
256 | // New methods | 268 | // New methods |
257 | public: | ||
258 | // subclasses must return a prefered file extension (lowercase without a leading dot) | 269 | // subclasses must return a prefered file extension (lowercase without a leading dot) |
259 | virtual std::string getExtension() = 0; | 270 | virtual std::string getExtension() = 0; |
260 | // calcHeaderSize() returns the maximum size of header; | 271 | // calcHeaderSize() returns the maximum size of header; |
@@ -287,6 +298,10 @@ public: | |||
287 | void setDiscardLevel(S8 discard_level) { mDiscardLevel = discard_level; } | 298 | void setDiscardLevel(S8 discard_level) { mDiscardLevel = discard_level; } |
288 | S8 getDiscardLevel() const { return mDiscardLevel; } | 299 | S8 getDiscardLevel() const { return mDiscardLevel; } |
289 | 300 | ||
301 | // setLastError needs to be deferred for J2C images since it may be called from a DLL | ||
302 | virtual void resetLastError(); | ||
303 | virtual void setLastError(const std::string& message, const std::string& filename = std::string()); | ||
304 | |||
290 | protected: | 305 | protected: |
291 | BOOL copyData(U8 *data, S32 size); // calls updateData() | 306 | BOOL copyData(U8 *data, S32 size); // calls updateData() |
292 | 307 | ||
@@ -295,7 +310,7 @@ protected: | |||
295 | S8 mDecoding; | 310 | S8 mDecoding; |
296 | S8 mDecoded; | 311 | S8 mDecoded; |
297 | S8 mDiscardLevel; | 312 | S8 mDiscardLevel; |
298 | 313 | ||
299 | public: | 314 | public: |
300 | static S32 sGlobalFormattedMemory; | 315 | static S32 sGlobalFormattedMemory; |
301 | }; | 316 | }; |
diff --git a/linden/indra/llimage/llimagebmp.cpp b/linden/indra/llimage/llimagebmp.cpp index c72eb24..ddc8825 100644 --- a/linden/indra/llimage/llimagebmp.cpp +++ b/linden/indra/llimage/llimagebmp.cpp | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2001-2008, Linden Research, Inc. | 6 | * Copyright (c) 2001-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llimage/llimagebmp.h b/linden/indra/llimage/llimagebmp.h index 4a0d6fb..9c0c611 100644 --- a/linden/indra/llimage/llimagebmp.h +++ b/linden/indra/llimage/llimagebmp.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llimage/llimagedxt.cpp b/linden/indra/llimage/llimagedxt.cpp index d3b8225..fe66ee3 100644 --- a/linden/indra/llimage/llimagedxt.cpp +++ b/linden/indra/llimage/llimagedxt.cpp | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2001-2008, Linden Research, Inc. | 6 | * Copyright (c) 2001-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llimage/llimagedxt.h b/linden/indra/llimage/llimagedxt.h index a3cb4c7..3d81414 100644 --- a/linden/indra/llimage/llimagedxt.h +++ b/linden/indra/llimage/llimagedxt.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2001-2008, Linden Research, Inc. | 6 | * Copyright (c) 2001-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llimage/llimagej2c.cpp b/linden/indra/llimage/llimagej2c.cpp index 510b303..fe5d656 100644 --- a/linden/indra/llimage/llimagej2c.cpp +++ b/linden/indra/llimage/llimagej2c.cpp | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2001-2008, Linden Research, Inc. | 6 | * Copyright (c) 2001-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -219,32 +219,54 @@ LLImageJ2C::~LLImageJ2C() | |||
219 | } | 219 | } |
220 | 220 | ||
221 | // virtual | 221 | // virtual |
222 | void LLImageJ2C::resetLastError() | ||
223 | { | ||
224 | mLastError.clear(); | ||
225 | } | ||
226 | |||
227 | //virtual | ||
228 | void LLImageJ2C::setLastError(const std::string& message, const std::string& filename) | ||
229 | { | ||
230 | mLastError = message; | ||
231 | if (!filename.empty()) | ||
232 | mLastError += std::string(" FILE: ") + filename; | ||
233 | } | ||
234 | |||
235 | // virtual | ||
222 | S8 LLImageJ2C::getRawDiscardLevel() | 236 | S8 LLImageJ2C::getRawDiscardLevel() |
223 | { | 237 | { |
224 | return mRawDiscardLevel; | 238 | return mRawDiscardLevel; |
225 | } | 239 | } |
226 | 240 | ||
227 | BOOL LLImageJ2C::updateData() | 241 | BOOL LLImageJ2C::updateData() |
228 | { | 242 | { |
243 | BOOL res = TRUE; | ||
229 | resetLastError(); | 244 | resetLastError(); |
230 | 245 | ||
231 | // Check to make sure that this instance has been initialized with data | 246 | // Check to make sure that this instance has been initialized with data |
232 | if (!getData() || (getDataSize() < 16)) | 247 | if (!getData() || (getDataSize() < 16)) |
233 | { | 248 | { |
234 | setLastError("LLImageJ2C uninitialized"); | 249 | setLastError("LLImageJ2C uninitialized"); |
235 | return FALSE; | 250 | res = FALSE; |
251 | } | ||
252 | else | ||
253 | { | ||
254 | res = mImpl->getMetadata(*this); | ||
236 | } | 255 | } |
237 | 256 | ||
238 | if (!mImpl->getMetadata(*this)) | 257 | if (res) |
239 | { | 258 | { |
240 | return FALSE; | 259 | // SJB: override discard based on mMaxBytes elsewhere |
260 | S32 max_bytes = getDataSize(); // mMaxBytes ? mMaxBytes : getDataSize(); | ||
261 | S32 discard = calcDiscardLevelBytes(max_bytes); | ||
262 | setDiscardLevel(discard); | ||
241 | } | 263 | } |
242 | // SJB: override discard based on mMaxBytes elsewhere | ||
243 | S32 max_bytes = getDataSize(); // mMaxBytes ? mMaxBytes : getDataSize(); | ||
244 | S32 discard = calcDiscardLevelBytes(max_bytes); | ||
245 | setDiscardLevel(discard); | ||
246 | 264 | ||
247 | return TRUE; | 265 | if (!mLastError.empty()) |
266 | { | ||
267 | LLImage::setLastError(mLastError); | ||
268 | } | ||
269 | return res; | ||
248 | } | 270 | } |
249 | 271 | ||
250 | 272 | ||
@@ -258,20 +280,24 @@ BOOL LLImageJ2C::decodeChannels(LLImageRaw *raw_imagep, F32 decode_time, S32 fir | |||
258 | { | 280 | { |
259 | LLMemType mt1((LLMemType::EMemType)mMemType); | 281 | LLMemType mt1((LLMemType::EMemType)mMemType); |
260 | 282 | ||
283 | BOOL res = TRUE; | ||
284 | |||
261 | resetLastError(); | 285 | resetLastError(); |
262 | 286 | ||
263 | // Check to make sure that this instance has been initialized with data | 287 | // Check to make sure that this instance has been initialized with data |
264 | if (!getData() || (getDataSize() < 16)) | 288 | if (!getData() || (getDataSize() < 16)) |
265 | { | 289 | { |
266 | setLastError("LLImageJ2C uninitialized"); | 290 | setLastError("LLImageJ2C uninitialized"); |
267 | return FALSE; | 291 | res = FALSE; |
268 | } | 292 | } |
269 | 293 | else | |
270 | // Update the raw discard level | 294 | { |
271 | updateRawDiscardLevel(); | 295 | // Update the raw discard level |
272 | 296 | updateRawDiscardLevel(); | |
273 | mDecoding = TRUE; | 297 | mDecoding = TRUE; |
274 | BOOL res = mImpl->decodeImpl(*this, *raw_imagep, decode_time, first_channel, max_channel_count); | 298 | res = mImpl->decodeImpl(*this, *raw_imagep, decode_time, first_channel, max_channel_count); |
299 | } | ||
300 | |||
275 | if (res) | 301 | if (res) |
276 | { | 302 | { |
277 | if (!mDecoding) | 303 | if (!mDecoding) |
@@ -283,9 +309,14 @@ BOOL LLImageJ2C::decodeChannels(LLImageRaw *raw_imagep, F32 decode_time, S32 fir | |||
283 | { | 309 | { |
284 | mDecoding = FALSE; | 310 | mDecoding = FALSE; |
285 | } | 311 | } |
286 | return TRUE; // done | ||
287 | } | 312 | } |
288 | return FALSE; | 313 | |
314 | if (!mLastError.empty()) | ||
315 | { | ||
316 | LLImage::setLastError(mLastError); | ||
317 | } | ||
318 | |||
319 | return res; | ||
289 | } | 320 | } |
290 | 321 | ||
291 | 322 | ||
@@ -298,7 +329,13 @@ BOOL LLImageJ2C::encode(const LLImageRaw *raw_imagep, F32 encode_time) | |||
298 | BOOL LLImageJ2C::encode(const LLImageRaw *raw_imagep, const char* comment_text, F32 encode_time) | 329 | BOOL LLImageJ2C::encode(const LLImageRaw *raw_imagep, const char* comment_text, F32 encode_time) |
299 | { | 330 | { |
300 | LLMemType mt1((LLMemType::EMemType)mMemType); | 331 | LLMemType mt1((LLMemType::EMemType)mMemType); |
301 | return mImpl->encodeImpl(*this, *raw_imagep, comment_text, encode_time, mReversible); | 332 | resetLastError(); |
333 | BOOL res = mImpl->encodeImpl(*this, *raw_imagep, comment_text, encode_time, mReversible); | ||
334 | if (!mLastError.empty()) | ||
335 | { | ||
336 | LLImage::setLastError(mLastError); | ||
337 | } | ||
338 | return res; | ||
302 | } | 339 | } |
303 | 340 | ||
304 | //static | 341 | //static |
@@ -376,6 +413,8 @@ void LLImageJ2C::setReversible(const BOOL reversible) | |||
376 | 413 | ||
377 | BOOL LLImageJ2C::loadAndValidate(const std::string &filename) | 414 | BOOL LLImageJ2C::loadAndValidate(const std::string &filename) |
378 | { | 415 | { |
416 | BOOL res = TRUE; | ||
417 | |||
379 | resetLastError(); | 418 | resetLastError(); |
380 | 419 | ||
381 | S32 file_size = 0; | 420 | S32 file_size = 0; |
@@ -383,27 +422,38 @@ BOOL LLImageJ2C::loadAndValidate(const std::string &filename) | |||
383 | if (!apr_file) | 422 | if (!apr_file) |
384 | { | 423 | { |
385 | setLastError("Unable to open file for reading", filename); | 424 | setLastError("Unable to open file for reading", filename); |
386 | return FALSE; | 425 | res = FALSE; |
387 | } | 426 | } |
388 | if (file_size == 0) | 427 | else if (file_size == 0) |
389 | { | 428 | { |
390 | setLastError("File is empty",filename); | 429 | setLastError("File is empty",filename); |
391 | apr_file_close(apr_file); | 430 | apr_file_close(apr_file); |
392 | return FALSE; | 431 | res = FALSE; |
393 | } | 432 | } |
394 | 433 | else | |
395 | U8 *data = new U8[file_size]; | ||
396 | apr_size_t bytes_read = file_size; | ||
397 | apr_status_t s = apr_file_read(apr_file, data, &bytes_read); // modifies bytes_read | ||
398 | if (s != APR_SUCCESS || (S32)bytes_read != file_size) | ||
399 | { | 434 | { |
400 | delete[] data; | 435 | U8 *data = new U8[file_size]; |
401 | setLastError("Unable to read entire file"); | 436 | apr_size_t bytes_read = file_size; |
402 | return FALSE; | 437 | apr_status_t s = apr_file_read(apr_file, data, &bytes_read); // modifies bytes_read |
438 | apr_file_close(apr_file); | ||
439 | if (s != APR_SUCCESS || (S32)bytes_read != file_size) | ||
440 | { | ||
441 | delete[] data; | ||
442 | setLastError("Unable to read entire file"); | ||
443 | res = FALSE; | ||
444 | } | ||
445 | else | ||
446 | { | ||
447 | res = validate(data, file_size); | ||
448 | } | ||
403 | } | 449 | } |
404 | apr_file_close(apr_file); | ||
405 | 450 | ||
406 | return validate(data, file_size); | 451 | if (!mLastError.empty()) |
452 | { | ||
453 | LLImage::setLastError(mLastError); | ||
454 | } | ||
455 | |||
456 | return res; | ||
407 | } | 457 | } |
408 | 458 | ||
409 | 459 | ||
@@ -411,21 +461,30 @@ BOOL LLImageJ2C::validate(U8 *data, U32 file_size) | |||
411 | { | 461 | { |
412 | LLMemType mt1((LLMemType::EMemType)mMemType); | 462 | LLMemType mt1((LLMemType::EMemType)mMemType); |
413 | 463 | ||
464 | resetLastError(); | ||
465 | |||
414 | setData(data, file_size); | 466 | setData(data, file_size); |
467 | |||
415 | BOOL res = updateData(); | 468 | BOOL res = updateData(); |
416 | if ( !res ) | 469 | if ( res ) |
417 | { | 470 | { |
418 | return FALSE; | 471 | // Check to make sure that this instance has been initialized with data |
472 | if (!getData() || (0 == getDataSize())) | ||
473 | { | ||
474 | setLastError("LLImageJ2C uninitialized"); | ||
475 | res = FALSE; | ||
476 | } | ||
477 | else | ||
478 | { | ||
479 | res = mImpl->getMetadata(*this); | ||
480 | } | ||
419 | } | 481 | } |
420 | 482 | ||
421 | // Check to make sure that this instance has been initialized with data | 483 | if (!mLastError.empty()) |
422 | if (!getData() || (0 == getDataSize())) | ||
423 | { | 484 | { |
424 | setLastError("LLImageJ2C uninitialized"); | 485 | LLImage::setLastError(mLastError); |
425 | return FALSE; | ||
426 | } | 486 | } |
427 | 487 | return res; | |
428 | return mImpl->getMetadata(*this); | ||
429 | } | 488 | } |
430 | 489 | ||
431 | void LLImageJ2C::decodeFailed() | 490 | void LLImageJ2C::decodeFailed() |
diff --git a/linden/indra/llimage/llimagej2c.h b/linden/indra/llimage/llimagej2c.h index 2b4a3ec..ad514eb 100644 --- a/linden/indra/llimage/llimagej2c.h +++ b/linden/indra/llimage/llimagej2c.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -54,6 +54,10 @@ public: | |||
54 | /*virtual*/ S32 calcDataSize(S32 discard_level = 0); | 54 | /*virtual*/ S32 calcDataSize(S32 discard_level = 0); |
55 | /*virtual*/ S32 calcDiscardLevelBytes(S32 bytes); | 55 | /*virtual*/ S32 calcDiscardLevelBytes(S32 bytes); |
56 | /*virtual*/ S8 getRawDiscardLevel(); | 56 | /*virtual*/ S8 getRawDiscardLevel(); |
57 | // Override these so that we don't try to set a global variable from a DLL | ||
58 | /*virtual*/ void resetLastError(); | ||
59 | /*virtual*/ void setLastError(const std::string& message, const std::string& filename = std::string()); | ||
60 | |||
57 | 61 | ||
58 | // Encode with comment text | 62 | // Encode with comment text |
59 | BOOL encode(const LLImageRaw *raw_imagep, const char* comment_text, F32 encode_time=0.0); | 63 | BOOL encode(const LLImageRaw *raw_imagep, const char* comment_text, F32 encode_time=0.0); |
@@ -86,6 +90,7 @@ protected: | |||
86 | F32 mRate; | 90 | F32 mRate; |
87 | BOOL mReversible; | 91 | BOOL mReversible; |
88 | LLImageJ2CImpl *mImpl; | 92 | LLImageJ2CImpl *mImpl; |
93 | std::string mLastError; | ||
89 | }; | 94 | }; |
90 | 95 | ||
91 | // Derive from this class to implement JPEG2000 decoding | 96 | // Derive from this class to implement JPEG2000 decoding |
diff --git a/linden/indra/llimage/llimagejpeg.cpp b/linden/indra/llimage/llimagejpeg.cpp index 68529b6..afb3368 100644 --- a/linden/indra/llimage/llimagejpeg.cpp +++ b/linden/indra/llimage/llimagejpeg.cpp | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2002-2008, Linden Research, Inc. | 6 | * Copyright (c) 2002-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -465,7 +465,8 @@ void LLImageJPEG::errorOutputMessage( j_common_ptr cinfo ) | |||
465 | char buffer[JMSG_LENGTH_MAX]; /* Flawfinder: ignore */ | 465 | char buffer[JMSG_LENGTH_MAX]; /* Flawfinder: ignore */ |
466 | (*cinfo->err->format_message) (cinfo, buffer); | 466 | (*cinfo->err->format_message) (cinfo, buffer); |
467 | 467 | ||
468 | ((LLImageJPEG*) cinfo->client_data)->setLastError( buffer ); | 468 | std::string error = buffer ; |
469 | LLImage::setLastError(error); | ||
469 | 470 | ||
470 | BOOL is_decode = (cinfo->is_decompressor != 0); | 471 | BOOL is_decode = (cinfo->is_decompressor != 0); |
471 | llwarns << "LLImageJPEG " << (is_decode ? "decode " : "encode ") << " failed: " << buffer << llendl; | 472 | llwarns << "LLImageJPEG " << (is_decode ? "decode " : "encode ") << " failed: " << buffer << llendl; |
diff --git a/linden/indra/llimage/llimagejpeg.h b/linden/indra/llimage/llimagejpeg.h index 79dc1a3..0914fd7 100644 --- a/linden/indra/llimage/llimagejpeg.h +++ b/linden/indra/llimage/llimagejpeg.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2002-2008, Linden Research, Inc. | 7 | * Copyright (c) 2002-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llimage/llimagepng.cpp b/linden/indra/llimage/llimagepng.cpp index 5108066..f2d6376 100644 --- a/linden/indra/llimage/llimagepng.cpp +++ b/linden/indra/llimage/llimagepng.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2007-2008, Linden Research, Inc. | 7 | * Copyright (c) 2007-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llimage/llimagepng.h b/linden/indra/llimage/llimagepng.h index 9d45fb0..0387982 100644 --- a/linden/indra/llimage/llimagepng.h +++ b/linden/indra/llimage/llimagepng.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2007&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2007&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2007-2008, Linden Research, Inc. | 6 | * Copyright (c) 2007-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llimage/llimagetga.cpp b/linden/indra/llimage/llimagetga.cpp index 21d0fd1..c72a1cd 100644 --- a/linden/indra/llimage/llimagetga.cpp +++ b/linden/indra/llimage/llimagetga.cpp | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2001-2008, Linden Research, Inc. | 6 | * Copyright (c) 2001-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llimage/llimagetga.h b/linden/indra/llimage/llimagetga.h index 385e086..b522930 100644 --- a/linden/indra/llimage/llimagetga.h +++ b/linden/indra/llimage/llimagetga.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llimage/llimageworker.cpp b/linden/indra/llimage/llimageworker.cpp index dc6f2e4..d570ad1 100644 --- a/linden/indra/llimage/llimageworker.cpp +++ b/linden/indra/llimage/llimageworker.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2001-2008, Linden Research, Inc. | 7 | * Copyright (c) 2001-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -41,13 +41,13 @@ LLWorkerThread* LLImageWorker::sWorkerThread = NULL; | |||
41 | S32 LLImageWorker::sCount = 0; | 41 | S32 LLImageWorker::sCount = 0; |
42 | 42 | ||
43 | //static | 43 | //static |
44 | void LLImageWorker::initClass(LLWorkerThread* workerthread) | 44 | void LLImageWorker::initImageWorker(LLWorkerThread* workerthread) |
45 | { | 45 | { |
46 | sWorkerThread = workerthread; | 46 | sWorkerThread = workerthread; |
47 | } | 47 | } |
48 | 48 | ||
49 | //static | 49 | //static |
50 | void LLImageWorker::cleanupClass() | 50 | void LLImageWorker::cleanupImageWorker() |
51 | { | 51 | { |
52 | } | 52 | } |
53 | 53 | ||
diff --git a/linden/indra/llimage/llimageworker.h b/linden/indra/llimage/llimageworker.h index bf6c3f2..a133f77 100644 --- a/linden/indra/llimage/llimageworker.h +++ b/linden/indra/llimage/llimageworker.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2000&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2000&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2000-2008, Linden Research, Inc. | 7 | * Copyright (c) 2000-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -38,8 +38,10 @@ | |||
38 | class LLImageWorker : public LLWorkerClass | 38 | class LLImageWorker : public LLWorkerClass |
39 | { | 39 | { |
40 | public: | 40 | public: |
41 | static void initClass(LLWorkerThread* workerthread); | 41 | static void initImageWorker(LLWorkerThread* workerthread); |
42 | static void cleanupClass(); | 42 | static void cleanupImageWorker(); |
43 | |||
44 | public: | ||
43 | static LLWorkerThread* getWorkerThread() { return sWorkerThread; } | 45 | static LLWorkerThread* getWorkerThread() { return sWorkerThread; } |
44 | 46 | ||
45 | // LLWorkerThread | 47 | // LLWorkerThread |
diff --git a/linden/indra/llimage/llmapimagetype.h b/linden/indra/llimage/llmapimagetype.h index 156700f..0e17aaa 100644 --- a/linden/indra/llimage/llmapimagetype.h +++ b/linden/indra/llimage/llmapimagetype.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2003&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2003&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2003-2008, Linden Research, Inc. | 6 | * Copyright (c) 2003-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llimage/llpngwrapper.cpp b/linden/indra/llimage/llpngwrapper.cpp index 35b4ec3..2b0f7b6 100644 --- a/linden/indra/llimage/llpngwrapper.cpp +++ b/linden/indra/llimage/llpngwrapper.cpp | |||
@@ -4,7 +4,7 @@ | |||
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2007-2008, Linden Research, Inc. | 7 | * Copyright (c) 2007-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
diff --git a/linden/indra/llimage/llpngwrapper.h b/linden/indra/llimage/llpngwrapper.h index bd603c3..87ddb9e 100644 --- a/linden/indra/llimage/llpngwrapper.h +++ b/linden/indra/llimage/llpngwrapper.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * $LicenseInfo:firstyear=2007&license=viewergpl$ | 4 | * $LicenseInfo:firstyear=2007&license=viewergpl$ |
5 | * | 5 | * |
6 | * Copyright (c) 2007-2008, Linden Research, Inc. | 6 | * Copyright (c) 2007-2009, Linden Research, Inc. |
7 | * | 7 | * |
8 | * Second Life Viewer Source Code | 8 | * Second Life Viewer Source Code |
9 | * The source code in this file ("Source Code") is provided by Linden Lab | 9 | * The source code in this file ("Source Code") is provided by Linden Lab |