
    "e+                        d Z ddlZddlZddlmZ ddlZddlmZ ddl	m
Z
 ddlmZ ddlmZ dZej"                  ej$                  z  ej&                  z  ZdZej                  dk(  r&	  e
j,                  de
j                  dg d	d
      ZeZn!ej4                  rej*                  Zn ed      d Zd Zd Zd Zd Zy# e$ r	  ed      w xY w)z"
GLUT Inputhook support functions
    N)time)default_timer)stdin_ready<   darwinglutCheckLoopzglutCheckLoop(  ) -> None )dll
resultTypeargTypesdocargNameszYYour glut implementation does not allow interactive sessionsConsider installing freeglut.z[Your glut implementation does not allow interactive sessions. Consider installing freeglut.c                       y Nr	   r	       =/usr/lib/python3/dist-packages/pydev_ipython/inputhookglut.pyglut_displayr   Q       r   c                       y r   r	   r	   r   r   	glut_idler   V   r   r   c                  @    t        j                          t                y r   )glutglutHideWindowglutMainLoopEventr	   r   r   
glut_closer   [   s    r   c                 ~    t        j                   t         j                  t         j                         t        d       y )Nz
KeyboardInterrupt)signalSIGINTdefault_int_handlerprint)signumframes     r   glut_int_handlerr#   a   s#    
MM&--!;!;<	
 r   c                     t        j                   t         j                  t               	 t               } t	        j
                         dk(  r t	        j                  d       t                yt               smt                t               | z
  }|dkD  rt        j                  d       n0|dkD  rt        j                  d       nt        j                  d       t               smy# t        $ r Y yw xY w)aE  Run 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.
    r      g      $@g      ?g?g?gMbP?)r   r   r#   clockr   glutGetWindowglutSetWindowr   r   r   sleepKeyboardInterrupt)t	used_times     r   inputhook_glutr-   k   s     MM&--!12!G 1$q!- !I4

3S 

4  

5!- -2   s   A C# +A6C# #	C/.C/) __doc__ossys"_pydev_bundle._pydev_saved_modulesr   r   OpenGL.GLUTGLUTr   OpenGL.platformplatformtimeitr   r&   pydev_ipython.inputhookr   glut_fpsGLUT_DOUBLE	GLUT_RGBA
GLUT_DEPTHglut_display_moder   createBaseFunctionr   AttributeErrorRuntimeErrorHAVE_FREEGLUTr   r   r   r#   r-   r	   r   r   <module>rA      s   < 
 
 3   " ) /  %%^^$__%   <<8
13334+	 &	..
	,- -	
	
!/W  101 	11s   '"B= =C