wL i4dZddlZddlZddlZddlmZddlmZddl m Z dZ ejejzejzZdZejdk(r& ej$dej dgdd ZeZn!ej.r ej"Zned d Zd Zd ZdZej8ej:ej<eeej@r'ej@ejBejDejFdejHddejJejLeejNeejPedZ)y#e$rZed edZ[wwxYw)z8GLUT Input hook for interactive use with prompt_toolkit N) default_timer<darwin glutCheckLoopzglutCheckLoop( ) -> None)dll resultTypeargTypesdocargNamesz[Your glut implementation does not allow interactive sessions. Consider installing freeglut.cyNrri/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/IPython/terminal/pt_inputhooks/glut.py glut_displayr<rcyrrrrr glut_idler@rrc@tjtyr)glutglutHideWindowglutMainLoopEventrrr glut_closerDsrc~tjtjtjtdy)Nz KeyboardInterrupt)signalSIGINTdefault_int_handlerprint)signumframes rglut_int_handlerr!Is# MM&--!;!;<  rsipythonctjtjt t}t j dk(r t j dty|jsttt|z }|dkDrtjdn0|dkDrtjdntjd|jssyy#t$rYywxYw) aERun the pyglet event loop by processing pending events only. This keeps processing pending events until stdin is ready. After processing all pending events, a call to time.sleep is inserted. This is needed, otherwise, CPU usage is at 100%. This sleep time should be tuned though for best performance. rr"g$@g?g?g?gMbP?N) rrr!clockr glutGetWindow glutSetWindowrinput_is_readytimesleepKeyboardInterrupt)contextt used_times r inputhookr.^s MM&--!12! G    1 $    #  ((*  ! I4 3S 4  5!-((*.    sAC0+BC00 C<;C<)*__doc__sysr(r OpenGL.GLUTGLUTrOpenGL.platformplatformtimeitrr$glut_fps GLUT_DOUBLE GLUT_RGBA GLUT_DEPTHglut_display_modercreateBaseFunctionrAttributeErrore RuntimeError HAVE_FREEGLUTrrrr!glutInitargvglutInitDisplayModebool glutSetOptionGLUT_ACTION_ON_WINDOW_CLOSE GLUT_ACTION_GLUTMAINLOOP_RETURNSglutCreateWindowglutReshapeWindowrglutWMCloseFuncglutDisplayFunc glutIdleFuncr.rrrrLs( ") %%^^$__%<<8 8333 4+  & ..  , --    ! sxx+-D88==@z#1j"l$9. _ 8 0167 88s"FF FF