From ba314478ba3a0286c7900b126ca7ef34e0b4e57b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Camilla=20L=C3=B6wy?= Date: Wed, 6 Apr 2022 15:51:20 +0200 Subject: [PATCH] Updated Multiple copy issues (markdown) --- Multiple-copy-issues.md | 48 +++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/Multiple-copy-issues.md b/Multiple-copy-issues.md index 2158aa7..6be91ee 100644 --- a/Multiple-copy-issues.md +++ b/Multiple-copy-issues.md @@ -1,11 +1,37 @@ -- Context API TLS -- Gamma ramp restoration -- Video mode restoration -- Cocoa menu bar -- Cocoa application delegate -- Disabled cursor mode -- Win32 cursor trails setting -- X11 wait events -- Wayland wait events -- X11 clipboard transfer -- Cocoa current directory \ No newline at end of file +## Context API TLS + +Each copy of GLFW assumes nothing else makes a context current and that the context API's TLS slot remains in sync with its own. + +## Gamma ramp restoration + +Each copy of GLFW saves the original gamma ramp of a monitor immediately before the first time it is set. The original ramp is then restored at termination. Depending on order of termination, a copy may overwrite the correctly restored ramp with values set by a different copy. + +## Video mode restoration + +Each copy of GLFW saves the original video mode of a monitor immediately before the first time it is set. The original ramp is then restored at window iconification, window destruction or termination. Depending on the order of operations, a copy may overwrite the correctly restored video mode with one set by a different copy. + +## Cocoa menu bar +## Cocoa application delegate + +The Cocoa application singleton has a single slot for a delegate object. Only one copy can have its delegate set. + +## Disabled cursor mode +## Win32 cursor trails setting + +The cursor trails accessibility feature is disabled when entering full screen mode as it severely impacted OpenGL performance. It is restored to its original setting when restoring the video mode. If multiple copies create full screen windows, cursor trails will become disabled. + +## X11 wait events + +Each copy of GLFW has its own connection to the X server and events are only sent to the connection that created the window. If one copy blocks waiting for events, windows created by other copies will stop responding. + +## Wayland wait events + +Each copy of GLFW has its own connection to the Wayland compositor and events are only sent to the connection that created the window. If one copy blocks waiting for events, windows created by other copies will stop responding. + +## X11 clipboard transfer + +X11 clipboard transfer is an async protocol coordinated via window properties (😱) and clipboard retrieval is implemented via a custom event loop. This does not allow other copies to process events, meaning clipboard transfer between copies would deadlock. + +## Cocoa current directory + +By default the current directory is set to the Resources directory of the application bundle at init. The init hint that controls this only affects that copy.