Dalamud/imgui/Dalamud.Bindings.ImGui/Custom/ImFont.Custom.cs
srkizer c69329f592
Manual overloads for ImGui functions accepting text (#2319)
* wip2

* Implement AutoUtf8Buffer

* reformat

* Work on manual bindings

* restructure

* Name scripts properly

* Update utility functions to use ImU8String

* add overloads

* Add more overloads

* Use ImGuiWindow from gen, support AddCallback

* Use LibraryImport for custom ImGuiNative functinos

* Make manual overloads for string-returning functinos

* Make all overloads with self as its first parameter extension methods

* Fix overload resolution by removing unnecessary

* in => scoped in

* Fix compilation errors
2025-08-04 11:14:00 -07:00

38 lines
1.2 KiB
C#

using System.Numerics;
namespace Dalamud.Bindings.ImGui;
public unsafe partial struct ImFont
{
public readonly int CalcWordWrapPositionA(float scale, ReadOnlySpan<byte> text, float wrapWidth)
{
fixed (ImFont* thisPtr = &this) return ImGui.CalcWordWrapPositionA(thisPtr, scale, text, wrapWidth);
}
public readonly void RenderText(
ImDrawListPtr drawList, float size, Vector2 pos, uint col, Vector4 clipRect, ImU8String text,
float wrapWidth = 0.0f, bool cpuFineClip = false)
{
fixed (ImFont* thisPtr =
&this) ImGui.RenderText(thisPtr, drawList, size, pos, col, clipRect, text, wrapWidth, cpuFineClip);
}
}
public partial struct ImFontPtr
{
public readonly int CalcWordWrapPositionA(float scale, ImU8String text, float wrapWidth) =>
ImGui.CalcWordWrapPositionA(this, scale, text, wrapWidth);
public readonly void RenderText(
ImDrawListPtr drawList, float size, Vector2 pos, uint col, Vector4 clipRect, ImU8String text,
float wrapWidth = 0.0f, bool cpuFineClip = false) => ImGui.RenderText(
this,
drawList,
size,
pos,
col,
clipRect,
text,
wrapWidth,
cpuFineClip);
}