
86ic           @   s   d  d l  Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m	 Z	 m
 Z
 m Z m Z m Z m Z e j   Z d e f d     YZ e   g Z d   Z d   Z d   Z d   Z d	   Z d
   Z d e f d     YZ d S(   iN(   t	   blit_lockt   IDENTITYt   BLITt   DISSOLVEt   IMAGEDISSOLVEt	   PIXELLATEt   Clipperc           B   s    e  Z d  Z d   Z d   Z RS(   s~   
    This is used to calculate the clipping rectangle and update rectangles
    used for a particular draw of the screen.
    c         C   s:   g  |  _  g  |  _ t   |  _ t   |  _ t   |  _ d  S(   N(   t   blitst	   old_blitst   sett   forcedt
   old_forcedt   mutated(   t   self(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   __init__)   s
    		c   '      C   sF  |  j  } |  j } |  j } |  j } |  j } | |  _  g  |  _ | |  _ t   |  _ t   |  _ t j j } t j j	 } | | }	 d d | | f }
 | r |
 |
 g f S| | B} |
 | k r |
 |
 g f Sd } d } t |  } x t
 r| t |  k s| t |  k rPn  | | } | | } | | k rtt | d  | k r]| j | d   n  | d 7} | d 7} q | | k r| j | d   | d 7} q | j | d   | d 7} q W| j d   | | D  | j d   | | D  | sd g  f Sg  } x| D] \ } } } } \ } } } } | d 7} | d 7} | | k  rZ| } n  | | k  ro| } n  | | k r| } n  | | k r| } n  | | } | | } | d k s| d k rqn  | | } | |	 k r|
 |
 g f S| j | | | | | f  qW| j   g  } d } x| r| j   \ } } } } } t } | | |	 k rd d | | f d d | | f g f Sd }  x|  t |  k  r| |  \ }! }" }# }$ }% | |" k o| k n s| |$ k o| k n r| |# k o| k n s'| |% k o"| k n rt
 } t | |"  } t | |$  } t | |#  } t | |%  } | | | | } | j |   q|  d 7}  qW| r| j | | | | | f  q'| j | | | | f  | | 7} q'W| sd g  f S| j   \ } } } } t |  } t |  } t t j |   } t t j |   } | | | | | | f g }& x | D] \ }" }# }$ }% t |"  }" t |#  }# t t j |$   }$ t t j |%   }% t | |"  } t | |#  } t | |$  } t | |%  } |& j |" |# |$ |" |% |# f  qsW| | | | | | f |& f S(   s   
        This returns a clipping rectangle, and a list of update rectangles
        that cover the changes between the old and new frames.
        i    i   i   c         s   s   |  ] } | d   Vq d S(   i   N(    (   t   .0t   i(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pys	   <genexpr>|   s    c         s   s   |  ] } | d   Vq d S(   i   N(    (   R   R   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pys	   <genexpr>}   s    N(   R   R   R   R
   R   R	   t   renpyt   configt   screen_widtht   screen_heightt   Truet   lent   idt   addt   updatet   Nonet   appendt   sortt   popt   Falset   mint   maxt   intt   matht   ceil('   R   t   full_redrawt   bl0t   bl1R   R
   R   t   swt   sht   sat
   fullscreent   changest   i0t   i1t   bl1sett   b0t   b1t   sizedt   x0t   y0t   x1t   y1t   sx0t   sy0t   sx1t   sy1t   wt   ht   areat   noncontt   ncat   mergedR   t   _iareat   ix0t   iy0t   ix1t   iy1t   updates(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   compute8   s    									

	$



(

				


 
	%88
%(   t   __name__t
   __module__t   __doc__R   RF   (    (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyR   #   s   	c         C   se   | r, t  j |  d | d f t  j  } n  t  j |  d | d f d  } | j d d |  | f  S(   sd   
    Creates a surface that shares a pixel format with the screen. The created
    surface will
    i   i    i   (   t   pygamet   Surfacet   SRCALPHAt
   subsurface(   R:   R;   t   alphat   rv(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   surface   s    & c         C   s>   |  j    \ } } t | | t  } t j j j |  |  | S(   N(   t   get_sizeRP   R   R   t   displayt   acceleratort
   nogil_copy(   t   surfR:   R;   RO   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   copy_surface   s    c      	   C   s  | j    \ } } t | |  j |  } t | |  j |  } | d k sV | d k rZ d S|  j t k rL|  j d d j t  } |  j d d j t  }	 |  j	 r t
 | | t  }
 n | j d d | | f  }
 t j j j | j | | | | f  |	 j | | | | f  |
 t |  j d   |  j	 r| j |
 d  qn4|  j t k r|  j d d j t  } |  j d d j t  } |  j d d j t  }	 |  j	 rt
 | | t  }
 n | j d d | | f  }
 |  j } d d } x/ t d |  D] } | t d | |  7} qW| d d 7} t |  j d |  } | | | d !} t j j j | j | | | | f  |	 j | | | | f  |
 | j | | | | f  |  |  j	 r| j |
 d  qn |  j t k rm|  j d d j | j   d	  } |  j } t j j j | j | | | | f  | j d d | | f  | | | |  n t d
 |  j   d S(   s   
    This handles the special drawing operations, such as dissolve and
    image dissolve. `x` and `y` are the offsets of the thing to be drawn
    relative to the destination rectangle, and are always negative.
    i    Ni   i   i   t    i   s   i   s   Unknown operation: %d(   i    i    (   i    i    (   RQ   R   t   widtht   heightt	   operationR   t   childrent   render_to_textureR   t   operation_alphaRP   RM   R   RR   t   modulet   blendR!   t   operation_completet   blitR   t   operation_parametert   xranget   chrt
   imageblendR   t	   get_maskst	   pixellatet	   Exception(   t   whatt   destt   xt   yt   dwt   dhR:   R;   t   bottomt   topt   targett   imaget   ramplent   rampR   t   stepRU   t   px(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   draw_special  s`    				
	$	c   "   
   C   s<  t  | t j j j  s6t  | t  r t  | t  r | rQ t j | |  } n  | r | j   \ } } |  j	 j
 | | | | | | | | d f  q2z$ t j   |  j | | | f  Wd t j   Xnd | r| j   \ } } |  j	 j
 | | | | | | | | d f  n t j j j | |  | |  d S| j r`| j | | d  t j j _ n  | j t k rt |  } t |  } | r| \ } }	 }
 } |
 | } | |	 } n |  j   \ } } | d k rd } | } n | } d } | d k r
d } | } n | } d } | | k s.| | k r2d St | | | j |  } t | | | j |  } | d k s~| d k rd S| r|  j j | | | | | | | f  n. |  j | | | | f  } t | | | |  d S| j rZ| r| \ } } } } t  | |  } t  | |  } t | | | j  } t | | | j  } | | k sg| | k rkd S| | | | f } |  j j | | f  d S| d k r| } d } n d } | d k r| } d } n d } |  j   \ } } t | | | j |  } t | | | j |  } | d k  s8| d k  r<d S|  j | | | | f  }  n  | j! d k s| j" d k s| j# d k	 r| j# t$ k	 rxW | j% D]L \ } } } }  }! t& |  | | | | | | | j! | j" | j# | j'  qWd SxA | j% D]6 \ } } } }  }! t( |  | | | | | | |  qWd S(   s  
    This is the simple draw routine, which only works when alpha is 1.0
    and the matrices are None. If those aren't the case, draw_complex
    is used instead.

    `dest` - Either a destination surface, or a clipper.
    `clip` - If None, we should draw. Otherwise we should clip, and this is
    the rectangle to clip to.
    `what` - The Render or Surface we're drawing to.
    `xo` - The X offset.
    `yo` - The Y offset.
    `screen` - True if this is a blit to the screen, False otherwise.
    Ni    i   g      ?()   t
   isinstanceR   RR   t   rendert   RenderR!   t	   rle_cachet   getRQ   R   R   R   R    t   acquireRa   t   releaseR^   t   subpixelt
   text_inputt   screen_rectt	   interfacet	   text_rectRZ   R   R   RX   RY   R
   R   RM   Rw   t   clippingR    RN   t   overt   forwardR   t   visible_childrent   draw_transformedt   reverset   draw("   Rj   t   clipRi   t   xot   yot   screenR:   R;   t   dx0t   dy0t   dx1t   dy1Rm   Rn   t   newxt   subxt   newyt   subyt   subwt   subht   newdestt   cx0t   cy0t   cx1t   cy1Rk   Rl   RX   RY   t   childt   cxot   cyot   _focust   _main(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyR   V  s    0
0	!
		*			<!c   -      C   s  | d k r d  S| d  k r+ t } t } n  t | t j j j  s| j   \ } }	 | r | \ }
 } } } | |
 } | | } n |  j   \ } } d \ } } | j | d  \ } } | j | |	  \ } } | j d |	  \ } } t	 j
 t | | | |  |  } t	 j t | | | |  |  } t	 j
 t | | | |  |  } t	 j t | | | |  |  } | d k  rd } n  | d k  rd } n  | | k r| } n  | | k r| } n  | | k s| | k s| d k  s| d k  rd  S| j | | | |  \ } } | rq|  j j | | | |
 | | | | | | | j | j | j | j | f f  n] |  j | | | | | | f  }  t j j j | |  | | | j | j | j | j | t 
 d  S| j r| j | | |  t j j _ n  | j r| j s| j rCt |  | | j t  | | | | |  d  S| j | j } | j | j } | r| \ }  }! }" }# t |  |  }  t |! |  }! t |" | |  }" t |# | |  }# |  |" k s|! |# k rd  S|  |! |" |# f } |  j  j! | | f  d  S| d k r#| }$ d } n d }$ | d k rD| }% d } n d }% |  j   \ } } t | |$ | |  } t | |% | |  } | d k  s| d k  rd  S|  j |$ |% | | f  }  n  | j" s| j# t$ k r| j t  }& t |  | |& | | | | |  d  Sx | j% D] \ }& }' }( }) }* | j |' |(  \ }' }( | j& rk| | j& }+ | j' | }, n | }+ | }, t |  | |& | |' | |( | | j( | j) |+ |,  qWd  S(   Ng~jth?g        i    (   g        g        (*   R   R   Rx   R   RR   Ry   Rz   RQ   t	   transformR"   t   floorR   R#   R    R   R   t   xdxt   ydxt   xdyt   ydyRM   R^   R   R   R   R   R   R   R   t   pygame_surfaceRX   RY   R
   R   t	   draw_funcRZ   R   R   R   R   RN   R   (-   Rj   R   Ri   R   R   RN   R   R   R'   R(   R   R   R   R   Rm   Rn   R2   R3   R4   R5   t   x2t   y2t   x3t   y3t   minxt   maxxt   minyt   maxyt   cxt   cyRX   RY   R   R   R   R   Rk   Rl   R   R   R   R   R   t   child_forwardt   child_reverse(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyR     s    	
""""				0 	#
	!	(			c         C   s   d } } |  j    | | | |  j | |  j f } t d } t | | |  | | t  | j |  \ } } | d k r| g  S| \ }	 }
 } } | j j	 |  } t | d |  |	 |
 t  | S(   sC   
    Draws the render produced by render_screen to the screen.
    i    N(
   t	   is_opaqueRX   RY   t   clippersR   R   RF   R   t   windowRM   (   t   screen_renderR$   t   swdrawt   yoffsett   xoffsetR   t   clippert   cliprectRE   Rk   Rl   t   _wt   _hRj   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   do_draw_screen  s    

 
t   SWDrawc           B   s   e  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   Z d   Z d   Z d   Z d   Z e d  Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   s@   
    This uses the software renderer to draw to the screen.
    c         C   s   d  |  _ |  j   d  S(   N(   R   t   display_infot   reset(   R   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyR     s    	c         C   s   t  |  _ d |  _ d  |  _ d  |  _ d  |  _ d  |  _ d  |  _ d  |  _	 i d d 6t  d 6t  d 6|  _
 t j j   t j j j   |  j d  k r t j j   |  _ n  d |  _ d t j k |  _ d  |  _ d  |  _ t  |  _ d  S(   Ni    R'   t   renderert	   resizablet   additiveg      ?t   RENPY_SCALE_FAST(   R   t   suppressed_blitt
   next_frameR   t   mouse_locationt   mouse_backingt   mouse_backing_post
   mouse_infot   mouse_old_visiblet   fullscreen_surfacet   infoRJ   RR   t   initR   R   t	   post_initR   t   get_infot   scale_factort   ost   environt
   scale_fastR   R   t   showing_video(   R   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyR     s$    											c         C   s  t  j j j   |  j   | \ } } |  j j } |  j j } | s[ | d 8} | d 8} n  t d | | d | | d  } d t	 j
 k r t t	 j
 d  } n  | |  _ | r t j }	 n d }	 t | |  }
 t | |  } t j j |
 | f |	 d  |  _ | d k r(t | | t  |  _ n |  j |  _ t  j j j   d |  _ t  j j j |  j d d |  j  |  _ t  j j j d |  j d d d |  j  |  _ t |  _ |  j |  _ d  |  _ d  |  _  d  |  _! d  |  _" t S(   Nif   g      ?t   RENPY_SCALE_FACTORi    i    (#   R   RR   R   t   kill_textures_and_surfacesR   R   t	   current_wt	   current_hR   R   R   t   floatR   RJ   t
   FULLSCREENR!   t   set_modeR   RP   R   R   t   pgrendert   set_rgba_maskst   draw_per_virtRy   t   Matrix2Dt   virt_to_drawt   draw_to_virtR$   R   R   R   R   R   R   (   R   t   virtual_sizet   physical_sizeR*   RX   RY   R   R   R   t   fsflagt   scaled_widtht   scaled_height(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyR     s@    

"	!	'/					c         C   s   | |  _  | |  _ | \ } } } | \ } } | j   \ } }	 | | }
 | | } |
 | f |  _ t | |	 t  |  _ |  j j |  j d |
 | | |	 f  |  j	 j | |
 | f  |
 | | |	 f S(   s+   
        Actually shows the mouse.
        i    (   i    i    (
   R   R   RQ   R   RP   R   R   Ra   R   R   (   R   t   posR   t   mxot   myot   text   mxt   myt   mwt   mht   bxt   by(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt
   show_mouse  s    		

%c         C   sT   |  j  j   } |  j j |  j  |  j  |  j | } d |  _  d |  _ d |  _ | S(   s+   
        Actually hides the mouse.
        N(   R   RQ   R   Ra   R   R   R   (   R   t   sizeRO   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt
   hide_mouse-  s    			c   	      C   s  t  j j j   \ } } } } |  j | k rI t j j |  | |  _ n  |  j rV g  S| se d } n  | | | f } t j j
   } | |  j k r | r | |  j k r g  Sg  } |  j r | j |  j    n  | r| rt  j j j r| j |  j | |   n  | S(   s   
        This draws the mouse to the screen, if necessary. It uses the
        buffer to minimize the amount of the screen that needs to be
        drawn, and only redraws if the mouse has actually been moved.
        N(   R   t   gameR   t   get_mouse_infoR   RJ   t   mouset   set_visibleR   R   t   get_posR   R   R   R   t   mouse_focusedR   (	   R   R   t   hardwareRk   Rl   R   R   R   RE   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt
   draw_mouse>  s$    		$	c         C   s$   | |  j  :} | |  j  :} | | f S(   N(   R   (   R   Rk   Rl   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   translate_pointc  s    c         C   s$   | |  j  9} | |  j  9} | | f S(   N(   R   (   R   Rk   Rl   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   untranslate_pointh  s    c         C   s,   |  j  t  } | r( t j j |  n  d S(   s?   
        Draws the mouse, and then updates the screen.
        N(   R  R   RJ   RR   R   (   R   RE   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   update_mousem  s    c         C   sE   t  | d t j j    \ } } | |  j :} | |  j :} | | f S(   NR   (   t   getattrRJ   R   R   R   (   R   t   evRk   Rl   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   mouse_eventw  s    !c         C   s9   t  j j   \ } } | |  j :} | |  j :} | | f S(   N(   RJ   R   R   R   (   R   Rk   Rl   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   get_mouse_pos  s    c         C   s0   | |  j  9} | |  j  9} t j j | | g  S(   N(   R   RJ   R   t   set_pos(   R   Rk   Rl   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   set_mouse_pos  s    c         C   s   |  j  S(   sC   
        Returns a pygame surface containing a screenshot.
        (   R   (   R   t   surftreet   fullscreen_video(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt
   screenshot  s    c         C   s   | s
 t  St j j } | d k r& t S|  j } t j j	   } d | } | | | k ra | } n  | | k  rx | rx t  S| | } | |  _ t S(   sN   
        Uses the framerate to determine if we can and should redraw.
        g     @@N(
   R   R   R   t	   framerateR   R   R   RJ   t   timet	   get_ticks(   R   t   needs_redrawt
   first_passR  R   t   nowt	   frametime(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   should_redraw  s    	
	
	c         C   s  | r| |  j  s" |  j j d  n  |  j j   \ } } t j j j d | |  } | d k	 rg | } n  t	 |  _
 t	 |  _  n	 t |  _  g  } | j |  j t   t | |  j
 |   } | r | j |  n  t |  _
 |  j |  j k r| j |  j t	   t j j |  ns |  j rAt j j |  j |  j j   |  j  n( t j j j |  j |  j j   |  j  |  j t	  t j j   | rt	 |  _
 n  d S(   s#   
        Draws the screen.
        i    i   t   movieN(   i    i    i    i   (   R   R   t   fillRQ   R   RR   t   videot   render_movieR   R   R$   R   t   extendR  R   R   RJ   R   R   R   t   scalet   smoothscalet   flip(   R   R  R  R:   R;   t   frameRE   t   damage(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   draw_screen  s4    						((c         C   s5   t  | j | j |  } t | d  | d d t  | S(   Ni    (   RP   RX   RY   R   R   R   (   R   Ry   RN   RO   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyR\     s    c         C   s  | j  t k rW |  j | j d d | |  } |  j | j d d | |  } | | S| d k  s | d k  s | | j k s | | j k r d Sx| j D] \ } } } }	 }
 | | } | | } | j r | j j | |  \ } } n  t | t	 j
 j j  r|  j | | |  rt Sq t |  } t |  } | j   \ } } | | k sa| | k ret S| j   d s| j | | f  d r t Sq Wt S(   Ni    i   i   (   RZ   R   t   is_pixel_opaqueR   RX   RY   R   R   Rx   R   RR   Ry   Rz   R   R!   RQ   R   Rf   t   get_at(   R   Ri   Rk   Rl   t   a0t   a2R   R   R   R   R   R   R   t   cwt   ch(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyR!    s,      6

	*c         C   sA   x$ t  D] } | j j t |   q W| t k r= t | =n  d S(   sH   
        Called to indicate that the given surface has changed.
        N(   R   R   R   R   R{   (   R   RU   R   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   mutated_surface  s    c         C   sW   | t  k r t  | St |  } | s< | j d t j  n  |  j |  | t  | <| S(   s   
        Creates a texture from the surface. In the software implementation,
        the only difference between a texture and a surface is that a texture
        is in the RLE cache.
        i   (   R{   RV   t	   set_alphaRJ   t   RLEACCELR'  (   R   RU   t	   transientt   rle_surf(    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   load_texture&  s    
c         C   s`   t  | d | d t  } | j |  |  j |  | j d d | | f  } |  j |  | S(   sC   
        Creates a texture filled to the edges with color.
        i   i   (   RP   R   R  R'  RM   (   R   R:   R;   t   colorRU   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   solid_texture:  s    c         C   s   t  j   d S(   s"   
        Frees up memory.
        N(   R{   t   clear(   R   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   free_memoryH  s    c         C   s   t  j j j   d S(   s.   
        Called when we're restarted.
        N(   R   RR   Ry   R0  (   R   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   deinitO  s    c         C   s   t  j j   d S(   s0   
        Shuts down the drawing system.
        N(   RJ   RR   t   quit(   R   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyR2  X  s    c         C   s   t  j d  d S(   s@   
        Wait a little bit so the CPU doesn't speed up.
        g-C6?N(   R  t   sleep(   R   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   event_peek_sleepa  s    c         C   s   t  j j t  j j f S(   sE   
        Return the physical width and height of the screen.
        (   R   R   R   R   (   R   (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   get_physical_sizeh  s    (   RG   RH   RI   R   R   R   R   R   R  R  R  R  R  R  R
  R  R  R   R\   R!  R'  R   R,  R.  R0  R1  R2  R4  R5  (    (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyR     s4   		-	>			%			
					$	3		(								(   t   renpy.displayR   t   pygame_sdl2RJ   R"   t   weakrefR  R   t   renpy.display.renderR    R   R   R   R   R   t   WeakKeyDictionaryR{   t   objectR   R   RP   RV   Rw   R   R   R   R   (    (    (    sc   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\display\swdraw.pyt   <module>   s    .			R			