call-as-current in gl-context<%>
Calls a thunk with this OpenGL context as the current context for OpenGL commands.
The method blocks to obtain a lock that protects the global OpenGL context, and it releases the lock when the thunk returns or escapes. The lock is re-entrant, so a nested use of the method in the same thread with the same OpenGL context does not obtain or release the lock.
The lock prevents interference among OpenGL-using threads. If a thread
is terminated while holding the context lock, the lock is
released. Continuation jumps into the thunk do not grab the lock or
set the OpenGL context. See gl-context<%> for more
information on interference.
The method accepts an alternate waitable for use while blocking for
the context lock; see sync, section 7.7 in PLT MzScheme: Language Manual for more
information on waitables.
The result of the method call is the result of the thunk if it is called, or the result of the alternate waitable if it is chosen instead of the context lock.
If
ok? returns #f at the time that this method is called, then
an exn:fail:contract exception is raised.
(-> return value ofsenda-gl-contextcall-as-currentthunkalternateenable-breaks?)thunkorwaitable
thunk: a procedure of no arguments
alternate=permanently blocked waitable: waitable
enable-breaks?=: boolean#fIf
enable-breaks?is true, then the method usessync/enable-break, section 7.7 in PLT MzScheme: Language Manual while blocking for the context-setting lock instead ofsync.