Exemple #1
0
 /// <summary>フォントをオープンする。</summary>
 /// <remarks>openのindex=0決め打ちバージョン。</remarks>
 public YanesdkResult Load(SDL_RWopsH rw,int fontsize)
 {
     return Load(rw,fontsize,0);
 }
Exemple #2
0
 public static SDL_RWopsH SDL_RWFromMem(byte[] mem)
 {
     SDL_RWopsH h = new SDL_RWopsH();
     h.hMem = Marshal.AllocHGlobal(mem.Length);
     Marshal.Copy(mem, 0, h.hMem, mem.Length);
     h.Handle = SDL_RWFromMem(h.hMem, mem.Length);
     h.Length = mem.Length;
     return h;
 }
Exemple #3
0
        ///	<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;
        }
Exemple #4
0
        /// <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;
            }
        }