mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
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
This commit is contained in:
parent
0c63541864
commit
c69329f592
293 changed files with 61312 additions and 754 deletions
40
imgui/Dalamud.Bindings.ImGui/Custom/ImGuiNative.Custom.cs
Normal file
40
imgui/Dalamud.Bindings.ImGui/Custom/ImGuiNative.Custom.cs
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Dalamud.Bindings.ImGui;
|
||||
|
||||
public static unsafe partial class ImGuiNative
|
||||
{
|
||||
private const string LibraryName = "cimgui";
|
||||
|
||||
static ImGuiNative()
|
||||
{
|
||||
if (LibraryName != ImGui.GetLibraryName())
|
||||
{
|
||||
throw new(
|
||||
$"{nameof(LibraryName)}(={LibraryName})" +
|
||||
$" does not match " +
|
||||
$"{nameof(ImGui)}.{nameof(ImGui.GetLibraryName)}(={ImGui.GetLibraryName()})");
|
||||
}
|
||||
}
|
||||
|
||||
[LibraryImport(LibraryName, EntryPoint = "ImDrawList_AddCallback")]
|
||||
[UnmanagedCallConv(CallConvs = [typeof(CallConvCdecl)])]
|
||||
public static partial void AddCallback(
|
||||
ImDrawList* self,
|
||||
delegate*<ImDrawList*, ImDrawCmd*, void> callback,
|
||||
void* callbackData = null);
|
||||
|
||||
[LibraryImport(LibraryName, EntryPoint = "igInputTextEx")]
|
||||
[UnmanagedCallConv(CallConvs = [typeof(CallConvCdecl)])]
|
||||
public static partial int InputTextEx(
|
||||
byte* label,
|
||||
byte* hint,
|
||||
byte* buf,
|
||||
int bufSize,
|
||||
Vector2 sizeArg,
|
||||
ImGuiInputTextFlags flags = ImGuiInputTextFlags.None,
|
||||
delegate* unmanaged[Cdecl]<ImGuiInputTextCallbackData*, int> callback = null,
|
||||
void* userData = null);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue