
    3j                         S r SSKrSSKrSSKJrJr  SSKr\R                  S:  a  SrO(\R                  S:  a  SrO\R                  S:  a  S	rOS
rS r	\	" 5       r
 " S S\R                  5      rg)z"Windows-specific platform features    N)ctypesloaderbaseplatformi  vc7i  vc14i  vc10vc9c                  P    [         R                  " 5       S   R                  S5      $ )Nr   bits)platformarchitecturestrip     O/home/wildlama/miniconda3/lib/python3.13/site-packages/OpenGL/platform/win32.py_sizer      s!      "1%++V55r   c                     ^  \ rS rSrSrSr\R                  S 5       r\R                  S 5       r	\R                  S 5       r
\R                  S 5       r\" \R                  5      r\" \R                   5      r\R$                  R&                  r\R                  S 5       r\R                  S	 5       r\R.                  " S
5      \R.                  " S5      \R.                  " S5      \R.                  " S5      \R.                  " S5      \R.                  " S5      \R.                  " S5      \R.                  " S5      \R.                  " S5      S.	rS r\R                  S 5       r\R6                  SSSSSSSS4	U 4S jjrSrU =r$ )Win32Platform   z&Win32-specific platform implementationTc                      [         R                  " [        R                  S[        R                  S9$ ! [
         a  n[        S/UR                  Q76 eS nAff = f)Nopengl32modezUnable to load OpenGL library)r   loadLibraryctypeswindllRTLD_GLOBALOSErrorImportErrorargs)selferrs     r   GLWin32Platform.GL   sU    	J++z&2D2D   	J=III	Js   14 
AAAc                      [         R                  " [        R                  S[        R                  S9$ ! [
         a     g f = f)Nglu32r   )r   r   r   r   r   r   r    s    r   GLUWin32Platform.GLU    s?    	++wv/A/A   		s   14 
A Ac                     S[         < S[        < 3S[         < S[        < 34 H6  n [        R                  " [        R
                  U[        R                  S9s  $    g ! [         a     MH  f = f)Nfreeglut.glutr   )sizevcr   r   r   r   r   WindowsError)r    possibles     r   GLUTWin32Platform.GLUT(   s^    *.r3$r5KLH#//MM8F4F4F 	 M    s   1A  
A.-A.c                     S[         < S[        < 3S[         < S[        < 34 H@  n [        R                  " [        R
                  U5      n[        R                  Ul        Us  $    g ! [         a     MR  f = f)Ngler+   opengle)	r-   r.   r   r   r   cdll	CFUNCTYPEFunctionTyper/   )r    libNameGLEs      r   r:   Win32Platform.GLE4   sc    $(-tB/HIG"..WF#)#3#3 
	 J 	   s   ;A**
A87A8c                     U R                   $ N)OpenGLr&   s    r   WGLWin32Platform.WGLE   s    {{r   c                 \    U R                   R                  n[        R                  Ul        U$ r=   )r>   wglGetProcAddressr   c_void_prestype)r    rB   s     r   getExtensionProcedure#Win32Platform.getExtensionProcedureH   s%     KK99$*OO!  r   r                           )	GLUT_STROKE_ROMANGLUT_STROKE_MONO_ROMANGLUT_BITMAP_9_BY_15GLUT_BITMAP_8_BY_13GLUT_BITMAP_TIMES_ROMAN_10GLUT_BITMAP_TIMES_ROMAN_24GLUT_BITMAP_HELVETICA_10GLUT_BITMAP_HELVETICA_12GLUT_BITMAP_HELVETICA_18c                      U R                   U   $ )a`  Platform specific function to retrieve a GLUT font pointer

GLUTAPI void *glutBitmap9By15;
#define GLUT_BITMAP_9_BY_15             (&glutBitmap9By15)

Key here is that we want the addressof the pointer in the DLL,
not the pointer in the DLL.  That is, our pointer is to the
pointer defined in the DLL, we don't want the *value* stored in
that pointer.
)GLUT_FONT_CONSTANTS)r    constants     r   getGLUTFontPointer Win32Platform.getGLUTFontPointer[   s     ''33r   c                 \    U R                   R                  n[        R                  Ul        U$ r=   )r"   wglGetCurrentContextr   rC   rD   )r    r^   s     r   GetCurrentContextWin32Platform.GetCurrentContexth   s%    #ww;;'-$##r   r   NFc                    >  [         [        U ]  XX4XVUUU	US9
$ ! [         aO     [         [        U ]  XR                  X4XVUUU	US9
s $ ! [         a    [         [        U ]  XX4XVUUU	SUS9s s $ f = ff = f)zKOverride construct function to do win32-specific hacks to find entry points)error_checkerT)force_extensionrb   )superr   constructFunctionAttributeErrorGDI32)r    functionNamedll
resultTypeargTypesdocargNames	extension
deprecatedmodulerc   rb   	__class__s               r   re   Win32Platform.constructFunctionn   s    	-A+ B    	mTE **"/ F   " 
mTE &*"/ F 	 	
	s,    
A3 AA3"A/*A3.A//A3)__name__
__module____qualname____firstlineno____doc__GLUT_GUARD_CALLBACKSr   lazy_propertyr"   r'   r1   r:   staticmethodr   WINFUNCTYPEDEFAULT_FUNCTION_TYPEr7   GLUT_CALLBACK_TYPEr   gdi32rg   r?   rE   rC   rY   r[   r_   c_intre   __static_attributes____classcell__)rq   s   @r   r   r      s   0J  J    
  
 
  
 )&*<*<>%v'7'79MME  !  ! $__a0"(//1"5%2%2&,ooq&9&,ooq&9$*OOQ$7$*OOQ$7$*OOQ$7
4 $  $ <<"r+ +r   r   )rw   r   r   OpenGL.platformr   r   sys
hexversionr.   r   r-   BasePlatformr   r   r   r   <module>r      sl    (   6 
>>I	B^^y 	B^^y 	B	B6wE\.. Er   