/*	
 *	clipfntx.h
 *
 *	FONTX描画ルーチン
 *
 *	CLiP - Common Library for P/ECE
 *	Copyright (C) 2001-2009 Naoyuki Sawa
 *
 *	* Sun Jun 28 15:08:23 JST 2009 Naoyuki Sawa
 *	- 1st リリース。
 *	* Wed Nov 18 21:37:53 JST 2015 Naoyuki Sawa
 *	- 'extern "C" {'〜'}'で囲みました。.cppを含むWin32プロジェクトからもインクルード出来るようにするためです。
 */
#ifndef __CLIP_FNTX_H__
#define __CLIP_FNTX_H__

#ifdef  __cplusplus
extern "C" {
#endif//__cplusplus

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

/* * Sun Jun 28 14:39:41 JST 2009 Naoyuki Sawa
 * - 使い方は、おおよそ、render_{font|string|printf}、および、render_{font|string|printf}_framedと同じです。
 *   clippce.hにある、上記の関数の説明を参照してください。
 * - フォントタイプの指定のみ違っているので、ここで説明します。
 *   FONTX構造体に、ASCIIフォント、および、漢字フォントのFONTXデータアドレスを格納し、引数として指定します。
 *   ASCIIフォント、または、漢字フォントを、NULLにすることも可能です。
 *   ASCIIフォントをNULLにした場合、描画する文字にASCII文字が含まれていても、ASCII文字は描かれません。
 *    漢字フォントをNULLにした場合、描画する文字に 漢字文字が含まれていても、 漢字文字は描かれません。
 * <使用例>
 *	void sample() {
 *		FONTX fontx;
 *		fontx.ascii = file_defrag("3x8_x.fnt", NULL); // 3*8ドットフォント FONTX版(ASCIIフォント)
 *		fontx.kanji = file_defrag("k6x8x.fnt", NULL); // k6x8 FONTX版
 *		for(;;) {
 *			schedule();
 *			surface_clear(&surface, 0);
 *			render_printfx_framed(&render, 10, 20, &fontx, 0x130, "ABC漢字ｶﾀｶﾅ記号!@#$%\nNow=%d", now);
 *		}
 *	}
 * - 上の例では、FONTXファイルをフラッシュメモリに置いていますが、dbin2cを使ってプログラムに組み込むことも可能です。
 *   ただし、FONTXファイルは小さくないので、プログラムに組み込むと、メインRAMを圧迫することに注意してください。
 * - P/ECEで使い易いと思うFONTXファイルは、以下のとおりです。
 *	/usr/PIECE/resource/font/5x10rk.fnt			P/ECE標準のASCIIフォントと同じ。
 *	/usr/PIECE/resource/font/knj10.fnt			P/ECE標準の 漢字フォントと同じ。
 *	/usr/PIECE/resource/font/maru10.fnt			丸文字フォント。knj10.fntの代替として利用できます。
 *	以下は「Little Limit(http://www.geocities.jp/littlimi/)」さんのサイトで配布されている、フリーフォントです。
 *	改変,利用,複製,再配布が可能とのこと、ありがとうございます。アーカイブ内のライセンス表記を参照してください。
 *	keep/美咲フォント(FONTX版).7z/mskfxb11.lzh/4x8.fnt	4*8ドットフォント FONTX版(ASCIIフォント)
 *	keep/美咲フォント(FONTX版).7z/mskfxb11.lzh/misaki.fnt	美咲フォント FONTX版
 *	keep/美咲フォント(FONTX版).7z/mskfxb11.lzh/misakimn.fnt	美咲明朝     FONTX版
 *	keep/美咲フォント(FONTX版).7z/k6x8xb02.lzh/3x8_x.fnt	3*8ドットフォント FONTX版(ASCIIフォント)
 *	keep/美咲フォント(FONTX版).7z/k6x8xb02.lzh/k6x8x.fnt	k6x8 FONTX版
 */

typedef struct _FONTX {
	const void* ascii; /* ASCIIフォントのFONTXデータ (NULL = ASCIIフォント無し) */
	const void* kanji; /*  漢字フォントのFONTXデータ (NULL =  漢字フォント無し) */
} FONTX;

unsigned short render_fontx(RENDER* render, int x, int y, unsigned short code, const FONTX* fontx, int color);
unsigned int render_stringx(RENDER* render, int x, int y, const char* str, const FONTX* fontx, int color);
unsigned int render_printfx(RENDER* render, int x, int y, const FONTX* fontx, int color, const char* fmt, ...);
unsigned short render_fontx_framed(RENDER* render, int x, int y, unsigned short code, const FONTX* fontx, int color);
unsigned int render_stringx_framed(RENDER* render, int x, int y, const char* str, const FONTX* fontx, int color);
unsigned int render_printfx_framed(RENDER* render, int x, int y, const FONTX* fontx, int color, const char* fmt, ...);

#ifdef  __cplusplus
}//extern "C"
#endif//__cplusplus

#endif /*__CLIP_FNTX_H__*/
