|
|
| (5 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]]
| |
| = Tasks =
| |
| == Phase 1 ==
| |
| === LLViewerApp ===
| |
| * Create a LLViewerApp class based on LLAppb
| |
| * 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
| |
| === LLViewerThread ===
| |
| * 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
| |
| === Watchdog ===
| |
| * Add a 'watchdog' to LLViewerApp to detect infinite loops and trigger a crash
| |
| * Ensure that the crash handler generates proper stack information for LLViewerThread
| |
| == 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
| |