mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-25 18:09:17 +01:00
Merge pull request #2536 from CMDRNuffin/imgui-textboxes-fix-unnecessary-cloning-on-unchanged-text-2-electric-boogaloo
Prevent unnecessary string creation in ImGui TextInput methods
This commit is contained in:
commit
ea1bb92d17
1 changed files with 136 additions and 34 deletions
|
|
@ -127,8 +127,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -140,8 +146,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -153,8 +165,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -166,8 +184,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -287,8 +311,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -300,8 +330,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -314,8 +350,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -328,8 +370,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -388,8 +436,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -401,8 +455,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -414,8 +474,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -427,8 +493,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -477,8 +549,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -490,8 +568,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -503,8 +587,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -516,8 +606,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
@ -541,8 +637,14 @@ public unsafe partial class ImGui
|
|||
var t = new ImU8String(buf);
|
||||
t.Reserve(maxLength + 1);
|
||||
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]);
|
||||
|
||||
var e = (flags & ImGuiInputTextFlags.EnterReturnsTrue) != 0;
|
||||
if (r | e)
|
||||
{
|
||||
var i = t.Buffer.IndexOf((byte)0);
|
||||
buf = Encoding.UTF8.GetString(i == -1 ? t.Buffer : t.Buffer[..i]);
|
||||
}
|
||||
|
||||
t.Recycle();
|
||||
return r;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue