mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 15:56:13 +03:00
pkg/cimgui: use freetype for font rendering
This commit is contained in:
@ -8,6 +8,11 @@ pub fn build(b: *std.Build) !void {
|
||||
_ = b.addModule("cimgui", .{ .source_file = .{ .path = "main.zig" } });
|
||||
|
||||
const imgui = b.dependency("imgui", .{});
|
||||
const freetype = b.dependency("freetype", .{
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
.@"enable-libpng" = true,
|
||||
});
|
||||
const lib = b.addStaticLibrary(.{
|
||||
.name = "cimgui",
|
||||
.target = target,
|
||||
@ -15,6 +20,7 @@ pub fn build(b: *std.Build) !void {
|
||||
});
|
||||
lib.linkLibC();
|
||||
lib.linkLibCpp();
|
||||
lib.linkLibrary(freetype.artifact("freetype"));
|
||||
if (target.isWindows()) {
|
||||
lib.linkSystemLibrary("imm32");
|
||||
}
|
||||
@ -24,6 +30,7 @@ pub fn build(b: *std.Build) !void {
|
||||
var flags = std.ArrayList([]const u8).init(b.allocator);
|
||||
defer flags.deinit();
|
||||
try flags.appendSlice(&.{
|
||||
"-DCIMGUI_FREETYPE=1",
|
||||
"-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1",
|
||||
});
|
||||
if (target.isWindows()) {
|
||||
@ -42,6 +49,7 @@ pub fn build(b: *std.Build) !void {
|
||||
lib.addCSourceFile(.{ .file = imgui.path("imgui_demo.cpp"), .flags = flags.items });
|
||||
lib.addCSourceFile(.{ .file = imgui.path("imgui_widgets.cpp"), .flags = flags.items });
|
||||
lib.addCSourceFile(.{ .file = imgui.path("imgui_tables.cpp"), .flags = flags.items });
|
||||
lib.addCSourceFile(.{ .file = imgui.path("misc/freetype/imgui_freetype.cpp"), .flags = flags.items });
|
||||
|
||||
lib.addCSourceFile(.{
|
||||
.file = imgui.path("backends/imgui_impl_opengl3.cpp"),
|
||||
|
@ -11,5 +11,6 @@
|
||||
},
|
||||
|
||||
.apple_sdk = .{ .path = "../apple-sdk" },
|
||||
.freetype = .{ .path = "../freetype" },
|
||||
},
|
||||
}
|
||||
|
15
pkg/cimgui/vendor/cimgui.cpp
vendored
15
pkg/cimgui/vendor/cimgui.cpp
vendored
@ -1,7 +1,9 @@
|
||||
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
|
||||
//based on imgui.h file version "1.89.9" 18990 from Dear ImGui https://github.com/ocornut/imgui
|
||||
//with imgui_internal.h api
|
||||
//with imgui_freetype.h api
|
||||
//docking branch
|
||||
#define IMGUI_ENABLE_FREETYPE
|
||||
#ifdef IMGUI_ENABLE_FREETYPE
|
||||
#ifndef CIMGUI_FREETYPE
|
||||
#error "IMGUI_FREETYPE should be defined for Freetype linking"
|
||||
@ -19,6 +21,7 @@
|
||||
#include "cimgui.h"
|
||||
|
||||
|
||||
|
||||
CIMGUI_API ImVec2* ImVec2_ImVec2_Nil(void)
|
||||
{
|
||||
return IM_NEW(ImVec2)();
|
||||
@ -5397,10 +5400,6 @@ CIMGUI_API bool igIsKeyPressedMap(ImGuiKey key,bool repeat)
|
||||
{
|
||||
return ImGui::IsKeyPressedMap(key,repeat);
|
||||
}
|
||||
CIMGUI_API const ImFontBuilderIO* igImFontAtlasGetBuilderForStbTruetype()
|
||||
{
|
||||
return ImFontAtlasGetBuilderForStbTruetype();
|
||||
}
|
||||
CIMGUI_API void igImFontAtlasBuildInit(ImFontAtlas* atlas)
|
||||
{
|
||||
return ImFontAtlasBuildInit(atlas);
|
||||
@ -5433,6 +5432,14 @@ CIMGUI_API void igImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[2
|
||||
{
|
||||
return ImFontAtlasBuildMultiplyRectAlpha8(table,pixels,x,y,w,h,stride);
|
||||
}
|
||||
CIMGUI_API const ImFontBuilderIO* ImGuiFreeType_GetBuilderForFreeType()
|
||||
{
|
||||
return ImGuiFreeType::GetBuilderForFreeType();
|
||||
}
|
||||
CIMGUI_API void ImGuiFreeType_SetAllocatorFunctions(void*(*alloc_func)(size_t sz,void* user_data),void(*free_func)(void* ptr,void* user_data),void* user_data)
|
||||
{
|
||||
return ImGuiFreeType::SetAllocatorFunctions(alloc_func,free_func,user_data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
19
pkg/cimgui/vendor/cimgui.h
vendored
19
pkg/cimgui/vendor/cimgui.h
vendored
@ -1,6 +1,7 @@
|
||||
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
|
||||
//based on imgui.h file version "1.89.9" 18990 from Dear ImGui https://github.com/ocornut/imgui
|
||||
//with imgui_internal.h api
|
||||
//with imgui_freetype.h api
|
||||
//docking branch
|
||||
#ifndef CIMGUI_INCLUDED
|
||||
#define CIMGUI_INCLUDED
|
||||
@ -3121,6 +3122,20 @@ struct ImFontBuilderIO
|
||||
{
|
||||
bool (*FontBuilder_Build)(ImFontAtlas* atlas);
|
||||
};
|
||||
struct ImFontAtlas;
|
||||
struct ImFontBuilderIO;
|
||||
typedef enum {
|
||||
ImGuiFreeTypeBuilderFlags_NoHinting = 1 << 0,
|
||||
ImGuiFreeTypeBuilderFlags_NoAutoHint = 1 << 1,
|
||||
ImGuiFreeTypeBuilderFlags_ForceAutoHint = 1 << 2,
|
||||
ImGuiFreeTypeBuilderFlags_LightHinting = 1 << 3,
|
||||
ImGuiFreeTypeBuilderFlags_MonoHinting = 1 << 4,
|
||||
ImGuiFreeTypeBuilderFlags_Bold = 1 << 5,
|
||||
ImGuiFreeTypeBuilderFlags_Oblique = 1 << 6,
|
||||
ImGuiFreeTypeBuilderFlags_Monochrome = 1 << 7,
|
||||
ImGuiFreeTypeBuilderFlags_LoadColor = 1 << 8,
|
||||
ImGuiFreeTypeBuilderFlags_Bitmap = 1 << 9
|
||||
}ImGuiFreeTypeBuilderFlags;
|
||||
#define IMGUI_HAS_DOCK 1
|
||||
|
||||
#else
|
||||
@ -4526,7 +4541,6 @@ CIMGUI_API void igDebugNodeViewport(ImGuiViewportP* viewport);
|
||||
CIMGUI_API void igDebugRenderKeyboardPreview(ImDrawList* draw_list);
|
||||
CIMGUI_API void igDebugRenderViewportThumbnail(ImDrawList* draw_list,ImGuiViewportP* viewport,const ImRect bb);
|
||||
CIMGUI_API bool igIsKeyPressedMap(ImGuiKey key,bool repeat);
|
||||
CIMGUI_API const ImFontBuilderIO* igImFontAtlasGetBuilderForStbTruetype(void);
|
||||
CIMGUI_API void igImFontAtlasBuildInit(ImFontAtlas* atlas);
|
||||
CIMGUI_API void igImFontAtlasBuildSetupFont(ImFontAtlas* atlas,ImFont* font,ImFontConfig* font_config,float ascent,float descent);
|
||||
CIMGUI_API void igImFontAtlasBuildPackCustomRects(ImFontAtlas* atlas,void* stbrp_context_opaque);
|
||||
@ -4535,6 +4549,8 @@ CIMGUI_API void igImFontAtlasBuildRender8bppRectFromString(ImFontAtlas* atlas,in
|
||||
CIMGUI_API void igImFontAtlasBuildRender32bppRectFromString(ImFontAtlas* atlas,int x,int y,int w,int h,const char* in_str,char in_marker_char,unsigned int in_marker_pixel_value);
|
||||
CIMGUI_API void igImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256],float in_multiply_factor);
|
||||
CIMGUI_API void igImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256],unsigned char* pixels,int x,int y,int w,int h,int stride);
|
||||
CIMGUI_API const ImFontBuilderIO* ImGuiFreeType_GetBuilderForFreeType(void);
|
||||
CIMGUI_API void ImGuiFreeType_SetAllocatorFunctions(void*(*alloc_func)(size_t sz,void* user_data),void(*free_func)(void* ptr,void* user_data),void* user_data);
|
||||
|
||||
|
||||
/////////////////////////hand written functions
|
||||
@ -4558,3 +4574,4 @@ CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p);
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user