| แบ็กเอนด์ | ชนะ | ลินเวกซ์ | OSX |
|---|---|---|---|
| Opengl 3 | |||
| Vulkan |
Vulkan Versions:

Imguifontstudio เป็นเครื่องมือสำหรับตัวอักษรเซ็ตย่อยและแยกชื่อ Glyph สำหรับใช้งาน embbeded หรือไม่ได้อยู่ในซอฟต์แวร์โดยเฉพาะอย่างยิ่งสำหรับใช้กับ Imgui สำหรับวิธีการฝังตัว
ได้รับแรงบันดาลใจอย่างมาก / ขึ้นอยู่กับโครงการ Iconfontcppheaders
นี่เป็นซอฟต์แวร์ OpenSource ขนาดใหญ่ตัวแรกของฉัน
ในฐานะที่เป็นคนเรียนรู้ด้วยตนเองฉันมักจะพัฒนาความอ่อนนุ่มของฉันเป็นโซโล
ดังนั้นบางทีคุณอาจจะพบสิ่งแปลก ๆ รูปแบบการออกแบบที่ไม่ดีการเพิ่มประสิทธิภาพที่ไม่ดีหรือพล่ามอื่น ๆ :)
กรุณาส่งคำติชมของคุณให้ฉัน ฉันสนุกกับความคิดเห็นที่สร้างสรรค์และยินดีต้อนรับ
ทดสอบอย่างประสบความสำเร็จที่ด้านข้างของฉัน:
สำหรับข้อมูลเพิ่มเติมวิธีการใช้ไฟล์ที่สร้างขึ้นดูโครงการนี้: https://github.com/juliettef/iconfontcppheaders
นุ่มของฉันทำงานเดียวกันและง่ายขึ้นสำหรับผู้ใช้ :)
คุณต้องใช้ cmake สำหรับ 3 OS (Win, Linux, MacOS) การใช้ CMake นั้นเหมือนกันทุกประการ
cmake -B my_build_directory -DCMAKE_BUILD_TYPE=BuildMode
cmake --build my_build_directory --config BuildModeรุ่น CMake บางรุ่นต้องการโหมดการสร้างกำหนดผ่าน Directive CMAKE_BUILD_TYPE หรือ VIA -Config เมื่อเราเปิดตัวบิลด์ นี่คือเหตุผลที่ฉันใส่ความเป็นไปได้ทั้งคู่
ตามวิธีที่คุณต้องการมาก่อนเพื่อให้แน่ใจว่าคุณต้องการการพึ่งพา
คุณต้องติดตั้งไลบรารี OpenGL
คุณต้องการ lib มากมาย: (x11, xrandr, xinerama, xcursor, mesa)
หากคุณอยู่ใน Debian คุณสามารถเรียกใช้:
sudo apt-get update
sudo apt-get install libgl1-mesa-dev libx11-dev libxi-dev libxrandr-dev libxinerama-dev libxcursor-devคุณต้องการ LIB มากมาย: OpenGL และ Cocoa Framework
Imguifontstudio จะสร้างไฟล์ 4 ประเภทขึ้นอยู่กับความต้องการของคุณ
| ประเภทไฟล์ | คำอธิบาย |
|---|---|
| FONT FILE TTF | ไฟล์ฟอนต์เวกเตอร์ที่จำเป็นสำหรับโหมดภายนอก |
| รหัสต้นฉบับ | .C/.CPP/.CS สำหรับ C/C ++/C# พร้อมข้อมูลแบบอักษรแบบบีบอัดสำหรับโหมดฝังตัว |
| รหัสส่วนหัว | .H/.CS สำหรับ C/C ++/C# พร้อม infos เช่น (Glyph Labels/CodePoint Min/Max Ranges)]] |
| การ์ด | .png การ์ดนี้เป็นไฟล์รูปภาพที่แสดง Glyph แต่ละอันและป้ายกำกับที่เกี่ยวข้อง |
สำหรับการโหลดใน Imgui คุณต้องรวมไอคอนตัวอักษรเข้ากับตัวอักษรหลักปัจจุบันที่ใช้ในแอพ Imgui ของคุณ แต่เราเพียงแค่ต้องโหลด codepoints บางอย่างไม่ใช่ตาราง Unicode ทั้งหมด นี่คือเหตุผลที่คุณมีในไฟล์ส่วนหัวในช่วง min/max infos
ตัวอย่างเช่นในตัวอย่างนี้สำหรับตัวอักษรฝังตัวเรามี (พร้อมคำนำหน้าตัวอักษร IGFs):
ImGuiIO * ioptr = igGetIO ();
ImFontAtlas_AddFontDefault ( ioptr -> Fonts , NULL );
const ImWchar icons_ranges [ 3 ] = { ICON_MIN_IGFS , ICON_MAX_IGFS , 0 };
ImFontConfig * icons_config = ImFontConfig_ImFontConfig ();
icons_config -> MergeMode = true;
icons_config -> PixelSnapH = true;
ImFontAtlas_AddFontFromFileTTF ( ioptr -> Fonts , FONT_ICON_FILE_NAME_IGFS , 15.0f , icons_config , icons_ranges );
ImFontConfig_destroy ( icons_config ); ImGui::GetIO ().Fonts->AddFontDefault();
static const ImWchar icons_ranges[] = { ICON_MIN_IGFS, ICON_MAX_IGFS, 0 };
ImFontConfig icons_config; icons_config.MergeMode = true ; icons_config.PixelSnapH = true ;
ImGui::GetIO ().Fonts->AddFontFromFileTTF(FONT_ICON_FILE_NAME_IGFS, 15 . 0f , &icons_config, icons_ranges);ImGui.GetIO().Fonts.AddFontDefault();
unsafe
{
ImFontConfigPtr config = ImGuiNative. ImFontConfig_ImFontConfig (); config. MergeMode = true ; config. PixelSnapH = true ;
GCHandle rangeHandle = GCHandle. Alloc ( new ushort []{IconFonts. IGFS_Labels . ICON_MIN , IconFonts. IGFS_Labels . ICON_MAX , 0 }, GCHandleType. Pinned );
ImGui. GetIO (). Fonts . AddFontFromFileTTF (IconFonts. IGFS_Labels . FONT_ICON_FILE_NAME , 15 , config, rangeHandle. AddrOfPinnedObject ());
}ตัวอย่างเช่นในตัวอย่างนี้สำหรับการโหลดแบบอักษรฝังตัวเรามี (ด้วย Font Prefxi IGFs):
ImGuiIO * ioptr = igGetIO ();
ImFontAtlas_AddFontDefault ( ioptr -> Fonts , NULL );
const ImWchar icons_ranges [ 3 ] = { ICON_MIN_IGFS , ICON_MAX_IGFS , 0 };
ImFontConfig * icons_config = ImFontConfig_ImFontConfig ();
icons_config -> MergeMode = true;
icons_config -> PixelSnapH = true;
ImFontAtlas_AddFontFromMemoryCompressedBase85TTF ( ioptr -> Fonts , FONT_ICON_FILE_NAME_IGFS , 15.0f , icons_config , icons_ranges );
ImFontConfig_destroy ( icons_config ); ImGui::GetIO ().Fonts->AddFontDefault();
static const ImWchar icons_ranges[] = { ICON_MIN_IGFS, ICON_MAX_IGFS, 0 };
ImFontConfig icons_config; icons_config.MergeMode = true ; icons_config.PixelSnapH = true ;
ImGui::GetIO ().Fonts->AddFontFromMemoryCompressedBase85TTF(FONT_ICON_BUFFER_NAME_IGFS, 15 . 0f , &icons_config, icons_ranges);ImGui.GetIO().Fonts.AddFontDefault();
unsafe
{
ImFontConfigPtr config = ImGuiNative. ImFontConfig_ImFontConfig (); config. MergeMode = true ; config. PixelSnapH = true ;
GCHandle rangeHandle = GCHandle. Alloc ( new ushort []{IconFonts. IGFS_Labels . ICON_MIN , IconFonts. IGFS_Labels . ICON_MAX , 0 }, GCHandleType. Pinned );
ImGui. GetIO (). Fonts . AddFontFromMemoryCompressedBase85TTF (IconFonts. IGFS_Bytes . compressed_data_base85 , 15 , config, rangeHandle. AddrOfPinnedObject ());
}ในทั้งสองกรณีการใช้ในรหัสเหมือนกัน:
หลังจากขั้นตอนนั้นเมื่อคุณมีวิดเจ็ต Imgui ที่จะทดสอบคุณเพียงแค่ต้องใส่ในฟิลด์ฉลาก, สัญลักษณ์ที่คุณต้องการซึ่งกำหนดไว้ในไฟล์ส่วนหัวสำหรับป้ายกำกับ:
ImGui::Button (ICON_IGFS_FOLDER_OPEN " Open Font " ); ImGui::Button (IconFonts.IGFS_Labels.FOLDER_OPEN + " Open Font " ); และคุณจะได้ผลลัพธ์นี้: 
คุณสามารถใช้แท็บปัญหาสำหรับปัญหารายงานหรือสำหรับการร้องขอคุณสมบัติ หรือคุณสามารถมีส่วนร่วมกับการอภิปรายผ่านแท็บปัญหาหรือ/และดึงคำขอ :)
Imguifontstudio เป็นซอฟต์แวร์โอเพ่นซอร์สภายใต้ใบอนุญาต Apache 2.0
มุมมองหลัก: บานหน้าต่างแหล่งที่มา 
มุมมองหลัก: บานหน้าต่างสุดท้ายมีสองแบบอักษร 
มุมมองหลัก: บานหน้าต่างสุดท้ายสำหรับรุ่น 
ตัวอย่างของการ์ด:
แจ้งให้เราทราบโครงการของคุณด้วยพีซีและฉันสามารถเพิ่มได้ที่นี่:
ในขณะนี้ (อย่างที่ฉันรู้) มี: