
    UiU                        S SK r S SKJrJr  S SKJrJr  S SKJrJ	r	    " S S\5      r
 " S S\5      r\S	:X  a>  S S
KJr  S SKJr  \" 5       r\" \5      r\" \S5       r\R)                  5         SSS5        gg! , (       d  f       g= f)    N)QtQTimer)QApplicationQMainWindow)	QGLWidget	QGLFormatc                   V   ^  \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
 rSrU =r$ )
MyGlWidget   z^PySideApp uses Qt library to create an opengl context, listen to keyboard events, and clean upc                 l  > [         [        U ]  U5        Xl        X0l        [        U 5      U l        U R                  R                  S5        U R                  R                  S5        U R                  R                  R                  U R                  5        U R                  [        R                  5        g)zECreates an OpenGL context and a window, and acquires OpenGL resourcesTr   N)superr
   __init__rendererappr   timersetSingleShotsetIntervaltimeoutconnect	render_vrsetFocusPolicyr   StrongFocus)selfr   glformatr   	__class__s       T/home/james-whalen/.local/lib/python3.13/site-packages/openvr/glframework/qt5_app.pyr   MyGlWidget.__init__   sy    j$(2 D\


  &

q!

""4>>2BNN+    c                     U $ z#setup for RAII using 'with' keyword r   s    r   	__enter__MyGlWidget.__enter__        r   c                 $    U R                  5         gz%cleanup for RAII using 'with' keywordN)
dispose_glr   type_argvalue	tracebacks       r   __exit__MyGlWidget.__exit__$   s    r   c                     U R                   b  U R                   R                  5         U R                  R                  5         g N)r   init_glr   startr"   s    r   initializeGLMyGlWidget.initializeGL(   s,    ==$MM!!#

r   c                 X    U R                   R                  5         U R                  5         g)zrender scene one timeN)r   render_sceneswapBuffersr"   s    r   paintGLMyGlWidget.paintGL-   s    ""$r   c                     U R                  5         U R                  5         U R                  5         U R                  R	                  5         g r0   )makeCurrentr8   doneCurrentr   r2   r"   s    r   r   MyGlWidget.render_vr2   s3    

r   c                     U R                   b;  U R                  5         U R                   R                  5         U R                  5         g g r0   )r   r;   r(   r<   r"   s    r   	disposeGLMyGlWidget.disposeGL8   s9    ==$MM$$& %r   c                     UR                  5       nU[        R                  :X  a  U R                  R	                  5         gg)z$press ESCAPE to quit the applicationN)keyr   
Key_Escaper   quit)r   eventrB   s      r   keyPressEventMyGlWidget.keyPressEvent>   s+    iik"--HHMMO  r   )r   r   r   )__name__
__module____qualname____firstlineno____doc__r   r#   r-   r3   r8   r   r?   rF   __static_attributes____classcell__)r   s   @r   r
   r
      s3    d,

 r   r
   c                   ,    \ rS rSrS rS rS rS rSrg)Qt5AppE   c                    [         R                  " U [        R                  5        [	        5       U l        U R
                  R                  U5        U R
                  R                  SS5        [        5       nUR                  SS5        UR                  [        R                  5        UR                  S5        [        XU 5      U l        U R
                  R                  U R                  5        U R
                  R!                  5         g )Ni   iX        F)r   r   sysargvr   windowsetWindowTitleresizer   
setVersion
setProfileCoreProfilesetDoubleBufferr
   glwidgetsetCentralWidgetshow)r   r   titler   s       r   r   Qt5App.__init__F   s    dCHH-!m""5)3s#;Aq!I112  '"8t<$$T]]3r   c                     U $ r    r!   r"   s    r   r#   Qt5App.__enter__T   r%   r   c                 8    U R                   R                  5         gr'   )r^   r?   r)   s       r   r-   Qt5App.__exit__X   s    !r   c                 P    U R                  5       n[        R                  " U5        g r0   )exec_rU   exit)r   retvals     r   run_loopQt5App.run_loop\   s    r   )r^   rW   N)	rH   rI   rJ   rK   r   r#   r-   rk   rM   r!   r   r   rP   rP   E   s    "r   rP   __main__)OpenVrGlRenderer)ColorCubeActorzPySide OpenVR color cube)rU   PyQt5.QtCorer   r   PyQt5.QtWidgetsr   r   PyQt5.QtOpenGLr   r   r
   rP   rH   openvr.gl_rendererrn   openvr.color_cube_actorro   actorr   qtPysideApprk   r!   r   r   <module>rw      s   
  # 5 /
2 2j\ 8 z36E&H	4	5 
6	5 
 
6	5s   A99
B