
    tGAh                     N    S SK r S SKJrJr  S SKJr  SSKJrJr   " S S\5      r	g)    N)hello_imguiimmapp)logging   )DrawCallbackRenderBackendc                      ^  \ rS rSrSU 4S jjr   SS\S\S-  S\S-  S\S-  SS4
S	 jjrSU 4S
 jjr	SS jr
SS jrSrU =r$ )ThreadBasedBackend   returnNc                 d   > [         TU ]  5         [        R                  " 5       U l        S U l        g N)super__init__	threadingLock_lock_runner_thread)self	__class__s    dZ:\mnt\Skyabridged\SteamLibrary\steamapps\common\Borderlands 2\sdk_mods\blimgui\backends\threaded.pyr   ThreadBasedBackend.__init__   s$    ^^%
7;    titlewidthheightcallbackc                 $  ^ ^^^^ SUUU UU4S jjnT R                      T R                  5       (       a  T R                  5         [        R                  " USS9T l        T R
                  R                  5         S S S 5        g ! , (       d  f       g = f)Nc                  2  > STl         T=(       d    TR                  =(       d    TR                  Tl        STl        [        R
                  " [        R                  " SSS9[        R                  " TR                  S9[        R                  " T[        R                  " T(       a  T(       d  S OTT4S9SS9S9n [        R                  " SSSS	9n[        R                  " XS
9  TR                     STl         S Tl        S S S 5        g ! , (       d  f       g = f)NFg        )fps_idleenable_idling)show_gui)sizeT)window_titlewindow_geometryrestore_previous_geometry)
fps_idling	callbacksapp_window_params)with_implotwith_markdownwith_node_editor)add_ons_params)_should_close_draw_callback_fallback_drawcall_theme_appliedr   RunnerParamsr   	FpsIdlingRunnerCallbacksrenderAppWindowParamsWindowGeometryAddOnsParamsrunr   r   )paramsr-   r   r   r   r   r   s     r   _threaded_window:ThreadBasedBackend.create_window.<locals>._threaded_window   s    !&D"*"\d.A.A"\TE\E\D"'D((&00#US%55![[ #."="=!&$/$>$>).fT5&/% /3#F $00TQUhlmNJJv=%)"&*# s   0D
DT)targetdaemonr   N)r   is_window_openclose_windowr   Threadr   start)r   r   r   r   r   r;   s   ````` r   create_window ThreadBasedBackend.create_window   sh    	+ 	+4 ZZ""$$!!#"+"2"2'#D %%' ZZs   AB
Bc                   > U R                      U R                  (       a  U R                  R                  5       (       dP  U R                  5       (       a#  [        R
                  " 5       =n(       a  SUl        [        TU ]!  5          S S S 5        g [        R
                  " 5       (       a  S[        R
                  " 5       l        U R                  R                  SS9  U R                  R                  5       (       a  [        R                  " S5        S U l        S S S 5        [        TU ]!  5         g ! , (       d  f       N= f)NTr   )timeoutz7blimgui: Runner thread did not exit in time after join.)r   r   is_aliver@   r   get_runner_paramsapp_shall_exitr   rA   joinr   warning)r   r:   r   s     r   rA   ThreadBasedBackend.close_window=   s    ZZ&&d.A.A.J.J.L.L&&((8U8U8W.Wf.W,0F)$& Z ,,..AE--/>$$Q$/""++-- YZ"&D  	! Zs   A8D/B	D//
D=c                     g r    )r   s    r   
initializeThreadBasedBackend.initializeP   s    r   c                    U R                      U R                  5         U R                  (       a-  [        R                  " 5       =n(       a  SUl         S S S 5        g U R                  (       a   U R                  5         S S S 5        g ! [         a^  n[        R                  " SU 35        SU l        [        R                  " 5       (       a  S[        R                  " 5       l         S nANlS nAff = f! , (       d  f       g = f)NTzError in draw callback: )
r   apply_themer.   r   rI   rJ   r/   	Exceptionr   error)r   _r:   es       r   r5   ThreadBasedBackend.renderS   s    ZZ!!(::<<6<,0F) Z ""N'') Z ! NMM$<QC"@A)-D&"4466IM557F	N Zs7   AC2C2.B
C/AC*%C2*C//C22
D )r/   r   r   r.   r1   r?   )NNN)__name__
__module____qualname____firstlineno__r   strintr   rD   rA   rP   r5   __static_attributes____classcell__)r   s   @r   r
   r
      sl    < !!(,)()( Tz)( d
	)(
 %)( 
)(V&N Nr   r
   )
r   imgui_bundler   r   	unrealsdkr   backendr   r   r
   rO   r   r   <module>rd      s%      0WN WNr   