File tree 1 file changed +16
-3
lines changed
1 file changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -62,15 +62,28 @@ impl<W: HasRawWindowHandle> GraphicsContext<W> {
62
62
} )
63
63
}
64
64
65
- /// Gets shared access to the underlying window
65
+ /// Gets shared access to the underlying window.
66
66
#[ inline]
67
67
pub fn window ( & self ) -> & W {
68
68
& self . window
69
69
}
70
70
71
- /// Gets mut/exclusive access to the underlying window
71
+ /// Gets mut/exclusive access to the underlying window.
72
+ ///
73
+ /// This method is `unsafe` because it could be used to replace the window with another one,
74
+ /// thus dropping the original window and violating the property that this [`GraphicsContext`]
75
+ /// will always be destroyed before the window it writes into. This method should only be used
76
+ /// when the window type in use requires mutable access to perform some action on an existing
77
+ /// window.
78
+ ///
79
+ /// # Safety
80
+ ///
81
+ /// - After the returned mutable reference is dropped, the window must still be the same window
82
+ /// which this [`GraphicsContext`] was created for; and within that window, the
83
+ /// platform-specific configuration for 2D drawing must not have been modified. (For example,
84
+ /// on macOS the view hierarchy of the window must not have been modified.)
72
85
#[ inline]
73
- pub fn window_mut ( & mut self ) -> & mut W {
86
+ pub unsafe fn window_mut ( & mut self ) -> & mut W {
74
87
& mut self . window
75
88
}
76
89
You can’t perform that action at this time.
0 commit comments