/// <summary> /// ファイル(ogg,wav)の読み込み。 /// </summary> /// <param name="name"></param> /// <param name="ch"> /// 読み込むチャンクを指定。ch=0なら自動で空きを探す 1~8</param> /// <returns></returns> private YanesdkResult LoadChunk(string name, int ch) { if (NoSound) { return(YanesdkResult.PreconditionError); } SDL_RWopsH rwops = FileSys.ReadRW(name); if (rwops.Handle != IntPtr.Zero) { chunk = SDL.Mix_LoadWAV_RW(rwops.Handle, 1); } else { return(YanesdkResult.FileNotFound); // file not found } if (chunk == IntPtr.Zero) { return(YanesdkResult.FileReadError); // 読み込みに失敗してやんの } chunkChannel = ch; CacheSystem.OnResourceChanged(this); return(YanesdkResult.NoError); }
/// <summary>フォントをオープンする。</summary> /// <remarks> /// <para> /// 指定するのは、フォント名。 /// indexは、ttc(true type collection=ttfが複数入ったフォントファイル)の /// ときに、何番目のものかを指定する。0番から始まる番号。 /// </para> /// <para> /// Windowsならフォルダは決まっているので、カレントとパスの通っている /// ところに無ければ、そこから取得する。 /// </para> /// <para> /// Linuxのほうは、カレント、あとパスの通っているところから取得する。 /// </para> /// </remarks> /// <example> /// 例) /// Windowsでは、 /// <list type=""> /// msgothic.ttc : MSゴシック /// msmincho.ttc : MS明朝 /// </list> /// <para> /// Linuxの場合、日本語フォントを用いる場合は、 /// GT書体 (東京大学多国語処理研究会) /// http://www.l.u-tokyo.ac.jp/GT/ /// などから持ってきて、msgothic.ttcやmsmincho.ttcとリネームして /// カレントフォルダに配置しておくようにしてください。</para> /// /// <para> /// フォントフォルダの検索に用いているAPIは、 /// win95の場合はIE4.0以降をインストールしてないとダメ /// win98以降は使える。 /// </para> /// </example> public YanesdkResult Load(string fontname, int fontsize, int index) { Release(); YanesdkResult hr = Load(FileSys.ReadRW(fontname), fontsize, index); if (hr != YanesdkResult.NoError) { // カレントにないので、SHGetSpecialFolderPath関数を使って // フォントディレクトリを取得して頑張ってみる。 string fontpath; switch (System.Platform.PlatformID) { case Yanesdk.System.PlatformID.Windows: fontpath = FileSys.ConcatPath(Environment.SystemDirectory, @"..\fonts"); break; case Yanesdk.System.PlatformID.Linux: fontpath = "/usr/share/fonts/ja/TrueType/"; break; case Yanesdk.System.PlatformID.MacOS: fontpath = "/System/Library/Fonts/"; break; default: throw null; } hr = Load(FileSys.ReadRW(FileSys.MakeFullName(fontpath, fontname)), fontsize, index); } if (hr == YanesdkResult.NoError) { fileName = fontname; // もし、ローダー以外からファイルを単に読み込んだだけならば、Reconstructableにしておく。 if (constructInfo == null) { constructInfo = new FontConstructAdaptor(fontname, fontsize, index); } } return(hr); }
/// <summary> /// サーフェースへの画像読み込みメソッド。 /// </summary> /// <param name="filename"></param> /// <returns>読み込み失敗のときは非0が返る。</returns> /// <remarks> /// bmp画像,png画像を読み込みサポート。 /// </remarks> public YanesdkResult Load(string filename) { RWopsH = FileSys.ReadRW(filename); if (RWopsH.Handle != IntPtr.Zero) { surface = SDL.IMG_Load_RW(RWopsH.Handle, 0); if (surface != IntPtr.Zero) { // // この時点でsurfaceのαチャンネルの有無を判定して、メンバalphaに反映させる必要あり。 // alpha = getAlpha(surface); // →α channelの判定は動的に行なうように変更する fileName = filename; CacheSystem.OnResourceChanged(this); return(YanesdkResult.NoError); } return(YanesdkResult.FileReadError); } else { return(YanesdkResult.FileNotFound); } }