/*
	HSV to 32k 変換関数
						おこめ

	h:(0,1535) s,v:(0,255)
	ret:16bitGRB

	参考:Ｏｈ！ＦＭ　1989.9  特集
		 爆走!!  趣味のＣ言語ライブラリ
		 Part 6		あれやこれやの
				 	ＭＩＳＣライブラリ	歩野零一
*/

int HSVto32k(int h, int s, int v)
{
	int i,f, m,n,k;
	int r,g,b;
	i = (h / 256) % 6 ;	f = ( h % 256 ) ;
	m = ( (v+1) * ( 255 - s ) ) /256 ;
	n = ( (v+1) * ( 255 - ( (s+1) * f ) /256 ) ) /256 ;
	k = ( (v+1) * ( 255 - ( (s+1) * ( 255 - f ) ) /256 )) /256 ;
	switch (i)	{
		case 0:	r = v ; g = k ; b = m ; break ;
		case 1:	r = n ; g = v ; b = m ; break ;
		case 2:	r = m ; g = v ; b = k ; break ;
		case 3:	r = m ; g = n ; b = v ; break ;
		case 4:	r = k ; g = m ; b = v ; break ;
		case 5:	r = v ; g = m ; b = n ; break ;
		default:	return ( -1 ) ;
	}
	return ( ((g & 0xF8)<<7) + ((r & 0xF8)<<2) + (b>>3) );
}
