
    e&                     Z    d dl Z ddlmZ ddlmZ ddlmZ ddlmZ d Z	d Z
d	 Zd
 Zd Zy)    N   )QtGui)	functions)getCupy)getNumbaFunctionsc                    d}|j                   j                  s=|j                  |d      }|j                  dk(  r|j                  d   dk(  r|d   }||fS t        | |      \  }}t               }| t        k(  r||j                  ||      }n||   }|j                  | j                  k(  r*|d| j                  f   j                  | j                        }||fS )	NFr   )axis   r   ).r   .)flagsc_contiguoustakendimshape_convert_2dlut_to_1dlutr   numpy
numba_takedtypeuint32newaxisviewuint8)xpimagelutaugmented_alphafn_numbas        </usr/lib/python3/dist-packages/pyqtgraph/functions_qimage.py_apply_lut_for_uint16_monor   	   s    O
 ;;##Q' ::?u{{2!3&MEo%%
 32s;C "H	U{x+##C/E
{{biic2::o&++BHH5/!!    c                 N   d}|j                   dk(  r||fS |j                  d   dk(  r>| j                  || j                  |j                  d   d| j                        g      }d}|j                  d   dk(  r|j                  | j                        }|j                         }||fS )	NFr   r
   r      )r   T   )r   r   column_stackfullr   r   r   ravel)r   r   r   s      r   r   r   +   s    
 O
xx1}O##
yy|qoosBGGCIIaL#RXXG$NOP
yy|qhhryy!
))+Cr    c           	         d}||j                   d   }|j                   d   }nd}d}| j                  |dz
        }|\  }}	|	|z
  }
|
dk(  rdn|
}
t               }| t        k(  r|j                  j
                  r|| j                  k(  rq|ot        | |      \  }}|j                  |||
z  ||      }|j                  | j                  k(  r*|d| j                  f   j                  | j                        }|d d |fS t        j                  |||
z  ||d|dz
  f      }d }|j                  | j                  k(  r!|j                   dk(  rt#        | ||      \  }}d }||||fS )	NFr        o@   r   .)offsetr   clip   )r   min_scalar_typer   r   r   r   uint16r   rescale_and_lookup1dr   r   r   r   r   r   rescaleDatar   r   )r   r   levelsr   r   scale
num_colorsr   minValmaxValrngr   s               r   _rescale_float_monor7   @   sq   O 		!YYq\

zA~.ENFF
6/Cax!SC "H
eKK$$RYY 6r3?_--eUS[&#N;;"))##rzz/*//9EdD/11%%53;vU!ZRS^AT
 ;;"))#

a%?E3%O"E?C fc?22r    c           	      R   d}|j                   | j                  k(  r'|%|j                  dk(  r|j                  d   dk(  rddg}||||||fS d }|}d|j                  dz  z  }|4| j                  |j                         }|j                  |j                  }
}	n|\  }	}
|
|	z
  }|dk(  rdn|}||j                   | j                  k(  rL|j                  dk(  r=| j                  |      }t        j                  |d|z  |	| j                  	      }|d ||fS t        j                  |d|z  |	| j                  	      }|d ||fS |j                  d   }||z  }| j                  |dz
        }|j                   | j                  k(  s|| j                  k7  ru| j                  |      }t        j                  |||	|d|dz
  f
      }||   }|j                   | j                  k(  r!|j                  dk(  rt        | ||      \  }}d }|d ||fS t        j                  |||	|d|dz
  f
      }|d ||fS )NFr
   r,   r   i     r   r(   )r2   r*   r   )r2   r*   r   r+   )r   r.   r   r   itemsizeiinfominmaxubytearanger   r0   r-   r   )r   r   r1   r   r   
levels_lut
colors_luteflsizeinfominlevmaxlevlevdiffindr3   effscalelutdtypeeffluts                    r   _try_combine_lutrK   k   sa   O 	ryy NJJ!OKKNa U~#+fc?22 JJENNQ&'G~xx$488voGa<aWG;;"(("uzzQ))G$C"..57?6J $
O;; ))UW_V288E $
O;;%%a(
'%%j1n5;;"(("h"((&: ))G$C"..a(J  
+F {{bii'EJJ!O)CBv)V&$77 ))a(E $
O;;r    c                   t               }|r|j                  |       nt        }| j                  j                  dk(  r|y|!|j                  |      }|j                  dk7  ry|$|j                  |j                  k7  rt        d      d}| j                  j                  dk(  rt        || ||      \  } }}}n7| j                  |j                  |j                  fv rt        || ||      \  } }}}| j                  |j                  k(  xr |du }|xr |du }|xr) | j                  dk(  xr |duxr |j                  d   dk  }| j                  |j                  k(  xr
 |du xr |du }	|	xr5 | j                  dk(  xr$ t        t        j                   j"                  d	      }
|	xr# | j                  d
k(  xr | j                  d   dk(  }|xs
 |xs |
xs |}|sy||k(  r| j%                         } t        j&                  |       } d}d}|r| j                  dk(  r&t        j                   j"                  j(                  }n| j                  d   d
k(  r&t        j                   j"                  j*                  }n| j                  d   dk(  r|r&t        j                   j"                  j,                  }n|t        j                   j"                  j.                  }nV|rt        j                   j"                  j0                  }|j                  dk(  s|j                  d   dk(  rA|j3                         j5                         D cg c]  }t        j6                  |||       }}n|j                  d   d
k(  r.|j5                         D cg c]  }t        j6                  |  }}n|j                  d   dk(  r{|j5                         D cg c]  }t        j8                  |  }}nM|
r%t        j                   j"                  j:                  }n&|r$t        j                   j"                  j<                  }|t        d      t?        j@                  | |      }||jC                  |       |S c c}w c c}w c c}w )z
    Internal function to make an QImage from an ndarray without going
    through the full generality of makeARGB().
    Only certain combinations of input arguments are supported.
    fNr   zlut dtype must be uint8Fr,   r   r)   Format_Grayscale16r
   r#   zunsupported image type)"r   get_array_moduler   r   kindasarrayr   r   
ValueErrorr7   r>   r.   rK   r   hasattrr   QImageFormatgetascontiguousarrayFormat_Grayscale8Format_RGB888Format_RGBX8888Format_RGBA8888Format_Indexed8r&   tolistqRgbqRgbarN   Format_RGBA64r   ndarray_to_qimagesetColorTable)r   r1   r   cpr   r   ubyte_nolvlis_passthru8is_indexed8is_passthru16can_grayscale16	is_rgba64	supportedfmtctblxrgbrgbaqimages                      r   try_make_qimagerq      s    
B')		U	#uB {{36> F#;;!
3990233O{{3.Avs/
+vsO 
299-	-.>r5&RU.V+vsO++)<fnK.3$;LS

aSCtOS		!PS@S  KK299,O4OC4KM 	?JJ!O	?ELL'')=> 
 I%**/Iekk!n6II KKK)I	Rx		 ##E*E
CD ::?,,%%77C[[^q ,,%%33C[[^q ll))99ll))99	ll!!1188q=CIIaLA-141C1C1EFAEJJq!Q'FDFYYq\Q03

=EJJ$=D=YYq\Q36::<@4EKK&@D@	 ll!!44	 ll!!//
{122((4FT"M% G=@s   ?Q%Q*Q/)r   Qtr    r   util.cupy_helperr   util.numba_helperr   r   r   r7   rK   rq    r    r   <module>rw      s2       % 0"D *(3VS<lfr    