/*
 *	clipttf.h
 *
 *	TrueType font
 *
 *	CLiP - Common Library for P/ECE
 *	Copyright (C) 2016 Naoyuki Sawa
 *
 *	* Sun Nov 27 23:52:51 JST 2016 Naoyuki Sawa
 *	- 1st リリース。
 *	- 当モジュールには、環境依存しない処理として、TrueType_GetFontNameList()だけを含めました。
 *	  Windows環境に依存する処理は、DxlibHelper.cppにTrueType_AddFontFile(),TrueType_AddMemoryFont()を追加しました。
 */
#ifndef __CLIP_TTF_H__
#define __CLIP_TTF_H__
#ifdef  __cplusplus
extern "C" {
#endif//__cplusplus
/****************************************************************************
 *	
 ****************************************************************************/
//フォントファイルに含まれているフォントの、フォント名のリストを取得する。
//[in]
//	_data		.ttfファイル,又は,.ttcファイルをメモリに読み込んだ先頭アドレス。
//	buf		フォント名のリストを格納するバッファ。
//	cap		bufのバイト数。
//[out]
//	戻り値		フォント名のリストを格納するために必要なバイト数。
//[note]
//	- (戻り値≦cap)だった場合、フォント名のリストが完全に格納されている。
//	  (戻り値＞cap)だった場合、フォント名のリストは中途半端な状態である。
//	- 確実に完全なリストを得るには、以下のように処理する必要が有ります。
//	  <例>
//	  │void* data = FullyLoad("C:\\Windows\\Fonts\\msmincho.ttc");
//	  │int cap = TrueType_GetFontNameList(data, NULL,   0);
//	  │char* buf = (char*)alloca(cap);
//	  │          TrueType_GetFontNameList(data,  buf, cap);
//	  │for(char* p = buf; *p; p = strchr(p, '\0') + 1/*'\0'*/) { puts(p); }
//	  │free(data);
//	- フォント名が一つ得られれば充分な場合は、以下の処理でも構いません。
//	  <例>
//	  │void* data = FullyLoad("C:\\Windows\\Fonts\\msmincho.ttc");
//	  │char buf[64/*フォント名を一つ格納するに充分なサイズ*/];
//	  │TrueType_GetFontNameList(data, buf, sizeof buf);
//	  │puts(buf);
//	  │free(data);
int TrueType_GetFontNameList(const void* _data, char* buf/*[cap]*/, int cap);	//(buf=NULL,cap=0)可
#ifdef  __cplusplus
}//extern "C"
#endif//__cplusplus
#endif//__CLIP_TTF_H__
