def start(self): if _kernel32.GetCurrentThreadId() != self._event_thread: raise RuntimeError( 'EventLoop.run() must be called from the same ' + 'thread that imports pyglet.app') self._timer_proc = types.TIMERPROC(self._timer_proc_func) self._timer = _user32.SetTimer(0, 0, constants.USER_TIMER_MAXIMUM, self._timer_proc) self._timer_func = None self._polling = False self._allow_polling = True
def __init__(self): super(Win32EventLoop, self).__init__() self._next_idle_time = None # Force immediate creation of an event queue on this thread -- note # that since event loop is created on pyglet.app import, whatever # imports pyglet.app _must_ own the main run loop. msg = types.MSG() _user32.PeekMessageW(ctypes.byref(msg), 0, constants.WM_USER, constants.WM_USER, constants.PM_NOREMOVE) self._event_thread = _kernel32.GetCurrentThreadId() self._wait_objects = [] self._recreate_wait_objects_array() self._timer_proc = types.TIMERPROC(self._timer_proc_func) self._timer = _user32.SetTimer(0, 0, constants.USER_TIMER_MAXIMUM, self._timer_proc)