summaryrefslogtreecommitdiff
path: root/indra/llwindow/llwindowwin32.cpp
AgeCommit message (Collapse)Author
2021-11-08SL-16094: Zap thread safety land mine; thin PostMessage() calls.Nat Goodspeed
LLWindowWin32::mWndProc was a public WNDPROC member. If set non-NULL, mainWindowProc() would call that before falling into its own handler code. But now, mWndProc would be called on the window thread instead of on the main thread. Running arbitrary callback code on the window thread could cause all sorts of problems. It could be made safe by posting the callback call to the "mainloop" WorkQueue for execution on the main thread. But as no code actually references it, delete it instead. Per DaveP, the recent change to LLWindowsWin32Thread::post() could end up calling PostMessage() many times per frame, with nontrivial overhead. Reinstate the more selective code that calls PostMessage() with the dummy message (to bust us out of GetMessage() to check pending window-thread work requests) at most once per frame.
2021-11-05SL-16094: Use ThreadPool for LLWindowWin32Thread.Nat Goodspeed
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.
2021-11-05SL-16288 FIXED Dragging a file across the viewer cancels the drag and ↵Mnikolenko Productengine
freezes the File Explorer
2021-10-28SL-9436 Don't render 100% transparent objects.Dave Parks
2021-10-25Merged DRTVWR-546 into SL-15999Vir Linden
2021-10-22mergeBrad Payne (Vir Linden)
2021-10-22SL-16203 Fix for wonky handling of mouse deltas.Dave Parks
2021-10-11SL-16099 Multi-threaded OpenGL usage on Windows, enable Core Profile and ↵Dave Parks
VAOs by default.
2021-10-01SL-16094 Move LLWindowWin32::mainWindowProc and Windows message handling to ↵Dave Parks
a background thread to prevent frame stalls in LLWindowWin32::gatherInput
2021-09-28SL-16102 Set window title to agent name (child of SL-15999 Support for low ↵Callum Linden
overhead, non interactive viewer sessions)
2021-09-22Merge remote-tracking branch 'remotes/origin/DRTVWR-541' into DRTVWR-546Runitai Linden
# Conflicts: # indra/llcommon/linden_common.h
2021-09-21SL-16027: Add Tracy OpenGL supportPtolemy
2021-09-20SL-16043 Fix DisableVerticalSync, default DisableVerticalSync to off, remove ↵Dave Parks
broken frame limiter code (use vsync if you want to limit framerate).
2021-06-08SL-15359 out_of_range exceptionAndrey Kleshchev
2021-06-07Merge branch 'master' into DRTVWR-530-maintAndrey Lihatskiy
2021-04-30Merge branch 'master' into DRTVWR-530-maintAndrey Lihatskiy
2021-04-29Merge master into DV525-merge-6.4.19Dave Houlton
2021-04-27SL-14664 Added zoomout and sizeallAndrey Kleshchev
Remade code to use getCursorFromString
2021-02-01Merge branch 'master' into DV525-merge-6.4.13Dave Houlton
2021-02-01Merge branch 'master' of https://bitbucket.org/lindenlab/viewer/src/master ↵Andrey Kleshchev
into DRTVWR-515-maint # Conflicts: # autobuild.xml (llca) # indra/llwindow/llwindow.h (SL-13507 vs SL-5894) # indra/newview/llscenemonitor.cpp (SL-14422) # indra/newview/llvovolume.cpp (SL-12069)
2021-01-25SL-14705: Cleanup U32 S32 castPtolemy
2021-01-25SL-14705: Merge Sovereign Engineer's fix for name tags showing in front with ↵Ptolemy
AMD GPUs: Fix GL_INVALID_OPERATION when copying stencil to default window framebuffer on AMD graphics on windows
2021-01-04SL-14347 Crash at ChoosePixelFormatAndrey Kleshchev
2020-12-01SL-14347 Crash at ChoosePixelFormat SEHAndrey Kleshchev
2020-11-19SL-14347 Crash at ChoosePixelFormatAndrey Kleshchev
2020-11-13Merge branch 'master' into DRTVWR-515-maintAndrey Lihatskiy
# Conflicts: # indra/newview/llfloatereditextdaycycle.cpp # indra/newview/llfloaterfixedenvironment.cpp
2020-11-11Merge branch 'master' 6.4.12 into DRTVWR-510Dave Houlton
2020-11-11Merge branch 'master' into DRTVWR-513-maintAndrey Lihatskiy
# Conflicts: # autobuild.xml # indra/llui/llfolderviewmodel.h # indra/newview/lltexturecache.cpp # indra/newview/llviewermenu.h # indra/newview/skins/default/xui/en/menu_wearable_list_item.xml
2020-10-20SL-13733 Verify window handleAndrey Kleshchev
2020-09-18SL-13733 Crash: Do not unassign event handler before handling WM_DESTROYAndrey Kleshchev
2020-08-18Merge branch 'master' 6.4.8 into DRTVWR-510Dave Houlton
2020-08-18Merge branch 'master' into DRTVWR-515-maintAndrey Lihatskiy
# Conflicts: # indra/newview/llimprocessing.cpp
2020-08-18Merge branch 'master' into DRTVWR-513-maintAndrey Lihatskiy
# Conflicts: # indra/newview/llimprocessing.cpp # indra/newview/llviewerjoystick.cpp # indra/newview/llviewermenufile.cpp
2020-07-17SL-13507 Viewer should log resolution of all associated displaysMnikolenko Productengine
2020-07-15SL-5894 Fix llurlentry test buildingAndrey Kleshchev
2020-07-15SL-5894 #4 Organize device storage between sessionsAndrey Kleshchev
2020-07-15SL-5894 #3 WIP enumerate devices to flaoter, let floater set deviceAndrey Kleshchev
temp
2020-07-10SL-5894 Changed joystick init to select device with apropriate manufacturer ↵Andrey Kleshchev
and type
2020-06-30SL-12085 Way to debug window message processing with logcontrolAndrey Kleshchev
2020-06-17SL-12085 Debug log for show() and PeekMessageAndrey Kleshchev
User's viewer freezes right after setStartupState( STATE_LOGIN_CLEANUP ) and these places are primary suspects
2020-06-15SL-12085 Debug-log window positionAndrey Kleshchev
2020-05-04SL-12971: Add logging of Display Devices -- useful on dual GPU machinesPtolemy
2019-10-22SL-12170 Somehow crash still happens inside __try blockandreykproductengine
2019-09-10SL-11910 [Win] Horizontal scrollandreykproductengine
2019-08-13Merged in lindenlab/viewer-bearAndreyL ProductEngine
2019-08-13Merged in lindenlab/viewer-releaseAndreyL ProductEngine
2019-07-18SL-11592 [Mac] Ability to bind extra mouse buttons for push to talkandreykproductengine
2019-07-18SL-11592 [Win] Ability to bind extra mouse buttons for push to talkandreykproductengine
2019-06-24Merged in lindenlab/viewer-releaseAndreyL ProductEngine
2019-06-22Merged in lindenlab/viewer-releaseAndreyL ProductEngine