/// <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>フォントをオープンする(RWopsから)。</summary> /// <remarks> /// indexは、ttc(true type collection=ttfが複数入ったフォントファイル)の /// ときに、何番目のものかを指定する。0番から始まる番号。 /// </remarks> public YanesdkResult Load(SDL_RWopsH rw, int fontsize, int index) { Release(); if (fontsize <= 0 || rw.Handle == IntPtr.Zero) { return(YanesdkResult.InvalidParameter); } // 23pt未満であれば倍率掛けて拡大しておく rate = 1; // while (fontsize * rate < 23) ++rate; // ↑この処理、Soildで描画するときにおかしくなるので廃止にしよう。 // フォントが23pt以下だと拡大する処理について。 // SDL_ttf.dllが古いと↑これを入れないといけない。 // 詳しくはYanesdk.NETのreadme.txtの更新履歴2006/10/28を見ること。 font = SDL.TTF_OpenFontIndexRW(rw.Handle, 1, fontsize * rate, index); if (font != IntPtr.Zero) { // 読みこめたので、これをファイルサイズとする。 bufferSize = rw.Length; bOpen = true; rwops = rw; } if (font == IntPtr.Zero) { return(YanesdkResult.FileReadError); } // fileName = ファイル名不明(´ω`) CacheSystem.OnResourceChanged(this); return(YanesdkResult.NoError); }
/// <summary>フォントをオープンする。</summary> /// <remarks>openのindex=0決め打ちバージョン。</remarks> public YanesdkResult Load(SDL_RWopsH rw, int fontsize) { return(Load(rw, fontsize, 0)); }