Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
File: Font.cs Progetto: sinshu/dtf
        ///	<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);
        }
Esempio n. 3
0
File: Font.cs Progetto: sinshu/dtf
 /// <summary>フォントをオープンする。</summary>
 /// <remarks>openのindex=0決め打ちバージョン。</remarks>
 public YanesdkResult Load(SDL_RWopsH rw, int fontsize)
 {
     return(Load(rw, fontsize, 0));
 }