/*	
 *	cliptga.h
 *
 *	TGA Decoder
 *
 *	CLiP - Common Library for P/ECE
 *	Copyright (C) 2001-2009 Naoyuki Sawa
 *
 *	* Sun Apr 26 17:16:49 JST 2009 Naoyuki Sawa
 *	- 1st リリース。
 */
#ifndef __CLIP_TGA_H__
#define __CLIP_TGA_H__

/****************************************************************************
 *	
 ****************************************************************************/

/* メモリ上のTGAデータをデコードします。
 * [in]
 *	p			TGAデータの先頭アドレス。
 *	size_proc		幅・高さ通知コールバック。(NULL可)
 *	draw_proc		ピクセル描画コールバック。(NULL可)
 *	user_data		任意のユーザーデータ。
 * [note]
 *	* Truevision Targa形式は、オリジナルの1.0 1984形式と、2.0 1989形式があります。
 *	  本関数は、オリジナルの1.0 1984形式で定められている部分のみ、対応しています。
 *	* 2.0 1989形式で追加された、ファイルフッタ、拡張領域、デベロッパディレクトリは参照しません。
 *	  拡張領域に含まれている、pre-multiplied Alphaや、Key Colorなどの指定は、反映しません。
 *	  実際には、これらを利用しているTGAファイルは少ないようなので、影響は小さいと思います。
 * [note]
 *	* size_proc、draw_procの使い方は、jpeg_decode()関数と同じです。
 *	  clipjpeg.hの中の、jpeg_decode()関数の説明を参照してください。
 *	* 本関数は、内部でリソース割当てを行っていませんので、longjmpで中止してもリソース漏れは発生しません。
 *	  詳しくは、jpeg_decode()関数の説明を参照してください。
 */
void tga_decode(const void* _p,
	void (*size_proc)(int w, int h, void* user_data),
	void (*draw_proc)(int x, int y, int r, int g, int b, int a, void* user_data),
	void* user_data);

#endif /*__CLIP_TGA_H__*/

