Beispiel #1
0
        /// <summary>
        /// 読み込んだすべてのフォントを解放します。
        /// </summary>
        public static void UnloadAllLoadedFontFiles()
        {
            foreach (IntPtr handle in LoadedMemFonts)
            {
                Win32Font.UnloadFontMem(handle);
            }

            LoadedMemFonts.Clear();
        }
Beispiel #2
0
        /// <summary>
        /// TTFファイルなどのフォントファイルを読み込みます。
        /// 読み込んだフォントが使えるようになります。
        /// </summary>
        /// <param name="fontImage">フォントファイルの内容を格納したメモリ</param>
        /// <remarks>
        /// .NETの<c>System.Drawing.Font</c>は、これで読み込んだフォントを作れないみたい。
        /// Win32 APIのCreateFontとか、SlimDX.Direct3D.Fontだと使えるみたい。
        /// </remarks>
        public static IntPtr LoadFontFromMemory(byte[] fontImage)
        {
            IntPtr fontHandle = Win32Font.LoadFontMem(fontImage);

            if (fontHandle == IntPtr.Zero)
            {
                throw new ArgumentException("FontLoader: フォントの追加に失敗しました。フォントが有効ではありません。");
            }
            LoadedMemFonts.Add(fontHandle);
            return(fontHandle);
        }
Beispiel #3
0
 /// <summary>
 /// 読み込んだフォントファイルを解放します。
 /// </summary>
 /// <param name="fontHandle"></param>
 public static void UnloadFontFile(IntPtr fontHandle)
 {
     Win32Font.UnloadFontMem(fontHandle);
     LoadedMemFonts.Remove(fontHandle);
 }