a
    ZR^                     @   s`  d dl mZmZmZ d dlZd dlZG dd deZdd Zg Z	g Z
dd Zd	d
 Zdd Zdd Zd dlT d dlmZ d dlmZ 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Zd dlmZ ed ed ed ed ed ed ed ed ed ed ed ed dd Zd dlT d d! Zd"d# Z d$d% Z!ej"j#Z#d&Z$dS )'    )divisionprint_functionabsolute_importNc                   @   s   e Zd Zdd Zdd ZdS )MissingModulec                 C   s   || _ || _d S N)__name__reason)selfnamer    r   e/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python3.9/site-packages/pygame_sdl2/__init__.py__init__   s    zMissingModule.__init__c                 C   s   t | jd S r   )NotImplementedErrorr   )r	   attrr   r   r   __getattr__    s    zMissingModule.__getattr__N)r   
__module____qualname__r   r   r   r   r   r   r      s   r   c              
   C   sn   d|  }zt |}W n> ttfyT } z"t|d|t|}W Y d }~n
d }~0 0 |t | < |tj	|< d S )Nzpygame_sdl2.zCould not import {}: {})
	importlibimport_moduleIOErrorImportErrorr   formatstrglobalssysmodules)r
   	full_namemoduleer   r   r   
try_import$   s    ,
r   c                 C   s   t |  | S r   )init_functionsappendfnr   r   r   register_init5   s    
r$   c                 C   s   t |  | S r   )quit_functionsr!   r"   r   r   r   register_quit:   s    
r&   c                  C   sB   d} d}t D ],}z|  | d7 } W q   |d7 }Y q0 q| |fS )Nr      )r    )ZnumpassZnumfailir   r   r   init?   s    r)   c                  C   s&   t D ]} z
|   W q   Y q0 qd S r   )r%   )r(   r   r   r   quitM   s
    
r*   )*)Surface)RectZ
controllerZdrawZfontZimageZjoystickZmixerZmouseZpowerZ	transformZscrapZspriteZsysfontc                  C   s|   dd l } dd l} dd l} dd l} dd l} dd l} dd l} dd l} dd l} dd l	} dd l
} dd l} dd l} dd l} dd l} d S )Nr   )Zpygame_sdl2.compatZpygame_sdl2.controllerZpygame_sdl2.rwobjectZpygame_sdl2.gfxdrawZpygame_sdl2.drawZpygame_sdl2.fontZpygame_sdl2.imageZpygame_sdl2.joystickZpygame_sdl2.mixerZpygame_sdl2.mouseZpygame_sdl2.powerZpygame_sdl2.transformZpygame_sdl2.scrapZpygame_sdl2.spriteZpygame_sdl2.sysfont)pygame_sdl2r   r   r   _optional_importsv   s    r/   c                  C   s   ddl } ddl}d| jv rdS dtjv r6|jddd ttj D ]<\}}|d}|d d	krdqDd|d< d	|}|tj|< qDt
tjd
< dS )z
    Imports pygame_sdl2 as pygame, so that running the 'import pygame.whatever'
    statement will import pygame_sdl2.whatever instead.
    r   NZPYGAME_SDL2_USE_PYGAMEZpygamez@Pygame has already been imported, import_as_pygame may not work.   )
stacklevel.r.   zpygame.constants)oswarningsenvironr   r   warnlistitemssplitjoin	constants)r3   r4   r
   modr   r   r   import_as_pygame   s    



r=   c                   C   s   t S r   )Z	BYTEORDERr   r   r   r   get_sdl_byteorder   s    r>   c                   C   s   t S r   )ZSDL_VERSION_TUPLEr   r   r   r   get_sdl_version   s    r?   F)%
__future__r   r   r   r   r   objectr   r   r    r%   r$   r&   r)   r*   Zpygame_sdl2.errorZpygame_sdl2.surfacer,   Zpygame_sdl2.rectr-   Zpygame_sdl2.colorr.   Zpygame_sdl2.displayZpygame_sdl2.eventZpygame_sdl2.keyZpygame_sdl2.localsZpygame_sdl2.timeZpygame_sdl2.versionlocalsr;   r/   r=   r>   r?   Zdisplayget_platformZHAVE_NEWBUFr   r   r   r   <module>   sP   
	