mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-13 12:14:16 +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
81
imgui/Dalamud.Bindings.ImGui/Custom/ImGui.ColorEditPicker.cs
Normal file
81
imgui/Dalamud.Bindings.ImGui/Custom/ImGui.ColorEditPicker.cs
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Numerics;
|
||||
|
||||
namespace Dalamud.Bindings.ImGui;
|
||||
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||
public static unsafe partial class ImGui
|
||||
{
|
||||
public static bool ColorEdit3(
|
||||
ImU8String label, scoped ref Vector3 col, ImGuiColorEditFlags flags = ImGuiColorEditFlags.None)
|
||||
{
|
||||
fixed (byte* labelPtr = &label.GetPinnableNullTerminatedReference())
|
||||
fixed (Vector3* colPtr = &col)
|
||||
{
|
||||
var res = ImGuiNative.ColorEdit3(labelPtr, &colPtr->X, flags) != 0;
|
||||
label.Dispose();
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ColorEdit4(
|
||||
ImU8String label, scoped ref Vector4 col, ImGuiColorEditFlags flags = ImGuiColorEditFlags.None)
|
||||
{
|
||||
fixed (byte* labelPtr = &label.GetPinnableNullTerminatedReference())
|
||||
fixed (Vector4* colPtr = &col)
|
||||
{
|
||||
var res = ImGuiNative.ColorEdit4(labelPtr, &colPtr->X, flags) != 0;
|
||||
label.Dispose();
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ColorPicker3(
|
||||
ImU8String label, scoped ref Vector3 col, ImGuiColorEditFlags flags = ImGuiColorEditFlags.None)
|
||||
{
|
||||
fixed (byte* labelPtr = &label.GetPinnableNullTerminatedReference())
|
||||
fixed (Vector3* colPtr = &col)
|
||||
{
|
||||
var res = ImGuiNative.ColorPicker3(labelPtr, &colPtr->X, flags) != 0;
|
||||
label.Dispose();
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ColorPicker4(
|
||||
ImU8String label, scoped ref Vector4 col, ImGuiColorEditFlags flags = ImGuiColorEditFlags.None)
|
||||
{
|
||||
fixed (byte* labelPtr = &label.GetPinnableNullTerminatedReference())
|
||||
fixed (Vector4* colPtr = &col)
|
||||
{
|
||||
var res = ImGuiNative.ColorPicker4(labelPtr, &colPtr->X, flags, null) != 0;
|
||||
label.Dispose();
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ColorPicker4(
|
||||
ImU8String label, scoped ref Vector4 col, ImGuiColorEditFlags flags, scoped in Vector4 refCol)
|
||||
{
|
||||
fixed (byte* labelPtr = &label.GetPinnableNullTerminatedReference())
|
||||
fixed (Vector4* colPtr = &col)
|
||||
fixed (Vector4* refColPtr = &refCol)
|
||||
{
|
||||
var res = ImGuiNative.ColorPicker4(labelPtr, &colPtr->X, flags, &refColPtr->X) != 0;
|
||||
label.Dispose();
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ColorPicker4(ImU8String label, scoped ref Vector4 col, scoped in Vector4 refCol)
|
||||
{
|
||||
fixed (byte* labelPtr = &label.GetPinnableNullTerminatedReference())
|
||||
fixed (Vector4* colPtr = &col)
|
||||
fixed (Vector4* refColPtr = &refCol)
|
||||
{
|
||||
var res = ImGuiNative.ColorPicker4(labelPtr, &colPtr->X, ImGuiColorEditFlags.None, &refColPtr->X) != 0;
|
||||
label.Dispose();
|
||||
return res;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue