Difference between revisions of "LLViewerApp"
Jump to navigation
Jump to search
Steve Linden (talk | contribs) |
Steve Linden (talk | contribs) (→Tasks) |
||
Line 5: | Line 5: | ||
* [[Viewer Roadmap]] | * [[Viewer Roadmap]] | ||
= Tasks = | = Tasks = | ||
== LLViewerApp == | == Phase 1 == | ||
=== LLViewerApp === | |||
* Create a LLViewerApp class based on LLAppb | * Create a LLViewerApp class based on LLAppb | ||
* Move class initialization and parameter parsing to LLViewerApp | * Move class initialization and parameter parsing to LLViewerApp | ||
Line 12: | Line 13: | ||
** Print text to a buffer instead of stdio | ** Print text to a buffer instead of stdio | ||
** Send the buffer to stdio in LLViewerApp loop | ** Send the buffer to stdio in LLViewerApp loop | ||
== LLViewerThread == | === LLViewerThread === | ||
* Create a LLViewerThread class based on LLThread | * Create a LLViewerThread class based on LLThread | ||
* Move the main loop into LLViewerThread | * Move the main loop into LLViewerThread | ||
== Eliminate viewer.cpp == | === Eliminate viewer.cpp === | ||
* Create proper C++ abstractions for any remaining code in viewer.cpp | * Create proper C++ abstractions for any remaining code in viewer.cpp | ||
== Watchdog == | === Watchdog === | ||
* Add a 'watchdog' to LLViewerApp to detect infinite loops and trigger a crash | * Add a 'watchdog' to LLViewerApp to detect infinite loops and trigger a crash | ||
* Ensure that the crash handler generates proper stack information for LLViewerThread | * 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 |
Revision as of 15:09, 3 August 2007
Objectives
- 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
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