mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-31 21:03:43 +01:00
Merge pull request #2528 from CMDRNuffin/imgui-textboxes-fix-unnecessary-cloning-on-unchanged-text
Prevent ImGui text box methods from cloning unchanged input every frame
This commit is contained in:
commit
3b8917bcc8
1 changed files with 119 additions and 34 deletions
|
|
@ -127,8 +127,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputText(label, t.Buffer[..(maxLength + 1)], flags, callback);
|
var r = InputText(label, t.Buffer[..(maxLength + 1)], flags, callback);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -140,8 +145,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputText(label, t.Buffer[..(maxLength + 1)], flags, callback);
|
var r = InputText(label, t.Buffer[..(maxLength + 1)], flags, callback);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -153,8 +163,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputText(label, t.Buffer[..(maxLength + 1)], flags, callback, ref context);
|
var r = InputText(label, t.Buffer[..(maxLength + 1)], flags, callback, ref context);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -166,8 +181,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputText(label, t.Buffer[..(maxLength + 1)], flags, callback, in context);
|
var r = InputText(label, t.Buffer[..(maxLength + 1)], flags, callback, in context);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -287,8 +307,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputTextEx(label, hint, t.Buffer[..(maxLength + 1)], sizeArg, flags, callback);
|
var r = InputTextEx(label, hint, t.Buffer[..(maxLength + 1)], sizeArg, flags, callback);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -300,8 +325,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputTextEx(label, hint, t.Buffer[..(maxLength + 1)], sizeArg, flags, callback);
|
var r = InputTextEx(label, hint, t.Buffer[..(maxLength + 1)], sizeArg, flags, callback);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -314,8 +344,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputTextEx(label, hint, t.Buffer[..(maxLength + 1)], sizeArg, flags, callback, ref context);
|
var r = InputTextEx(label, hint, t.Buffer[..(maxLength + 1)], sizeArg, flags, callback, ref context);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -328,8 +363,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputTextEx(label, hint, t.Buffer[..(maxLength + 1)], sizeArg, flags, callback, in context);
|
var r = InputTextEx(label, hint, t.Buffer[..(maxLength + 1)], sizeArg, flags, callback, in context);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -388,8 +428,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputTextMultiline(label, t.Buffer[..(maxLength + 1)], size, flags, callback);
|
var r = InputTextMultiline(label, t.Buffer[..(maxLength + 1)], size, flags, callback);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -401,8 +446,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputTextMultiline(label, t.Buffer[..(maxLength + 1)], size, flags, callback);
|
var r = InputTextMultiline(label, t.Buffer[..(maxLength + 1)], size, flags, callback);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -414,8 +464,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputTextMultiline(label, t.Buffer[..(maxLength + 1)], size, flags, callback, ref context);
|
var r = InputTextMultiline(label, t.Buffer[..(maxLength + 1)], size, flags, callback, ref context);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -427,8 +482,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputTextMultiline(label, t.Buffer[..(maxLength + 1)], size, flags, callback, in context);
|
var r = InputTextMultiline(label, t.Buffer[..(maxLength + 1)], size, flags, callback, in context);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -477,8 +537,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputTextWithHint(label, hint, t.Buffer[..(maxLength + 1)], flags, callback);
|
var r = InputTextWithHint(label, hint, t.Buffer[..(maxLength + 1)], flags, callback);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -490,8 +555,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputTextWithHint(label, hint, t.Buffer[..(maxLength + 1)], flags, callback);
|
var r = InputTextWithHint(label, hint, t.Buffer[..(maxLength + 1)], flags, callback);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -503,8 +573,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputTextWithHint(label, hint, t.Buffer[..(maxLength + 1)], flags, callback, ref context);
|
var r = InputTextWithHint(label, hint, t.Buffer[..(maxLength + 1)], flags, callback, ref context);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -516,8 +591,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = InputTextWithHint(label, hint, t.Buffer[..(maxLength + 1)], flags, callback, in context);
|
var r = InputTextWithHint(label, hint, t.Buffer[..(maxLength + 1)], flags, callback, in context);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
@ -541,8 +621,13 @@ public unsafe partial class ImGui
|
||||||
var t = new ImU8String(buf);
|
var t = new ImU8String(buf);
|
||||||
t.Reserve(maxLength + 1);
|
t.Reserve(maxLength + 1);
|
||||||
var r = TempInputText(bb, id, label, t.Buffer[..(maxLength + 1)], flags);
|
var r = TempInputText(bb, id, label, t.Buffer[..(maxLength + 1)], flags);
|
||||||
var i = t.Buffer.IndexOf((byte)0);
|
|
||||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
if (r)
|
||||||
|
{
|
||||||
|
var i = t.Buffer.IndexOf((byte)0);
|
||||||
|
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||||
|
}
|
||||||
|
|
||||||
t.Recycle();
|
t.Recycle();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue