a
    V$cA                     @   s   d dl mZmZmZmZmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ d dlZd dlZd dlm  mZ d dlZdd Zdd Zdd	 Zd
d ZdddZdd Zdd Z ej!Z"ej#Z$dddZ%e%Z&dS )    )divisionabsolute_importwith_statementprint_functionunicode_literals)PY2
basestringbchrbordchropenpystrrangeroundstrtobytesunicodeNc                 C   s   | S N )sr   r   renpy/display\scale.pyreal*   s    r   c                 C   s   | S r   r   )nr   r   r   scale0   s    r   c                 C   s    t || }tjj| | |S r   )pgrendersurface_unscaledrenpydisplaymodulebilinear_scale)srcsizervr   r   r   real_bilinear4   s    r#   c                 C   s   t | |S r   )r   transform_scale_unscaled)surfr!   r   r   r   real_transform_scale<   s    r&   Tc                 C   s   t | |}|S r   )r   load_image_unscaled)fhintconvertr"   r   r   r   image_load_unscaledB   s    r+   c                 C   s   t j| | d S r   )pygameimagesave)r%   filenamer   r   r   image_save_unscaledI   s    r0   c                 C   s   | S r   r   )fullr   r   r   surface_scaleO   s    r2   c                 C   s   |\}}|   \}}|| }}|du r2t|| }|dksB|dkrF|S d}	d}
||d krl|	d9 }	|d }qN||d kr|
d9 }
|d }ql||ks||krt||f| }t| ||	|
dd |} t| |ddd| | ddd| | dd	 |S )z
    This scales src up or down to size. This uses both the pixellate
    and the transform operations to handle the scaling.
    Nr         g      ?)precise)get_sizer   r   real_renpy_pixellatereal_renpy_transform)r    r!   destwidthheightsrcwidth	srcheightiwidthiheightxshrinkyshrinkinterr   r   r   real_smoothscaleW   s4    


rC   )T)N)'
__future__r   r   r   r   r   renpy.compatr   r   r	   r
   r   r   r   r   r   r   r   r   pygame_sdl2r,   r   renpy.display.pgrenderr   r   _renpyr   r   r#   r&   r+   r0   r2   	pixellater7   	transformr8   rC   smoothscaler   r   r   r   <module>   s    8

*