dotnet/Silk.NET

Silk.NET.OpenGL.Extensions.ImGui key error

Opened this issue · 1 comments

Summary

Silk.NET.OpenGL.Extensions.ImGui causes the application to throw an exception due to an "unknown key". The decompiled code shows that the package has a switch with throw for an unknown key (private static ImGuiKey TranslateInputKeyToImGuiKey(Key key)
{
return key switch
{
Key.Tab => ImGuiKey.Tab,
Key.Left => ImGuiKey.LeftArrow,
Key.Right => ImGuiKey.RightArrow,
Key.Up => ImGuiKey.UpArrow,
Key.Down => ImGuiKey.DownArrow,
Key.PageUp => ImGuiKey.PageUp,
Key.PageDown => ImGuiKey.PageDown,
Key.Home => ImGuiKey.Home,
Key.End => ImGuiKey.End,
Key.Insert => ImGuiKey.Insert,
Key.Delete => ImGuiKey.Delete,
Key.Backspace => ImGuiKey.Backspace,
Key.Space => ImGuiKey.Space,
Key.Enter => ImGuiKey.Enter,
Key.Escape => ImGuiKey.Escape,
Key.Apostrophe => ImGuiKey.Apostrophe,
Key.Comma => ImGuiKey.Comma,
Key.Minus => ImGuiKey.Minus,
Key.Period => ImGuiKey.Period,
Key.Slash => ImGuiKey.Slash,
Key.Semicolon => ImGuiKey.Semicolon,
Key.Equal => ImGuiKey.Equal,
Key.LeftBracket => ImGuiKey.LeftBracket,
Key.BackSlash => ImGuiKey.Backslash,
Key.RightBracket => ImGuiKey.RightBracket,
Key.GraveAccent => ImGuiKey.GraveAccent,
Key.CapsLock => ImGuiKey.CapsLock,
Key.ScrollLock => ImGuiKey.ScrollLock,
Key.NumLock => ImGuiKey.NumLock,
Key.PrintScreen => ImGuiKey.PrintScreen,
Key.Pause => ImGuiKey.Pause,
Key.Keypad0 => ImGuiKey.Keypad0,
Key.Keypad1 => ImGuiKey.Keypad1,
Key.Keypad2 => ImGuiKey.Keypad2,
Key.Keypad3 => ImGuiKey.Keypad3,
Key.Keypad4 => ImGuiKey.Keypad4,
Key.Keypad5 => ImGuiKey.Keypad5,
Key.Keypad6 => ImGuiKey.Keypad6,
Key.Keypad7 => ImGuiKey.Keypad7,
Key.Keypad8 => ImGuiKey.Keypad8,
Key.Keypad9 => ImGuiKey.Keypad9,
Key.KeypadDecimal => ImGuiKey.KeypadDecimal,
Key.KeypadDivide => ImGuiKey.KeypadDivide,
Key.KeypadMultiply => ImGuiKey.KeypadMultiply,
Key.KeypadSubtract => ImGuiKey.KeypadSubtract,
Key.KeypadAdd => ImGuiKey.KeypadAdd,
Key.KeypadEnter => ImGuiKey.KeypadEnter,
Key.KeypadEqual => ImGuiKey.KeypadEqual,
Key.ShiftLeft => ImGuiKey.LeftShift,
Key.ControlLeft => ImGuiKey.LeftCtrl,
Key.AltLeft => ImGuiKey.LeftAlt,
Key.SuperLeft => ImGuiKey.LeftSuper,
Key.ShiftRight => ImGuiKey.RightShift,
Key.ControlRight => ImGuiKey.RightCtrl,
Key.AltRight => ImGuiKey.RightAlt,
Key.SuperRight => ImGuiKey.RightSuper,
Key.Menu => ImGuiKey.Menu,
Key.Number0 => ImGuiKey._0,
Key.Number1 => ImGuiKey._1,
Key.Number2 => ImGuiKey._2,
Key.Number3 => ImGuiKey._3,
Key.Number4 => ImGuiKey._4,
Key.Number5 => ImGuiKey._5,
Key.Number6 => ImGuiKey._6,
Key.Number7 => ImGuiKey._7,
Key.Number8 => ImGuiKey._8,
Key.Number9 => ImGuiKey._9,
Key.A => ImGuiKey.A,
Key.B => ImGuiKey.B,
Key.C => ImGuiKey.C,
Key.D => ImGuiKey.D,
Key.E => ImGuiKey.E,
Key.F => ImGuiKey.F,
Key.G => ImGuiKey.G,
Key.H => ImGuiKey.H,
Key.I => ImGuiKey.I,
Key.J => ImGuiKey.J,
Key.K => ImGuiKey.K,
Key.L => ImGuiKey.L,
Key.M => ImGuiKey.M,
Key.N => ImGuiKey.N,
Key.O => ImGuiKey.O,
Key.P => ImGuiKey.P,
Key.Q => ImGuiKey.Q,
Key.R => ImGuiKey.R,
Key.S => ImGuiKey.S,
Key.T => ImGuiKey.T,
Key.U => ImGuiKey.U,
Key.V => ImGuiKey.V,
Key.W => ImGuiKey.W,
Key.X => ImGuiKey.X,
Key.Y => ImGuiKey.Y,
Key.Z => ImGuiKey.Z,
Key.F1 => ImGuiKey.F1,
Key.F2 => ImGuiKey.F2,
Key.F3 => ImGuiKey.F3,
Key.F4 => ImGuiKey.F4,
Key.F5 => ImGuiKey.F5,
Key.F6 => ImGuiKey.F6,
Key.F7 => ImGuiKey.F7,
Key.F8 => ImGuiKey.F8,
Key.F9 => ImGuiKey.F9,
Key.F10 => ImGuiKey.F10,
Key.F11 => ImGuiKey.F11,
Key.F12 => ImGuiKey.F12,
Key.F13 => ImGuiKey.F13,
Key.F14 => ImGuiKey.F14,
Key.F15 => ImGuiKey.F15,
Key.F16 => ImGuiKey.F16,
Key.F17 => ImGuiKey.F17,
Key.F18 => ImGuiKey.F18,
Key.F19 => ImGuiKey.F19,
Key.F20 => ImGuiKey.F20,
Key.F21 => ImGuiKey.F21,
Key.F22 => ImGuiKey.F22,
Key.F23 => ImGuiKey.F23,
Key.F24 => ImGuiKey.F24,
_ => throw new NotImplementedException(),
};
}). To fix it, you need to change the last line to _ => ImGuiKey.None.

Steps to reproduce

Laptop/Keyboard with custom key - like sound change key

Comments

Add any other context about the problem here.

If you know how to fix this issue, please submit a pull request instead!

May be duplicated with #2372 and fixed in the merged PR, but it isn't released yet.