Difference between revisions of "LLViewerApp"

From Second Life Wiki
Jump to navigation Jump to search
(Replacing page with 'See Viewer App Cleanup')
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Objectives =
See [[Viewer App Cleanup]]
* Improve the stability and maintainability of the Second Life Viewer code by cleaning up the initialization and main loop code
* Move the main loop to a separate thread so that infinite loops can be detected and debugged
= See Also =
* [[Viewer Roadmap]]
* [[User Interface Roadmap]]
 
= Tasks =
== Phase 1 ==
* Create a LLViewerApp class based on LLApp
** Move class initialization and parameter parsing to LLViewerApp
** Move all error handling to LLViewerApp (errors set a flag and sleep, LLViewerApp generates the exception)
** Move all debug/info/warning/error text printing to LLViewerApp
*** Print text to a buffer instead of stdio
*** Send the buffer to stdio in LLViewerApp loop
*** Use a proper window for viewing console text in the Viewer
*** Move unheeded warnings to debugs
*** Clean up info messages
* Create a LLViewerThread class based on LLThread
** Move the main loop into LLViewerThread
* Eliminate viewer.cpp
** Create proper C++ abstractions for any remaining code in viewer.cpp
* Add a 'watchdog' to LLViewerApp to detect infinite loops and trigger a crash
** Ensure that the crash handler generates proper stack information for LLViewerThread
** Add a 'Debug > Test > Force Crash', 'Force Infinite Loop', and 'Force Deadlock' debug options
== Test Plan ==
* Run Second Life on all platforms. Include all available hardware configurations (Intel, AMD, PPC, single processor, dual core, dual processor)
** Run frame rate tests and ensure that frame rate is at least 95% of current client's frame rate
* Force a crash using the debug option. Make sure that a crash report is sent.
* Force an infinite loop using the debug option. Make sure that a crash report is sent.
* Force a deadlock using the debug option. Make sure that a crash report is sent.
* Use Client > Console > Debug Console to view debug messages while running
** Ensure that they get displayed in order
* Scan the log file after a session and look for any warnings.
** Report any warnings that show up.
** Check for any unhelpful info messages
 
== Phase 2 ==
=== LLViewerLogin ===
* Abstract the login sequence into a class
=== Eliminate startup.cpp ===
* Create proper C++ abstractions for startup using LLViewerLogin
=== Lightweight Client ===
* Create a client that logs in to Second Life without running the 3D render pipeline

Latest revision as of 11:29, 23 August 2007