Move the whole LLWindowWin32Thread class inside LLWindowWin32, and make it a struct. Migrate the struct declaration to llwindowwin32.cpp. Derive it from ThreadPool, which provides the WorkQueue. Use runPending() instead of manually popping and running individual queue items. Make its post() operation always PostMessage(bogus) whenever we put an entry in the WorkQueue, so we won't remain blocked in GetMessage(). Instead of storing a back pointer to the LLWindowWin32 instance, store the relevant HWND and HDC in LLWindowWin32Thread itself to avoid cross-thread timing problems. Extract both instances of a large duplicated block of LLWindowWin32 code to a new recreateWindow() method, and call it in those places. Per the TODO, use a std::future to pass the new HWND and HDC back to LLWindowWin32 -- but also store them locally on the LLWindowWin32Thread instance. |
||
|---|---|---|
| debian | ||
| doc | ||
| etc | ||
| indra | ||
| scripts | ||
| .clang-format | ||
| .gitignore | ||
| .hgtags | ||
| BuildParams | ||
| README.md | ||
| autobuild.xml | ||
| build.sh | ||
README.md
Second Life Viewer
This project manages the source code for the Second Life Viewer.
This source is available as open source; for details on licensing, see the licensing page on the Second Life wiki
For information on how to use and contribute to this, see the open source portal on the wiki.
To download the current default version, visit the download page. For even newer versions try the Alternate Viewers page