Difference between revisions of "LLViewerApp"

From Second Life Wiki
Jump to navigation Jump to search
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