
    _e;,              	          d Z ddlmZmZ ddlmZ ej
                  j                  ej
                  j                        Zddl	m
Z
 ddlmZ ddl ddlZej                  Zej                   Zej"                  Zej$                  Z ej&                  dd	      Z ej&                  d
d      Z ej&                  dd      Z ej&                  dd	      Z ej&                  dd      Z ej&                  dd      Z ej&                  dd      Z ej&                  dd      Z ej&                  dd      Z ej&                  dd	      Z ej&                  dd      Z ej&                  dd      Z ej&                  dd      Z  ej&                  dd      Z!d	Z"dZ#dZ$dZ%d Z&d!Z'd"Z(d#Z)dZ*d	Z+d	Z,d$Z-dZ.d	Z/d%Z0d&Z1d&Z2d&Z3dZ4dZ5 ejl                  d'ej
                  j                  dg d(d)*      Z7 ejl                  d+ej
                  j                  dg d,d)*      Z8 e
jr                  d-eeeefd.      Z: e
jr                  d/d)d)      Z; e
jr                  d0d)d)      Z< e
jr                  d1d)d)      Z= ejl                  d2ej
                  j                  de>egd3d4*      Z? ejl                  d5ej
                  j                  eg d6d)*      Z@ ejl                  d7ej
                  j                  degd8d9*      ZA ejl                  d:ej
                  j                  eg d;d)*      ZB ejl                  d<ej
                  j                  degd=d9*      ZC ejl                  d>ej
                  j                  eegd?d@*      ZD ejl                  dAej
                  j                  eEegdBd@*      ZF ejl                  dCej
                  j                  deegdDdE*      ZG ejl                  dFej
                  j                  deegdGdE*      ZH ejl                  dHej
                  j                  dg dId)*      ZI ejl                  dJej
                  j                  dg dKd)*      ZJ ejl                  dLej
                  j                  deej                  eLgdMdN*      ZM ej                  eM      j                  dO      ZM ejl                  dPej
                  j                  deej                  eLgdQdN*      ZO ej                  eO      j                  dO      ZO ejl                  dRej
                  j                  deLeLePePgdSdT*      ZQ ejl                  dUej
                  j                  deLeLePePgdVdT*      ZR ejl                  dWej
                  j                  eegdXdY*      ZS ejl                  dZej
                  j                  dePgd[d\*      ZT ejl                  d]ej
                  j                  dePgd^d_*      ZU ejl                  d`ej
                  j                  dePePgdadb*      ZV ejl                  dcej
                  j                  dg ddd)*      ZW ejl                  deej
                  j                   ej                  eP      eP ej                  eP      gdfdg*      ZY ejl                  dhej
                  j                  dePgdij      ZZy)ka  FreeGLUT extensions to the GLUT API

This module will provide the FreeGLUT extensions if they are available
from the GLUT module.  Note that any other implementation that also provides
these entry points will also retrieve the entry points with this module.
    )platformarrays)constant)special)wrapper)*N
GLUT_DEBUG   GLUT_FORWARD_COMPATIBLE   GLUT_ACTION_EXIT GLUT_ACTION_GLUTMAINLOOP_RETURNSGLUT_ACTION_CONTINUE_EXECUTIONGLUT_INIT_MAJOR_VERSIONi   GLUT_INIT_MINOR_VERSIONi  GLUT_INIT_FLAGSi  GLUT_CREATE_NEW_CONTEXTGLUT_USE_CURRENT_CONTEXTGLUT_ACTION_ON_WINDOW_CLOSEi  GLUT_WINDOW_BORDER_WIDTHi  i  GLUT_RENDERING_CONTEXTi  i   i    i @  i   i   i      i     glutMainLoopEventzglutMainLoopEvent(  ) -> None )dll
resultTypeargTypesdocargNamesglutLeaveMainLoopzglutLeaveMainLoop(  ) -> None
MouseWheel)wheel	directionxyCloseWMCloseMenuDestroyglutSetOptionz:glutSetOption( GLenum(option_flag), c_int(value) ) -> None)option_flagvalueglutGetWindowDataz!glutGetWindowData(  ) -> c_void_pglutSetWindowDataz+glutSetWindowData( c_void_p(data) ) -> None)dataglutGetMenuDatazglutGetMenuData(  ) -> c_void_pglutSetMenuDataz)glutSetMenuData( c_void_p(data) ) -> NoneglutBitmapHeightz+glutBitmapHeight( c_void_p(font) ) -> c_int)fontglutStrokeHeightz-glutStrokeHeight( c_void_p(font) ) -> GLfloatglutBitmapStringzDglutBitmapString( c_void_p(font), POINTER(c_ubyte)(string) ) -> None)r3   stringglutStrokeStringzDglutStrokeString( c_void_p(font), POINTER(c_ubyte)(string) ) -> NoneglutWireRhombicDodecahedronz'glutWireRhombicDodecahedron(  ) -> NoneglutSolidRhombicDodecahedronz(glutSolidRhombicDodecahedron(  ) -> NoneglutWireSierpinskiSpongezdglutWireSierpinskiSponge( c_int(num_levels), arrays.GLdoubleArray(offset), GLdouble(scale) ) -> None)
num_levelsoffsetscaler<   glutSolidSierpinskiSpongezeglutSolidSierpinskiSponge( c_int(num_levels), arrays.GLdoubleArray(offset), GLdouble(scale) ) -> NoneglutWireCylinderz\glutWireCylinder( GLdouble(radius), GLdouble(height), GLint(slices), GLint(stacks) ) -> None)radiusheightslicesstacksglutSolidCylinderz]glutSolidCylinder( GLdouble(radius), GLdouble(height), GLint(slices), GLint(stacks) ) -> NoneglutGetProcAddressz2glutGetProcAddress( STRING(procName) ) -> c_void_p)procNameglutInitContextFlagsz,glutInitContextFlags( GLint(flags) ) -> None)flagsglutInitContextProfilez0glutInitContextProfile( GLint(profile) ) -> None)profileglutInitContextVersionzJglutInitContextVersion( GLint(majorVersion), GLint(minorVersion) ) -> None)majorVersionminorVersionglutFullScreenTogglezglutFullScreenToggle( ) -> NoneglutGetModeValueszNglutInitContextVersion( GLenum(mode), POINTER(GLint)(size) ) -> POINTER(GLint))modesizefgDeinitializeag  fgDeinitialize () -> None
    
Exposed to allow client code to work around an AMD/FGLRX bug on 
GLX platforms. FGLRX and FreeGLUT both register cleanup functions 
that unless registered in the correct order, will cause seg-faults.

To work around this, call fgDeinitialize(False) before doing a 
sys.exit() or similar call that terminates your GLUT mainloop.
)r   r   r   r   )[__doc__OpenGLr   r   r   PLATFORMfunctionTypeForGLUTFUNCTION_TYPEOpenGL.GLUTr   r   _wrapperOpenGL.raw.GL._typesctypesc_intc_char_pc_ubytec_void_pConstantr	   r   r   r   r   r   r   r   r   r   r   r   GLUT_WINDOW_HEADER_HEIGHTr   GLUT_ALLOW_DIRECT_CONTEXTGLUT_AUX	GLUT_AUX1	GLUT_AUX2	GLUT_AUX3	GLUT_AUX4GLUT_BORDERLESSGLUT_CAPTIONLESSGLUT_COMPATIBILITY_PROFILEGLUT_CORE_PROFILEGLUT_DIRECT_RENDERINGGLUT_FORCE_DIRECT_CONTEXTGLUT_FORCE_INDIRECT_CONTEXTGLUT_FULL_SCREENGLUT_INIT_PROFILEGLUT_KEY_BEGINGLUT_KEY_DELETEGLUT_KEY_NUM_LOCK	GLUT_SRGBGLUT_TRY_DIRECT_CONTEXTcreateBaseFunctionr   r!   GLUTCallbackglutMouseWheelFuncglutCloseFuncglutWMCloseFuncglutMenuDestroyFuncGLenumr*   r-   r.   r0   r1   r2   GLfloatr4   r5   r7   r8   r9   GLdoubleArrayGLdoubler:   setInputArraySizer>   GLintr?   rD   rE   rG   rI   rK   rN   POINTERrO   rR   r       6/usr/lib/python3/dist-packages/OpenGL/GLUT/freeglut.py<module>r      s   $ !!1183D3D3I3IK  & " ??
..??Xf6
+(++-FP $8$$&8!= #48#4#46XZ[#]  !2!2!24TVW!Y +(++-FP +(++-FP #(##%6@+(++-FK ,8,,.H!M /h//1NPVX ,8,,.H&R -H--/I6S ***,DfN  	
	
	
	
	 !        
	  0H//X..33'	  0H//X..33'	  *W))5%/1N  %$$R ''&&r2 +g**2r 
 ,++**//De_D%	 0H//X..33+	  0H//X..33Z5	  .(--8,,11h)	 .(--8,,11dZ3	 /8..H--22uZ5	  /8..H--22wZ7	  /8..H--22t!N	  /8..H--22t!N	  :h99!x'8'8'='=$1	   ;x::"(9(9(>(>42	   7866H$5$5$:$:tV))84n.	  ,8++-EGYY 
 8H77X%6%6%;%;V))84o.	  -H,,.GI[[ 
 /8..H--22t%/f5	  0H//X..33%/g5	  1X00h//44Z<	  3x22 1 1 6 64W6	  544("3"3"8"8TW:	  544("3"3"8"8TE]T.	  3x22 1 1 6 64)	  0H//X..33u@UNFNN5)*X	  -,,(++00tW
r   