/*
		graphic effect lib
		   1994 2 7
		    H. TODA
*/


/* ベーシックパラメータの構造体宣言 */

typedef struct
{
	unsigned int	mix ;		/* ﾐｸｼﾝｸﾞﾚｰﾄ0〜256(通常256,それ以下は半透明) */
	unsigned int	alphaSen ;	/* ｱﾙﾌｧｾﾝｻ 0:OFF 1:ON */
	unsigned int	maskSen ;	/* ﾏｽｸｾﾝｻ 0:OFF 1以上:ON */
	unsigned int	colorMax ;	/* RGBﾃﾞｰﾀの最大値  0〜255 */
	unsigned int	alphaMax ;	/* ｱﾙﾌｧﾃﾞｰﾀの最大値 0〜255 */
	unsigned int	lupx ;		/* 左上X座標 */
	unsigned int	lupy ;		/* 左上Y座標 */
	unsigned int	rdwx ;		/* 右下X座標 */
	unsigned int	rdwy ;		/* 右下Y座標 */
	int	(*read1)() ; /* read領域読込関数 f( int x, int y, unsigned char *c ) */
	int (*read2)() ; /* write領域読込関数f( int x, int y, unsigned char *c ) */
	int	(*write)() ; /* write領域書込関数f( int x, int y, unsigned char *c ) */
	int	(*mask)() ;  /* mask情報読取関数 f(int x, int y) >= ﾏｽｸｾﾝｻ ならﾏｽｸON */
					 /* ただし unsigned char c[4]={ R, G, B, alpha } */

}	BASICPARA ;


/***** ファジィレガート *****/

g_fuzzyLegato( BASICPARA *para, int mode, int fuzzySen ) ;
/*	mode ;		1:RGB処理 2:alpha処理 3:RGB & alpha処理 */
/*	fuzzySen ;	ﾌｧｼﾞｨｾﾝｻの感度 0〜256 (推奨値224) */
/*	maskは, alpha処理の時,無効 */


/***** ビデオデジタイズ画スムーサ *****/

g_videoDigitizeSmoother( BASICPARA *para, int mode, int line ) ;
/* mode   0:ノーマル 1:強 */
/* line   0:奇数ラインを基準 1:偶数ラインを基準 */


/***** 輝度データのヒストグラムを平均化する関数 *****/

g_histgramAverager( char *wk,
			BASICPARA *para, int mode, int min, int max ) ;
/* wk(ワークエリア)の大きさは (rdwx-lupx+1)*(rdwy-lupy+1)*2 バイト */
/*
mode   0:手動で輝度範囲を設定
	   (min,maxの値が有効)
	   1:自動で輝度範囲を設定
	   (min,maxの値は無効になり,エリア内の輝度最大最小値の間隔を採用)
*/


/***** メディアン･フィルタ *****/

g_medianFilter( BASICPARA *para, int mode ) ;
g_yMedianFilter( BASICPARA *para, int mode ) ;
/* mode0 3×3  mode1 変則5poit */

/***** 色を再配置する関数 *****/

int extern g_replaceColors( int wkMax, char *wk, BASICPARA *para, int mode ) ;
/* wkMax(ワークエリア)の大きさは (rdwx-lupx+1)*(rdwy-lupy+1)*2バイト以上必要 */
/* mode   0:ヒストグラムを平均化して配置   1:単純配置 */


/***** ソフトネス･フィルタ *****/

g_softnessFilter( BASICPARA *para, int rate ) ;
g_ySoftnessFilter( BASICPARA *para, int rate ) ;

/***** ソフトネス･フィルタ等の補正フィルタ *****/

g_s_c_Filter( BASICPARA *para, int rate ) ;
g_c_m_Filter( BASICPARA *para, int rate ) ;
g_s_c_yFilter( BASICPARA *para, int rate ) ;
g_c_m_yFilter( BASICPARA *para, int rate ) ;

/***** YUV変換&減階調 *****/

g_yuvConv( BASICPARA *para, int ydiv, int udiv, int vdiv, int mode ) ;

