Module: ImGui

Extended by:
FFI::Library
Defined in:
lib/imgui.rb,
lib/imgui_impl_sdl3.rb,
lib/imgui_impl_raylib.rb,
lib/imgui_impl_opengl3.rb,
lib/imgui_impl_docking_sdl3.rb,
lib/imgui_impl_sdl3renderer.rb,
lib/imgui_impl_docking_opengl3.rb,
lib/imgui_impl_docking_sdl3renderer.rb

Defined Under Namespace

Classes: ImGui_ImplDockingSDL3_Data, ImGui_ImplDockingSDL3_ViewportData, ImGui_ImplDockingSDLRenderer3_Data, ImGui_ImplDockingSDLRenderer3_RenderState, ImGui_ImplRaylib_Data, ImGui_ImplSDL3_Data, ImGui_ImplSDLRenderer3_Data

Constant Summary collapse

ImGui_ImplSDL3_MouseCaptureMode_Disabled =
0
ImGui_ImplSDL3_MouseCaptureMode_Enabled =
1
ImGui_ImplSDL3_MouseCaptureMode_EnabledAfterDrag =
2
ImGui_ImplSDL3_GamepadMode_AutoFirst =
0
ImGui_ImplSDL3_GamepadMode_AutoAll =
1
ImGui_ImplSDL3_GamepadMode_Manual =
2
CAMERA_MOVE_SPEED =
5.4
CAMERA_ROTATION_SPEED =
0.03
CAMERA_PAN_SPEED =
2.0
CAMERA_MOUSE_MOVE_SENSITIVITY =
0.003
CAMERA_ORBITAL_SPEED =
0.5
KEY_IDS =
TODO

Support ClipboardText

g_ClipboardTextData ImplRaylib_GetClipboardText ImplRaylib_SetClipboardText

[
  # Alphanumeric keys
  Raylib::KEY_APOSTROPHE,    # Key: '
  Raylib::KEY_COMMA,         # Key: ,
  Raylib::KEY_MINUS,         # Key: -
  Raylib::KEY_PERIOD,        # Key: .
  Raylib::KEY_SLASH,         # Key: /
  Raylib::KEY_ZERO,          # Key: 0
  Raylib::KEY_ONE,           # Key: 1
  Raylib::KEY_TWO,           # Key: 2
  Raylib::KEY_THREE,         # Key: 3
  Raylib::KEY_FOUR,          # Key: 4
  Raylib::KEY_FIVE,          # Key: 5
  Raylib::KEY_SIX,           # Key: 6
  Raylib::KEY_SEVEN,         # Key: 7
  Raylib::KEY_EIGHT,         # Key: 8
  Raylib::KEY_NINE,          # Key: 9
  Raylib::KEY_SEMICOLON,     # Key: ;
  Raylib::KEY_EQUAL,         # Key: =
  Raylib::KEY_A,             # Key: A | a
  Raylib::KEY_B,             # Key: B | b
  Raylib::KEY_C,             # Key: C | c
  Raylib::KEY_D,             # Key: D | d
  Raylib::KEY_E,             # Key: E | e
  Raylib::KEY_F,             # Key: F | f
  Raylib::KEY_G,             # Key: G | g
  Raylib::KEY_H,             # Key: H | h
  Raylib::KEY_I,             # Key: I | i
  Raylib::KEY_J,             # Key: J | j
  Raylib::KEY_K,             # Key: K | k
  Raylib::KEY_L,             # Key: L | l
  Raylib::KEY_M,             # Key: M | m
  Raylib::KEY_N,             # Key: N | n
  Raylib::KEY_O,             # Key: O | o
  Raylib::KEY_P,             # Key: P | p
  Raylib::KEY_Q,             # Key: Q | q
  Raylib::KEY_R,             # Key: R | r
  Raylib::KEY_S,             # Key: S | s
  Raylib::KEY_T,             # Key: T | t
  Raylib::KEY_U,             # Key: U | u
  Raylib::KEY_V,             # Key: V | v
  Raylib::KEY_W,             # Key: W | w
  Raylib::KEY_X,             # Key: X | x
  Raylib::KEY_Y,             # Key: Y | y
  Raylib::KEY_Z,             # Key: Z | z
  Raylib::KEY_LEFT_BRACKET,  # Key: [
  Raylib::KEY_BACKSLASH,     # Key: '\'
  Raylib::KEY_RIGHT_BRACKET, # Key: ]
  Raylib::KEY_GRAVE,         # Key: `
  # Function keys
  Raylib::KEY_SPACE,         # Key: Space
  Raylib::KEY_ESCAPE,        # Key: Esc
  Raylib::KEY_ENTER,         # Key: Enter
  Raylib::KEY_TAB,           # Key: Tab
  Raylib::KEY_BACKSPACE,     # Key: Backspace
  Raylib::KEY_INSERT,        # Key: Ins
  Raylib::KEY_DELETE,        # Key: Del
  Raylib::KEY_RIGHT,         # Key: Cursor right
  Raylib::KEY_LEFT,          # Key: Cursor left
  Raylib::KEY_DOWN,          # Key: Cursor down
  Raylib::KEY_UP,            # Key: Cursor up
  Raylib::KEY_PAGE_UP,       # Key: Page up
  Raylib::KEY_PAGE_DOWN,     # Key: Page down
  Raylib::KEY_HOME,          # Key: Home
  Raylib::KEY_END,           # Key: End
  Raylib::KEY_CAPS_LOCK,     # Key: Caps lock
  Raylib::KEY_SCROLL_LOCK,   # Key: Scroll down
  Raylib::KEY_NUM_LOCK,      # Key: Num lock
  Raylib::KEY_PRINT_SCREEN,  # Key: Print screen
  Raylib::KEY_PAUSE,         # Key: Pause
  Raylib::KEY_F1,            # Key: F1
  Raylib::KEY_F2,            # Key: F2
  Raylib::KEY_F3,            # Key: F3
  Raylib::KEY_F4,            # Key: F4
  Raylib::KEY_F5,            # Key: F5
  Raylib::KEY_F6,            # Key: F6
  Raylib::KEY_F7,            # Key: F7
  Raylib::KEY_F8,            # Key: F8
  Raylib::KEY_F9,            # Key: F9
  Raylib::KEY_F10,           # Key: F10
  Raylib::KEY_F11,           # Key: F11
  Raylib::KEY_F12,           # Key: F12
  Raylib::KEY_LEFT_SHIFT,    # Key: Shift left
  Raylib::KEY_LEFT_CONTROL,  # Key: Control left
  Raylib::KEY_LEFT_ALT,      # Key: Alt left
  Raylib::KEY_LEFT_SUPER,    # Key: Super left
  Raylib::KEY_RIGHT_SHIFT,   # Key: Shift right
  Raylib::KEY_RIGHT_CONTROL, # Key: Control right
  Raylib::KEY_RIGHT_ALT,     # Key: Alt right
  Raylib::KEY_RIGHT_SUPER,   # Key: Super right
  Raylib::KEY_KB_MENU,       # Key: KB menu
  # Keypad keys
  Raylib::KEY_KP_0,          # Key: Keypad 0
  Raylib::KEY_KP_1,          # Key: Keypad 1
  Raylib::KEY_KP_2,          # Key: Keypad 2
  Raylib::KEY_KP_3,          # Key: Keypad 3
  Raylib::KEY_KP_4,          # Key: Keypad 4
  Raylib::KEY_KP_5,          # Key: Keypad 5
  Raylib::KEY_KP_6,          # Key: Keypad 6
  Raylib::KEY_KP_7,          # Key: Keypad 7
  Raylib::KEY_KP_8,          # Key: Keypad 8
  Raylib::KEY_KP_9,          # Key: Keypad 9
  Raylib::KEY_KP_DECIMAL,    # Key: Keypad .
  Raylib::KEY_KP_DIVIDE,     # Key: Keypad /
  Raylib::KEY_KP_MULTIPLY,   # Key: Keypad *
  Raylib::KEY_KP_SUBTRACT,   # Key: Keypad -
  Raylib::KEY_KP_ADD,        # Key: Keypad +
  Raylib::KEY_KP_ENTER,      # Key: Keypad Enter
  Raylib::KEY_KP_EQUAL,      # Key: Keypad =
]
ImGui_ImplDockingSDL3_MouseCaptureMode_Disabled =
0
ImGui_ImplDockingSDL3_MouseCaptureMode_Enabled =
1
ImGui_ImplDockingSDL3_MouseCaptureMode_EnabledAfterDrag =
2
ImGui_ImplDockingSDL3_GamepadMode_AutoFirst =
0
ImGui_ImplDockingSDL3_GamepadMode_AutoAll =
1
ImGui_ImplDockingSDL3_GamepadMode_Manual =
2
@@imgui_import_done =
false
@@g_BackendPlatformName =
FFI::MemoryPointer.from_string("imgui_impl_raylib")
@@g_BackendData =

ImGui::GetCurrentContext().address => ImGui_ImplRaylib_Data

Hash.new
@@g_BackendRendererName =
FFI::MemoryPointer.from_string('imgui_impl_sdlrenderer3')
@@g_GlVersion =
0
@@g_MaxTextureSize =
0
@@g_GlslVersionString =
""
@@g_ShaderHandle =
0
@@g_AttribLocationTex =
0
@@g_AttribLocationProjMtx =
0
@@g_AttribLocationVtxPos =
0
@@g_AttribLocationVtxUV =
0
@@g_AttribLocationVtxColor =
0
@@g_VboHandle =
0
@@g_ElementsHandle =
0
@@g_DockingSDL3BackendPlatformName =
FFI::MemoryPointer.from_string('imgui_impl_docking_sdl3')
@@g_DockingSDL3BackendData =
{}
@@g_DockingSDL3PlatformFunctions =
nil
@@g_BackendRendererUserData =
{}
@@g_DockingGL3GlVersion =
0
@@g_DockingGL3MaxTextureSize =
0
@@g_DockingGL3GlslVersionString =
""
@@g_DockingGL3ShaderHandle =
0
@@g_DockingGL3AttribLocationTex =
0
@@g_DockingGL3AttribLocationProjMtx =
0
@@g_DockingGL3AttribLocationVtxPos =
0
@@g_DockingGL3AttribLocationVtxUV =
0
@@g_DockingGL3AttribLocationVtxColor =
0
@@g_DockingGL3VboHandle =
0
@@g_DockingGL3ElementsHandle =
0
@@g_DockingGL3BackendRendererName =
FFI::MemoryPointer.from_string("imgui_impl_docking_opengl3")
@@g_DockingGL3RendererCallbacks =
nil
@@g_DockingSDL3BackendRendererName =
FFI::MemoryPointer.from_string('imgui_impl_docking_sdlrenderer3')
@@g_DockingSDL3BackendRendererUserData =
{}

Class Method Summary collapse

Class Method Details

.AcceptDragDropPayload(type, flags = 0) ⇒ Object

arg: type(const char*), flags(ImGuiDragDropFlags) ret: pointer



8447
8448
8449
# File 'lib/imgui.rb', line 8447

def self.AcceptDragDropPayload(type, flags = 0)
  ImGui_AcceptDragDropPayload(type, flags)
end

.ActivateItemByID(id) ⇒ Object

arg: id(ImGuiID) ret: void



9706
9707
9708
# File 'lib/imgui.rb', line 9706

def self.ActivateItemByID(id)
  ImGui_ActivateItemByID(id)
end

.AddContextHook(ctx, hook) ⇒ Object

arg: ctx(ImGuiContext*), hook(const ImGuiContextHook*) ret: uint



9148
9149
9150
# File 'lib/imgui.rb', line 9148

def self.AddContextHook(ctx, hook)
  ImGui_AddContextHook(ctx, hook)
end

.AddDrawListToDrawDataEx(draw_data, out_list, draw_list) ⇒ Object

arg: draw_data(ImDrawData*), out_list(ImVector_ImDrawListPtr*), draw_list(ImDrawList*) ret: void



9126
9127
9128
# File 'lib/imgui.rb', line 9126

def self.AddDrawListToDrawDataEx(draw_data, out_list, draw_list)
  ImGui_AddDrawListToDrawDataEx(draw_data, out_list, draw_list)
end

.AddSettingsHandler(handler) ⇒ Object

arg: handler(const ImGuiSettingsHandler*) ret: void



9258
9259
9260
# File 'lib/imgui.rb', line 9258

def self.AddSettingsHandler(handler)
  ImGui_AddSettingsHandler(handler)
end

.AlignTextToFramePaddingObject

ret: void



7907
7908
7909
# File 'lib/imgui.rb', line 7907

def self.AlignTextToFramePadding()
  ImGui_AlignTextToFramePadding()
end

.ArrowButton(str_id, dir) ⇒ Object

arg: str_id(const char*), dir(ImGuiDir) ret: bool



7992
7993
7994
# File 'lib/imgui.rb', line 7992

def self.ArrowButton(str_id, dir)
  ImGui_ArrowButton(str_id, dir)
end

.ArrowButtonEx(str_id, dir, size_arg, flags = 0) ⇒ Object

arg: str_id(const char*), dir(ImGuiDir), size_arg(ImVec2), flags(ImGuiButtonFlags) ret: bool



10765
10766
10767
# File 'lib/imgui.rb', line 10765

def self.ArrowButtonEx(str_id, dir, size_arg, flags = 0)
  ImGui_ArrowButtonEx(str_id, dir, size_arg, flags)
end

.Begin(name, p_open = nil, flags = 0) ⇒ Object

arg: name(const char*), p_open(bool*), flags(ImGuiWindowFlags) ret: bool



7584
7585
7586
# File 'lib/imgui.rb', line 7584

def self.Begin(name, p_open = nil, flags = 0)
  ImGui_Begin(name, p_open, flags)
end

.BeginBoxSelect(scope_rect, window, box_select_id, ms_flags) ⇒ Object

arg: scope_rect(ImRect), window(ImGuiWindow*), box_select_id(ImGuiID), ms_flags(ImGuiMultiSelectFlags) ret: bool



10178
10179
10180
# File 'lib/imgui.rb', line 10178

def self.BeginBoxSelect(scope_rect, window, box_select_id, ms_flags)
  ImGui_BeginBoxSelect(scope_rect, window, box_select_id, ms_flags)
end

.BeginChild(*arg) ⇒ Object



11286
11287
11288
11289
11290
11291
11292
11293
11294
11295
11296
11297
11298
11299
11300
# File 'lib/imgui.rb', line 11286

def self.BeginChild(*arg)
  # arg: 0:str_id(const char*), 1:size(ImVec2), 2:child_flags(ImGuiChildFlags), 3:window_flags(ImGuiWindowFlags)
  # ret: bool
  return ImGui_BeginChild(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  return ImGui_BeginChild(arg[0], arg[1], 0, 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2))
  return ImGui_BeginChild(arg[0], ImVec2.create(0,0), 0, 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_BeginChild(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:id(ImGuiID), 1:size(ImVec2), 2:child_flags(ImGuiChildFlags), 3:window_flags(ImGuiWindowFlags)
  # ret: bool
  return ImGui_BeginChildID(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  return ImGui_BeginChildID(arg[0], arg[1], 0, 0) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2))
  return ImGui_BeginChildID(arg[0], ImVec2.create(0,0), 0, 0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_BeginChildID(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::BeginChild : No matching functions found (#{arg})")
end

.BeginChildEx(name, id, size_arg, child_flags, window_flags) ⇒ Object

arg: name(const char*), id(ImGuiID), size_arg(ImVec2), child_flags(ImGuiChildFlags), window_flags(ImGuiWindowFlags) ret: bool



9479
9480
9481
# File 'lib/imgui.rb', line 9479

def self.BeginChildEx(name, id, size_arg, child_flags, window_flags)
  ImGui_BeginChildEx(name, id, size_arg, child_flags, window_flags)
end

.BeginColumns(str_id, count, flags = 0) ⇒ Object

arg: str_id(const char*), count(int), flags(ImGuiOldColumnFlags) ret: void



10232
10233
10234
# File 'lib/imgui.rb', line 10232

def self.BeginColumns(str_id, count, flags = 0)
  ImGui_BeginColumns(str_id, count, flags)
end

.BeginCombo(label, preview_value, flags = 0) ⇒ Object

arg: label(const char*), preview_value(const char*), flags(ImGuiComboFlags) ret: bool



8021
8022
8023
# File 'lib/imgui.rb', line 8021

def self.BeginCombo(label, preview_value, flags = 0)
  ImGui_BeginCombo(label, preview_value, flags)
end

.BeginComboPopup(popup_id, bb, flags) ⇒ Object

arg: popup_id(ImGuiID), bb(ImRect), flags(ImGuiComboFlags) ret: bool



9589
9590
9591
# File 'lib/imgui.rb', line 9589

def self.BeginComboPopup(popup_id, bb, flags)
  ImGui_BeginComboPopup(popup_id, bb, flags)
end

.BeginComboPreviewObject

ret: bool



9594
9595
9596
# File 'lib/imgui.rb', line 9594

def self.BeginComboPreview()
  ImGui_BeginComboPreview()
end

.BeginDisabled(disabled = true) ⇒ Object

arg: disabled(bool) ret: void



8463
8464
8465
# File 'lib/imgui.rb', line 8463

def self.BeginDisabled(disabled = true)
  ImGui_BeginDisabled(disabled)
end

.BeginDisabledOverrideReenableObject

ret: void



9456
9457
9458
# File 'lib/imgui.rb', line 9456

def self.BeginDisabledOverrideReenable()
  ImGui_BeginDisabledOverrideReenable()
end

.BeginDockableDragDropSource(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



10015
10016
10017
# File 'lib/imgui.rb', line 10015

def self.BeginDockableDragDropSource(window)
  ImGui_BeginDockableDragDropSource(window)
end

.BeginDockableDragDropTarget(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



10021
10022
10023
# File 'lib/imgui.rb', line 10021

def self.BeginDockableDragDropTarget(window)
  ImGui_BeginDockableDragDropTarget(window)
end

.BeginDocked(window, p_open) ⇒ Object

arg: window(ImGuiWindow*), p_open(bool*) ret: void



10009
10010
10011
# File 'lib/imgui.rb', line 10009

def self.BeginDocked(window, p_open)
  ImGui_BeginDocked(window, p_open)
end

.BeginDragDropSource(flags = 0) ⇒ Object

arg: flags(ImGuiDragDropFlags) ret: bool



8425
8426
8427
# File 'lib/imgui.rb', line 8425

def self.BeginDragDropSource(flags = 0)
  ImGui_BeginDragDropSource(flags)
end

.BeginDragDropTargetObject

ret: bool



8441
8442
8443
# File 'lib/imgui.rb', line 8441

def self.BeginDragDropTarget()
  ImGui_BeginDragDropTarget()
end

.BeginDragDropTargetCustom(bb, id) ⇒ Object

arg: bb(ImRect), id(ImGuiID) ret: bool



10132
10133
10134
# File 'lib/imgui.rb', line 10132

def self.BeginDragDropTargetCustom(bb, id)
  ImGui_BeginDragDropTargetCustom(bb, id)
end

.BeginDragDropTargetViewport(*arg) ⇒ Object



12910
12911
12912
12913
12914
12915
12916
12917
12918
12919
# File 'lib/imgui.rb', line 12910

def self.BeginDragDropTargetViewport(*arg)
  # arg: 0:viewport(ImGuiViewport*)
  # ret: bool
  return ImGui_BeginDragDropTargetViewport(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  # arg: 0:viewport(ImGuiViewport*), 1:p_bb(const ImRect*)
  # ret: bool
  return ImGui_BeginDragDropTargetViewportEx(arg[0], nil) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  return ImGui_BeginDragDropTargetViewportEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::BeginDragDropTargetViewport : No matching functions found (#{arg})")
end

.BeginErrorTooltipObject

ret: bool



11042
11043
11044
# File 'lib/imgui.rb', line 11042

def self.BeginErrorTooltip()
  ImGui_BeginErrorTooltip()
end

.BeginGroupObject

ret: void



7897
7898
7899
# File 'lib/imgui.rb', line 7897

def self.BeginGroup()
  ImGui_BeginGroup()
end

.BeginItemTooltipObject

ret: bool



8175
8176
8177
# File 'lib/imgui.rb', line 8175

def self.BeginItemTooltip()
  ImGui_BeginItemTooltip()
end

.BeginListBox(label, size = ImVec2.create(0,0)) ⇒ Object

arg: label(const char*), size(ImVec2) ret: bool



8124
8125
8126
# File 'lib/imgui.rb', line 8124

def self.BeginListBox(label, size = ImVec2.create(0,0))
  ImGui_BeginListBox(label, size)
end

.BeginMainMenuBarObject

ret: bool



8144
8145
8146
# File 'lib/imgui.rb', line 8144

def self.BeginMainMenuBar()
  ImGui_BeginMainMenuBar()
end

.BeginMenu(*arg) ⇒ Object



12345
12346
12347
12348
12349
12350
12351
12352
12353
12354
# File 'lib/imgui.rb', line 12345

def self.BeginMenu(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_BeginMenu(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:label(const char*), 1:enabled(bool)
  # ret: bool
  return ImGui_BeginMenuEx(arg[0], true) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_BeginMenuEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::BeginMenu : No matching functions found (#{arg})")
end

.BeginMenuBarObject

ret: bool



8134
8135
8136
# File 'lib/imgui.rb', line 8134

def self.BeginMenuBar()
  ImGui_BeginMenuBar()
end

.BeginMenuEx(*arg) ⇒ Object



12831
12832
12833
12834
12835
12836
12837
12838
12839
12840
# File 'lib/imgui.rb', line 12831

def self.BeginMenuEx(*arg)
  # arg: 0:label(const char*), 1:icon(const char*)
  # ret: bool
  return ImGui_BeginMenuWithIcon(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  # arg: 0:label(const char*), 1:icon(const char*), 2:enabled(bool)
  # ret: bool
  return ImGui_BeginMenuWithIconEx(arg[0], arg[1], true) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  return ImGui_BeginMenuWithIconEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::BeginMenuEx : No matching functions found (#{arg})")
end

.BeginMultiSelect(*arg) ⇒ Object



12264
12265
12266
12267
12268
12269
12270
12271
12272
12273
12274
# File 'lib/imgui.rb', line 12264

def self.BeginMultiSelect(*arg)
  # arg: 0:flags(ImGuiMultiSelectFlags)
  # ret: pointer
  return ImGui_BeginMultiSelect(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:flags(ImGuiMultiSelectFlags), 1:selection_size(int), 2:items_count(int)
  # ret: pointer
  return ImGui_BeginMultiSelectEx(arg[0], arg[1], -1) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  return ImGui_BeginMultiSelectEx(arg[0], -1, -1) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_BeginMultiSelectEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::BeginMultiSelect : No matching functions found (#{arg})")
end

.BeginPopup(str_id, flags = 0) ⇒ Object

arg: str_id(const char*), flags(ImGuiWindowFlags) ret: bool



8187
8188
8189
# File 'lib/imgui.rb', line 8187

def self.BeginPopup(str_id, flags = 0)
  ImGui_BeginPopup(str_id, flags)
end

.BeginPopupContextItem(*arg) ⇒ Object



12385
12386
12387
12388
12389
12390
12391
12392
12393
12394
12395
# File 'lib/imgui.rb', line 12385

def self.BeginPopupContextItem(*arg)
  # arg: 
  # ret: bool
  return ImGui_BeginPopupContextItem() if arg.empty?
  # arg: 0:str_id(const char*), 1:popup_flags(ImGuiPopupFlags)
  # ret: bool
  return ImGui_BeginPopupContextItemEx(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_BeginPopupContextItemEx(nil, 0) if arg.length == 0 && (true)
  return ImGui_BeginPopupContextItemEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::BeginPopupContextItem : No matching functions found (#{arg})")
end

.BeginPopupContextVoid(*arg) ⇒ Object



12409
12410
12411
12412
12413
12414
12415
12416
12417
12418
12419
# File 'lib/imgui.rb', line 12409

def self.BeginPopupContextVoid(*arg)
  # arg: 
  # ret: bool
  return ImGui_BeginPopupContextVoid() if arg.empty?
  # arg: 0:str_id(const char*), 1:popup_flags(ImGuiPopupFlags)
  # ret: bool
  return ImGui_BeginPopupContextVoidEx(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_BeginPopupContextVoidEx(nil, 0) if arg.length == 0 && (true)
  return ImGui_BeginPopupContextVoidEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::BeginPopupContextVoid : No matching functions found (#{arg})")
end

.BeginPopupContextWindow(*arg) ⇒ Object



12397
12398
12399
12400
12401
12402
12403
12404
12405
12406
12407
# File 'lib/imgui.rb', line 12397

def self.BeginPopupContextWindow(*arg)
  # arg: 
  # ret: bool
  return ImGui_BeginPopupContextWindow() if arg.empty?
  # arg: 0:str_id(const char*), 1:popup_flags(ImGuiPopupFlags)
  # ret: bool
  return ImGui_BeginPopupContextWindowEx(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_BeginPopupContextWindowEx(nil, 0) if arg.length == 0 && (true)
  return ImGui_BeginPopupContextWindowEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::BeginPopupContextWindow : No matching functions found (#{arg})")
end

.BeginPopupEx(id, extra_window_flags) ⇒ Object

arg: id(ImGuiID), extra_window_flags(ImGuiWindowFlags) ret: bool



9491
9492
9493
# File 'lib/imgui.rb', line 9491

def self.BeginPopupEx(id, extra_window_flags)
  ImGui_BeginPopupEx(id, extra_window_flags)
end

.BeginPopupMenuEx(id, label, extra_window_flags) ⇒ Object

arg: id(ImGuiID), label(const char*), extra_window_flags(ImGuiWindowFlags) ret: bool



9497
9498
9499
# File 'lib/imgui.rb', line 9497

def self.BeginPopupMenuEx(id, label, extra_window_flags)
  ImGui_BeginPopupMenuEx(id, label, extra_window_flags)
end

.BeginPopupModal(name, p_open = nil, flags = 0) ⇒ Object

arg: name(const char*), p_open(bool*), flags(ImGuiWindowFlags) ret: bool



8193
8194
8195
# File 'lib/imgui.rb', line 8193

def self.BeginPopupModal(name, p_open = nil, flags = 0)
  ImGui_BeginPopupModal(name, p_open, flags)
end

.BeginTabBar(str_id, flags = 0) ⇒ Object

arg: str_id(const char*), flags(ImGuiTabBarFlags) ret: bool



8335
8336
8337
# File 'lib/imgui.rb', line 8335

def self.BeginTabBar(str_id, flags = 0)
  ImGui_BeginTabBar(str_id, flags)
end

.BeginTabBarEx(tab_bar, bb, flags) ⇒ Object

arg: tab_bar(ImGuiTabBar*), bb(ImRect), flags(ImGuiTabBarFlags) ret: bool



10591
10592
10593
# File 'lib/imgui.rb', line 10591

def self.BeginTabBarEx(tab_bar, bb, flags)
  ImGui_BeginTabBarEx(tab_bar, bb, flags)
end

.BeginTabItem(label, p_open = nil, flags = 0) ⇒ Object

arg: label(const char*), p_open(bool*), flags(ImGuiTabItemFlags) ret: bool



8346
8347
8348
# File 'lib/imgui.rb', line 8346

def self.BeginTabItem(label, p_open = nil, flags = 0)
  ImGui_BeginTabItem(label, p_open, flags)
end

.BeginTable(*arg) ⇒ Object



12432
12433
12434
12435
12436
12437
12438
12439
12440
12441
12442
12443
12444
# File 'lib/imgui.rb', line 12432

def self.BeginTable(*arg)
  # arg: 0:str_id(const char*), 1:columns(int), 2:flags(ImGuiTableFlags)
  # ret: bool
  return ImGui_BeginTable(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  return ImGui_BeginTable(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  # arg: 0:str_id(const char*), 1:columns(int), 2:flags(ImGuiTableFlags), 3:outer_size(ImVec2), 4:inner_width(float)
  # ret: bool
  return ImGui_BeginTableEx(arg[0], arg[1], arg[2], arg[3], 0.0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2))
  return ImGui_BeginTableEx(arg[0], arg[1], arg[2], ImVec2.create(0.0,0.0), 0.0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  return ImGui_BeginTableEx(arg[0], arg[1], 0, ImVec2.create(0.0,0.0), 0.0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  return ImGui_BeginTableEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::BeginTable : No matching functions found (#{arg})")
end

.BeginTableEx(*arg) ⇒ Object



12943
12944
12945
12946
12947
12948
12949
12950
12951
12952
12953
12954
12955
# File 'lib/imgui.rb', line 12943

def self.BeginTableEx(*arg)
  # arg: 0:name(const char*), 1:id(ImGuiID), 2:columns_count(int), 3:flags(ImGuiTableFlags)
  # ret: bool
  return ImGui_BeginTableWithID(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  return ImGui_BeginTableWithID(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:name(const char*), 1:id(ImGuiID), 2:columns_count(int), 3:flags(ImGuiTableFlags), 4:outer_size(ImVec2), 5:inner_width(float)
  # ret: bool
  return ImGui_BeginTableWithIDEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0.0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(ImVec2))
  return ImGui_BeginTableWithIDEx(arg[0], arg[1], arg[2], arg[3], ImVec2.create(0,0), 0.0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_BeginTableWithIDEx(arg[0], arg[1], arg[2], 0, ImVec2.create(0,0), 0.0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  return ImGui_BeginTableWithIDEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::BeginTableEx : No matching functions found (#{arg})")
end

.BeginTooltipObject

ret: bool



8159
8160
8161
# File 'lib/imgui.rb', line 8159

def self.BeginTooltip()
  ImGui_BeginTooltip()
end

.BeginTooltipEx(tooltip_flags, extra_window_flags) ⇒ Object

arg: tooltip_flags(ImGuiTooltipFlags), extra_window_flags(ImGuiWindowFlags) ret: bool



9572
9573
9574
# File 'lib/imgui.rb', line 9572

def self.BeginTooltipEx(tooltip_flags, extra_window_flags)
  ImGui_BeginTooltipEx(tooltip_flags, extra_window_flags)
end

.BeginTooltipHiddenObject

ret: bool



9577
9578
9579
# File 'lib/imgui.rb', line 9577

def self.BeginTooltipHidden()
  ImGui_BeginTooltipHidden()
end

.BeginViewportSideBar(name, viewport, dir, size, window_flags) ⇒ Object

arg: name(const char*), viewport(ImGuiViewport*), dir(ImGuiDir), size(float), window_flags(ImGuiWindowFlags) ret: bool



9583
9584
9585
# File 'lib/imgui.rb', line 9583

def self.BeginViewportSideBar(name, viewport, dir, size, window_flags)
  ImGui_BeginViewportSideBar(name, viewport, dir, size, window_flags)
end

.BringWindowToDisplayBack(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



9028
9029
9030
# File 'lib/imgui.rb', line 9028

def self.BringWindowToDisplayBack(window)
  ImGui_BringWindowToDisplayBack(window)
end

.BringWindowToDisplayBehind(window, above_window) ⇒ Object

arg: window(ImGuiWindow*), above_window(ImGuiWindow*) ret: void



9034
9035
9036
# File 'lib/imgui.rb', line 9034

def self.BringWindowToDisplayBehind(window, above_window)
  ImGui_BringWindowToDisplayBehind(window, above_window)
end

.BringWindowToDisplayFront(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



9022
9023
9024
# File 'lib/imgui.rb', line 9022

def self.BringWindowToDisplayFront(window)
  ImGui_BringWindowToDisplayFront(window)
end

.BringWindowToFocusFront(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



9016
9017
9018
# File 'lib/imgui.rb', line 9016

def self.BringWindowToFocusFront(window)
  ImGui_BringWindowToFocusFront(window)
end

.BulletObject

ret: void



8009
8010
8011
# File 'lib/imgui.rb', line 8009

def self.Bullet()
  ImGui_Bullet()
end

.BulletText(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(…) ret: void



7968
7969
7970
# File 'lib/imgui.rb', line 7968

def self.BulletText(fmt, *varargs)
  ImGui_BulletText(fmt, *varargs)
end

.Button(*arg) ⇒ Object



11565
11566
11567
11568
11569
11570
11571
11572
11573
11574
# File 'lib/imgui.rb', line 11565

def self.Button(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_Button(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:label(const char*), 1:size(ImVec2)
  # ret: bool
  return ImGui_ButtonEx(arg[0], ImVec2.create(0,0)) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_ButtonEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::Button : No matching functions found (#{arg})")
end

.ButtonBehavior(bb, id, out_hovered, out_held, flags = 0) ⇒ Object

arg: bb(ImRect), id(ImGuiID), out_hovered(bool*), out_held(bool*), flags(ImGuiButtonFlags) ret: bool



10831
10832
10833
# File 'lib/imgui.rb', line 10831

def self.ButtonBehavior(bb, id, out_hovered, out_held, flags = 0)
  ImGui_ButtonBehavior(bb, id, out_hovered, out_held, flags)
end

.ButtonEx(*arg) ⇒ Object



13125
13126
13127
13128
13129
13130
13131
13132
13133
13134
13135
# File 'lib/imgui.rb', line 13125

def self.ButtonEx(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_ButtonWithFlags(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:label(const char*), 1:size_arg(ImVec2), 2:flags(ImGuiButtonFlags)
  # ret: bool
  return ImGui_ButtonWithFlagsEx(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2))
  return ImGui_ButtonWithFlagsEx(arg[0], ImVec2.create(0,0), 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_ButtonWithFlagsEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::ButtonEx : No matching functions found (#{arg})")
end

.CalcClipRectVisibleItemsY(clip_rect, pos, items_height, out_visible_start, out_visible_end) ⇒ Object

arg: clip_rect(ImRect), pos(ImVec2), items_height(float), out_visible_start(int*), out_visible_end(int*) ret: void



9445
9446
9447
# File 'lib/imgui.rb', line 9445

def self.CalcClipRectVisibleItemsY(clip_rect, pos, items_height, out_visible_start, out_visible_end)
  ImGui_CalcClipRectVisibleItemsY(clip_rect, pos, items_height, out_visible_start, out_visible_end)
end

.CalcItemSize(size, default_w, default_h) ⇒ Object

arg: size(ImVec2), default_w(float), default_h(float) ret: ImVec2.by_value



9421
9422
9423
# File 'lib/imgui.rb', line 9421

def self.CalcItemSize(size, default_w, default_h)
  ImGui_CalcItemSize(size, default_w, default_h)
end

.CalcItemWidthObject

ret: float



7795
7796
7797
# File 'lib/imgui.rb', line 7795

def self.CalcItemWidth()
  ImGui_CalcItemWidth()
end

.CalcRoundingFlagsForRectInRect(r_in, r_outer, threshold) ⇒ Object

arg: r_in(ImRect), r_outer(ImRect), threshold(float) ret: int



10753
10754
10755
# File 'lib/imgui.rb', line 10753

def self.CalcRoundingFlagsForRectInRect(r_in, r_outer, threshold)
  ImGui_CalcRoundingFlagsForRectInRect(r_in, r_outer, threshold)
end

.CalcTextSize(*arg) ⇒ Object



12580
12581
12582
12583
12584
12585
12586
12587
12588
12589
12590
12591
# File 'lib/imgui.rb', line 12580

def self.CalcTextSize(*arg)
  # arg: 0:text(const char*)
  # ret: ImVec2.by_value
  return ImGui_CalcTextSize(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:text(const char*), 1:text_end(const char*), 2:hide_text_after_double_hash(bool), 3:wrap_width(float)
  # ret: ImVec2.by_value
  return ImGui_CalcTextSizeEx(arg[0], arg[1], arg[2], -1.0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)))
  return ImGui_CalcTextSizeEx(arg[0], arg[1], false, -1.0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  return ImGui_CalcTextSizeEx(arg[0], nil, false, -1.0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_CalcTextSizeEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)) && arg[3].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::CalcTextSize : No matching functions found (#{arg})")
end

.CalcTypematicRepeatAmount(t0, t1, repeat_delay, repeat_rate) ⇒ Object

arg: t0(float), t1(float), repeat_delay(float), repeat_rate(float) ret: int



9796
9797
9798
# File 'lib/imgui.rb', line 9796

def self.CalcTypematicRepeatAmount(t0, t1, repeat_delay, repeat_rate)
  ImGui_CalcTypematicRepeatAmount(t0, t1, repeat_delay, repeat_rate)
end

.CalcWindowNextAutoFitSize(window) ⇒ Object

arg: window(ImGuiWindow*) ret: ImVec2.by_value



8926
8927
8928
# File 'lib/imgui.rb', line 8926

def self.CalcWindowNextAutoFitSize(window)
  ImGui_CalcWindowNextAutoFitSize(window)
end

.CalcWrapWidthForPos(pos, wrap_pos_x) ⇒ Object

arg: pos(ImVec2), wrap_pos_x(float) ret: float



9427
9428
9429
# File 'lib/imgui.rb', line 9427

def self.CalcWrapWidthForPos(pos, wrap_pos_x)
  ImGui_CalcWrapWidthForPos(pos, wrap_pos_x)
end

.CallContextHooks(ctx, type) ⇒ Object

arg: ctx(ImGuiContext*), type(ImGuiContextHookType) ret: void



9160
9161
9162
# File 'lib/imgui.rb', line 9160

def self.CallContextHooks(ctx, type)
  ImGui_CallContextHooks(ctx, type)
end

.Checkbox(label, v) ⇒ Object

arg: label(const char*), v(bool*) ret: bool



7998
7999
8000
# File 'lib/imgui.rb', line 7998

def self.Checkbox(label, v)
  ImGui_Checkbox(label, v)
end

.CheckboxFlags(*arg) ⇒ Object



11576
11577
11578
11579
11580
11581
11582
11583
11584
11585
11586
11587
11588
11589
11590
# File 'lib/imgui.rb', line 11576

def self.CheckboxFlags(*arg)
  # arg: 0:label(const char*), 1:flags(int*), 2:flags_value(int)
  # ret: bool
  return ImGui_CheckboxFlagsIntPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:flags(unsigned int*), 2:flags_value(unsigned int)
  # ret: bool
  return ImGui_CheckboxFlagsUintPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:flags(ImS64*), 2:flags_value(ImS64)
  # ret: bool
  return ImGui_CheckboxFlagsImS64Ptr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:flags(ImU64*), 2:flags_value(ImU64)
  # ret: bool
  return ImGui_CheckboxFlagsImU64Ptr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::CheckboxFlags : No matching functions found (#{arg})")
end

.ClearActiveIDObject

ret: void



9362
9363
9364
# File 'lib/imgui.rb', line 9362

def self.ClearActiveID()
  ImGui_ClearActiveID()
end

.ClearDragDropObject

ret: void



10137
10138
10139
# File 'lib/imgui.rb', line 10137

def self.ClearDragDrop()
  ImGui_ClearDragDrop()
end

.ClearIniSettingsObject

ret: void



9252
9253
9254
# File 'lib/imgui.rb', line 9252

def self.ClearIniSettings()
  ImGui_ClearIniSettings()
end

.ClearWindowSettings(name) ⇒ Object

arg: name(const char*) ret: void



9294
9295
9296
# File 'lib/imgui.rb', line 9294

def self.ClearWindowSettings(name)
  ImGui_ClearWindowSettings(name)
end

.CloseButton(id, pos) ⇒ Object

arg: id(ImGuiID), pos(ImVec2) ret: bool



10783
10784
10785
# File 'lib/imgui.rb', line 10783

def self.CloseButton(id, pos)
  ImGui_CloseButton(id, pos)
end

.CloseCurrentPopupObject

ret: void



8209
8210
8211
# File 'lib/imgui.rb', line 8209

def self.CloseCurrentPopup()
  ImGui_CloseCurrentPopup()
end

.ClosePopupsExceptModalsObject

ret: void



9514
9515
9516
# File 'lib/imgui.rb', line 9514

def self.ClosePopupsExceptModals()
  ImGui_ClosePopupsExceptModals()
end

.ClosePopupsOverWindow(ref_window, restore_focus_to_window_under_popup) ⇒ Object

arg: ref_window(ImGuiWindow*), restore_focus_to_window_under_popup(bool) ret: void



9509
9510
9511
# File 'lib/imgui.rb', line 9509

def self.ClosePopupsOverWindow(ref_window, restore_focus_to_window_under_popup)
  ImGui_ClosePopupsOverWindow(ref_window, restore_focus_to_window_under_popup)
end

.ClosePopupToLevel(remaining, restore_focus_to_window_under_popup) ⇒ Object

arg: remaining(int), restore_focus_to_window_under_popup(bool) ret: void



9503
9504
9505
# File 'lib/imgui.rb', line 9503

def self.ClosePopupToLevel(remaining, restore_focus_to_window_under_popup)
  ImGui_ClosePopupToLevel(remaining, restore_focus_to_window_under_popup)
end

.CollapseButton(id, pos, dock_node) ⇒ Object

arg: id(ImGuiID), pos(ImVec2), dock_node(ImGuiDockNode*) ret: bool



10789
10790
10791
# File 'lib/imgui.rb', line 10789

def self.CollapseButton(id, pos, dock_node)
  ImGui_CollapseButton(id, pos, dock_node)
end

.CollapsingHeader(*arg) ⇒ Object



12230
12231
12232
12233
12234
12235
12236
12237
12238
12239
12240
# File 'lib/imgui.rb', line 12230

def self.CollapsingHeader(*arg)
  # arg: 0:label(const char*), 1:flags(ImGuiTreeNodeFlags)
  # ret: bool
  return ImGui_CollapsingHeader(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_CollapsingHeader(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  # arg: 0:label(const char*), 1:p_visible(bool*), 2:flags(ImGuiTreeNodeFlags)
  # ret: bool
  return ImGui_CollapsingHeaderBoolPtr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_CollapsingHeaderBoolPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::CollapsingHeader : No matching functions found (#{arg})")
end

.ColorButton(*arg) ⇒ Object



12180
12181
12182
12183
12184
12185
12186
12187
12188
12189
12190
12191
# File 'lib/imgui.rb', line 12180

def self.ColorButton(*arg)
  # arg: 0:desc_id(const char*), 1:col(ImVec4), 2:flags(ImGuiColorEditFlags)
  # ret: bool
  return ImGui_ColorButton(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec4))
  return ImGui_ColorButton(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec4) && arg[2].kind_of?(Integer))
  # arg: 0:desc_id(const char*), 1:col(ImVec4), 2:flags(ImGuiColorEditFlags), 3:size(ImVec2)
  # ret: bool
  return ImGui_ColorButtonEx(arg[0], arg[1], arg[2], ImVec2.create(0,0)) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec4) && arg[2].kind_of?(Integer))
  return ImGui_ColorButtonEx(arg[0], arg[1], 0, ImVec2.create(0,0)) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec4))
  return ImGui_ColorButtonEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec4) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::ColorButton : No matching functions found (#{arg})")
end

.ColorConvertFloat4ToU32(_in_) ⇒ Object

arg: in(ImVec4) ret: uint



8630
8631
8632
# File 'lib/imgui.rb', line 8630

def self.ColorConvertFloat4ToU32(_in_)
  ImGui_ColorConvertFloat4ToU32(_in_)
end

.ColorConvertHSVtoRGB(h, s, v, out_r, out_g, out_b) ⇒ Object

arg: h(float), s(float), v(float), out_r(float*), out_g(float*), out_b(float*) ret: void



8642
8643
8644
# File 'lib/imgui.rb', line 8642

def self.ColorConvertHSVtoRGB(h, s, v, out_r, out_g, out_b)
  ImGui_ColorConvertHSVtoRGB(h, s, v, out_r, out_g, out_b)
end

.ColorConvertRGBtoHSV(r, g, b, out_h, out_s, out_v) ⇒ Object

arg: r(float), g(float), b(float), out_h(float*), out_s(float*), out_v(float*) ret: void



8636
8637
8638
# File 'lib/imgui.rb', line 8636

def self.ColorConvertRGBtoHSV(r, g, b, out_h, out_s, out_v)
  ImGui_ColorConvertRGBtoHSV(r, g, b, out_h, out_s, out_v)
end

.ColorConvertU32ToFloat4(_in_) ⇒ Object

arg: in(ImU32) ret: ImVec4.by_value



8624
8625
8626
# File 'lib/imgui.rb', line 8624

def self.ColorConvertU32ToFloat4(_in_)
  ImGui_ColorConvertU32ToFloat4(_in_)
end

.ColorEdit3(label, col, flags = 0) ⇒ Object

arg: label(const char*), col(float), flags(ImGuiColorEditFlags) ret: bool



8050
8051
8052
# File 'lib/imgui.rb', line 8050

def self.ColorEdit3(label, col, flags = 0)
  ImGui_ColorEdit3(label, col, flags)
end

.ColorEdit4(label, col, flags = 0) ⇒ Object

arg: label(const char*), col(float), flags(ImGuiColorEditFlags) ret: bool



8056
8057
8058
# File 'lib/imgui.rb', line 8056

def self.ColorEdit4(label, col, flags = 0)
  ImGui_ColorEdit4(label, col, flags)
end

.ColorEditOptionsPopup(col, flags) ⇒ Object

arg: col(const float*), flags(ImGuiColorEditFlags) ret: void



10950
10951
10952
# File 'lib/imgui.rb', line 10950

def self.ColorEditOptionsPopup(col, flags)
  ImGui_ColorEditOptionsPopup(col, flags)
end

.ColorPicker3(label, col, flags = 0) ⇒ Object

arg: label(const char*), col(float), flags(ImGuiColorEditFlags) ret: bool



8062
8063
8064
# File 'lib/imgui.rb', line 8062

def self.ColorPicker3(label, col, flags = 0)
  ImGui_ColorPicker3(label, col, flags)
end

.ColorPicker4(label, col, flags = 0, ref_col = nil) ⇒ Object

arg: label(const char*), col(float), flags(ImGuiColorEditFlags), ref_col(const float*) ret: bool



8068
8069
8070
# File 'lib/imgui.rb', line 8068

def self.ColorPicker4(label, col, flags = 0, ref_col = nil)
  ImGui_ColorPicker4(label, col, flags, ref_col)
end

.ColorPickerOptionsPopup(ref_col, flags) ⇒ Object

arg: ref_col(const float*), flags(ImGuiColorEditFlags) ret: void



10956
10957
10958
# File 'lib/imgui.rb', line 10956

def self.ColorPickerOptionsPopup(ref_col, flags)
  ImGui_ColorPickerOptionsPopup(ref_col, flags)
end

.ColorTooltip(text, col, flags) ⇒ Object

arg: text(const char*), col(const float*), flags(ImGuiColorEditFlags) ret: void



10944
10945
10946
# File 'lib/imgui.rb', line 10944

def self.ColorTooltip(text, col, flags)
  ImGui_ColorTooltip(text, col, flags)
end

.Columns(*arg) ⇒ Object



12483
12484
12485
12486
12487
12488
12489
12490
12491
12492
12493
12494
# File 'lib/imgui.rb', line 12483

def self.Columns(*arg)
  # arg: 
  # ret: void
  return ImGui_Columns() if arg.empty?
  # arg: 0:count(int), 1:id(const char*), 2:borders(bool)
  # ret: void
  return ImGui_ColumnsEx(arg[0], arg[1], true) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(String))
  return ImGui_ColumnsEx(arg[0], nil, true) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_ColumnsEx(1, nil, true) if arg.length == 0 && (true)
  return ImGui_ColumnsEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(String) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::Columns : No matching functions found (#{arg})")
end

.Combo(*arg) ⇒ Object



11656
11657
11658
11659
11660
11661
11662
11663
11664
11665
11666
11667
11668
11669
11670
11671
11672
11673
11674
11675
11676
11677
11678
11679
# File 'lib/imgui.rb', line 11656

def self.Combo(*arg)
  # arg: 0:label(const char*), 1:current_item(int*), 2:items(const char*const[]), 3:items_count(int)
  # ret: bool
  return ImGui_ComboChar(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:current_item(int*), 2:items(const char*const[]), 3:items_count(int), 4:popup_max_height_in_items(int)
  # ret: bool
  return ImGui_ComboCharEx(arg[0], arg[1], arg[2], arg[3], -1) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_ComboCharEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  # arg: 0:label(const char*), 1:current_item(int*), 2:items_separated_by_zeros(const char*)
  # ret: bool
  return ImGui_Combo(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String))
  # arg: 0:label(const char*), 1:current_item(int*), 2:items_separated_by_zeros(const char*), 3:popup_max_height_in_items(int)
  # ret: bool
  return ImGui_ComboEx(arg[0], arg[1], arg[2], -1) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String))
  return ImGui_ComboEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:current_item(int*), 2:getter(const char* (*getter)(void* user_data, int idx)), 3:user_data(void*), 4:items_count(int)
  # ret: bool
  return ImGui_ComboCallback(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer))
  # arg: 0:label(const char*), 1:current_item(int*), 2:getter(const char* (*getter)(void* user_data, int idx)), 3:user_data(void*), 4:items_count(int), 5:popup_max_height_in_items(int)
  # ret: bool
  return ImGui_ComboCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], -1) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer))
  return ImGui_ComboCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::Combo : No matching functions found (#{arg})")
end

.ConvertSingleModFlagToKey(key) ⇒ Object

arg: key(ImGuiKey) ret: int



9766
9767
9768
# File 'lib/imgui.rb', line 9766

def self.ConvertSingleModFlagToKey(key)
  ImGui_ConvertSingleModFlagToKey(key)
end

.CreateContext(shared_font_atlas = nil) ⇒ Object

arg: shared_font_atlas(ImFontAtlas*) ret: pointer



7466
7467
7468
# File 'lib/imgui.rb', line 7466

def self.CreateContext(shared_font_atlas = nil)
  ImGui_CreateContext(shared_font_atlas)
end

.CreateNewWindowSettings(name) ⇒ Object

arg: name(const char*) ret: pointer



9276
9277
9278
# File 'lib/imgui.rb', line 9276

def self.CreateNewWindowSettings(name)
  ImGui_CreateNewWindowSettings(name)
end

.DataTypeApplyFromText(*arg) ⇒ Object



13183
13184
13185
13186
13187
13188
13189
13190
13191
13192
# File 'lib/imgui.rb', line 13183

def self.DataTypeApplyFromText(*arg)
  # arg: 0:buf(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:format(const char*)
  # ret: bool
  return ImGui_DataTypeApplyFromText(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(String))
  # arg: 0:buf(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:format(const char*), 4:p_data_when_empty(void*)
  # ret: bool
  return ImGui_DataTypeApplyFromTextEx(arg[0], arg[1], arg[2], arg[3], nil) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(String))
  return ImGui_DataTypeApplyFromTextEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(String) && arg[4].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::DataTypeApplyFromText : No matching functions found (#{arg})")
end

.DataTypeApplyOp(data_type, op, output, arg_1, arg_2) ⇒ Object

arg: data_type(ImGuiDataType), op(int), output(void*), arg_1(const void*), arg_2(const void*) ret: void



10891
10892
10893
# File 'lib/imgui.rb', line 10891

def self.DataTypeApplyOp(data_type, op, output, arg_1, arg_2)
  ImGui_DataTypeApplyOp(data_type, op, output, arg_1, arg_2)
end

.DataTypeClamp(data_type, p_data, p_min, p_max) ⇒ Object

arg: data_type(ImGuiDataType), p_data(void*), p_min(const void*), p_max(const void*) ret: bool



10903
10904
10905
# File 'lib/imgui.rb', line 10903

def self.DataTypeClamp(data_type, p_data, p_min, p_max)
  ImGui_DataTypeClamp(data_type, p_data, p_min, p_max)
end

.DataTypeCompare(data_type, arg_1, arg_2) ⇒ Object

arg: data_type(ImGuiDataType), arg_1(const void*), arg_2(const void*) ret: int



10897
10898
10899
# File 'lib/imgui.rb', line 10897

def self.DataTypeCompare(data_type, arg_1, arg_2)
  ImGui_DataTypeCompare(data_type, arg_1, arg_2)
end

.DataTypeFormatString(buf, buf_size, data_type, p_data, format) ⇒ Object

arg: buf(char*), buf_size(int), data_type(ImGuiDataType), p_data(const void*), format(const char*) ret: int



10885
10886
10887
# File 'lib/imgui.rb', line 10885

def self.DataTypeFormatString(buf, buf_size, data_type, p_data, format)
  ImGui_DataTypeFormatString(buf, buf_size, data_type, p_data, format)
end

.DataTypeGetInfo(data_type) ⇒ Object

arg: data_type(ImGuiDataType) ret: pointer



10879
10880
10881
# File 'lib/imgui.rb', line 10879

def self.DataTypeGetInfo(data_type)
  ImGui_DataTypeGetInfo(data_type)
end

.DataTypeIsZero(data_type, p_data) ⇒ Object

arg: data_type(ImGuiDataType), p_data(const void*) ret: bool



10909
10910
10911
# File 'lib/imgui.rb', line 10909

def self.DataTypeIsZero(data_type, p_data)
  ImGui_DataTypeIsZero(data_type, p_data)
end

.DebugAllocHook(info, frame_count, ptr, size) ⇒ Object

arg: info(ImGuiDebugAllocInfo*), frame_count(int), ptr(void*), size(size_t) ret: void



11059
11060
11061
# File 'lib/imgui.rb', line 11059

def self.DebugAllocHook(info, frame_count, ptr, size)
  ImGui_DebugAllocHook(info, frame_count, ptr, size)
end

.DebugBreakButton(label, description_of_location) ⇒ Object

arg: label(const char*), description_of_location(const char*) ret: bool



11093
11094
11095
# File 'lib/imgui.rb', line 11093

def self.DebugBreakButton(label, description_of_location)
  ImGui_DebugBreakButton(label, description_of_location)
end

.DebugBreakButtonTooltip(keyboard_only, description_of_location) ⇒ Object

arg: keyboard_only(bool), description_of_location(const char*) ret: void



11099
11100
11101
# File 'lib/imgui.rb', line 11099

def self.DebugBreakButtonTooltip(keyboard_only, description_of_location)
  ImGui_DebugBreakButtonTooltip(keyboard_only, description_of_location)
end

.DebugBreakClearDataObject

ret: void



11087
11088
11089
# File 'lib/imgui.rb', line 11087

def self.DebugBreakClearData()
  ImGui_DebugBreakClearData()
end

.DebugCheckVersionAndDataLayout(version_str, sz_io, sz_style, sz_vec2, sz_vec4, sz_drawvert, sz_drawidx) ⇒ Object

arg: version_str(const char*), sz_io(size_t), sz_style(size_t), sz_vec2(size_t), sz_vec4(size_t), sz_drawvert(size_t), sz_drawidx(size_t) ret: bool



8786
8787
8788
# File 'lib/imgui.rb', line 8786

def self.DebugCheckVersionAndDataLayout(version_str, sz_io, sz_style, sz_vec2, sz_vec4, sz_drawvert, sz_drawidx)
  ImGui_DebugCheckVersionAndDataLayout(version_str, sz_io, sz_style, sz_vec2, sz_vec4, sz_drawvert, sz_drawidx)
end

.DebugDrawCursorPos(*arg) ⇒ Object



13232
13233
13234
13235
13236
13237
13238
13239
13240
13241
# File 'lib/imgui.rb', line 13232

def self.DebugDrawCursorPos(*arg)
  # arg: 
  # ret: void
  return ImGui_DebugDrawCursorPos() if arg.empty?
  # arg: 0:col(ImU32)
  # ret: void
  return ImGui_DebugDrawCursorPosEx(IM_COL32(255, 0, 0, 255)) if arg.length == 0 && (true)
  return ImGui_DebugDrawCursorPosEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DebugDrawCursorPos : No matching functions found (#{arg})")
end

.DebugDrawItemRect(*arg) ⇒ Object



13254
13255
13256
13257
13258
13259
13260
13261
13262
13263
# File 'lib/imgui.rb', line 13254

def self.DebugDrawItemRect(*arg)
  # arg: 
  # ret: void
  return ImGui_DebugDrawItemRect() if arg.empty?
  # arg: 0:col(ImU32)
  # ret: void
  return ImGui_DebugDrawItemRectEx(IM_COL32(255, 0, 0, 255)) if arg.length == 0 && (true)
  return ImGui_DebugDrawItemRectEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DebugDrawItemRect : No matching functions found (#{arg})")
end

.DebugDrawLineExtents(*arg) ⇒ Object



13243
13244
13245
13246
13247
13248
13249
13250
13251
13252
# File 'lib/imgui.rb', line 13243

def self.DebugDrawLineExtents(*arg)
  # arg: 
  # ret: void
  return ImGui_DebugDrawLineExtents() if arg.empty?
  # arg: 0:col(ImU32)
  # ret: void
  return ImGui_DebugDrawLineExtentsEx(IM_COL32(255, 0, 0, 255)) if arg.length == 0 && (true)
  return ImGui_DebugDrawLineExtentsEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DebugDrawLineExtents : No matching functions found (#{arg})")
end

.DebugFlashStyleColor(idx) ⇒ Object

arg: idx(ImGuiCol) ret: void



8775
8776
8777
# File 'lib/imgui.rb', line 8775

def self.DebugFlashStyleColor(idx)
  ImGui_DebugFlashStyleColor(idx)
end

.DebugHookIdInfo(id, data_type, data_id, data_id_end) ⇒ Object

arg: id(ImGuiID), data_type(ImGuiDataType), data_id(const void*), data_id_end(const void*) ret: void



11117
11118
11119
# File 'lib/imgui.rb', line 11117

def self.DebugHookIdInfo(id, data_type, data_id, data_id_end)
  ImGui_DebugHookIdInfo(id, data_type, data_id, data_id_end)
end

.DebugLocateItem(target_id) ⇒ Object

arg: target_id(ImGuiID) ret: void



11071
11072
11073
# File 'lib/imgui.rb', line 11071

def self.DebugLocateItem(target_id)
  ImGui_DebugLocateItem(target_id)
end

.DebugLocateItemOnHover(target_id) ⇒ Object

arg: target_id(ImGuiID) ret: void



11077
11078
11079
# File 'lib/imgui.rb', line 11077

def self.DebugLocateItemOnHover(target_id)
  ImGui_DebugLocateItemOnHover(target_id)
end

.DebugLocateItemResolveWithLastItemObject

ret: void



11082
11083
11084
# File 'lib/imgui.rb', line 11082

def self.DebugLocateItemResolveWithLastItem()
  ImGui_DebugLocateItemResolveWithLastItem()
end

.DebugLog(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(…) ret: void



8792
8793
8794
# File 'lib/imgui.rb', line 8792

def self.DebugLog(fmt, *varargs)
  ImGui_DebugLog(fmt, *varargs)
end

.DebugNodeColumns(columns) ⇒ Object

arg: columns(ImGuiOldColumns*) ret: void



11123
11124
11125
# File 'lib/imgui.rb', line 11123

def self.DebugNodeColumns(columns)
  ImGui_DebugNodeColumns(columns)
end

.DebugNodeDockNode(node, label) ⇒ Object

arg: node(ImGuiDockNode*), label(const char*) ret: void



11129
11130
11131
# File 'lib/imgui.rb', line 11129

def self.DebugNodeDockNode(node, label)
  ImGui_DebugNodeDockNode(node, label)
end

.DebugNodeDrawCmdShowMeshAndBoundingBox(out_draw_list, draw_list, draw_cmd, show_mesh, show_aabb) ⇒ Object

arg: out_draw_list(ImDrawList*), draw_list(const ImDrawList*), draw_cmd(const ImDrawCmd*), show_mesh(bool), show_aabb(bool) ret: void



11141
11142
11143
# File 'lib/imgui.rb', line 11141

def self.DebugNodeDrawCmdShowMeshAndBoundingBox(out_draw_list, draw_list, draw_cmd, show_mesh, show_aabb)
  ImGui_DebugNodeDrawCmdShowMeshAndBoundingBox(out_draw_list, draw_list, draw_cmd, show_mesh, show_aabb)
end

.DebugNodeDrawList(window, viewport, draw_list, label) ⇒ Object

arg: window(ImGuiWindow*), viewport(ImGuiViewportP*), draw_list(const ImDrawList*), label(const char*) ret: void



11135
11136
11137
# File 'lib/imgui.rb', line 11135

def self.DebugNodeDrawList(window, viewport, draw_list, label)
  ImGui_DebugNodeDrawList(window, viewport, draw_list, label)
end

.DebugNodeFont(font) ⇒ Object

arg: font(ImFont*) ret: void



11147
11148
11149
# File 'lib/imgui.rb', line 11147

def self.DebugNodeFont(font)
  ImGui_DebugNodeFont(font)
end

.DebugNodeFontGlyph(font, glyph) ⇒ Object

arg: font(ImFont*), glyph(const ImFontGlyph*) ret: void



11159
11160
11161
# File 'lib/imgui.rb', line 11159

def self.DebugNodeFontGlyph(font, glyph)
  ImGui_DebugNodeFontGlyph(font, glyph)
end

.DebugNodeFontGlyphsForSrcMask(font, baked, src_mask) ⇒ Object

arg: font(ImFont*), baked(ImFontBaked*), src_mask(int) ret: void



11153
11154
11155
# File 'lib/imgui.rb', line 11153

def self.DebugNodeFontGlyphsForSrcMask(font, baked, src_mask)
  ImGui_DebugNodeFontGlyphsForSrcMask(font, baked, src_mask)
end

.DebugNodeInputTextState(state) ⇒ Object

arg: state(ImGuiInputTextState*) ret: void



11189
11190
11191
# File 'lib/imgui.rb', line 11189

def self.DebugNodeInputTextState(state)
  ImGui_DebugNodeInputTextState(state)
end

.DebugNodeMultiSelectState(state) ⇒ Object

arg: state(ImGuiMultiSelectState*) ret: void



11201
11202
11203
# File 'lib/imgui.rb', line 11201

def self.DebugNodeMultiSelectState(state)
  ImGui_DebugNodeMultiSelectState(state)
end

.DebugNodePlatformMonitor(monitor, label, idx) ⇒ Object

arg: monitor(ImGuiPlatformMonitor*), label(const char*), idx(int) ret: void



11237
11238
11239
# File 'lib/imgui.rb', line 11237

def self.DebugNodePlatformMonitor(monitor, label, idx)
  ImGui_DebugNodePlatformMonitor(monitor, label, idx)
end

.DebugNodeStorage(storage, label) ⇒ Object

arg: storage(ImGuiStorage*), label(const char*) ret: void



11165
11166
11167
# File 'lib/imgui.rb', line 11165

def self.DebugNodeStorage(storage, label)
  ImGui_DebugNodeStorage(storage, label)
end

.DebugNodeTabBar(tab_bar, label) ⇒ Object

arg: tab_bar(ImGuiTabBar*), label(const char*) ret: void



11171
11172
11173
# File 'lib/imgui.rb', line 11171

def self.DebugNodeTabBar(tab_bar, label)
  ImGui_DebugNodeTabBar(tab_bar, label)
end

.DebugNodeTable(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



11177
11178
11179
# File 'lib/imgui.rb', line 11177

def self.DebugNodeTable(table)
  ImGui_DebugNodeTable(table)
end

.DebugNodeTableSettings(settings) ⇒ Object

arg: settings(ImGuiTableSettings*) ret: void



11183
11184
11185
# File 'lib/imgui.rb', line 11183

def self.DebugNodeTableSettings(settings)
  ImGui_DebugNodeTableSettings(settings)
end

.DebugNodeTexture(*arg) ⇒ Object



13265
13266
13267
13268
13269
13270
13271
13272
13273
13274
# File 'lib/imgui.rb', line 13265

def self.DebugNodeTexture(*arg)
  # arg: 0:tex(ImTextureData*), 1:int_id(int)
  # ret: void
  return ImGui_DebugNodeTexture(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer))
  # arg: 0:tex(ImTextureData*), 1:int_id(int), 2:highlight_rect(const ImFontAtlasRect*)
  # ret: void
  return ImGui_DebugNodeTextureEx(arg[0], arg[1], nil) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer))
  return ImGui_DebugNodeTextureEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::DebugNodeTexture : No matching functions found (#{arg})")
end

.DebugNodeTypingSelectState(state) ⇒ Object

arg: state(ImGuiTypingSelectState*) ret: void



11195
11196
11197
# File 'lib/imgui.rb', line 11195

def self.DebugNodeTypingSelectState(state)
  ImGui_DebugNodeTypingSelectState(state)
end

.DebugNodeViewport(viewport) ⇒ Object

arg: viewport(ImGuiViewportP*) ret: void



11231
11232
11233
# File 'lib/imgui.rb', line 11231

def self.DebugNodeViewport(viewport)
  ImGui_DebugNodeViewport(viewport)
end

.DebugNodeWindow(window, label) ⇒ Object

arg: window(ImGuiWindow*), label(const char*) ret: void



11207
11208
11209
# File 'lib/imgui.rb', line 11207

def self.DebugNodeWindow(window, label)
  ImGui_DebugNodeWindow(window, label)
end

.DebugNodeWindowSettings(settings) ⇒ Object

arg: settings(ImGuiWindowSettings*) ret: void



11213
11214
11215
# File 'lib/imgui.rb', line 11213

def self.DebugNodeWindowSettings(settings)
  ImGui_DebugNodeWindowSettings(settings)
end

.DebugNodeWindowsList(windows, label) ⇒ Object

arg: windows(ImVector_ImGuiWindowPtr*), label(const char*) ret: void



11219
11220
11221
# File 'lib/imgui.rb', line 11219

def self.DebugNodeWindowsList(windows, label)
  ImGui_DebugNodeWindowsList(windows, label)
end

.DebugNodeWindowsListByBeginStackParent(windows, windows_size, parent_in_begin_stack) ⇒ Object

arg: windows(ImGuiWindow**), windows_size(int), parent_in_begin_stack(ImGuiWindow*) ret: void



11225
11226
11227
# File 'lib/imgui.rb', line 11225

def self.DebugNodeWindowsListByBeginStackParent(windows, windows_size, parent_in_begin_stack)
  ImGui_DebugNodeWindowsListByBeginStackParent(windows, windows_size, parent_in_begin_stack)
end

.DebugRenderKeyboardPreview(draw_list) ⇒ Object

arg: draw_list(ImDrawList*) ret: void



11243
11244
11245
# File 'lib/imgui.rb', line 11243

def self.DebugRenderKeyboardPreview(draw_list)
  ImGui_DebugRenderKeyboardPreview(draw_list)
end

.DebugRenderViewportThumbnail(draw_list, viewport, bb) ⇒ Object

arg: draw_list(ImDrawList*), viewport(ImGuiViewportP*), bb(ImRect) ret: void



11249
11250
11251
# File 'lib/imgui.rb', line 11249

def self.DebugRenderViewportThumbnail(draw_list, viewport, bb)
  ImGui_DebugRenderViewportThumbnail(draw_list, viewport, bb)
end

.DebugStartItemPickerObject

ret: void



8780
8781
8782
# File 'lib/imgui.rb', line 8780

def self.DebugStartItemPicker()
  ImGui_DebugStartItemPicker()
end

.DebugTextEncoding(text) ⇒ Object

arg: text(const char*) ret: void



8769
8770
8771
# File 'lib/imgui.rb', line 8769

def self.DebugTextEncoding(text)
  ImGui_DebugTextEncoding(text)
end

.DebugTextUnformattedWithLocateItem(line_begin, line_end) ⇒ Object

arg: line_begin(const char*), line_end(const char*) ret: void



11065
11066
11067
# File 'lib/imgui.rb', line 11065

def self.DebugTextUnformattedWithLocateItem(line_begin, line_end)
  ImGui_DebugTextUnformattedWithLocateItem(line_begin, line_end)
end

.DebugTextureIDToU64(tex_id) ⇒ Object

arg: tex_id(ImTextureID) ret: uint64



11111
11112
11113
# File 'lib/imgui.rb', line 11111

def self.DebugTextureIDToU64(tex_id)
  ImGui_DebugTextureIDToU64(tex_id)
end

.Default(ctx, node, tab_bar) ⇒ Object

arg: ctx(ImGuiContext*), node(ImGuiDockNode*), tab_bar(ImGuiTabBar*) ret: void



9957
9958
9959
# File 'lib/imgui.rb', line 9957

def self.Default(ctx, node, tab_bar)
  ImGui_DockNodeWindowMenuHandler_Default(ctx, node, tab_bar)
end

.DemoMarker(file, line, section) ⇒ Object

arg: file(const char*), line(int), section(const char*) ret: void



11053
11054
11055
# File 'lib/imgui.rb', line 11053

def self.DemoMarker(file, line, section)
  ImGui_DemoMarker(file, line, section)
end

.DestroyContext(ctx = nil) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



7472
7473
7474
# File 'lib/imgui.rb', line 7472

def self.DestroyContext(ctx = nil)
  ImGui_DestroyContext(ctx)
end

.DestroyPlatformWindow(viewport) ⇒ Object

arg: viewport(ImGuiViewportP*) ret: void



9223
9224
9225
# File 'lib/imgui.rb', line 9223

def self.DestroyPlatformWindow(viewport)
  ImGui_DestroyPlatformWindow(viewport)
end

.DestroyPlatformWindowsObject

ret: void



8826
8827
8828
# File 'lib/imgui.rb', line 8826

def self.DestroyPlatformWindows()
  ImGui_DestroyPlatformWindows()
end

.DockBuilderAddNode(*arg) ⇒ Object



12887
12888
12889
12890
12891
12892
12893
12894
12895
12896
12897
# File 'lib/imgui.rb', line 12887

def self.DockBuilderAddNode(*arg)
  # arg: 
  # ret: uint
  return ImGui_DockBuilderAddNode() if arg.empty?
  # arg: 0:node_id(ImGuiID), 1:flags(ImGuiDockNodeFlags)
  # ret: uint
  return ImGui_DockBuilderAddNodeEx(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_DockBuilderAddNodeEx(0, 0) if arg.length == 0 && (true)
  return ImGui_DockBuilderAddNodeEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DockBuilderAddNode : No matching functions found (#{arg})")
end

.DockBuilderCopyDockSpace(src_dockspace_id, dst_dockspace_id, in_window_remap_pairs) ⇒ Object

arg: src_dockspace_id(ImGuiID), dst_dockspace_id(ImGuiID), in_window_remap_pairs(ImVector_const_charPtr*) ret: void



10081
10082
10083
# File 'lib/imgui.rb', line 10081

def self.DockBuilderCopyDockSpace(src_dockspace_id, dst_dockspace_id, in_window_remap_pairs)
  ImGui_DockBuilderCopyDockSpace(src_dockspace_id, dst_dockspace_id, in_window_remap_pairs)
end

.DockBuilderCopyNode(src_node_id, dst_node_id, out_node_remap_pairs) ⇒ Object

arg: src_node_id(ImGuiID), dst_node_id(ImGuiID), out_node_remap_pairs(ImVector_ImGuiID*) ret: void



10087
10088
10089
# File 'lib/imgui.rb', line 10087

def self.DockBuilderCopyNode(src_node_id, dst_node_id, out_node_remap_pairs)
  ImGui_DockBuilderCopyNode(src_node_id, dst_node_id, out_node_remap_pairs)
end

.DockBuilderCopyWindowSettings(src_name, dst_name) ⇒ Object

arg: src_name(const char*), dst_name(const char*) ret: void



10093
10094
10095
# File 'lib/imgui.rb', line 10093

def self.DockBuilderCopyWindowSettings(src_name, dst_name)
  ImGui_DockBuilderCopyWindowSettings(src_name, dst_name)
end

.DockBuilderDockWindow(window_name, node_id) ⇒ Object

arg: window_name(const char*), node_id(ImGuiID) ret: void



10033
10034
10035
# File 'lib/imgui.rb', line 10033

def self.DockBuilderDockWindow(window_name, node_id)
  ImGui_DockBuilderDockWindow(window_name, node_id)
end

.DockBuilderFinish(node_id) ⇒ Object

arg: node_id(ImGuiID) ret: void



10099
10100
10101
# File 'lib/imgui.rb', line 10099

def self.DockBuilderFinish(node_id)
  ImGui_DockBuilderFinish(node_id)
end

.DockBuilderGetCentralNode(node_id) ⇒ Object

arg: node_id(ImGuiID) ret: pointer



10045
10046
10047
# File 'lib/imgui.rb', line 10045

def self.DockBuilderGetCentralNode(node_id)
  ImGui_DockBuilderGetCentralNode(node_id)
end

.DockBuilderGetNode(node_id) ⇒ Object

arg: node_id(ImGuiID) ret: pointer



10039
10040
10041
# File 'lib/imgui.rb', line 10039

def self.DockBuilderGetNode(node_id)
  ImGui_DockBuilderGetNode(node_id)
end

.DockBuilderRemoveNode(node_id) ⇒ Object

arg: node_id(ImGuiID) ret: void



10051
10052
10053
# File 'lib/imgui.rb', line 10051

def self.DockBuilderRemoveNode(node_id)
  ImGui_DockBuilderRemoveNode(node_id)
end

.DockBuilderRemoveNodeChildNodes(node_id) ⇒ Object

arg: node_id(ImGuiID) ret: void



10057
10058
10059
# File 'lib/imgui.rb', line 10057

def self.DockBuilderRemoveNodeChildNodes(node_id)
  ImGui_DockBuilderRemoveNodeChildNodes(node_id)
end

.DockBuilderRemoveNodeDockedWindows(*arg) ⇒ Object



12899
12900
12901
12902
12903
12904
12905
12906
12907
12908
# File 'lib/imgui.rb', line 12899

def self.DockBuilderRemoveNodeDockedWindows(*arg)
  # arg: 0:node_id(ImGuiID)
  # ret: void
  return ImGui_DockBuilderRemoveNodeDockedWindows(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:node_id(ImGuiID), 1:clear_settings_refs(bool)
  # ret: void
  return ImGui_DockBuilderRemoveNodeDockedWindowsEx(arg[0], true) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_DockBuilderRemoveNodeDockedWindowsEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::DockBuilderRemoveNodeDockedWindows : No matching functions found (#{arg})")
end

.DockBuilderSetNodePos(node_id, pos) ⇒ Object

arg: node_id(ImGuiID), pos(ImVec2) ret: void



10063
10064
10065
# File 'lib/imgui.rb', line 10063

def self.DockBuilderSetNodePos(node_id, pos)
  ImGui_DockBuilderSetNodePos(node_id, pos)
end

.DockBuilderSetNodeSize(node_id, size) ⇒ Object

arg: node_id(ImGuiID), size(ImVec2) ret: void



10069
10070
10071
# File 'lib/imgui.rb', line 10069

def self.DockBuilderSetNodeSize(node_id, size)
  ImGui_DockBuilderSetNodeSize(node_id, size)
end

.DockBuilderSplitNode(node_id, split_dir, size_ratio_for_node_at_dir, out_id_at_dir, out_id_at_opposite_dir) ⇒ Object

arg: node_id(ImGuiID), split_dir(ImGuiDir), size_ratio_for_node_at_dir(float), out_id_at_dir(ImGuiID*), out_id_at_opposite_dir(ImGuiID*) ret: uint



10075
10076
10077
# File 'lib/imgui.rb', line 10075

def self.DockBuilderSplitNode(node_id, split_dir, size_ratio_for_node_at_dir, out_id_at_dir, out_id_at_opposite_dir)
  ImGui_DockBuilderSplitNode(node_id, split_dir, size_ratio_for_node_at_dir, out_id_at_dir, out_id_at_opposite_dir)
end

.DockContextCalcDropPosForDocking(target, target_node, payload_window, payload_node, split_dir, split_outer, out_pos) ⇒ Object

arg: target(ImGuiWindow*), target_node(ImGuiDockNode*), payload_window(ImGuiWindow*), payload_node(ImGuiDockNode*), split_dir(ImGuiDir), split_outer(bool), out_pos(ImVec2*) ret: bool



9945
9946
9947
# File 'lib/imgui.rb', line 9945

def self.DockContextCalcDropPosForDocking(target, target_node, payload_window, payload_node, split_dir, split_outer, out_pos)
  ImGui_DockContextCalcDropPosForDocking(target, target_node, payload_window, payload_node, split_dir, split_outer, out_pos)
end

.DockContextClearNodes(ctx, root_id, clear_settings_refs) ⇒ Object

arg: ctx(ImGuiContext*), root_id(ImGuiID), clear_settings_refs(bool) ret: void



9885
9886
9887
# File 'lib/imgui.rb', line 9885

def self.DockContextClearNodes(ctx, root_id, clear_settings_refs)
  ImGui_DockContextClearNodes(ctx, root_id, clear_settings_refs)
end

.DockContextEndFrame(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



9909
9910
9911
# File 'lib/imgui.rb', line 9909

def self.DockContextEndFrame(ctx)
  ImGui_DockContextEndFrame(ctx)
end

.DockContextFindNodeByID(ctx, id) ⇒ Object

arg: ctx(ImGuiContext*), id(ImGuiID) ret: pointer



9951
9952
9953
# File 'lib/imgui.rb', line 9951

def self.DockContextFindNodeByID(ctx, id)
  ImGui_DockContextFindNodeByID(ctx, id)
end

.DockContextGenNodeID(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: uint



9915
9916
9917
# File 'lib/imgui.rb', line 9915

def self.DockContextGenNodeID(ctx)
  ImGui_DockContextGenNodeID(ctx)
end

.DockContextInitialize(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



9873
9874
9875
# File 'lib/imgui.rb', line 9873

def self.DockContextInitialize(ctx)
  ImGui_DockContextInitialize(ctx)
end

.DockContextNewFrameUpdateDocking(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



9903
9904
9905
# File 'lib/imgui.rb', line 9903

def self.DockContextNewFrameUpdateDocking(ctx)
  ImGui_DockContextNewFrameUpdateDocking(ctx)
end

.DockContextNewFrameUpdateUndocking(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



9897
9898
9899
# File 'lib/imgui.rb', line 9897

def self.DockContextNewFrameUpdateUndocking(ctx)
  ImGui_DockContextNewFrameUpdateUndocking(ctx)
end

.DockContextProcessUndockNode(ctx, node) ⇒ Object

arg: ctx(ImGuiContext*), node(ImGuiDockNode*) ret: void



9939
9940
9941
# File 'lib/imgui.rb', line 9939

def self.DockContextProcessUndockNode(ctx, node)
  ImGui_DockContextProcessUndockNode(ctx, node)
end

.DockContextProcessUndockWindow(*arg) ⇒ Object



12876
12877
12878
12879
12880
12881
12882
12883
12884
12885
# File 'lib/imgui.rb', line 12876

def self.DockContextProcessUndockWindow(*arg)
  # arg: 0:ctx(ImGuiContext*), 1:window(ImGuiWindow*)
  # ret: void
  return ImGui_DockContextProcessUndockWindow(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:ctx(ImGuiContext*), 1:window(ImGuiWindow*), 2:clear_persistent_docking_ref(bool)
  # ret: void
  return ImGui_DockContextProcessUndockWindowEx(arg[0], arg[1], true) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DockContextProcessUndockWindowEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(FFI::Pointer) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::DockContextProcessUndockWindow : No matching functions found (#{arg})")
end

.DockContextQueueDock(ctx, target, target_node, payload, split_dir, split_ratio, split_outer) ⇒ Object

arg: ctx(ImGuiContext*), target(ImGuiWindow*), target_node(ImGuiDockNode*), payload(ImGuiWindow*), split_dir(ImGuiDir), split_ratio(float), split_outer(bool) ret: void



9921
9922
9923
# File 'lib/imgui.rb', line 9921

def self.DockContextQueueDock(ctx, target, target_node, payload, split_dir, split_ratio, split_outer)
  ImGui_DockContextQueueDock(ctx, target, target_node, payload, split_dir, split_ratio, split_outer)
end

.DockContextQueueUndockNode(ctx, node) ⇒ Object

arg: ctx(ImGuiContext*), node(ImGuiDockNode*) ret: void



9933
9934
9935
# File 'lib/imgui.rb', line 9933

def self.DockContextQueueUndockNode(ctx, node)
  ImGui_DockContextQueueUndockNode(ctx, node)
end

.DockContextQueueUndockWindow(ctx, window) ⇒ Object

arg: ctx(ImGuiContext*), window(ImGuiWindow*) ret: void



9927
9928
9929
# File 'lib/imgui.rb', line 9927

def self.DockContextQueueUndockWindow(ctx, window)
  ImGui_DockContextQueueUndockWindow(ctx, window)
end

.DockContextRebuildNodes(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



9891
9892
9893
# File 'lib/imgui.rb', line 9891

def self.DockContextRebuildNodes(ctx)
  ImGui_DockContextRebuildNodes(ctx)
end

.DockContextShutdown(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



9879
9880
9881
# File 'lib/imgui.rb', line 9879

def self.DockContextShutdown(ctx)
  ImGui_DockContextShutdown(ctx)
end

.DockNodeBeginAmendTabBar(node) ⇒ Object

arg: node(ImGuiDockNode*) ret: bool



9963
9964
9965
# File 'lib/imgui.rb', line 9963

def self.DockNodeBeginAmendTabBar(node)
  ImGui_DockNodeBeginAmendTabBar(node)
end

.DockNodeEndAmendTabBarObject

ret: void



9968
9969
9970
# File 'lib/imgui.rb', line 9968

def self.DockNodeEndAmendTabBar()
  ImGui_DockNodeEndAmendTabBar()
end

.DockNodeGetDepth(node) ⇒ Object

arg: node(const ImGuiDockNode*) ret: int



9986
9987
9988
# File 'lib/imgui.rb', line 9986

def self.DockNodeGetDepth(node)
  ImGui_DockNodeGetDepth(node)
end

.DockNodeGetRootNode(node) ⇒ Object

arg: node(ImGuiDockNode*) ret: pointer



9974
9975
9976
# File 'lib/imgui.rb', line 9974

def self.DockNodeGetRootNode(node)
  ImGui_DockNodeGetRootNode(node)
end

.DockNodeGetWindowMenuButtonId(node) ⇒ Object

arg: node(const ImGuiDockNode*) ret: uint



9992
9993
9994
# File 'lib/imgui.rb', line 9992

def self.DockNodeGetWindowMenuButtonId(node)
  ImGui_DockNodeGetWindowMenuButtonId(node)
end

.DockNodeIsInHierarchyOf(node, parent) ⇒ Object

arg: node(ImGuiDockNode*), parent(ImGuiDockNode*) ret: bool



9980
9981
9982
# File 'lib/imgui.rb', line 9980

def self.DockNodeIsInHierarchyOf(node, parent)
  ImGui_DockNodeIsInHierarchyOf(node, parent)
end

.DockSpace(*arg) ⇒ Object



12496
12497
12498
12499
12500
12501
12502
12503
12504
12505
12506
12507
# File 'lib/imgui.rb', line 12496

def self.DockSpace(*arg)
  # arg: 0:dockspace_id(ImGuiID)
  # ret: uint
  return ImGui_DockSpace(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:dockspace_id(ImGuiID), 1:size(ImVec2), 2:flags(ImGuiDockNodeFlags), 3:window_class(const ImGuiWindowClass*)
  # ret: uint
  return ImGui_DockSpaceEx(arg[0], arg[1], arg[2], nil) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  return ImGui_DockSpaceEx(arg[0], arg[1], 0, nil) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2))
  return ImGui_DockSpaceEx(arg[0], ImVec2.create(0,0), 0, nil) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_DockSpaceEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::DockSpace : No matching functions found (#{arg})")
end

.DockSpaceOverViewport(*arg) ⇒ Object



12509
12510
12511
12512
12513
12514
12515
12516
12517
12518
12519
12520
12521
# File 'lib/imgui.rb', line 12509

def self.DockSpaceOverViewport(*arg)
  # arg: 
  # ret: uint
  return ImGui_DockSpaceOverViewport() if arg.empty?
  # arg: 0:dockspace_id(ImGuiID), 1:viewport(const ImGuiViewport*), 2:flags(ImGuiDockNodeFlags), 3:window_class(const ImGuiWindowClass*)
  # ret: uint
  return ImGui_DockSpaceOverViewportEx(arg[0], arg[1], arg[2], nil) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_DockSpaceOverViewportEx(arg[0], arg[1], 0, nil) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DockSpaceOverViewportEx(arg[0], nil, 0, nil) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_DockSpaceOverViewportEx(0, nil, 0, nil) if arg.length == 0 && (true)
  return ImGui_DockSpaceOverViewportEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::DockSpaceOverViewport : No matching functions found (#{arg})")
end

.DragBehavior(id, data_type, p_v, v_speed, p_min, p_max, format, flags) ⇒ Object

arg: id(ImGuiID), data_type(ImGuiDataType), p_v(void*), v_speed(float), p_min(const void*), p_max(const void*), format(const char*), flags(ImGuiSliderFlags) ret: bool



10837
10838
10839
# File 'lib/imgui.rb', line 10837

def self.DragBehavior(id, data_type, p_v, v_speed, p_min, p_max, format, flags)
  ImGui_DragBehavior(id, data_type, p_v, v_speed, p_min, p_max, format, flags)
end

.DragFloat(*arg) ⇒ Object



11681
11682
11683
11684
11685
11686
11687
11688
11689
11690
11691
11692
11693
11694
# File 'lib/imgui.rb', line 11681

def self.DragFloat(*arg)
  # arg: 0:label(const char*), 1:v(float*)
  # ret: bool
  return ImGui_DragFloat(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float*), 2:v_speed(float), 3:v_min(float), 4:v_max(float), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String))
  return ImGui_DragFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], "%.3f", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  return ImGui_DragFloatEx(arg[0], arg[1], arg[2], arg[3], 0.0, "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_DragFloatEx(arg[0], arg[1], arg[2], 0.0, 0.0, "%.3f", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragFloatEx(arg[0], arg[1], 1.0, 0.0, 0.0, "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragFloat : No matching functions found (#{arg})")
end

.DragFloat2(*arg) ⇒ Object



11696
11697
11698
11699
11700
11701
11702
11703
11704
11705
11706
11707
11708
11709
# File 'lib/imgui.rb', line 11696

def self.DragFloat2(*arg)
  # arg: 0:label(const char*), 1:v(float[2])
  # ret: bool
  return ImGui_DragFloat2(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float[2]), 2:v_speed(float), 3:v_min(float), 4:v_max(float), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragFloat2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String))
  return ImGui_DragFloat2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], "%.3f", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  return ImGui_DragFloat2Ex(arg[0], arg[1], arg[2], arg[3], 0.0, "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_DragFloat2Ex(arg[0], arg[1], arg[2], 0.0, 0.0, "%.3f", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragFloat2Ex(arg[0], arg[1], 1.0, 0.0, 0.0, "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragFloat2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragFloat2 : No matching functions found (#{arg})")
end

.DragFloat3(*arg) ⇒ Object



11711
11712
11713
11714
11715
11716
11717
11718
11719
11720
11721
11722
11723
11724
# File 'lib/imgui.rb', line 11711

def self.DragFloat3(*arg)
  # arg: 0:label(const char*), 1:v(float[3])
  # ret: bool
  return ImGui_DragFloat3(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float[3]), 2:v_speed(float), 3:v_min(float), 4:v_max(float), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragFloat3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String))
  return ImGui_DragFloat3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], "%.3f", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  return ImGui_DragFloat3Ex(arg[0], arg[1], arg[2], arg[3], 0.0, "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_DragFloat3Ex(arg[0], arg[1], arg[2], 0.0, 0.0, "%.3f", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragFloat3Ex(arg[0], arg[1], 1.0, 0.0, 0.0, "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragFloat3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragFloat3 : No matching functions found (#{arg})")
end

.DragFloat4(*arg) ⇒ Object



11726
11727
11728
11729
11730
11731
11732
11733
11734
11735
11736
11737
11738
11739
# File 'lib/imgui.rb', line 11726

def self.DragFloat4(*arg)
  # arg: 0:label(const char*), 1:v(float[4])
  # ret: bool
  return ImGui_DragFloat4(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float[4]), 2:v_speed(float), 3:v_min(float), 4:v_max(float), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragFloat4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String))
  return ImGui_DragFloat4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], "%.3f", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  return ImGui_DragFloat4Ex(arg[0], arg[1], arg[2], arg[3], 0.0, "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_DragFloat4Ex(arg[0], arg[1], arg[2], 0.0, 0.0, "%.3f", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragFloat4Ex(arg[0], arg[1], 1.0, 0.0, 0.0, "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragFloat4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragFloat4 : No matching functions found (#{arg})")
end

.DragFloatRange2(*arg) ⇒ Object



11741
11742
11743
11744
11745
11746
11747
11748
11749
11750
11751
11752
11753
11754
11755
# File 'lib/imgui.rb', line 11741

def self.DragFloatRange2(*arg)
  # arg: 0:label(const char*), 1:v_current_min(float*), 2:v_current_max(float*)
  # ret: bool
  return ImGui_DragFloatRange2(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v_current_min(float*), 2:v_current_max(float*), 3:v_speed(float), 4:v_min(float), 5:v_max(float), 6:format(const char*), 7:format_max(const char*), 8:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], 0) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(Float) && arg[6].kind_of?(String) && arg[7].kind_of?(String))
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil, 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(Float) && arg[6].kind_of?(String))
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], "%.3f", nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(Float))
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0.0, "%.3f", nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], arg[3], 0.0, 0.0, "%.3f", nil, 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float))
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], 1.0, 0.0, 0.0, "%.3f", nil, 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer))
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(Float) && arg[6].kind_of?(String) && arg[7].kind_of?(String) && arg[8].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragFloatRange2 : No matching functions found (#{arg})")
end

.DragInt(*arg) ⇒ Object



11757
11758
11759
11760
11761
11762
11763
11764
11765
11766
11767
11768
11769
11770
# File 'lib/imgui.rb', line 11757

def self.DragInt(*arg)
  # arg: 0:label(const char*), 1:v(int*)
  # ret: bool
  return ImGui_DragInt(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(int*), 2:v_speed(float), 3:v_min(int), 4:v_max(int), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_DragIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], "%d", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_DragIntEx(arg[0], arg[1], arg[2], arg[3], 0, "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer))
  return ImGui_DragIntEx(arg[0], arg[1], arg[2], 0, 0, "%d", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragIntEx(arg[0], arg[1], 1.0, 0, 0, "%d", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragInt : No matching functions found (#{arg})")
end

.DragInt2(*arg) ⇒ Object



11772
11773
11774
11775
11776
11777
11778
11779
11780
11781
11782
11783
11784
11785
# File 'lib/imgui.rb', line 11772

def self.DragInt2(*arg)
  # arg: 0:label(const char*), 1:v(int[2])
  # ret: bool
  return ImGui_DragInt2(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(int[2]), 2:v_speed(float), 3:v_min(int), 4:v_max(int), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragInt2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_DragInt2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], "%d", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_DragInt2Ex(arg[0], arg[1], arg[2], arg[3], 0, "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer))
  return ImGui_DragInt2Ex(arg[0], arg[1], arg[2], 0, 0, "%d", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragInt2Ex(arg[0], arg[1], 1.0, 0, 0, "%d", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragInt2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragInt2 : No matching functions found (#{arg})")
end

.DragInt3(*arg) ⇒ Object



11787
11788
11789
11790
11791
11792
11793
11794
11795
11796
11797
11798
11799
11800
# File 'lib/imgui.rb', line 11787

def self.DragInt3(*arg)
  # arg: 0:label(const char*), 1:v(int[3])
  # ret: bool
  return ImGui_DragInt3(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(int[3]), 2:v_speed(float), 3:v_min(int), 4:v_max(int), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragInt3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_DragInt3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], "%d", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_DragInt3Ex(arg[0], arg[1], arg[2], arg[3], 0, "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer))
  return ImGui_DragInt3Ex(arg[0], arg[1], arg[2], 0, 0, "%d", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragInt3Ex(arg[0], arg[1], 1.0, 0, 0, "%d", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragInt3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragInt3 : No matching functions found (#{arg})")
end

.DragInt4(*arg) ⇒ Object



11802
11803
11804
11805
11806
11807
11808
11809
11810
11811
11812
11813
11814
11815
# File 'lib/imgui.rb', line 11802

def self.DragInt4(*arg)
  # arg: 0:label(const char*), 1:v(int[4])
  # ret: bool
  return ImGui_DragInt4(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(int[4]), 2:v_speed(float), 3:v_min(int), 4:v_max(int), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragInt4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_DragInt4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], "%d", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_DragInt4Ex(arg[0], arg[1], arg[2], arg[3], 0, "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer))
  return ImGui_DragInt4Ex(arg[0], arg[1], arg[2], 0, 0, "%d", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragInt4Ex(arg[0], arg[1], 1.0, 0, 0, "%d", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragInt4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragInt4 : No matching functions found (#{arg})")
end

.DragIntRange2(*arg) ⇒ Object



11817
11818
11819
11820
11821
11822
11823
11824
11825
11826
11827
11828
11829
11830
11831
# File 'lib/imgui.rb', line 11817

def self.DragIntRange2(*arg)
  # arg: 0:label(const char*), 1:v_current_min(int*), 2:v_current_max(int*)
  # ret: bool
  return ImGui_DragIntRange2(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v_current_min(int*), 2:v_current_max(int*), 3:v_speed(float), 4:v_min(int), 5:v_max(int), 6:format(const char*), 7:format_max(const char*), 8:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], 0) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer) && arg[6].kind_of?(String) && arg[7].kind_of?(String))
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil, 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer) && arg[6].kind_of?(String))
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], "%d", nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0, "%d", nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Integer))
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], arg[3], 0, 0, "%d", nil, 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float))
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], 1.0, 0, 0, "%d", nil, 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer))
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer) && arg[6].kind_of?(String) && arg[7].kind_of?(String) && arg[8].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragIntRange2 : No matching functions found (#{arg})")
end

.DragScalar(*arg) ⇒ Object



11833
11834
11835
11836
11837
11838
11839
11840
11841
11842
11843
11844
11845
11846
# File 'lib/imgui.rb', line 11833

def self.DragScalar(*arg)
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*)
  # ret: bool
  return ImGui_DragScalar(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:v_speed(float), 4:p_min(const void*), 5:p_max(const void*), 6:format(const char*), 7:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String))
  return ImGui_DragScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer))
  return ImGui_DragScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(FFI::Pointer))
  return ImGui_DragScalarEx(arg[0], arg[1], arg[2], arg[3], nil, nil, nil, 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float))
  return ImGui_DragScalarEx(arg[0], arg[1], arg[2], 1.0, nil, nil, nil, 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer))
  return ImGui_DragScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String) && arg[7].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragScalar : No matching functions found (#{arg})")
end

.DragScalarN(*arg) ⇒ Object



11848
11849
11850
11851
11852
11853
11854
11855
11856
11857
11858
11859
11860
11861
# File 'lib/imgui.rb', line 11848

def self.DragScalarN(*arg)
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:components(int)
  # ret: bool
  return ImGui_DragScalarN(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:components(int), 4:v_speed(float), 5:p_min(const void*), 6:p_max(const void*), 7:format(const char*), 8:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], 0) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(FFI::Pointer) && arg[7].kind_of?(String))
  return ImGui_DragScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil, 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(FFI::Pointer))
  return ImGui_DragScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(FFI::Pointer))
  return ImGui_DragScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, nil, nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float))
  return ImGui_DragScalarNEx(arg[0], arg[1], arg[2], arg[3], 1.0, nil, nil, nil, 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_DragScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(FFI::Pointer) && arg[7].kind_of?(String) && arg[8].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragScalarN : No matching functions found (#{arg})")
end

.Dummy(size) ⇒ Object

arg: size(ImVec2) ret: void



7892
7893
7894
# File 'lib/imgui.rb', line 7892

def self.Dummy(size)
  ImGui_Dummy(size)
end

.EndObject

ret: void



7589
7590
7591
# File 'lib/imgui.rb', line 7589

def self.End()
  ImGui_End()
end

.EndBoxSelect(scope_rect, ms_flags) ⇒ Object

arg: scope_rect(ImRect), ms_flags(ImGuiMultiSelectFlags) ret: void



10184
10185
10186
# File 'lib/imgui.rb', line 10184

def self.EndBoxSelect(scope_rect, ms_flags)
  ImGui_EndBoxSelect(scope_rect, ms_flags)
end

.EndChildObject

ret: void



7594
7595
7596
# File 'lib/imgui.rb', line 7594

def self.EndChild()
  ImGui_EndChild()
end

.EndColumnsObject

ret: void



10237
10238
10239
# File 'lib/imgui.rb', line 10237

def self.EndColumns()
  ImGui_EndColumns()
end

.EndComboObject

ret: void



8026
8027
8028
# File 'lib/imgui.rb', line 8026

def self.EndCombo()
  ImGui_EndCombo()
end

.EndComboPreviewObject

ret: void



9599
9600
9601
# File 'lib/imgui.rb', line 9599

def self.EndComboPreview()
  ImGui_EndComboPreview()
end

.EndDisabledObject

ret: void



8468
8469
8470
# File 'lib/imgui.rb', line 8468

def self.EndDisabled()
  ImGui_EndDisabled()
end

.EndDisabledOverrideReenableObject

ret: void



9461
9462
9463
# File 'lib/imgui.rb', line 9461

def self.EndDisabledOverrideReenable()
  ImGui_EndDisabledOverrideReenable()
end

.EndDragDropSourceObject

ret: void



8436
8437
8438
# File 'lib/imgui.rb', line 8436

def self.EndDragDropSource()
  ImGui_EndDragDropSource()
end

.EndDragDropTargetObject

ret: void



8452
8453
8454
# File 'lib/imgui.rb', line 8452

def self.EndDragDropTarget()
  ImGui_EndDragDropTarget()
end

.EndErrorTooltipObject

ret: void



11047
11048
11049
# File 'lib/imgui.rb', line 11047

def self.EndErrorTooltip()
  ImGui_EndErrorTooltip()
end

.EndFrameObject

ret: void



7498
7499
7500
# File 'lib/imgui.rb', line 7498

def self.EndFrame()
  ImGui_EndFrame()
end

.EndGroupObject

ret: void



7902
7903
7904
# File 'lib/imgui.rb', line 7902

def self.EndGroup()
  ImGui_EndGroup()
end

.EndListBoxObject

ret: void



8129
8130
8131
# File 'lib/imgui.rb', line 8129

def self.EndListBox()
  ImGui_EndListBox()
end

.EndMainMenuBarObject

ret: void



8149
8150
8151
# File 'lib/imgui.rb', line 8149

def self.EndMainMenuBar()
  ImGui_EndMainMenuBar()
end

.EndMenuObject

ret: void



8154
8155
8156
# File 'lib/imgui.rb', line 8154

def self.EndMenu()
  ImGui_EndMenu()
end

.EndMenuBarObject

ret: void



8139
8140
8141
# File 'lib/imgui.rb', line 8139

def self.EndMenuBar()
  ImGui_EndMenuBar()
end

.EndMultiSelectObject

ret: pointer



8107
8108
8109
# File 'lib/imgui.rb', line 8107

def self.EndMultiSelect()
  ImGui_EndMultiSelect()
end

.EndPopupObject

ret: void



8198
8199
8200
# File 'lib/imgui.rb', line 8198

def self.EndPopup()
  ImGui_EndPopup()
end

.EndTabBarObject

ret: void



8340
8341
8342
# File 'lib/imgui.rb', line 8340

def self.EndTabBar()
  ImGui_EndTabBar()
end

.EndTabItemObject

ret: void



8351
8352
8353
# File 'lib/imgui.rb', line 8351

def self.EndTabItem()
  ImGui_EndTabItem()
end

.EndTableObject

ret: void



8214
8215
8216
# File 'lib/imgui.rb', line 8214

def self.EndTable()
  ImGui_EndTable()
end

.EndTooltipObject

ret: void



8164
8165
8166
# File 'lib/imgui.rb', line 8164

def self.EndTooltip()
  ImGui_EndTooltip()
end

.ErrorCheckEndFrameFinalizeErrorTooltipObject

ret: void



11037
11038
11039
# File 'lib/imgui.rb', line 11037

def self.ErrorCheckEndFrameFinalizeErrorTooltip()
  ImGui_ErrorCheckEndFrameFinalizeErrorTooltip()
end

.ErrorCheckUsingSetCursorPosToExtendParentBoundariesObject

ret: void



11032
11033
11034
# File 'lib/imgui.rb', line 11032

def self.ErrorCheckUsingSetCursorPosToExtendParentBoundaries()
  ImGui_ErrorCheckUsingSetCursorPosToExtendParentBoundaries()
end

.ErrorLog(msg) ⇒ Object

arg: msg(const char*) ret: bool



11009
11010
11011
# File 'lib/imgui.rb', line 11009

def self.ErrorLog(msg)
  ImGui_ErrorLog(msg)
end

.ErrorRecoveryStoreState(state_out) ⇒ Object

arg: state_out(ImGuiErrorRecoveryState*) ret: void



11015
11016
11017
# File 'lib/imgui.rb', line 11015

def self.ErrorRecoveryStoreState(state_out)
  ImGui_ErrorRecoveryStoreState(state_out)
end

.ErrorRecoveryTryToRecoverState(state_in) ⇒ Object

arg: state_in(const ImGuiErrorRecoveryState*) ret: void



11021
11022
11023
# File 'lib/imgui.rb', line 11021

def self.ErrorRecoveryTryToRecoverState(state_in)
  ImGui_ErrorRecoveryTryToRecoverState(state_in)
end

.ErrorRecoveryTryToRecoverWindowState(state_in) ⇒ Object

arg: state_in(const ImGuiErrorRecoveryState*) ret: void



11027
11028
11029
# File 'lib/imgui.rb', line 11027

def self.ErrorRecoveryTryToRecoverWindowState(state_in)
  ImGui_ErrorRecoveryTryToRecoverWindowState(state_in)
end

.ExtendHitBoxWhenNearViewportEdge(window, bb, threshold, axis) ⇒ Object

arg: window(ImGuiWindow*), bb(ImRect*), threshold(float), axis(ImGuiAxis) ret: void



10825
10826
10827
# File 'lib/imgui.rb', line 10825

def self.ExtendHitBoxWhenNearViewportEdge(window, bb, threshold, axis)
  ImGui_ExtendHitBoxWhenNearViewportEdge(window, bb, threshold, axis)
end

.FindBestWindowPosForPopup(window) ⇒ Object

arg: window(ImGuiWindow*) ret: ImVec2.by_value



9542
9543
9544
# File 'lib/imgui.rb', line 9542

def self.FindBestWindowPosForPopup(window)
  ImGui_FindBestWindowPosForPopup(window)
end

.FindBestWindowPosForPopupEx(ref_pos, size, last_dir, r_outer, r_avoid, policy) ⇒ Object

arg: ref_pos(ImVec2), size(ImVec2), last_dir(ImGuiDir*), r_outer(ImRect), r_avoid(ImRect), policy(ImGuiPopupPositionPolicy) ret: ImVec2.by_value



9548
9549
9550
# File 'lib/imgui.rb', line 9548

def self.FindBestWindowPosForPopupEx(ref_pos, size, last_dir, r_outer, r_avoid, policy)
  ImGui_FindBestWindowPosForPopupEx(ref_pos, size, last_dir, r_outer, r_avoid, policy)
end

.FindBlockingModal(window) ⇒ Object

arg: window(ImGuiWindow*) ret: pointer



9536
9537
9538
# File 'lib/imgui.rb', line 9536

def self.FindBlockingModal(window)
  ImGui_FindBlockingModal(window)
end

.FindBottomMostVisibleWindowWithinBeginStack(window) ⇒ Object

arg: window(ImGuiWindow*) ret: pointer



9046
9047
9048
# File 'lib/imgui.rb', line 9046

def self.FindBottomMostVisibleWindowWithinBeginStack(window)
  ImGui_FindBottomMostVisibleWindowWithinBeginStack(window)
end

.FindFrontMostVisibleChildWindow(window) ⇒ Object

arg: window(ImGuiWindow*) ret: pointer



9485
9486
9487
# File 'lib/imgui.rb', line 9485

def self.FindFrontMostVisibleChildWindow(window)
  ImGui_FindFrontMostVisibleChildWindow(window)
end

.FindHoveredViewportFromPlatformWindowStack(mouse_platform_pos) ⇒ Object

arg: mouse_platform_pos(ImVec2) ret: pointer



9247
9248
9249
# File 'lib/imgui.rb', line 9247

def self.FindHoveredViewportFromPlatformWindowStack(mouse_platform_pos)
  ImGui_FindHoveredViewportFromPlatformWindowStack(mouse_platform_pos)
end

.FindHoveredWindowEx(pos, find_first_and_in_any_viewport, out_hovered_window, out_hovered_window_under_moving_window) ⇒ Object

arg: pos(ImVec2), find_first_and_in_any_viewport(bool), out_hovered_window(ImGuiWindow**), out_hovered_window_under_moving_window(ImGuiWindow**) ret: void



9178
9179
9180
# File 'lib/imgui.rb', line 9178

def self.FindHoveredWindowEx(pos, find_first_and_in_any_viewport, out_hovered_window, out_hovered_window_under_moving_window)
  ImGui_FindHoveredWindowEx(pos, find_first_and_in_any_viewport, out_hovered_window, out_hovered_window_under_moving_window)
end

.FindOrCreateColumns(window, id) ⇒ Object

arg: window(ImGuiWindow*), id(ImGuiID) ret: pointer



10265
10266
10267
# File 'lib/imgui.rb', line 10265

def self.FindOrCreateColumns(window, id)
  ImGui_FindOrCreateColumns(window, id)
end

.FindRenderedTextEnd(*arg) ⇒ Object



13091
13092
13093
13094
13095
13096
13097
13098
13099
13100
# File 'lib/imgui.rb', line 13091

def self.FindRenderedTextEnd(*arg)
  # arg: 0:text(const char*)
  # ret: pointer
  return ImGui_FindRenderedTextEnd(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:text(const char*), 1:text_end(const char*)
  # ret: pointer
  return ImGui_FindRenderedTextEndEx(arg[0], nil) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_FindRenderedTextEndEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  $stderr.puts("[Warning] ImGui::FindRenderedTextEnd : No matching functions found (#{arg})")
end

.FindSettingsHandler(type_name) ⇒ Object

arg: type_name(const char*) ret: pointer



9270
9271
9272
# File 'lib/imgui.rb', line 9270

def self.FindSettingsHandler(type_name)
  ImGui_FindSettingsHandler(type_name)
end

.FindViewportByID(viewport_id) ⇒ Object

arg: viewport_id(ImGuiID) ret: pointer



8832
8833
8834
# File 'lib/imgui.rb', line 8832

def self.FindViewportByID(viewport_id)
  ImGui_FindViewportByID(viewport_id)
end

.FindViewportByPlatformHandle(platform_handle) ⇒ Object

arg: platform_handle(void*) ret: pointer



8838
8839
8840
# File 'lib/imgui.rb', line 8838

def self.FindViewportByPlatformHandle(platform_handle)
  ImGui_FindViewportByPlatformHandle(platform_handle)
end

.FindWindowByID(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



8902
8903
8904
# File 'lib/imgui.rb', line 8902

def self.FindWindowByID(id)
  ImGui_FindWindowByID(id)
end

.FindWindowByName(name) ⇒ Object

arg: name(const char*) ret: pointer



8908
8909
8910
# File 'lib/imgui.rb', line 8908

def self.FindWindowByName(name)
  ImGui_FindWindowByName(name)
end

.FindWindowDisplayIndex(window) ⇒ Object

arg: window(ImGuiWindow*) ret: int



9040
9041
9042
# File 'lib/imgui.rb', line 9040

def self.FindWindowDisplayIndex(window)
  ImGui_FindWindowDisplayIndex(window)
end

.FindWindowSettingsByID(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



9282
9283
9284
# File 'lib/imgui.rb', line 9282

def self.FindWindowSettingsByID(id)
  ImGui_FindWindowSettingsByID(id)
end

.FindWindowSettingsByWindow(window) ⇒ Object

arg: window(ImGuiWindow*) ret: pointer



9288
9289
9290
# File 'lib/imgui.rb', line 9288

def self.FindWindowSettingsByWindow(window)
  ImGui_FindWindowSettingsByWindow(window)
end

.FixupKeyChord(key_chord) ⇒ Object

arg: key_chord(ImGuiKeyChord) ret: int



9760
9761
9762
# File 'lib/imgui.rb', line 9760

def self.FixupKeyChord(key_chord)
  ImGui_FixupKeyChord(key_chord)
end

.FocusItemObject

ret: void



9700
9701
9702
# File 'lib/imgui.rb', line 9700

def self.FocusItem()
  ImGui_FocusItem()
end

.FocusTopMostWindowUnderOne(under_this_window, ignore_window, filter_viewport, flags) ⇒ Object

arg: under_this_window(ImGuiWindow*), ignore_window(ImGuiWindow*), filter_viewport(ImGuiViewport*), flags(ImGuiFocusRequestFlags) ret: void



9010
9011
9012
# File 'lib/imgui.rb', line 9010

def self.FocusTopMostWindowUnderOne(under_this_window, ignore_window, filter_viewport, flags)
  ImGui_FocusTopMostWindowUnderOne(under_this_window, ignore_window, filter_viewport, flags)
end

.FocusWindow(window, flags = 0) ⇒ Object

arg: window(ImGuiWindow*), flags(ImGuiFocusRequestFlags) ret: void



9004
9005
9006
# File 'lib/imgui.rb', line 9004

def self.FocusWindow(window, flags = 0)
  ImGui_FocusWindow(window, flags)
end

.GcAwakeTransientWindowBuffers(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



11003
11004
11005
# File 'lib/imgui.rb', line 11003

def self.GcAwakeTransientWindowBuffers(window)
  ImGui_GcAwakeTransientWindowBuffers(window)
end

.GcCompactTransientMiscBuffersObject

ret: void



10991
10992
10993
# File 'lib/imgui.rb', line 10991

def self.GcCompactTransientMiscBuffers()
  ImGui_GcCompactTransientMiscBuffers()
end

.GcCompactTransientWindowBuffers(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



10997
10998
10999
# File 'lib/imgui.rb', line 10997

def self.GcCompactTransientWindowBuffers(window)
  ImGui_GcCompactTransientWindowBuffers(window)
end

.GetActiveIDObject

ret: uint



9340
9341
9342
# File 'lib/imgui.rb', line 9340

def self.GetActiveID()
  ImGui_GetActiveID()
end

.GetAllocatorFunctions(p_alloc_func, p_free_func, p_user_data) ⇒ Object

arg: p_alloc_func(ImGuiMemAllocFunc*), p_free_func(ImGuiMemFreeFunc*), p_user_data(void**) ret: void



8804
8805
8806
# File 'lib/imgui.rb', line 8804

def self.GetAllocatorFunctions(p_alloc_func, p_free_func, p_user_data)
  ImGui_GetAllocatorFunctions(p_alloc_func, p_free_func, p_user_data)
end

.GetBackgroundDrawList(*arg) ⇒ Object



12545
12546
12547
12548
12549
12550
12551
12552
12553
12554
# File 'lib/imgui.rb', line 12545

def self.GetBackgroundDrawList(*arg)
  # arg: 
  # ret: pointer
  return ImGui_GetBackgroundDrawList() if arg.empty?
  # arg: 0:viewport(ImGuiViewport*)
  # ret: pointer
  return ImGui_GetBackgroundDrawListEx(nil) if arg.length == 0 && (true)
  return ImGui_GetBackgroundDrawListEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::GetBackgroundDrawList : No matching functions found (#{arg})")
end

.GetBoxSelectState(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



10214
10215
10216
# File 'lib/imgui.rb', line 10214

def self.GetBoxSelectState(id)
  ImGui_GetBoxSelectState(id)
end

.GetClipboardTextObject

ret: pointer



8733
8734
8735
# File 'lib/imgui.rb', line 8733

def self.GetClipboardText()
  ImGui_GetClipboardText()
end

.GetColorU32(*arg) ⇒ Object



11467
11468
11469
11470
11471
11472
11473
11474
11475
11476
11477
11478
11479
11480
11481
11482
11483
11484
11485
11486
# File 'lib/imgui.rb', line 11467

def self.GetColorU32(*arg)
  # arg: 0:idx(ImGuiCol)
  # ret: uint
  return ImGui_GetColorU32(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:idx(ImGuiCol), 1:alpha_mul(float)
  # ret: uint
  return ImGui_GetColorU32Ex(arg[0], 1.0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_GetColorU32Ex(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  # arg: 0:col(ImVec4)
  # ret: uint
  return ImGui_GetColorU32ImVec4(arg[0]) if arg.length == 1 && (arg[0].kind_of?(ImVec4))
  # arg: 0:col(ImU32)
  # ret: uint
  return ImGui_GetColorU32ImU32(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:col(ImU32), 1:alpha_mul(float)
  # ret: uint
  return ImGui_GetColorU32ImU32Ex(arg[0], 1.0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_GetColorU32ImU32Ex(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::GetColorU32 : No matching functions found (#{arg})")
end

.GetColumnIndexObject

ret: int



8300
8301
8302
# File 'lib/imgui.rb', line 8300

def self.GetColumnIndex()
  ImGui_GetColumnIndex()
end

.GetColumnNormFromOffset(columns, offset) ⇒ Object

arg: columns(const ImGuiOldColumns*), offset(float) ret: float



10277
10278
10279
# File 'lib/imgui.rb', line 10277

def self.GetColumnNormFromOffset(columns, offset)
  ImGui_GetColumnNormFromOffset(columns, offset)
end

.GetColumnOffset(column_index = -1)) ⇒ Object

arg: column_index(int) ret: float



8318
8319
8320
# File 'lib/imgui.rb', line 8318

def self.GetColumnOffset(column_index = -1)
  ImGui_GetColumnOffset(column_index)
end

.GetColumnOffsetFromNorm(columns, offset_norm) ⇒ Object

arg: columns(const ImGuiOldColumns*), offset_norm(float) ret: float



10271
10272
10273
# File 'lib/imgui.rb', line 10271

def self.GetColumnOffsetFromNorm(columns, offset_norm)
  ImGui_GetColumnOffsetFromNorm(columns, offset_norm)
end

.GetColumnsCountObject

ret: int



8329
8330
8331
# File 'lib/imgui.rb', line 8329

def self.GetColumnsCount()
  ImGui_GetColumnsCount()
end

.GetColumnsID(str_id, count) ⇒ Object

arg: str_id(const char*), count(int) ret: uint



10259
10260
10261
# File 'lib/imgui.rb', line 10259

def self.GetColumnsID(str_id, count)
  ImGui_GetColumnsID(str_id, count)
end

.GetColumnWidth(column_index = -1)) ⇒ Object

arg: column_index(int) ret: float



8306
8307
8308
# File 'lib/imgui.rb', line 8306

def self.GetColumnWidth(column_index = -1)
  ImGui_GetColumnWidth(column_index)
end

.GetContentRegionAvailObject

ret: ImVec2.by_value



7833
7834
7835
# File 'lib/imgui.rb', line 7833

def self.GetContentRegionAvail()
  ImGui_GetContentRegionAvail()
end

.GetContentRegionMaxObject

ret: ImVec2.by_value



8871
8872
8873
# File 'lib/imgui.rb', line 8871

def self.GetContentRegionMax()
  ImGui_GetContentRegionMax()
end

.GetCurrentContextObject

ret: pointer



7477
7478
7479
# File 'lib/imgui.rb', line 7477

def self.GetCurrentContext()
  ImGui_GetCurrentContext()
end

.GetCurrentFocusScopeObject

ret: uint



10121
10122
10123
# File 'lib/imgui.rb', line 10121

def self.GetCurrentFocusScope()
  ImGui_GetCurrentFocusScope()
end

.GetCurrentTabBarObject

ret: pointer



10573
10574
10575
# File 'lib/imgui.rb', line 10573

def self.GetCurrentTabBar()
  ImGui_GetCurrentTabBar()
end

.GetCurrentTableObject

ret: pointer



10336
10337
10338
# File 'lib/imgui.rb', line 10336

def self.GetCurrentTable()
  ImGui_GetCurrentTable()
end

.GetCurrentWindowObject

ret: pointer



8896
8897
8898
# File 'lib/imgui.rb', line 8896

def self.GetCurrentWindow()
  ImGui_GetCurrentWindow()
end

.GetCurrentWindowReadObject

ret: pointer



8891
8892
8893
# File 'lib/imgui.rb', line 8891

def self.GetCurrentWindowRead()
  ImGui_GetCurrentWindowRead()
end

.GetCursorPosObject

ret: ImVec2.by_value



7838
7839
7840
# File 'lib/imgui.rb', line 7838

def self.GetCursorPos()
  ImGui_GetCursorPos()
end

.GetCursorPosXObject

ret: float



7843
7844
7845
# File 'lib/imgui.rb', line 7843

def self.GetCursorPosX()
  ImGui_GetCursorPosX()
end

.GetCursorPosYObject

ret: float



7848
7849
7850
# File 'lib/imgui.rb', line 7848

def self.GetCursorPosY()
  ImGui_GetCursorPosY()
end

.GetCursorScreenPosObject

ret: ImVec2.by_value



7822
7823
7824
# File 'lib/imgui.rb', line 7822

def self.GetCursorScreenPos()
  ImGui_GetCursorScreenPos()
end

.GetCursorStartPosObject

ret: ImVec2.by_value



7871
7872
7873
# File 'lib/imgui.rb', line 7871

def self.GetCursorStartPos()
  ImGui_GetCursorStartPos()
end

.GetDefaultFontObject

ret: pointer



9110
9111
9112
# File 'lib/imgui.rb', line 9110

def self.GetDefaultFont()
  ImGui_GetDefaultFont()
end

.GetDragDropPayloadObject

ret: pointer



8457
8458
8459
# File 'lib/imgui.rb', line 8457

def self.GetDragDropPayload()
  ImGui_GetDragDropPayload()
end

.GetDrawDataObject

ret: pointer



7508
7509
7510
# File 'lib/imgui.rb', line 7508

def self.GetDrawData()
  ImGui_GetDrawData()
end

.GetDrawListSharedDataObject

ret: pointer



8601
8602
8603
# File 'lib/imgui.rb', line 8601

def self.GetDrawListSharedData()
  ImGui_GetDrawListSharedData()
end

.GetFocusIDObject

ret: uint



9345
9346
9347
# File 'lib/imgui.rb', line 9345

def self.GetFocusID()
  ImGui_GetFocusID()
end

.GetFontObject

ret: pointer



7740
7741
7742
# File 'lib/imgui.rb', line 7740

def self.GetFont()
  ImGui_GetFont()
end

.GetFontBakedObject

ret: pointer



7750
7751
7752
# File 'lib/imgui.rb', line 7750

def self.GetFontBaked()
  ImGui_GetFontBaked()
end

.GetFontRasterizerDensityObject

ret: float



9099
9100
9101
# File 'lib/imgui.rb', line 9099

def self.GetFontRasterizerDensity()
  ImGui_GetFontRasterizerDensity()
end

.GetFontSizeObject

ret: float



7745
7746
7747
# File 'lib/imgui.rb', line 7745

def self.GetFontSize()
  ImGui_GetFontSize()
end

.GetFontTexUvWhitePixelObject

ret: ImVec2.by_value



7811
7812
7813
# File 'lib/imgui.rb', line 7811

def self.GetFontTexUvWhitePixel()
  ImGui_GetFontTexUvWhitePixel()
end

.GetForegroundDrawList(*arg) ⇒ Object



12556
12557
12558
12559
12560
12561
12562
12563
12564
12565
12566
12567
12568
# File 'lib/imgui.rb', line 12556

def self.GetForegroundDrawList(*arg)
  # arg: 
  # ret: pointer
  return ImGui_GetForegroundDrawList() if arg.empty?
  # arg: 0:viewport(ImGuiViewport*)
  # ret: pointer
  return ImGui_GetForegroundDrawListEx(nil) if arg.length == 0 && (true)
  return ImGui_GetForegroundDrawListEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  # arg: 0:window(ImGuiWindow*)
  # ret: pointer
  return ImGui_GetForegroundDrawListImGuiWindowPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::GetForegroundDrawList : No matching functions found (#{arg})")
end

.GetFrameCountObject

ret: int



8596
8597
8598
# File 'lib/imgui.rb', line 8596

def self.GetFrameCount()
  ImGui_GetFrameCount()
end

.GetFrameHeightObject

ret: float



7922
7923
7924
# File 'lib/imgui.rb', line 7922

def self.GetFrameHeight()
  ImGui_GetFrameHeight()
end

.GetFrameHeightWithSpacingObject

ret: float



7927
7928
7929
# File 'lib/imgui.rb', line 7927

def self.GetFrameHeightWithSpacing()
  ImGui_GetFrameHeightWithSpacing()
end

.GetHoveredIDObject

ret: uint



9367
9368
9369
# File 'lib/imgui.rb', line 9367

def self.GetHoveredID()
  ImGui_GetHoveredID()
end

.GetID(*arg) ⇒ Object



11538
11539
11540
11541
11542
11543
11544
11545
11546
11547
11548
11549
11550
11551
11552
# File 'lib/imgui.rb', line 11538

def self.GetID(*arg)
  # arg: 0:str_id(const char*)
  # ret: uint
  return ImGui_GetID(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:str_id_begin(const char*), 1:str_id_end(const char*)
  # ret: uint
  return ImGui_GetIDStr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  # arg: 0:ptr_id(const void*)
  # ret: uint
  return ImGui_GetIDPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  # arg: 0:int_id(int)
  # ret: uint
  return ImGui_GetIDInt(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::GetID : No matching functions found (#{arg})")
end

.GetIDWithSeed(*arg) ⇒ Object



12758
12759
12760
12761
12762
12763
12764
12765
12766
# File 'lib/imgui.rb', line 12758

def self.GetIDWithSeed(*arg)
  # arg: 0:str_id_begin(const char*), 1:str_id_end(const char*), 2:seed(ImGuiID)
  # ret: uint
  return ImGui_GetIDWithSeedStr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(Integer))
  # arg: 0:n(int), 1:seed(ImGuiID)
  # ret: uint
  return ImGui_GetIDWithSeed(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::GetIDWithSeed : No matching functions found (#{arg})")
end

.GetInputTextState(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



10927
10928
10929
# File 'lib/imgui.rb', line 10927

def self.GetInputTextState(id)
  ImGui_GetInputTextState(id)
end

.GetIO(*arg) ⇒ Object

Overload functions



11255
11256
11257
11258
11259
11260
11261
11262
11263
# File 'lib/imgui.rb', line 11255

def self.GetIO(*arg)
  # arg: 
  # ret: pointer
  return ImGui_GetIO() if arg.empty?
  # arg: 0:ctx(ImGuiContext*)
  # ret: pointer
  return ImGui_GetIOImGuiContextPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::GetIO : No matching functions found (#{arg})")
end

.GetItemFlagsObject

ret: int



8581
8582
8583
# File 'lib/imgui.rb', line 8581

def self.GetItemFlags()
  ImGui_GetItemFlags()
end

.GetItemIDObject

ret: uint



8561
8562
8563
# File 'lib/imgui.rb', line 8561

def self.GetItemID()
  ImGui_GetItemID()
end

.GetItemRectMaxObject

ret: ImVec2.by_value



8571
8572
8573
# File 'lib/imgui.rb', line 8571

def self.GetItemRectMax()
  ImGui_GetItemRectMax()
end

.GetItemRectMinObject

ret: ImVec2.by_value



8566
8567
8568
# File 'lib/imgui.rb', line 8566

def self.GetItemRectMin()
  ImGui_GetItemRectMin()
end

.GetItemRectSizeObject

ret: ImVec2.by_value



8576
8577
8578
# File 'lib/imgui.rb', line 8576

def self.GetItemRectSize()
  ImGui_GetItemRectSize()
end

.GetItemStatusFlagsObject

ret: int



9335
9336
9337
# File 'lib/imgui.rb', line 9335

def self.GetItemStatusFlags()
  ImGui_GetItemStatusFlags()
end

.GetKeyChordName(key_chord) ⇒ Object

arg: key_chord(ImGuiKeyChord) ret: pointer



9772
9773
9774
# File 'lib/imgui.rb', line 9772

def self.GetKeyChordName(key_chord)
  ImGui_GetKeyChordName(key_chord)
end

.GetKeyData(*arg) ⇒ Object



12855
12856
12857
12858
12859
12860
12861
12862
12863
# File 'lib/imgui.rb', line 12855

def self.GetKeyData(*arg)
  # arg: 0:ctx(ImGuiContext*), 1:key(ImGuiKey)
  # ret: pointer
  return ImGui_GetKeyDataImGuiContextPtr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer))
  # arg: 0:key(ImGuiKey)
  # ret: pointer
  return ImGui_GetKeyData(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::GetKeyData : No matching functions found (#{arg})")
end

.GetKeyMagnitude2d(key_left, key_right, key_up, key_down) ⇒ Object

arg: key_left(ImGuiKey), key_right(ImGuiKey), key_up(ImGuiKey), key_down(ImGuiKey) ret: ImVec2.by_value



9784
9785
9786
# File 'lib/imgui.rb', line 9784

def self.GetKeyMagnitude2d(key_left, key_right, key_up, key_down)
  ImGui_GetKeyMagnitude2d(key_left, key_right, key_up, key_down)
end

.GetKeyName(key) ⇒ Object

arg: key(ImGuiKey) ret: pointer



8654
8655
8656
# File 'lib/imgui.rb', line 8654

def self.GetKeyName(key)
  ImGui_GetKeyName(key)
end

.GetKeyOwner(key) ⇒ Object

arg: key(ImGuiKey) ret: uint



9825
9826
9827
# File 'lib/imgui.rb', line 9825

def self.GetKeyOwner(key)
  ImGui_GetKeyOwner(key)
end

.GetKeyOwnerData(ctx, key) ⇒ Object

arg: ctx(ImGuiContext*), key(ImGuiKey) ret: pointer



9849
9850
9851
# File 'lib/imgui.rb', line 9849

def self.GetKeyOwnerData(ctx, key)
  ImGui_GetKeyOwnerData(ctx, key)
end

.GetKeyPressedAmount(key, repeat_delay, rate) ⇒ Object

arg: key(ImGuiKey), repeat_delay(float), rate(float) ret: int



8648
8649
8650
# File 'lib/imgui.rb', line 8648

def self.GetKeyPressedAmount(key, repeat_delay, rate)
  ImGui_GetKeyPressedAmount(key, repeat_delay, rate)
end

.GetMainViewportObject

ret: pointer



8586
8587
8588
# File 'lib/imgui.rb', line 8586

def self.GetMainViewport()
  ImGui_GetMainViewport()
end

.GetMouseButtonFromPopupFlags(flags) ⇒ Object

arg: flags(ImGuiPopupFlags) ret: int



9554
9555
9556
# File 'lib/imgui.rb', line 9554

def self.GetMouseButtonFromPopupFlags(flags)
  ImGui_GetMouseButtonFromPopupFlags(flags)
end

.GetMouseClickedCount(button) ⇒ Object

arg: button(ImGuiMouseButton) ret: int



8678
8679
8680
# File 'lib/imgui.rb', line 8678

def self.GetMouseClickedCount(button)
  ImGui_GetMouseClickedCount(button)
end

.GetMouseCursorObject

ret: int



8716
8717
8718
# File 'lib/imgui.rb', line 8716

def self.GetMouseCursor()
  ImGui_GetMouseCursor()
end

.GetMouseDragDelta(button = 0, lock_threshold = -1.0)) ⇒ Object

arg: button(ImGuiMouseButton), lock_threshold(float) ret: ImVec2.by_value



8711
8712
8713
# File 'lib/imgui.rb', line 8711

def self.GetMouseDragDelta(button = 0, lock_threshold = -1.0)
  ImGui_GetMouseDragDelta(button, lock_threshold)
end

.GetMousePosObject

ret: ImVec2.by_value



8694
8695
8696
# File 'lib/imgui.rb', line 8694

def self.GetMousePos()
  ImGui_GetMousePos()
end

.GetMousePosOnOpeningCurrentPopupObject

ret: ImVec2.by_value



8699
8700
8701
# File 'lib/imgui.rb', line 8699

def self.GetMousePosOnOpeningCurrentPopup()
  ImGui_GetMousePosOnOpeningCurrentPopup()
end

.GetMultiSelectState(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



10220
10221
10222
# File 'lib/imgui.rb', line 10220

def self.GetMultiSelectState(id)
  ImGui_GetMultiSelectState(id)
end

.GetNavTweakPressedAmount(axis) ⇒ Object

arg: axis(ImGuiAxis) ret: float



9790
9791
9792
# File 'lib/imgui.rb', line 9790

def self.GetNavTweakPressedAmount(axis)
  ImGui_GetNavTweakPressedAmount(axis)
end

.GetPlatformIO(*arg) ⇒ Object



11265
11266
11267
11268
11269
11270
11271
11272
11273
# File 'lib/imgui.rb', line 11265

def self.GetPlatformIO(*arg)
  # arg: 
  # ret: pointer
  return ImGui_GetPlatformIO() if arg.empty?
  # arg: 0:ctx(ImGuiContext*)
  # ret: pointer
  return ImGui_GetPlatformIOImGuiContextPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::GetPlatformIO : No matching functions found (#{arg})")
end

.GetPopupAllowedExtentRect(window) ⇒ Object

arg: window(ImGuiWindow*) ret: ImRect.by_value



9520
9521
9522
# File 'lib/imgui.rb', line 9520

def self.GetPopupAllowedExtentRect(window)
  ImGui_GetPopupAllowedExtentRect(window)
end

.GetRoundedFontSize(size) ⇒ Object

arg: size(float) ret: float



9105
9106
9107
# File 'lib/imgui.rb', line 9105

def self.GetRoundedFontSize(size)
  ImGui_GetRoundedFontSize(size)
end

.GetScaleObject

ret: float



8886
8887
8888
# File 'lib/imgui.rb', line 8886

def self.GetScale()
  ImGui_GetScale()
end

.GetScrollMaxXObject

ret: float



7713
7714
7715
# File 'lib/imgui.rb', line 7713

def self.GetScrollMaxX()
  ImGui_GetScrollMaxX()
end

.GetScrollMaxYObject

ret: float



7718
7719
7720
# File 'lib/imgui.rb', line 7718

def self.GetScrollMaxY()
  ImGui_GetScrollMaxY()
end

.GetScrollXObject

ret: float



7703
7704
7705
# File 'lib/imgui.rb', line 7703

def self.GetScrollX()
  ImGui_GetScrollX()
end

.GetScrollYObject

ret: float



7708
7709
7710
# File 'lib/imgui.rb', line 7708

def self.GetScrollY()
  ImGui_GetScrollY()
end

.GetShortcutRoutingData(key_chord) ⇒ Object

arg: key_chord(ImGuiKeyChord) ret: pointer



9867
9868
9869
# File 'lib/imgui.rb', line 9867

def self.GetShortcutRoutingData(key_chord)
  ImGui_GetShortcutRoutingData(key_chord)
end

.GetStateStorageObject

ret: pointer



8618
8619
8620
# File 'lib/imgui.rb', line 8618

def self.GetStateStorage()
  ImGui_GetStateStorage()
end

.GetStyleObject

ret: pointer



7488
7489
7490
# File 'lib/imgui.rb', line 7488

def self.GetStyle()
  ImGui_GetStyle()
end

.GetStyleColorName(idx) ⇒ Object

arg: idx(ImGuiCol) ret: pointer



8607
8608
8609
# File 'lib/imgui.rb', line 8607

def self.GetStyleColorName(idx)
  ImGui_GetStyleColorName(idx)
end

.GetStyleColorVec4(idx) ⇒ Object

arg: idx(ImGuiCol) ret: pointer



7817
7818
7819
# File 'lib/imgui.rb', line 7817

def self.GetStyleColorVec4(idx)
  ImGui_GetStyleColorVec4(idx)
end

.GetStyleVarInfo(idx) ⇒ Object

arg: idx(ImGuiStyleVar) ret: pointer



9451
9452
9453
# File 'lib/imgui.rb', line 9451

def self.GetStyleVarInfo(idx)
  ImGui_GetStyleVarInfo(idx)
end

.GetTextLineHeightObject

ret: float



7912
7913
7914
# File 'lib/imgui.rb', line 7912

def self.GetTextLineHeight()
  ImGui_GetTextLineHeight()
end

.GetTextLineHeightWithSpacingObject

ret: float



7917
7918
7919
# File 'lib/imgui.rb', line 7917

def self.GetTextLineHeightWithSpacing()
  ImGui_GetTextLineHeightWithSpacing()
end

.GetTimeObject

ret: double



8591
8592
8593
# File 'lib/imgui.rb', line 8591

def self.GetTime()
  ImGui_GetTime()
end

.GetTopMostAndVisiblePopupModalObject

ret: pointer



9530
9531
9532
# File 'lib/imgui.rb', line 9530

def self.GetTopMostAndVisiblePopupModal()
  ImGui_GetTopMostAndVisiblePopupModal()
end

.GetTopMostPopupModalObject

ret: pointer



9525
9526
9527
# File 'lib/imgui.rb', line 9525

def self.GetTopMostPopupModal()
  ImGui_GetTopMostPopupModal()
end

.GetTreeNodeToLabelSpacingObject

ret: float



8084
8085
8086
# File 'lib/imgui.rb', line 8084

def self.GetTreeNodeToLabelSpacing()
  ImGui_GetTreeNodeToLabelSpacing()
end

.GetTypematicRepeatRate(flags, repeat_delay, repeat_rate) ⇒ Object

arg: flags(ImGuiInputFlags), repeat_delay(float*), repeat_rate(float*) ret: void



9802
9803
9804
# File 'lib/imgui.rb', line 9802

def self.GetTypematicRepeatRate(flags, repeat_delay, repeat_rate)
  ImGui_GetTypematicRepeatRate(flags, repeat_delay, repeat_rate)
end

.GetTypingSelectRequest(*arg) ⇒ Object



12921
12922
12923
12924
12925
12926
12927
12928
12929
12930
# File 'lib/imgui.rb', line 12921

def self.GetTypingSelectRequest(*arg)
  # arg: 
  # ret: pointer
  return ImGui_GetTypingSelectRequest() if arg.empty?
  # arg: 0:flags(ImGuiTypingSelectFlags)
  # ret: pointer
  return ImGui_GetTypingSelectRequestEx(ImGuiTypingSelectFlags_None) if arg.length == 0 && (true)
  return ImGui_GetTypingSelectRequestEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::GetTypingSelectRequest : No matching functions found (#{arg})")
end

.GetVersionObject

ret: pointer



7560
7561
7562
# File 'lib/imgui.rb', line 7560

def self.GetVersion()
  ImGui_GetVersion()
end

.GetViewportPlatformMonitor(viewport) ⇒ Object

arg: viewport(ImGuiViewport*) ret: pointer



9241
9242
9243
# File 'lib/imgui.rb', line 9241

def self.GetViewportPlatformMonitor(viewport)
  ImGui_GetViewportPlatformMonitor(viewport)
end

.GetWindowAlwaysWantOwnTabBar(window) ⇒ Object

arg: window(ImGuiWindow*) ret: bool



10003
10004
10005
# File 'lib/imgui.rb', line 10003

def self.GetWindowAlwaysWantOwnTabBar(window)
  ImGui_GetWindowAlwaysWantOwnTabBar(window)
end

.GetWindowContentRegionMaxObject

ret: ImVec2.by_value



8881
8882
8883
# File 'lib/imgui.rb', line 8881

def self.GetWindowContentRegionMax()
  ImGui_GetWindowContentRegionMax()
end

.GetWindowContentRegionMinObject

ret: ImVec2.by_value



8876
8877
8878
# File 'lib/imgui.rb', line 8876

def self.GetWindowContentRegionMin()
  ImGui_GetWindowContentRegionMin()
end

.GetWindowDockIDObject

ret: uint



8380
8381
8382
# File 'lib/imgui.rb', line 8380

def self.GetWindowDockID()
  ImGui_GetWindowDockID()
end

.GetWindowDockNodeObject

ret: pointer



9997
9998
9999
# File 'lib/imgui.rb', line 9997

def self.GetWindowDockNode()
  ImGui_GetWindowDockNode()
end

.GetWindowDpiScaleObject

ret: float



7626
7627
7628
# File 'lib/imgui.rb', line 7626

def self.GetWindowDpiScale()
  ImGui_GetWindowDpiScale()
end

.GetWindowDrawListObject

ret: pointer



7621
7622
7623
# File 'lib/imgui.rb', line 7621

def self.GetWindowDrawList()
  ImGui_GetWindowDrawList()
end

.GetWindowHeightObject

ret: float



7646
7647
7648
# File 'lib/imgui.rb', line 7646

def self.GetWindowHeight()
  ImGui_GetWindowHeight()
end

.GetWindowPosObject

ret: ImVec2.by_value



7631
7632
7633
# File 'lib/imgui.rb', line 7631

def self.GetWindowPos()
  ImGui_GetWindowPos()
end

.GetWindowResizeBorderID(window, dir) ⇒ Object

arg: window(ImGuiWindow*), dir(ImGuiDir) ret: uint



10819
10820
10821
# File 'lib/imgui.rb', line 10819

def self.GetWindowResizeBorderID(window, dir)
  ImGui_GetWindowResizeBorderID(window, dir)
end

.GetWindowResizeCornerID(window, n) ⇒ Object

arg: window(ImGuiWindow*), n(int) ret: uint



10813
10814
10815
# File 'lib/imgui.rb', line 10813

def self.GetWindowResizeCornerID(window, n)
  ImGui_GetWindowResizeCornerID(window, n)
end

.GetWindowScrollbarID(window, axis) ⇒ Object

arg: window(ImGuiWindow*), axis(ImGuiAxis) ret: uint



10807
10808
10809
# File 'lib/imgui.rb', line 10807

def self.GetWindowScrollbarID(window, axis)
  ImGui_GetWindowScrollbarID(window, axis)
end

.GetWindowScrollbarRect(window, axis) ⇒ Object

arg: window(ImGuiWindow*), axis(ImGuiAxis) ret: ImRect.by_value



10801
10802
10803
# File 'lib/imgui.rb', line 10801

def self.GetWindowScrollbarRect(window, axis)
  ImGui_GetWindowScrollbarRect(window, axis)
end

.GetWindowSizeObject

ret: ImVec2.by_value



7636
7637
7638
# File 'lib/imgui.rb', line 7636

def self.GetWindowSize()
  ImGui_GetWindowSize()
end

.GetWindowViewportObject

ret: pointer



7651
7652
7653
# File 'lib/imgui.rb', line 7651

def self.GetWindowViewport()
  ImGui_GetWindowViewport()
end

.GetWindowWidthObject

ret: float



7641
7642
7643
# File 'lib/imgui.rb', line 7641

def self.GetWindowWidth()
  ImGui_GetWindowWidth()
end

.Image(*arg) ⇒ Object



11613
11614
11615
11616
11617
11618
11619
11620
11621
11622
11623
11624
11625
11626
# File 'lib/imgui.rb', line 11613

def self.Image(*arg)
  # arg: 0:tex_ref(ImTextureRef), 1:image_size(ImVec2)
  # ret: void
  return ImGui_Image(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2))
  # arg: 0:tex_ref(ImTextureRef), 1:image_size(ImVec2), 2:uv0(ImVec2), 3:uv1(ImVec2)
  # ret: void
  return ImGui_ImageEx(arg[0], arg[1], arg[2], ImVec2.create(1,1)) if arg.length == 3 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2))
  return ImGui_ImageEx(arg[0], arg[1], ImVec2.create(0,0), ImVec2.create(1,1)) if arg.length == 2 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2))
  return ImGui_ImageEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2))
  # arg: 0:tex_ref(ImTextureRef), 1:image_size(ImVec2), 2:uv0(ImVec2), 3:uv1(ImVec2), 4:tint_col(ImVec4), 5:border_col(ImVec4)
  # ret: void
  return ImGui_ImageImVec4(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(ImVec4) && arg[5].kind_of?(ImVec4))
  $stderr.puts("[Warning] ImGui::Image : No matching functions found (#{arg})")
end

.ImageButton(*arg) ⇒ Object



11642
11643
11644
11645
11646
11647
11648
11649
11650
11651
11652
11653
11654
# File 'lib/imgui.rb', line 11642

def self.ImageButton(*arg)
  # arg: 0:str_id(const char*), 1:tex_ref(ImTextureRef), 2:image_size(ImVec2)
  # ret: bool
  return ImGui_ImageButton(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImTextureRef) && arg[2].kind_of?(ImVec2))
  # arg: 0:str_id(const char*), 1:tex_ref(ImTextureRef), 2:image_size(ImVec2), 3:uv0(ImVec2), 4:uv1(ImVec2), 5:bg_col(ImVec4), 6:tint_col(ImVec4)
  # ret: bool
  return ImGui_ImageButtonEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], ImVec4.create(1,1,1,1)) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImTextureRef) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(ImVec4))
  return ImGui_ImageButtonEx(arg[0], arg[1], arg[2], arg[3], arg[4], ImVec4.create(0,0,0,0), ImVec4.create(1,1,1,1)) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImTextureRef) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(ImVec2))
  return ImGui_ImageButtonEx(arg[0], arg[1], arg[2], arg[3], ImVec2.create(1,1), ImVec4.create(0,0,0,0), ImVec4.create(1,1,1,1)) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImTextureRef) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2))
  return ImGui_ImageButtonEx(arg[0], arg[1], arg[2], ImVec2.create(0,0), ImVec2.create(1,1), ImVec4.create(0,0,0,0), ImVec4.create(1,1,1,1)) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImTextureRef) && arg[2].kind_of?(ImVec2))
  return ImGui_ImageButtonEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImTextureRef) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(ImVec4) && arg[6].kind_of?(ImVec4))
  $stderr.puts("[Warning] ImGui::ImageButton : No matching functions found (#{arg})")
end

.ImageButtonWithFlags(id, tex_ref, image_size, uv0, uv1, bg_col, tint_col, flags = 0) ⇒ Object

arg: id(ImGuiID), tex_ref(ImTextureRef), image_size(ImVec2), uv0(ImVec2), uv1(ImVec2), bg_col(ImVec4), tint_col(ImVec4), flags(ImGuiButtonFlags) ret: bool



10771
10772
10773
# File 'lib/imgui.rb', line 10771

def self.ImageButtonWithFlags(id, tex_ref, image_size, uv0, uv1, bg_col, tint_col, flags = 0)
  ImGui_ImageButtonWithFlags(id, tex_ref, image_size, uv0, uv1, bg_col, tint_col, flags)
end

.ImageWithBg(*arg) ⇒ Object



11628
11629
11630
11631
11632
11633
11634
11635
11636
11637
11638
11639
11640
# File 'lib/imgui.rb', line 11628

def self.ImageWithBg(*arg)
  # arg: 0:tex_ref(ImTextureRef), 1:image_size(ImVec2)
  # ret: void
  return ImGui_ImageWithBg(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2))
  # arg: 0:tex_ref(ImTextureRef), 1:image_size(ImVec2), 2:uv0(ImVec2), 3:uv1(ImVec2), 4:bg_col(ImVec4), 5:tint_col(ImVec4)
  # ret: void
  return ImGui_ImageWithBgEx(arg[0], arg[1], arg[2], arg[3], arg[4], ImVec4.create(1,1,1,1)) if arg.length == 5 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(ImVec4))
  return ImGui_ImageWithBgEx(arg[0], arg[1], arg[2], arg[3], ImVec4.create(0,0,0,0), ImVec4.create(1,1,1,1)) if arg.length == 4 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2))
  return ImGui_ImageWithBgEx(arg[0], arg[1], arg[2], ImVec2.create(1,1), ImVec4.create(0,0,0,0), ImVec4.create(1,1,1,1)) if arg.length == 3 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2))
  return ImGui_ImageWithBgEx(arg[0], arg[1], ImVec2.create(0,0), ImVec2.create(1,1), ImVec4.create(0,0,0,0), ImVec4.create(1,1,1,1)) if arg.length == 2 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2))
  return ImGui_ImageWithBgEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(ImVec4) && arg[5].kind_of?(ImVec4))
  $stderr.puts("[Warning] ImGui::ImageWithBg : No matching functions found (#{arg})")
end

.ImGui_ImplDockingOpenGL3_RenderWindow(viewport_raw, _render_arg) ⇒ Object



304
305
306
307
308
309
310
311
312
313
314
# File 'lib/imgui_impl_docking_opengl3.rb', line 304

def self.ImGui_ImplDockingOpenGL3_RenderWindow(viewport_raw, _render_arg)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  return if viewport[:DrawData] == nil || viewport[:DrawData].address == 0

  if (viewport[:Flags] & ImGuiViewportFlags_NoRendererClear) == 0
    GL.ClearColor(0.0, 0.0, 0.0, 1.0)
    GL.Clear(GL::COLOR_BUFFER_BIT)
  end

  ImplDockingOpenGL3_RenderDrawData(viewport[:DrawData])
end

.ImGui_ImplDockingSDL3_CopyImeData(dst, src) ⇒ Object



270
271
272
273
274
275
276
277
# File 'lib/imgui_impl_docking_sdl3.rb', line 270

def self.ImGui_ImplDockingSDL3_CopyImeData(dst, src)
  dst[:WantVisible] = src[:WantVisible]
  dst[:WantTextInput] = src[:WantTextInput]
  dst[:InputPos][:x] = src[:InputPos][:x]
  dst[:InputPos][:y] = src[:InputPos][:y]
  dst[:InputLineHeight] = src[:InputLineHeight]
  dst[:ViewportId] = src[:ViewportId]
end

.ImGui_ImplDockingSDL3_CreateVkSurface(viewport_raw, vk_instance, vk_allocator, out_vk_surface) ⇒ Object



1086
1087
1088
1089
1090
1091
1092
# File 'lib/imgui_impl_docking_sdl3.rb', line 1086

def self.ImGui_ImplDockingSDL3_CreateVkSurface(viewport_raw, vk_instance, vk_allocator, out_vk_surface)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return 1 if vd == nil || vd.window == nil

  SDL.Vulkan_CreateSurface(vd.window, FFI::Pointer.new(vk_instance), vk_allocator, out_vk_surface) ? 0 : 1
end

.ImGui_ImplDockingSDL3_CreateWindow(viewport_raw) ⇒ Object



899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
# File 'lib/imgui_impl_docking_sdl3.rb', line 899

def self.ImGui_ImplDockingSDL3_CreateWindow(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  vd = ImGui_ImplDockingSDL3_ViewportData.new
  ImGui_ImplDockingSDL3_SetViewportData(viewport, vd)
  vd.parent_window = ImGui_ImplDockingSDL3_GetSDLWindowFromViewport(viewport[:ParentViewport]) if viewport[:ParentViewport] != nil && viewport[:ParentViewport].address != 0

  main_viewport = ImGuiViewport.new(ImGui::GetMainViewport())
  main_viewport_data = ImGui_ImplDockingSDL3_GetViewportData(main_viewport)

  use_opengl = main_viewport_data != nil && main_viewport_data.gl_context != nil
  backup_context = nil
  if use_opengl
    backup_context = SDL.GL_GetCurrentContext()
    SDL.GL_SetAttribute(SDL::GL_SHARE_WITH_CURRENT_CONTEXT, 1)
    SDL.GL_MakeCurrent(main_viewport_data.window, main_viewport_data.gl_context)
  end

  sdl_flags = 0
  sdl_flags |= SDL::WINDOW_HIDDEN
  sdl_flags |= use_opengl ? SDL::WINDOW_OPENGL : (bd.use_vulkan ? SDL::WINDOW_VULKAN : 0)
  sdl_flags |= SDL.GetWindowFlags(bd.window) & SDL::WINDOW_HIGH_PIXEL_DENSITY
  sdl_flags |= (viewport[:Flags] & ImGuiViewportFlags_NoDecoration) != 0 ? SDL::WINDOW_BORDERLESS : 0
  sdl_flags |= (viewport[:Flags] & ImGuiViewportFlags_NoDecoration) == 0 ? SDL::WINDOW_RESIZABLE : 0
  sdl_flags |= (viewport[:Flags] & ImGuiViewportFlags_NoTaskBarIcon) != 0 ? SDL::WINDOW_UTILITY : 0 if defined?(SDL::WINDOW_UTILITY)
  sdl_flags |= (viewport[:Flags] & ImGuiViewportFlags_TopMost) != 0 ? SDL::WINDOW_ALWAYS_ON_TOP : 0 if defined?(SDL::WINDOW_ALWAYS_ON_TOP)

  vd.window = SDL.CreateWindow('No Title Yet', viewport[:Size][:x].to_i, viewport[:Size][:y].to_i, sdl_flags)
  if !FFI::Platform.mac? && vd.parent_window != nil
    SDL.SetWindowParent(vd.window, vd.parent_window)
  end
  SDL.SetWindowPosition(vd.window, viewport[:Pos][:x].to_i, viewport[:Pos][:y].to_i)
  vd.window_owned = true
  vd.window_id = SDL.GetWindowID(vd.window)
  if use_opengl
    vd.gl_context = SDL.GL_CreateContext(vd.window)
    SDL.GL_SetSwapInterval(0)
  end
  SDL.GL_MakeCurrent(vd.window, backup_context) if use_opengl && backup_context != nil

  ImGui_ImplDockingSDL3_SetupPlatformHandles(viewport, vd.window)
end

.ImGui_ImplDockingSDL3_DestroyWindow(viewport_raw) ⇒ Object



944
945
946
947
948
949
950
951
952
953
# File 'lib/imgui_impl_docking_sdl3.rb', line 944

def self.ImGui_ImplDockingSDL3_DestroyWindow(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil

  SDL.GL_DestroyContext(vd.gl_context) if vd.gl_context != nil && vd.window_owned
  SDL.DestroyWindow(vd.window) if vd.window != nil && vd.window_owned
  ImGui_ImplDockingSDL3_SetViewportData(viewport, nil)
  viewport[:PlatformHandle] = nil
end

.ImGui_ImplDockingSDL3_EnsureCallbacksObject



430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
# File 'lib/imgui_impl_docking_sdl3.rb', line 430

def self.ImGui_ImplDockingSDL3_EnsureCallbacks
  return @@g_DockingSDL3PlatformFunctions if @@g_DockingSDL3PlatformFunctions != nil

  @@g_DockingSDL3PlatformFunctions = {
    get_clipboard_text: FFI::Function.new(:pointer, [:pointer]) { |context| ImGui_ImplDockingSDL3_GetClipboardText(context) },
    set_clipboard_text: FFI::Function.new(:void, [:pointer, :pointer]) { |context, text| ImGui_ImplDockingSDL3_SetClipboardText(context, text) },
    set_ime_data: FFI::Function.new(:void, [:pointer, :pointer, :pointer]) { |context, viewport, data| ImGui_ImplDockingSDL3_PlatformSetImeData(context, viewport, data) },
    open_in_shell: FFI::Function.new(:bool, [:pointer, :pointer]) { |_context, url| SDL.OpenURL(url) },
    create_window: FFI::Function.new(:void, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_CreateWindow(ImGuiViewport.new(viewport)) },
    destroy_window: FFI::Function.new(:void, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_DestroyWindow(ImGuiViewport.new(viewport)) },
    show_window: FFI::Function.new(:void, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_ShowWindow(ImGuiViewport.new(viewport)) },
    update_window: FFI::Function.new(:void, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_UpdateWindow(ImGuiViewport.new(viewport)) },
    set_window_pos: FFI::Function.new(:void, [:pointer, ImVec2.by_value]) { |viewport, pos| ImGui_ImplDockingSDL3_SetWindowPos(ImGuiViewport.new(viewport), pos) },
    get_window_pos: FFI::Function.new(ImVec2.by_value, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_GetWindowPos(ImGuiViewport.new(viewport)) },
    set_window_size: FFI::Function.new(:void, [:pointer, ImVec2.by_value]) { |viewport, size| ImGui_ImplDockingSDL3_SetWindowSize(ImGuiViewport.new(viewport), size) },
    get_window_size: FFI::Function.new(ImVec2.by_value, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_GetWindowSize(ImGuiViewport.new(viewport)) },
    get_window_framebuffer_scale: FFI::Function.new(ImVec2.by_value, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_GetWindowFramebufferScale(ImGuiViewport.new(viewport)) },
    set_window_focus: FFI::Function.new(:void, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_SetWindowFocus(ImGuiViewport.new(viewport)) },
    get_window_focus: FFI::Function.new(:bool, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_GetWindowFocus(ImGuiViewport.new(viewport)) },
    get_window_minimized: FFI::Function.new(:bool, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_GetWindowMinimized(ImGuiViewport.new(viewport)) },
    set_window_title: FFI::Function.new(:void, [:pointer, :pointer]) { |viewport, title| ImGui_ImplDockingSDL3_SetWindowTitle(ImGuiViewport.new(viewport), title) },
    render_window: FFI::Function.new(:void, [:pointer, :pointer]) { |viewport, arg| ImGui_ImplDockingSDL3_RenderWindow(ImGuiViewport.new(viewport), arg) },
    swap_buffers: FFI::Function.new(:void, [:pointer, :pointer]) { |viewport, arg| ImGui_ImplDockingSDL3_SwapBuffers(ImGuiViewport.new(viewport), arg) },
    set_window_alpha: FFI::Function.new(:void, [:pointer, :float]) { |viewport, alpha| ImGui_ImplDockingSDL3_SetWindowAlpha(ImGuiViewport.new(viewport), alpha) },
    create_vk_surface: FFI::Function.new(:int, [:pointer, :uint64, :pointer, :pointer]) { |viewport, instance, allocator, out_surface| ImGui_ImplDockingSDL3_CreateVkSurface(ImGuiViewport.new(viewport), instance, allocator, out_surface) }
  }
end

.ImGui_ImplDockingSDL3_GetBackendDataObject



73
74
75
76
77
78
# File 'lib/imgui_impl_docking_sdl3.rb', line 73

def self.ImGui_ImplDockingSDL3_GetBackendData
  context = ImGui::GetCurrentContext()
  return nil if context == nil

  @@g_DockingSDL3BackendData[context.address]
end

.ImGui_ImplDockingSDL3_GetClipboardText(_context) ⇒ Object



279
280
281
282
283
284
285
286
# File 'lib/imgui_impl_docking_sdl3.rb', line 279

def self.ImGui_ImplDockingSDL3_GetClipboardText(_context)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return nil if bd == nil

  SDL.free(bd.clipboard_text_data) if bd.clipboard_text_data != nil
  bd.clipboard_text_data = SDL.HasClipboardText() ? SDL.GetClipboardText() : nil
  bd.clipboard_text_data
end

.ImGui_ImplDockingSDL3_GetSDLWindowFromViewport(viewport_raw) ⇒ Object



119
120
121
122
123
124
125
# File 'lib/imgui_impl_docking_sdl3.rb', line 119

def self.ImGui_ImplDockingSDL3_GetSDLWindowFromViewport(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  handle = viewport[:PlatformHandle]
  return nil if handle == nil || handle.address == 0

  SDL.GetWindowFromID(handle.address)
end

.ImGui_ImplDockingSDL3_GetViewportData(viewport_raw) ⇒ Object



84
85
86
87
88
89
90
# File 'lib/imgui_impl_docking_sdl3.rb', line 84

def self.ImGui_ImplDockingSDL3_GetViewportData(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return nil if bd == nil

  bd.viewport_data[viewport.pointer.address]
end

.ImGui_ImplDockingSDL3_GetViewportForWindowID(window_id) ⇒ Object



110
111
112
113
114
115
116
117
# File 'lib/imgui_impl_docking_sdl3.rb', line 110

def self.ImGui_ImplDockingSDL3_GetViewportForWindowID(window_id)
  return nil if window_id == 0

  viewport_ptr = ImGui::FindViewportByPlatformHandle(FFI::Pointer.new(window_id))
  return nil if viewport_ptr == nil || viewport_ptr.address == 0

  ImGuiViewport.new(viewport_ptr)
end

.ImGui_ImplDockingSDL3_GetViewportToken(viewport) ⇒ Object



80
81
82
# File 'lib/imgui_impl_docking_sdl3.rb', line 80

def self.ImGui_ImplDockingSDL3_GetViewportToken(viewport)
  FFI::Pointer.new(viewport.pointer)
end

.ImGui_ImplDockingSDL3_GetWindowFocus(viewport_raw) ⇒ Object



1053
1054
1055
1056
1057
1058
1059
# File 'lib/imgui_impl_docking_sdl3.rb', line 1053

def self.ImGui_ImplDockingSDL3_GetWindowFocus(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return false if vd == nil || vd.window == nil

  (SDL.GetWindowFlags(vd.window) & SDL::WINDOW_INPUT_FOCUS) != 0
end

.ImGui_ImplDockingSDL3_GetWindowFramebufferScale(viewport_raw) ⇒ Object



1020
1021
1022
1023
1024
1025
1026
1027
# File 'lib/imgui_impl_docking_sdl3.rb', line 1020

def self.ImGui_ImplDockingSDL3_GetWindowFramebufferScale(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return ImVec2.create(1.0, 1.0) if vd == nil || vd.window == nil

  _w, _h, scale_x, scale_y = ImGui_ImplDockingSDL3_GetWindowSizeAndFramebufferScale(vd.window)
  ImVec2.create(scale_x, scale_y)
end

.ImGui_ImplDockingSDL3_GetWindowMinimized(viewport_raw) ⇒ Object



1061
1062
1063
1064
1065
1066
1067
# File 'lib/imgui_impl_docking_sdl3.rb', line 1061

def self.ImGui_ImplDockingSDL3_GetWindowMinimized(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return false if vd == nil || vd.window == nil

  (SDL.GetWindowFlags(vd.window) & SDL::WINDOW_MINIMIZED) != 0
end

.ImGui_ImplDockingSDL3_GetWindowPos(viewport_raw) ⇒ Object



982
983
984
985
986
987
988
989
990
991
# File 'lib/imgui_impl_docking_sdl3.rb', line 982

def self.ImGui_ImplDockingSDL3_GetWindowPos(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return ImVec2.create(0.0, 0.0) if vd == nil || vd.window == nil

  x_ptr = FFI::MemoryPointer.new(:int)
  y_ptr = FFI::MemoryPointer.new(:int)
  SDL.GetWindowPosition(vd.window, x_ptr, y_ptr)
  ImVec2.create(x_ptr.read_int.to_f, y_ptr.read_int.to_f)
end

.ImGui_ImplDockingSDL3_GetWindowSize(viewport_raw) ⇒ Object



1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
# File 'lib/imgui_impl_docking_sdl3.rb', line 1001

def self.ImGui_ImplDockingSDL3_GetWindowSize(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return ImVec2.create(0.0, 0.0) if vd == nil || vd.window == nil

  w_ptr = FFI::MemoryPointer.new(:int)
  h_ptr = FFI::MemoryPointer.new(:int)
  SDL.GetWindowSize(vd.window, w_ptr, h_ptr)
  ImVec2.create(w_ptr.read_int.to_f, h_ptr.read_int.to_f)
end

.ImGui_ImplDockingSDL3_GetWindowSizeAndFramebufferScale(window) ⇒ Object



403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
# File 'lib/imgui_impl_docking_sdl3.rb', line 403

def self.ImGui_ImplDockingSDL3_GetWindowSizeAndFramebufferScale(window)
  w_ptr = FFI::MemoryPointer.new(:int)
  h_ptr = FFI::MemoryPointer.new(:int)
  SDL.GetWindowSize(window, w_ptr, h_ptr)
  w = w_ptr.read_int
  h = h_ptr.read_int
  if (SDL.GetWindowFlags(window) & SDL::WINDOW_MINIMIZED) != 0
    w = 0
    h = 0
  end

  if FFI::Platform.mac?
    scale_x = SDL.GetWindowDisplayScale(window)
    scale_y = scale_x
  else
    display_w_ptr = FFI::MemoryPointer.new(:int)
    display_h_ptr = FFI::MemoryPointer.new(:int)
    SDL.GetWindowSizeInPixels(window, display_w_ptr, display_h_ptr)
    display_w = display_w_ptr.read_int
    display_h = display_h_ptr.read_int
    scale_x = w > 0 ? display_w.to_f / w.to_f : 1.0
    scale_y = h > 0 ? display_h.to_f / h.to_f : 1.0
  end

  [w, h, scale_x, scale_y]
end

.ImGui_ImplDockingSDL3_InitMultiViewportSupport(window, sdl_gl_context) ⇒ Object



1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
# File 'lib/imgui_impl_docking_sdl3.rb', line 1094

def self.ImGui_ImplDockingSDL3_InitMultiViewportSupport(window, sdl_gl_context)
  callbacks = ImGui_ImplDockingSDL3_EnsureCallbacks()
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  platform_io[:Platform_CreateWindow] = callbacks[:create_window]
  platform_io[:Platform_DestroyWindow] = callbacks[:destroy_window]
  platform_io[:Platform_ShowWindow] = callbacks[:show_window]
  platform_io[:Platform_UpdateWindow] = callbacks[:update_window]
  platform_io[:Platform_SetWindowPos] = callbacks[:set_window_pos]
  platform_io[:Platform_GetWindowPos] = callbacks[:get_window_pos]
  platform_io[:Platform_SetWindowSize] = callbacks[:set_window_size]
  platform_io[:Platform_GetWindowSize] = callbacks[:get_window_size]
  platform_io[:Platform_GetWindowFramebufferScale] = callbacks[:get_window_framebuffer_scale]
  platform_io[:Platform_SetWindowFocus] = callbacks[:set_window_focus]
  platform_io[:Platform_GetWindowFocus] = callbacks[:get_window_focus]
  platform_io[:Platform_GetWindowMinimized] = callbacks[:get_window_minimized]
  platform_io[:Platform_SetWindowTitle] = callbacks[:set_window_title]
  platform_io[:Platform_RenderWindow] = callbacks[:render_window]
  platform_io[:Platform_SwapBuffers] = callbacks[:swap_buffers]
  platform_io[:Platform_SetWindowAlpha] = callbacks[:set_window_alpha]
  platform_io[:Platform_CreateVkSurface] = callbacks[:create_vk_surface]

  main_viewport = ImGuiViewport.new(ImGui::GetMainViewport())
  vd = ImGui_ImplDockingSDL3_ViewportData.new
  vd.window = window
  vd.window_id = SDL.GetWindowID(window)
  vd.window_owned = false
  vd.gl_context = sdl_gl_context
  ImGui_ImplDockingSDL3_SetViewportData(main_viewport, vd)
  main_viewport[:PlatformHandle] = FFI::Pointer.new(vd.window_id)
end

.ImGui_ImplDockingSDL3_IsTouchMouse(which_id) ⇒ Object



106
107
108
# File 'lib/imgui_impl_docking_sdl3.rb', line 106

def self.ImGui_ImplDockingSDL3_IsTouchMouse(which_id)
  which_id == SDL::TOUCH_MOUSEID || which_id == 0xffffffff
end

.ImGui_ImplDockingSDL3_KeyEventToImGuiKey(keycode, scancode) ⇒ Object



127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
# File 'lib/imgui_impl_docking_sdl3.rb', line 127

def self.ImGui_ImplDockingSDL3_KeyEventToImGuiKey(keycode, scancode)
  case scancode
  when SDL::SCANCODE_KP_0 then ImGuiKey_Keypad0
  when SDL::SCANCODE_KP_1 then ImGuiKey_Keypad1
  when SDL::SCANCODE_KP_2 then ImGuiKey_Keypad2
  when SDL::SCANCODE_KP_3 then ImGuiKey_Keypad3
  when SDL::SCANCODE_KP_4 then ImGuiKey_Keypad4
  when SDL::SCANCODE_KP_5 then ImGuiKey_Keypad5
  when SDL::SCANCODE_KP_6 then ImGuiKey_Keypad6
  when SDL::SCANCODE_KP_7 then ImGuiKey_Keypad7
  when SDL::SCANCODE_KP_8 then ImGuiKey_Keypad8
  when SDL::SCANCODE_KP_9 then ImGuiKey_Keypad9
  when SDL::SCANCODE_KP_PERIOD then ImGuiKey_KeypadDecimal
  when SDL::SCANCODE_KP_DIVIDE then ImGuiKey_KeypadDivide
  when SDL::SCANCODE_KP_MULTIPLY then ImGuiKey_KeypadMultiply
  when SDL::SCANCODE_KP_MINUS then ImGuiKey_KeypadSubtract
  when SDL::SCANCODE_KP_PLUS then ImGuiKey_KeypadAdd
  when SDL::SCANCODE_KP_ENTER then ImGuiKey_KeypadEnter
  when SDL::SCANCODE_KP_EQUALS then ImGuiKey_KeypadEqual
  end

  case keycode
  when SDL::SDLK_TAB then ImGuiKey_Tab
  when SDL::SDLK_LEFT then ImGuiKey_LeftArrow
  when SDL::SDLK_RIGHT then ImGuiKey_RightArrow
  when SDL::SDLK_UP then ImGuiKey_UpArrow
  when SDL::SDLK_DOWN then ImGuiKey_DownArrow
  when SDL::SDLK_PAGEUP then ImGuiKey_PageUp
  when SDL::SDLK_PAGEDOWN then ImGuiKey_PageDown
  when SDL::SDLK_HOME then ImGuiKey_Home
  when SDL::SDLK_END then ImGuiKey_End
  when SDL::SDLK_INSERT then ImGuiKey_Insert
  when SDL::SDLK_DELETE then ImGuiKey_Delete
  when SDL::SDLK_BACKSPACE then ImGuiKey_Backspace
  when SDL::SDLK_SPACE then ImGuiKey_Space
  when SDL::SDLK_RETURN then ImGuiKey_Enter
  when SDL::SDLK_ESCAPE then ImGuiKey_Escape
  when SDL::SDLK_COMMA then ImGuiKey_Comma
  when SDL::SDLK_PERIOD then ImGuiKey_Period
  when SDL::SDLK_SEMICOLON then ImGuiKey_Semicolon
  when SDL::SDLK_CAPSLOCK then ImGuiKey_CapsLock
  when SDL::SDLK_SCROLLLOCK then ImGuiKey_ScrollLock
  when SDL::SDLK_NUMLOCKCLEAR then ImGuiKey_NumLock
  when SDL::SDLK_PRINTSCREEN then ImGuiKey_PrintScreen
  when SDL::SDLK_PAUSE then ImGuiKey_Pause
  when SDL::SDLK_LCTRL then ImGuiKey_LeftCtrl
  when SDL::SDLK_LSHIFT then ImGuiKey_LeftShift
  when SDL::SDLK_LALT then ImGuiKey_LeftAlt
  when SDL::SDLK_LGUI then ImGuiKey_LeftSuper
  when SDL::SDLK_RCTRL then ImGuiKey_RightCtrl
  when SDL::SDLK_RSHIFT then ImGuiKey_RightShift
  when SDL::SDLK_RALT then ImGuiKey_RightAlt
  when SDL::SDLK_RGUI then ImGuiKey_RightSuper
  when SDL::SDLK_APPLICATION then ImGuiKey_Menu
  when SDL::SDLK_0 then ImGuiKey_0
  when SDL::SDLK_1 then ImGuiKey_1
  when SDL::SDLK_2 then ImGuiKey_2
  when SDL::SDLK_3 then ImGuiKey_3
  when SDL::SDLK_4 then ImGuiKey_4
  when SDL::SDLK_5 then ImGuiKey_5
  when SDL::SDLK_6 then ImGuiKey_6
  when SDL::SDLK_7 then ImGuiKey_7
  when SDL::SDLK_8 then ImGuiKey_8
  when SDL::SDLK_9 then ImGuiKey_9
  when SDL::SDLK_A then ImGuiKey_A
  when SDL::SDLK_B then ImGuiKey_B
  when SDL::SDLK_C then ImGuiKey_C
  when SDL::SDLK_D then ImGuiKey_D
  when SDL::SDLK_E then ImGuiKey_E
  when SDL::SDLK_F then ImGuiKey_F
  when SDL::SDLK_G then ImGuiKey_G
  when SDL::SDLK_H then ImGuiKey_H
  when SDL::SDLK_I then ImGuiKey_I
  when SDL::SDLK_J then ImGuiKey_J
  when SDL::SDLK_K then ImGuiKey_K
  when SDL::SDLK_L then ImGuiKey_L
  when SDL::SDLK_M then ImGuiKey_M
  when SDL::SDLK_N then ImGuiKey_N
  when SDL::SDLK_O then ImGuiKey_O
  when SDL::SDLK_P then ImGuiKey_P
  when SDL::SDLK_Q then ImGuiKey_Q
  when SDL::SDLK_R then ImGuiKey_R
  when SDL::SDLK_S then ImGuiKey_S
  when SDL::SDLK_T then ImGuiKey_T
  when SDL::SDLK_U then ImGuiKey_U
  when SDL::SDLK_V then ImGuiKey_V
  when SDL::SDLK_W then ImGuiKey_W
  when SDL::SDLK_X then ImGuiKey_X
  when SDL::SDLK_Y then ImGuiKey_Y
  when SDL::SDLK_Z then ImGuiKey_Z
  when SDL::SDLK_F1 then ImGuiKey_F1
  when SDL::SDLK_F2 then ImGuiKey_F2
  when SDL::SDLK_F3 then ImGuiKey_F3
  when SDL::SDLK_F4 then ImGuiKey_F4
  when SDL::SDLK_F5 then ImGuiKey_F5
  when SDL::SDLK_F6 then ImGuiKey_F6
  when SDL::SDLK_F7 then ImGuiKey_F7
  when SDL::SDLK_F8 then ImGuiKey_F8
  when SDL::SDLK_F9 then ImGuiKey_F9
  when SDL::SDLK_F10 then ImGuiKey_F10
  when SDL::SDLK_F11 then ImGuiKey_F11
  when SDL::SDLK_F12 then ImGuiKey_F12
  when SDL::SDLK_F13 then ImGuiKey_F13
  when SDL::SDLK_F14 then ImGuiKey_F14
  when SDL::SDLK_F15 then ImGuiKey_F15
  when SDL::SDLK_F16 then ImGuiKey_F16
  when SDL::SDLK_F17 then ImGuiKey_F17
  when SDL::SDLK_F18 then ImGuiKey_F18
  when SDL::SDLK_F19 then ImGuiKey_F19
  when SDL::SDLK_F20 then ImGuiKey_F20
  when SDL::SDLK_F21 then ImGuiKey_F21
  when SDL::SDLK_F22 then ImGuiKey_F22
  when SDL::SDLK_F23 then ImGuiKey_F23
  when SDL::SDLK_F24 then ImGuiKey_F24
  when SDL::SDLK_AC_BACK then ImGuiKey_AppBack
  when SDL::SDLK_AC_FORWARD then ImGuiKey_AppForward
  else
    case scancode
    when SDL::SCANCODE_GRAVE then ImGuiKey_GraveAccent
    when SDL::SCANCODE_MINUS then ImGuiKey_Minus
    when SDL::SCANCODE_EQUALS then ImGuiKey_Equal
    when SDL::SCANCODE_LEFTBRACKET then ImGuiKey_LeftBracket
    when SDL::SCANCODE_RIGHTBRACKET then ImGuiKey_RightBracket
    when SDL::SCANCODE_NONUSBACKSLASH then ImGuiKey_Oem102
    when SDL::SCANCODE_BACKSLASH then ImGuiKey_Backslash
    when SDL::SCANCODE_SEMICOLON then ImGuiKey_Semicolon
    when SDL::SCANCODE_APOSTROPHE then ImGuiKey_Apostrophe
    when SDL::SCANCODE_COMMA then ImGuiKey_Comma
    when SDL::SCANCODE_PERIOD then ImGuiKey_Period
    when SDL::SCANCODE_SLASH then ImGuiKey_Slash
    else ImGuiKey_None
    end
  end
end

.ImGui_ImplDockingSDL3_PlatformSetImeData(_context, _viewport, data_raw) ⇒ Object



292
293
294
295
296
297
298
299
300
# File 'lib/imgui_impl_docking_sdl3.rb', line 292

def self.ImGui_ImplDockingSDL3_PlatformSetImeData(_context, _viewport, data_raw)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  data = data_raw.kind_of?(ImGuiPlatformImeData) ? data_raw : ImGuiPlatformImeData.new(data_raw)
  ImGui_ImplDockingSDL3_CopyImeData(bd.ime_data, data)
  bd.ime_dirty = true
  ImGui_ImplDockingSDL3_UpdateIme
end

.ImGui_ImplDockingSDL3_RenderWindow(viewport_raw, _render_arg) ⇒ Object



1069
1070
1071
1072
1073
1074
1075
# File 'lib/imgui_impl_docking_sdl3.rb', line 1069

def self.ImGui_ImplDockingSDL3_RenderWindow(viewport_raw, _render_arg)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil || vd.gl_context == nil

  SDL.GL_MakeCurrent(vd.window, vd.gl_context)
end

.ImGui_ImplDockingSDL3_SetClipboardText(_context, text) ⇒ Object



288
289
290
# File 'lib/imgui_impl_docking_sdl3.rb', line 288

def self.ImGui_ImplDockingSDL3_SetClipboardText(_context, text)
  SDL.SetClipboardText(text)
end

.ImGui_ImplDockingSDL3_SetupPlatformHandles(viewport_raw, window) ⇒ Object



334
335
336
337
338
339
340
341
342
343
344
345
# File 'lib/imgui_impl_docking_sdl3.rb', line 334

def self.ImGui_ImplDockingSDL3_SetupPlatformHandles(viewport_raw, window)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  viewport[:PlatformHandle] = FFI::Pointer.new(SDL.GetWindowID(window))
  viewport[:PlatformHandleRaw] = nil
  if FFI::Platform.windows?
    props = SDL.GetWindowProperties(window)
    viewport[:PlatformHandleRaw] = SDL.GetPointerProperty(props, SDL::PROP_WINDOW_WIN32_HWND_POINTER, nil)
  elsif FFI::Platform.mac?
    props = SDL.GetWindowProperties(window)
    viewport[:PlatformHandleRaw] = SDL.GetPointerProperty(props, SDL::PROP_WINDOW_COCOA_WINDOW_POINTER, nil)
  end
end

.ImGui_ImplDockingSDL3_SetViewportData(viewport_raw, data) ⇒ Object



92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/imgui_impl_docking_sdl3.rb', line 92

def self.ImGui_ImplDockingSDL3_SetViewportData(viewport_raw, data)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  if data == nil
    bd.viewport_data.delete(viewport.pointer.address)
    viewport[:PlatformUserData] = nil
  else
    bd.viewport_data[viewport.pointer.address] = data
    viewport[:PlatformUserData] = ImGui_ImplDockingSDL3_GetViewportToken(viewport)
  end
end

.ImGui_ImplDockingSDL3_SetWindowAlpha(viewport_raw, alpha) ⇒ Object



1037
1038
1039
1040
1041
1042
1043
# File 'lib/imgui_impl_docking_sdl3.rb', line 1037

def self.ImGui_ImplDockingSDL3_SetWindowAlpha(viewport_raw, alpha)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil

  SDL.SetWindowOpacity(vd.window, alpha)
end

.ImGui_ImplDockingSDL3_SetWindowFocus(viewport_raw) ⇒ Object



1045
1046
1047
1048
1049
1050
1051
# File 'lib/imgui_impl_docking_sdl3.rb', line 1045

def self.ImGui_ImplDockingSDL3_SetWindowFocus(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil

  SDL.RaiseWindow(vd.window)
end

.ImGui_ImplDockingSDL3_SetWindowPos(viewport_raw, pos) ⇒ Object



993
994
995
996
997
998
999
# File 'lib/imgui_impl_docking_sdl3.rb', line 993

def self.ImGui_ImplDockingSDL3_SetWindowPos(viewport_raw, pos)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil

  SDL.SetWindowPosition(vd.window, pos[:x].to_i, pos[:y].to_i)
end

.ImGui_ImplDockingSDL3_SetWindowSize(viewport_raw, size) ⇒ Object



1012
1013
1014
1015
1016
1017
1018
# File 'lib/imgui_impl_docking_sdl3.rb', line 1012

def self.ImGui_ImplDockingSDL3_SetWindowSize(viewport_raw, size)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil

  SDL.SetWindowSize(vd.window, size[:x].to_i, size[:y].to_i)
end

.ImGui_ImplDockingSDL3_SetWindowTitle(viewport_raw, title) ⇒ Object



1029
1030
1031
1032
1033
1034
1035
# File 'lib/imgui_impl_docking_sdl3.rb', line 1029

def self.ImGui_ImplDockingSDL3_SetWindowTitle(viewport_raw, title)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil

  SDL.SetWindowTitle(vd.window, title)
end

.ImGui_ImplDockingSDL3_ShowWindow(viewport_raw) ⇒ Object



955
956
957
958
959
960
961
962
963
964
965
966
967
# File 'lib/imgui_impl_docking_sdl3.rb', line 955

def self.ImGui_ImplDockingSDL3_ShowWindow(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil

  hint = if FFI::Platform.mac?
    '1'
  else
    (viewport[:Flags] & ImGuiViewportFlags_NoFocusOnAppearing) != 0 ? '0' : '1'
  end
  SDL.SetHint(SDL::HINT_WINDOW_ACTIVATE_WHEN_SHOWN, hint) if defined?(SDL::HINT_WINDOW_ACTIVATE_WHEN_SHOWN)
  SDL.ShowWindow(vd.window)
end

.ImGui_ImplDockingSDL3_ShutdownMultiViewportSupportObject



1125
1126
1127
# File 'lib/imgui_impl_docking_sdl3.rb', line 1125

def self.ImGui_ImplDockingSDL3_ShutdownMultiViewportSupport
  ImGui::DestroyPlatformWindows()
end

.ImGui_ImplDockingSDL3_SwapBuffers(viewport_raw, _render_arg) ⇒ Object



1077
1078
1079
1080
1081
1082
1083
1084
# File 'lib/imgui_impl_docking_sdl3.rb', line 1077

def self.ImGui_ImplDockingSDL3_SwapBuffers(viewport_raw, _render_arg)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil || vd.gl_context == nil

  SDL.GL_MakeCurrent(vd.window, vd.gl_context)
  SDL.GL_SwapWindow(vd.window)
end

.ImGui_ImplDockingSDL3_UpdateImeObject



302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
# File 'lib/imgui_impl_docking_sdl3.rb', line 302

def self.ImGui_ImplDockingSDL3_UpdateIme
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  data = bd.ime_data
  window = SDL.GetKeyboardFocus()

  if (!(data[:WantVisible] || data[:WantTextInput]) || bd.ime_window != window) && bd.ime_window != nil
    SDL.StopTextInput(bd.ime_window)
    bd.ime_window = nil
  end
  return if (!bd.ime_dirty && bd.ime_window == window) || window == nil

  bd.ime_dirty = false
  if data[:WantVisible]
    viewport_pos = ImVec2.create(0.0, 0.0)
    viewport = ImGui_ImplDockingSDL3_GetViewportForWindowID(SDL.GetWindowID(window))
    if viewport != nil
      viewport_pos[:x] = viewport[:Pos][:x]
      viewport_pos[:y] = viewport[:Pos][:y]
    end
    rect = SDL::Rect.new
    rect[:x] = (data[:InputPos][:x] - viewport_pos[:x]).to_i
    rect[:y] = (data[:InputPos][:y] - viewport_pos[:y]).to_i
    rect[:w] = 1
    rect[:h] = data[:InputLineHeight].to_i
    SDL.SetTextInputArea(window, rect, 0)
    bd.ime_window = window
  end
  SDL.StartTextInput(window) if !SDL.TextInputActive(window) && (data[:WantVisible] || data[:WantTextInput])
end

.ImGui_ImplDockingSDL3_UpdateKeyModifiers(sdl_key_mods) ⇒ Object



262
263
264
265
266
267
268
# File 'lib/imgui_impl_docking_sdl3.rb', line 262

def self.ImGui_ImplDockingSDL3_UpdateKeyModifiers(sdl_key_mods)
  io = ImGuiIO.new(ImGui::GetIO())
  io.AddKeyEvent(ImGuiMod_Ctrl, (sdl_key_mods & SDL::KMOD_CTRL) != 0)
  io.AddKeyEvent(ImGuiMod_Shift, (sdl_key_mods & SDL::KMOD_SHIFT) != 0)
  io.AddKeyEvent(ImGuiMod_Alt, (sdl_key_mods & SDL::KMOD_ALT) != 0)
  io.AddKeyEvent(ImGuiMod_Super, (sdl_key_mods & SDL::KMOD_GUI) != 0)
end

.ImGui_ImplDockingSDL3_UpdateMonitorsObject



347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
# File 'lib/imgui_impl_docking_sdl3.rb', line 347

def self.ImGui_ImplDockingSDL3_UpdateMonitors
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  monitors = platform_io[:Monitors]
  monitors[:Size] = 0
  bd.want_update_monitors = false

  count_ptr = FFI::MemoryPointer.new(:int)
  displays_ptr = SDL.GetDisplays(count_ptr)
  display_count = count_ptr.read_int

  if displays_ptr == nil || displays_ptr.address == 0 || display_count <= 0
    bd.monitor_memory = nil
    monitors[:Capacity] = 0
    monitors[:Data] = nil
    return
  end

  bd.monitor_memory = FFI::MemoryPointer.new(ImGuiPlatformMonitor, display_count)
  monitors[:Capacity] = display_count
  monitors[:Data] = bd.monitor_memory

  valid_count = 0
  display_count.times do |index|
    display_id = (displays_ptr + index * FFI.type_size(:uint)).read_uint
    monitor = ImGuiPlatformMonitor.new(bd.monitor_memory + valid_count * ImGuiPlatformMonitor.size)
    rect = SDL::Rect.new
    SDL.GetDisplayBounds(display_id, rect)
    monitor[:MainPos][:x] = rect[:x].to_f
    monitor[:MainPos][:y] = rect[:y].to_f
    monitor[:WorkPos][:x] = rect[:x].to_f
    monitor[:WorkPos][:y] = rect[:y].to_f
    monitor[:MainSize][:x] = rect[:w].to_f
    monitor[:MainSize][:y] = rect[:h].to_f
    monitor[:WorkSize][:x] = rect[:w].to_f
    monitor[:WorkSize][:y] = rect[:h].to_f
    if SDL.GetDisplayUsableBounds(display_id, rect) && rect[:w] > 0 && rect[:h] > 0
      monitor[:WorkPos][:x] = rect[:x].to_f
      monitor[:WorkPos][:y] = rect[:y].to_f
      monitor[:WorkSize][:x] = rect[:w].to_f
      monitor[:WorkSize][:y] = rect[:h].to_f
    end
    monitor[:DpiScale] = SDL.GetDisplayContentScale(display_id)
    next if monitor[:DpiScale] <= 0.0

    monitor[:PlatformHandle] = FFI::Pointer.new(index)
    valid_count += 1
  end

  monitors[:Size] = valid_count

  SDL.free(displays_ptr)
end

.ImGui_ImplDockingSDL3_UpdateWindow(viewport_raw) ⇒ Object



969
970
971
972
973
974
975
976
977
978
979
980
# File 'lib/imgui_impl_docking_sdl3.rb', line 969

def self.ImGui_ImplDockingSDL3_UpdateWindow(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil || FFI::Platform.mac?

  new_parent = nil
  new_parent = ImGui_ImplDockingSDL3_GetSDLWindowFromViewport(viewport[:ParentViewport]) if viewport[:ParentViewport] != nil && viewport[:ParentViewport].address != 0
  if new_parent != vd.parent_window
    vd.parent_window = new_parent
    SDL.SetWindowParent(vd.window, vd.parent_window)
  end
end

.ImGui_ImplDockingSDLRenderer3_GetBackendDataObject



22
23
24
25
26
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 22

def self.ImGui_ImplDockingSDLRenderer3_GetBackendData
  return nil if ImGui::GetCurrentContext() == nil

  @@g_DockingSDL3BackendRendererUserData[ImGui::GetCurrentContext().address]
end

.ImGui_ImplRaylib_GetBackendDataObject

INTERNAL


46
47
48
49
50
51
52
# File 'lib/imgui_impl_raylib.rb', line 46

def self.ImGui_ImplRaylib_GetBackendData()
  if ImGui::GetCurrentContext() != nil
    @@g_BackendData[ImGui::GetCurrentContext().address]
  else
    nil
  end
end

.ImGui_ImplRaylib_KeyToImGuiKey(key) ⇒ Object

INTERNAL


254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
# File 'lib/imgui_impl_raylib.rb', line 254

def self.ImGui_ImplRaylib_KeyToImGuiKey(key)
  case key
  when Raylib::KEY_TAB then ImGuiKey_Tab
  when Raylib::KEY_LEFT then ImGuiKey_LeftArrow
  when Raylib::KEY_RIGHT then ImGuiKey_RightArrow
  when Raylib::KEY_UP then ImGuiKey_UpArrow
  when Raylib::KEY_DOWN then ImGuiKey_DownArrow
  when Raylib::KEY_PAGE_UP then ImGuiKey_PageUp
  when Raylib::KEY_PAGE_DOWN then ImGuiKey_PageDown
  when Raylib::KEY_HOME then ImGuiKey_Home
  when Raylib::KEY_END then ImGuiKey_End
  when Raylib::KEY_INSERT then ImGuiKey_Insert
  when Raylib::KEY_DELETE then ImGuiKey_Delete
  when Raylib::KEY_BACKSPACE then ImGuiKey_Backspace
  when Raylib::KEY_SPACE then ImGuiKey_Space
  when Raylib::KEY_ENTER then ImGuiKey_Enter
  when Raylib::KEY_ESCAPE then ImGuiKey_Escape
  when Raylib::KEY_APOSTROPHE then ImGuiKey_Apostrophe
  when Raylib::KEY_COMMA then ImGuiKey_Comma
  when Raylib::KEY_MINUS then ImGuiKey_Minus
  when Raylib::KEY_PERIOD then ImGuiKey_Period
  when Raylib::KEY_SLASH then ImGuiKey_Slash
  when Raylib::KEY_SEMICOLON then ImGuiKey_Semicolon
  when Raylib::KEY_EQUAL then ImGuiKey_Equal
  when Raylib::KEY_LEFT_BRACKET then ImGuiKey_LeftBracket
  when Raylib::KEY_BACKSLASH then ImGuiKey_Backslash
  when Raylib::KEY_RIGHT_BRACKET then ImGuiKey_RightBracket
  when Raylib::KEY_GRAVE then ImGuiKey_GraveAccent
  when Raylib::KEY_CAPS_LOCK then ImGuiKey_CapsLock
  when Raylib::KEY_SCROLL_LOCK then ImGuiKey_ScrollLock
  when Raylib::KEY_NUM_LOCK then ImGuiKey_NumLock
  when Raylib::KEY_PRINT_SCREEN then ImGuiKey_PrintScreen
  when Raylib::KEY_PAUSE then ImGuiKey_Pause
  when Raylib::KEY_KP_0 then ImGuiKey_Keypad0
  when Raylib::KEY_KP_1 then ImGuiKey_Keypad1
  when Raylib::KEY_KP_2 then ImGuiKey_Keypad2
  when Raylib::KEY_KP_3 then ImGuiKey_Keypad3
  when Raylib::KEY_KP_4 then ImGuiKey_Keypad4
  when Raylib::KEY_KP_5 then ImGuiKey_Keypad5
  when Raylib::KEY_KP_6 then ImGuiKey_Keypad6
  when Raylib::KEY_KP_7 then ImGuiKey_Keypad7
  when Raylib::KEY_KP_8 then ImGuiKey_Keypad8
  when Raylib::KEY_KP_9 then ImGuiKey_Keypad9
  when Raylib::KEY_KP_DECIMAL then ImGuiKey_KeypadDecimal
  when Raylib::KEY_KP_DIVIDE then ImGuiKey_KeypadDivide
  when Raylib::KEY_KP_MULTIPLY then ImGuiKey_KeypadMultiply
  when Raylib::KEY_KP_SUBTRACT then ImGuiKey_KeypadSubtract
  when Raylib::KEY_KP_ADD then ImGuiKey_KeypadAdd
  when Raylib::KEY_KP_ENTER then ImGuiKey_KeypadEnter
  when Raylib::KEY_KP_EQUAL then ImGuiKey_KeypadEqual
  when Raylib::KEY_LEFT_CONTROL then ImGuiKey_LeftCtrl
  when Raylib::KEY_LEFT_SHIFT then ImGuiKey_LeftShift
  when Raylib::KEY_LEFT_ALT then ImGuiKey_LeftAlt
  when Raylib::KEY_LEFT_SUPER then ImGuiKey_LeftSuper
  when Raylib::KEY_RIGHT_CONTROL then ImGuiKey_RightCtrl
  when Raylib::KEY_RIGHT_SHIFT then ImGuiKey_RightShift
  when Raylib::KEY_RIGHT_ALT then ImGuiKey_RightAlt
  when Raylib::KEY_RIGHT_SUPER then ImGuiKey_RightSuper
  when Raylib::KEY_KB_MENU then ImGuiKey_Menu
  when Raylib::KEY_ZERO then ImGuiKey_0
  when Raylib::KEY_ONE then ImGuiKey_1
  when Raylib::KEY_TWO then ImGuiKey_2
  when Raylib::KEY_THREE then ImGuiKey_3
  when Raylib::KEY_FOUR then ImGuiKey_4
  when Raylib::KEY_FIVE then ImGuiKey_5
  when Raylib::KEY_SIX then ImGuiKey_6
  when Raylib::KEY_SEVEN then ImGuiKey_7
  when Raylib::KEY_EIGHT then ImGuiKey_8
  when Raylib::KEY_NINE then ImGuiKey_9
  when Raylib::KEY_A then ImGuiKey_A
  when Raylib::KEY_B then ImGuiKey_B
  when Raylib::KEY_C then ImGuiKey_C
  when Raylib::KEY_D then ImGuiKey_D
  when Raylib::KEY_E then ImGuiKey_E
  when Raylib::KEY_F then ImGuiKey_F
  when Raylib::KEY_G then ImGuiKey_G
  when Raylib::KEY_H then ImGuiKey_H
  when Raylib::KEY_I then ImGuiKey_I
  when Raylib::KEY_J then ImGuiKey_J
  when Raylib::KEY_K then ImGuiKey_K
  when Raylib::KEY_L then ImGuiKey_L
  when Raylib::KEY_M then ImGuiKey_M
  when Raylib::KEY_N then ImGuiKey_N
  when Raylib::KEY_O then ImGuiKey_O
  when Raylib::KEY_P then ImGuiKey_P
  when Raylib::KEY_Q then ImGuiKey_Q
  when Raylib::KEY_R then ImGuiKey_R
  when Raylib::KEY_S then ImGuiKey_S
  when Raylib::KEY_T then ImGuiKey_T
  when Raylib::KEY_U then ImGuiKey_U
  when Raylib::KEY_V then ImGuiKey_V
  when Raylib::KEY_W then ImGuiKey_W
  when Raylib::KEY_X then ImGuiKey_X
  when Raylib::KEY_Y then ImGuiKey_Y
  when Raylib::KEY_Z then ImGuiKey_Z
  when Raylib::KEY_F1 then ImGuiKey_F1
  when Raylib::KEY_F2 then ImGuiKey_F2
  when Raylib::KEY_F3 then ImGuiKey_F3
  when Raylib::KEY_F4 then ImGuiKey_F4
  when Raylib::KEY_F5 then ImGuiKey_F5
  when Raylib::KEY_F6 then ImGuiKey_F6
  when Raylib::KEY_F7 then ImGuiKey_F7
  when Raylib::KEY_F8 then ImGuiKey_F8
  when Raylib::KEY_F9 then ImGuiKey_F9
  when Raylib::KEY_F10 then ImGuiKey_F10
  when Raylib::KEY_F11 then ImGuiKey_F11
  when Raylib::KEY_F12 then ImGuiKey_F12
  else ImGuiKey_None
  end
end

.ImGui_ImplRaylib_UpdateKeyModifiersObject

INTERNAL


366
367
368
369
370
371
372
# File 'lib/imgui_impl_raylib.rb', line 366

def self.ImGui_ImplRaylib_UpdateKeyModifiers()
  io = ImGuiIO.new(ImGui::GetIO())
  io.AddKeyEvent(ImGuiMod_Ctrl, Raylib.IsKeyDown(Raylib::KEY_RIGHT_CONTROL) || Raylib.IsKeyDown(Raylib::KEY_LEFT_CONTROL))
  io.AddKeyEvent(ImGuiMod_Shift, Raylib.IsKeyDown(Raylib::KEY_RIGHT_SHIFT) || Raylib.IsKeyDown(Raylib::KEY_LEFT_SHIFT))
  io.AddKeyEvent(ImGuiMod_Alt, Raylib.IsKeyDown(Raylib::KEY_RIGHT_ALT) || Raylib.IsKeyDown(Raylib::KEY_LEFT_ALT))
  io.AddKeyEvent(ImGuiMod_Super, Raylib.IsKeyDown(Raylib::KEY_RIGHT_SUPER) || Raylib.IsKeyDown(Raylib::KEY_LEFT_SUPER))
end

.ImGui_ImplSDL3_GetBackendDataObject



44
45
46
47
# File 'lib/imgui_impl_sdl3.rb', line 44

def self.ImGui_ImplSDL3_GetBackendData()
  return nil if ImGui::GetCurrentContext() == nil
  @@g_BackendData[ImGui::GetCurrentContext().address]
end

.ImGui_ImplSDL3_GetViewportForWindowID(window_id) ⇒ Object



53
54
55
56
57
# File 'lib/imgui_impl_sdl3.rb', line 53

def self.ImGui_ImplSDL3_GetViewportForWindowID(window_id)
  bd = ImGui_ImplSDL3_GetBackendData()
  return nil if bd == nil
  window_id == bd.window_id ? ImGuiViewport.new(ImGui::GetMainViewport()) : nil
end

.ImGui_ImplSDL3_IsTouchMouse(which_id) ⇒ Object



49
50
51
# File 'lib/imgui_impl_sdl3.rb', line 49

def self.ImGui_ImplSDL3_IsTouchMouse(which_id)
  which_id == SDL::TOUCH_MOUSEID || which_id == 0xffffffff
end

.ImGui_ImplSDL3_KeyEventToImGuiKey(keycode, scancode) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
# File 'lib/imgui_impl_sdl3.rb', line 59

def self.ImGui_ImplSDL3_KeyEventToImGuiKey(keycode, scancode)
  case scancode
  when SDL::SCANCODE_KP_0 then ImGuiKey_Keypad0
  when SDL::SCANCODE_KP_1 then ImGuiKey_Keypad1
  when SDL::SCANCODE_KP_2 then ImGuiKey_Keypad2
  when SDL::SCANCODE_KP_3 then ImGuiKey_Keypad3
  when SDL::SCANCODE_KP_4 then ImGuiKey_Keypad4
  when SDL::SCANCODE_KP_5 then ImGuiKey_Keypad5
  when SDL::SCANCODE_KP_6 then ImGuiKey_Keypad6
  when SDL::SCANCODE_KP_7 then ImGuiKey_Keypad7
  when SDL::SCANCODE_KP_8 then ImGuiKey_Keypad8
  when SDL::SCANCODE_KP_9 then ImGuiKey_Keypad9
  when SDL::SCANCODE_KP_PERIOD then ImGuiKey_KeypadDecimal
  when SDL::SCANCODE_KP_DIVIDE then ImGuiKey_KeypadDivide
  when SDL::SCANCODE_KP_MULTIPLY then ImGuiKey_KeypadMultiply
  when SDL::SCANCODE_KP_MINUS then ImGuiKey_KeypadSubtract
  when SDL::SCANCODE_KP_PLUS then ImGuiKey_KeypadAdd
  when SDL::SCANCODE_KP_ENTER then ImGuiKey_KeypadEnter
  when SDL::SCANCODE_KP_EQUALS then ImGuiKey_KeypadEqual
  end

  case keycode
  when SDL::SDLK_TAB then ImGuiKey_Tab
  when SDL::SDLK_LEFT then ImGuiKey_LeftArrow
  when SDL::SDLK_RIGHT then ImGuiKey_RightArrow
  when SDL::SDLK_UP then ImGuiKey_UpArrow
  when SDL::SDLK_DOWN then ImGuiKey_DownArrow
  when SDL::SDLK_PAGEUP then ImGuiKey_PageUp
  when SDL::SDLK_PAGEDOWN then ImGuiKey_PageDown
  when SDL::SDLK_HOME then ImGuiKey_Home
  when SDL::SDLK_END then ImGuiKey_End
  when SDL::SDLK_INSERT then ImGuiKey_Insert
  when SDL::SDLK_DELETE then ImGuiKey_Delete
  when SDL::SDLK_BACKSPACE then ImGuiKey_Backspace
  when SDL::SDLK_SPACE then ImGuiKey_Space
  when SDL::SDLK_RETURN then ImGuiKey_Enter
  when SDL::SDLK_ESCAPE then ImGuiKey_Escape
  when SDL::SDLK_COMMA then ImGuiKey_Comma
  when SDL::SDLK_PERIOD then ImGuiKey_Period
  when SDL::SDLK_SEMICOLON then ImGuiKey_Semicolon
  when SDL::SDLK_CAPSLOCK then ImGuiKey_CapsLock
  when SDL::SDLK_SCROLLLOCK then ImGuiKey_ScrollLock
  when SDL::SDLK_NUMLOCKCLEAR then ImGuiKey_NumLock
  when SDL::SDLK_PRINTSCREEN then ImGuiKey_PrintScreen
  when SDL::SDLK_PAUSE then ImGuiKey_Pause
  when SDL::SDLK_LCTRL then ImGuiKey_LeftCtrl
  when SDL::SDLK_LSHIFT then ImGuiKey_LeftShift
  when SDL::SDLK_LALT then ImGuiKey_LeftAlt
  when SDL::SDLK_LGUI then ImGuiKey_LeftSuper
  when SDL::SDLK_RCTRL then ImGuiKey_RightCtrl
  when SDL::SDLK_RSHIFT then ImGuiKey_RightShift
  when SDL::SDLK_RALT then ImGuiKey_RightAlt
  when SDL::SDLK_RGUI then ImGuiKey_RightSuper
  when SDL::SDLK_APPLICATION then ImGuiKey_Menu
  when SDL::SDLK_0 then ImGuiKey_0
  when SDL::SDLK_1 then ImGuiKey_1
  when SDL::SDLK_2 then ImGuiKey_2
  when SDL::SDLK_3 then ImGuiKey_3
  when SDL::SDLK_4 then ImGuiKey_4
  when SDL::SDLK_5 then ImGuiKey_5
  when SDL::SDLK_6 then ImGuiKey_6
  when SDL::SDLK_7 then ImGuiKey_7
  when SDL::SDLK_8 then ImGuiKey_8
  when SDL::SDLK_9 then ImGuiKey_9
  when SDL::SDLK_A then ImGuiKey_A
  when SDL::SDLK_B then ImGuiKey_B
  when SDL::SDLK_C then ImGuiKey_C
  when SDL::SDLK_D then ImGuiKey_D
  when SDL::SDLK_E then ImGuiKey_E
  when SDL::SDLK_F then ImGuiKey_F
  when SDL::SDLK_G then ImGuiKey_G
  when SDL::SDLK_H then ImGuiKey_H
  when SDL::SDLK_I then ImGuiKey_I
  when SDL::SDLK_J then ImGuiKey_J
  when SDL::SDLK_K then ImGuiKey_K
  when SDL::SDLK_L then ImGuiKey_L
  when SDL::SDLK_M then ImGuiKey_M
  when SDL::SDLK_N then ImGuiKey_N
  when SDL::SDLK_O then ImGuiKey_O
  when SDL::SDLK_P then ImGuiKey_P
  when SDL::SDLK_Q then ImGuiKey_Q
  when SDL::SDLK_R then ImGuiKey_R
  when SDL::SDLK_S then ImGuiKey_S
  when SDL::SDLK_T then ImGuiKey_T
  when SDL::SDLK_U then ImGuiKey_U
  when SDL::SDLK_V then ImGuiKey_V
  when SDL::SDLK_W then ImGuiKey_W
  when SDL::SDLK_X then ImGuiKey_X
  when SDL::SDLK_Y then ImGuiKey_Y
  when SDL::SDLK_Z then ImGuiKey_Z
  when SDL::SDLK_F1 then ImGuiKey_F1
  when SDL::SDLK_F2 then ImGuiKey_F2
  when SDL::SDLK_F3 then ImGuiKey_F3
  when SDL::SDLK_F4 then ImGuiKey_F4
  when SDL::SDLK_F5 then ImGuiKey_F5
  when SDL::SDLK_F6 then ImGuiKey_F6
  when SDL::SDLK_F7 then ImGuiKey_F7
  when SDL::SDLK_F8 then ImGuiKey_F8
  when SDL::SDLK_F9 then ImGuiKey_F9
  when SDL::SDLK_F10 then ImGuiKey_F10
  when SDL::SDLK_F11 then ImGuiKey_F11
  when SDL::SDLK_F12 then ImGuiKey_F12
  when SDL::SDLK_F13 then ImGuiKey_F13
  when SDL::SDLK_F14 then ImGuiKey_F14
  when SDL::SDLK_F15 then ImGuiKey_F15
  when SDL::SDLK_F16 then ImGuiKey_F16
  when SDL::SDLK_F17 then ImGuiKey_F17
  when SDL::SDLK_F18 then ImGuiKey_F18
  when SDL::SDLK_F19 then ImGuiKey_F19
  when SDL::SDLK_F20 then ImGuiKey_F20
  when SDL::SDLK_F21 then ImGuiKey_F21
  when SDL::SDLK_F22 then ImGuiKey_F22
  when SDL::SDLK_F23 then ImGuiKey_F23
  when SDL::SDLK_F24 then ImGuiKey_F24
  when SDL::SDLK_AC_BACK then ImGuiKey_AppBack
  when SDL::SDLK_AC_FORWARD then ImGuiKey_AppForward
  else
    case scancode
    when SDL::SCANCODE_GRAVE then ImGuiKey_GraveAccent
    when SDL::SCANCODE_MINUS then ImGuiKey_Minus
    when SDL::SCANCODE_EQUALS then ImGuiKey_Equal
    when SDL::SCANCODE_LEFTBRACKET then ImGuiKey_LeftBracket
    when SDL::SCANCODE_RIGHTBRACKET then ImGuiKey_RightBracket
    when SDL::SCANCODE_NONUSBACKSLASH then ImGuiKey_Oem102
    when SDL::SCANCODE_BACKSLASH then ImGuiKey_Backslash
    when SDL::SCANCODE_SEMICOLON then ImGuiKey_Semicolon
    when SDL::SCANCODE_APOSTROPHE then ImGuiKey_Apostrophe
    when SDL::SCANCODE_COMMA then ImGuiKey_Comma
    when SDL::SCANCODE_PERIOD then ImGuiKey_Period
    when SDL::SCANCODE_SLASH then ImGuiKey_Slash
    else ImGuiKey_None
    end
  end
end

.ImGui_ImplSDL3_UpdateKeyModifiers(sdl_key_mods) ⇒ Object



194
195
196
197
198
199
200
# File 'lib/imgui_impl_sdl3.rb', line 194

def self.ImGui_ImplSDL3_UpdateKeyModifiers(sdl_key_mods)
  io = ImGuiIO.new(ImGui::GetIO())
  io.AddKeyEvent(ImGuiMod_Ctrl, (sdl_key_mods & SDL::KMOD_CTRL) != 0)
  io.AddKeyEvent(ImGuiMod_Shift, (sdl_key_mods & SDL::KMOD_SHIFT) != 0)
  io.AddKeyEvent(ImGuiMod_Alt, (sdl_key_mods & SDL::KMOD_ALT) != 0)
  io.AddKeyEvent(ImGuiMod_Super, (sdl_key_mods & SDL::KMOD_GUI) != 0)
end

.ImGui_ImplSDLRenderer3_GetBackendDataObject



16
17
18
19
20
# File 'lib/imgui_impl_sdl3renderer.rb', line 16

def self.ImGui_ImplSDLRenderer3_GetBackendData()
  return nil if ImGui::GetCurrentContext() == nil

  @@g_BackendRendererUserData[ImGui::GetCurrentContext().address]
end

.ImplDockingOpenGL3_AsGLPointer(pointer) ⇒ Object



354
355
356
357
358
# File 'lib/imgui_impl_docking_opengl3.rb', line 354

def self.ImplDockingOpenGL3_AsGLPointer(pointer)
  return nil if pointer.nil? || pointer.null?

  Fiddle::Pointer.new(pointer.to_i)
end

.ImplDockingOpenGL3_CreateDeviceObjectsObject



435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
# File 'lib/imgui_impl_docking_opengl3.rb', line 435

def self.ImplDockingOpenGL3_CreateDeviceObjects()
  last_texture = ' ' * 4
  last_array_buffer = ' ' * 4
  GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)
  GL.GetIntegerv(GL::ARRAY_BUFFER_BINDING, last_array_buffer)

  last_vertex_array = ' ' * 4
  GL.GetIntegerv(GL::VERTEX_ARRAY_BINDING, last_vertex_array)

  glsl_version = @@g_DockingGL3GlslVersionString.split[1].to_i

  vertex_shader_glsl_120 = <<-'SRC'
  uniform mat4 ProjMtx;
  attribute vec2 Position;
  attribute vec2 UV;
  attribute vec4 Color;
  varying vec2 Frag_UV;
  varying vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  vertex_shader_glsl_130 = <<-'SRC'
  uniform mat4 ProjMtx;
  in vec2 Position;
  in vec2 UV;
  in vec4 Color;
  out vec2 Frag_UV;
  out vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  vertex_shader_glsl_300_es = <<-'SRC'
  precision highp float;
  layout (location = 0) in vec2 Position;
  layout (location = 1) in vec2 UV;
  layout (location = 2) in vec4 Color;
  uniform mat4 ProjMtx;
  out vec2 Frag_UV;
  out vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  vertex_shader_glsl_410_core = <<-'SRC'
  layout (location = 0) in vec2 Position;
  layout (location = 1) in vec2 UV;
  layout (location = 2) in vec4 Color;
  uniform mat4 ProjMtx;
  out vec2 Frag_UV;
  out vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  fragment_shader_glsl_120 = <<-'SRC'
  #ifdef GL_ES
      precision mediump float;
  #endif
  uniform sampler2D Texture;
  varying vec2 Frag_UV;
  varying vec4 Frag_Color;
  void main()
  {
      gl_FragColor = Frag_Color * texture2D(Texture, Frag_UV.st);
  }
  SRC

  fragment_shader_glsl_130 = <<-'SRC'
  uniform sampler2D Texture;
  in vec2 Frag_UV;
  in vec4 Frag_Color;
  out vec4 Out_Color;
  void main()
  {
      Out_Color = Frag_Color * texture(Texture, Frag_UV.st);
  }
  SRC

  fragment_shader_glsl_300_es = <<-'SRC'
  precision mediump float;
  uniform sampler2D Texture;
  in vec2 Frag_UV;
  in vec4 Frag_Color;
  layout (location = 0) out vec4 Out_Color;
  void main()
  {
      Out_Color = Frag_Color * texture(Texture, Frag_UV.st);
  }
  SRC

  fragment_shader_glsl_410_core = <<-'SRC'
  in vec2 Frag_UV;
  in vec4 Frag_Color;
  uniform sampler2D Texture;
  layout (location = 0) out vec4 Out_Color;
  void main()
  {
      Out_Color = Frag_Color * texture(Texture, Frag_UV.st);
  }
  SRC

  vertex_shader, fragment_shader = if glsl_version < 130
                                     [vertex_shader_glsl_120, fragment_shader_glsl_120]
                                   elsif glsl_version >= 410
                                     [vertex_shader_glsl_410_core, fragment_shader_glsl_410_core]
                                   elsif glsl_version == 300
                                     [vertex_shader_glsl_300_es, fragment_shader_glsl_300_es]
                                   else
                                     [vertex_shader_glsl_130, fragment_shader_glsl_130]
                                   end

  vert_handle = GL.CreateShader(GL::VERTEX_SHADER)
  GL.ShaderSource(vert_handle, 2, [@@g_DockingGL3GlslVersionString, vertex_shader].pack('p*'), nil)
  GL.CompileShader(vert_handle)
  return false unless ImplDockingOpenGL3_PrintShaderCompileStatus(vert_handle)

  frag_handle = GL.CreateShader(GL::FRAGMENT_SHADER)
  GL.ShaderSource(frag_handle, 2, [@@g_DockingGL3GlslVersionString, fragment_shader].pack('p*'), nil)
  GL.CompileShader(frag_handle)
  return false unless ImplDockingOpenGL3_PrintShaderCompileStatus(frag_handle)

  @@g_DockingGL3ShaderHandle = GL.CreateProgram()
  GL.AttachShader(@@g_DockingGL3ShaderHandle, vert_handle)
  GL.AttachShader(@@g_DockingGL3ShaderHandle, frag_handle)
  GL.LinkProgram(@@g_DockingGL3ShaderHandle)
  return false unless ImplDockingOpenGL3_PrintProgramLinkStatus(@@g_DockingGL3ShaderHandle)

  GL.DetachShader(@@g_DockingGL3ShaderHandle, vert_handle)
  GL.DetachShader(@@g_DockingGL3ShaderHandle, frag_handle)
  GL.DeleteShader(vert_handle)
  GL.DeleteShader(frag_handle)

  @@g_DockingGL3AttribLocationTex = GL.GetUniformLocation(@@g_DockingGL3ShaderHandle, 'Texture')
  @@g_DockingGL3AttribLocationProjMtx = GL.GetUniformLocation(@@g_DockingGL3ShaderHandle, 'ProjMtx')
  @@g_DockingGL3AttribLocationVtxPos = GL.GetAttribLocation(@@g_DockingGL3ShaderHandle, 'Position')
  @@g_DockingGL3AttribLocationVtxUV = GL.GetAttribLocation(@@g_DockingGL3ShaderHandle, 'UV')
  @@g_DockingGL3AttribLocationVtxColor = GL.GetAttribLocation(@@g_DockingGL3ShaderHandle, 'Color')

  vbo_mem = ' ' * 4
  elem_mem = ' ' * 4
  GL.GenBuffers(1, vbo_mem)
  GL.GenBuffers(1, elem_mem)
  @@g_DockingGL3VboHandle = vbo_mem.unpack1('L')
  @@g_DockingGL3ElementsHandle = elem_mem.unpack1('L')

  GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
  GL.BindBuffer(GL::ARRAY_BUFFER, last_array_buffer.unpack1('L'))
  GL.BindVertexArray(last_vertex_array.unpack1('L'))

  true
end

.ImplDockingOpenGL3_CreateFontsTextureObject

Compatibility wrapper retained for older caller code.



295
296
297
# File 'lib/imgui_impl_docking_opengl3.rb', line 295

def self.ImplDockingOpenGL3_CreateFontsTexture()
  true
end

.ImplDockingOpenGL3_DestroyDeviceObjectsObject



605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
# File 'lib/imgui_impl_docking_opengl3.rb', line 605

def self.ImplDockingOpenGL3_DestroyDeviceObjects()
  if @@g_DockingGL3VboHandle != 0
    GL.DeleteBuffers(1, [@@g_DockingGL3VboHandle].pack('L'))
    @@g_DockingGL3VboHandle = 0
  end

  if @@g_DockingGL3ElementsHandle != 0
    GL.DeleteBuffers(1, [@@g_DockingGL3ElementsHandle].pack('L'))
    @@g_DockingGL3ElementsHandle = 0
  end

  if @@g_DockingGL3ShaderHandle != 0
    GL.DeleteProgram(@@g_DockingGL3ShaderHandle)
    @@g_DockingGL3ShaderHandle = 0
  end

  # Destroy textures retained only by the renderer backend.
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  textures = platform_io[:Textures]
  tex_data = textures[:Data]

  if !tex_data.nil? && !tex_data.null?
    pointer_stride = FFI::Pointer.size
    textures[:Size].times do |i|
      tex_ptr = (tex_data + pointer_stride * i).read_pointer
      next if tex_ptr.nil? || tex_ptr.null?

      tex = ImTextureData.new(tex_ptr)
      ImplDockingOpenGL3_DestroyTexture(tex) if tex[:RefCount] == 1
    end
  end
end

.ImplDockingOpenGL3_DestroyFontsTextureObject

Compatibility wrapper retained for older caller code.



300
301
302
# File 'lib/imgui_impl_docking_opengl3.rb', line 300

def self.ImplDockingOpenGL3_DestroyFontsTexture()
  nil
end

.ImplDockingOpenGL3_DestroyTexture(tex) ⇒ Object



344
345
346
347
348
349
350
351
352
# File 'lib/imgui_impl_docking_opengl3.rb', line 344

def self.ImplDockingOpenGL3_DestroyTexture(tex)
  gl_tex_id = tex.GetTexID()
  if gl_tex_id != 0
    GL.DeleteTextures(1, [gl_tex_id].pack('L'))
  end

  tex.SetTexID(0)
  tex.SetStatus(ImTextureStatus_Destroyed)
end

.ImplDockingOpenGL3_Init(glsl_version = nil) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/imgui_impl_docking_opengl3.rb', line 64

def self.ImplDockingOpenGL3_Init(glsl_version = nil)
  major, minor = ' ' * 4, ' ' * 4
  GL.GetIntegerv(GL::MAJOR_VERSION, major)
  GL.GetIntegerv(GL::MINOR_VERSION, minor)
  major = major.unpack1('L')
  minor = minor.unpack1('L')

  # OpenGL 2.x fallback when GL_MAJOR_VERSION/GL_MINOR_VERSION are unavailable.
  if major == 0 && minor == 0 && GL.respond_to?(:GetString)
    version_string = GL.GetString(GL::VERSION).to_s
    parts = version_string.split(/[ .]/)
    major = parts[0].to_i
    minor = parts[1].to_i
  end

  @@g_DockingGL3GlVersion = major * 100 + minor * 10

  max_texture_size = ' ' * 4
  GL.GetIntegerv(GL::MAX_TEXTURE_SIZE, max_texture_size)
  @@g_DockingGL3MaxTextureSize = max_texture_size.unpack1('L')

  io = ImGuiIO.new(ImGui::GetIO())
  io[:BackendRendererName] = @@g_DockingGL3BackendRendererName
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasVtxOffset if @@g_DockingGL3GlVersion >= 320
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasTextures
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasViewports

  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  platform_io[:Renderer_TextureMaxWidth] = @@g_DockingGL3MaxTextureSize
  platform_io[:Renderer_TextureMaxHeight] = @@g_DockingGL3MaxTextureSize

  if glsl_version.nil?
    if GL.get_platform() == :OPENGL_PLATFORM_MACOSX
      glsl_version = '#version 150'
    else
      glsl_version = '#version 130'
    end
  end

  @@g_DockingGL3GlslVersionString = glsl_version.end_with?("\n") ? glsl_version.dup : "#{glsl_version}\n"

  ImplDockingOpenGL3_InitMultiViewportSupport()

  true
end

.ImplDockingOpenGL3_InitMultiViewportSupportObject



316
317
318
319
320
321
322
323
324
325
# File 'lib/imgui_impl_docking_opengl3.rb', line 316

def self.ImplDockingOpenGL3_InitMultiViewportSupport()
  if @@g_DockingGL3RendererCallbacks == nil
    @@g_DockingGL3RendererCallbacks = {
      render_window: FFI::Function.new(:void, [:pointer, :pointer]) { |viewport, arg| ImGui_ImplDockingOpenGL3_RenderWindow(viewport, arg) }
    }
  end

  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  platform_io[:Renderer_RenderWindow] = @@g_DockingGL3RendererCallbacks[:render_window]
end

.ImplDockingOpenGL3_NewFrameObject



125
126
127
# File 'lib/imgui_impl_docking_opengl3.rb', line 125

def self.ImplDockingOpenGL3_NewFrame()
  ImplDockingOpenGL3_CreateDeviceObjects() if @@g_DockingGL3ShaderHandle == 0
end

.ImplDockingOpenGL3_PrintProgramLinkStatus(handle) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/imgui_impl_docking_opengl3.rb', line 46

def self.ImplDockingOpenGL3_PrintProgramLinkStatus(handle)
  rvalue = ' ' * 4
  GL.GetProgramiv(handle, GL::LINK_STATUS, rvalue)
  ok = rvalue.unpack1('L')
  return true if ok == GL::TRUE

  $stderr.puts "Error in linking program"
  log_length = ' ' * 4
  GL.GetProgramiv(handle, GL::INFO_LOG_LENGTH, log_length)
  log_length = log_length.unpack1('L')
  if log_length > 0
    buf = ' ' * log_length
    GL.GetProgramInfoLog(handle, log_length, nil, buf)
    $stderr.puts(buf)
  end
  false
end

.ImplDockingOpenGL3_PrintShaderCompileStatus(handle) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/imgui_impl_docking_opengl3.rb', line 28

def self.ImplDockingOpenGL3_PrintShaderCompileStatus(handle)
  rvalue = ' ' * 4
  GL.GetShaderiv(handle, GL::COMPILE_STATUS, rvalue)
  ok = rvalue.unpack1('L')
  return true if ok == GL::TRUE

  $stderr.puts "Error in compiling shader"
  log_length = ' ' * 4
  GL.GetShaderiv(handle, GL::INFO_LOG_LENGTH, log_length)
  log_length = log_length.unpack1('L')
  if log_length > 0
    buf = ' ' * log_length
    GL.GetShaderInfoLog(handle, log_length, nil, buf)
    $stderr.puts(buf)
  end
  false
end

.ImplDockingOpenGL3_ProcessTextureUpdates(draw_data) ⇒ Object



327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
# File 'lib/imgui_impl_docking_opengl3.rb', line 327

def self.ImplDockingOpenGL3_ProcessTextureUpdates(draw_data)
  textures_ptr = draw_data[:Textures]
  return if textures_ptr.nil? || textures_ptr.null?

  textures = ImVector.new(textures_ptr)
  data_ptr = textures[:Data]
  pointer_stride = FFI::Pointer.size

  textures[:Size].times do |i|
    tex_ptr = (data_ptr + pointer_stride * i).read_pointer
    next if tex_ptr.nil? || tex_ptr.null?

    tex = ImTextureData.new(tex_ptr)
    ImplDockingOpenGL3_UpdateTexture(tex) if tex[:Status] != ImTextureStatus_OK
  end
end

.ImplDockingOpenGL3_RenderDrawData(draw_data_raw) ⇒ Object



129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
# File 'lib/imgui_impl_docking_opengl3.rb', line 129

def self.ImplDockingOpenGL3_RenderDrawData(draw_data_raw)
  draw_data = ImDrawData.new(draw_data_raw)

  # Avoid rendering when minimized, scale coordinates for retina displays.
  fb_width = (draw_data[:DisplaySize][:x] * draw_data[:FramebufferScale][:x]).to_i
  fb_height = (draw_data[:DisplaySize][:y] * draw_data[:FramebufferScale][:y]).to_i
  return if fb_width <= 0 || fb_height <= 0

  ImplDockingOpenGL3_ProcessTextureUpdates(draw_data)

  last_active_texture = ' ' * 4; GL.GetIntegerv(GL::ACTIVE_TEXTURE, last_active_texture)
  GL.ActiveTexture(GL::TEXTURE0)

  last_program = ' ' * 4; GL.GetIntegerv(GL::CURRENT_PROGRAM, last_program)
  last_texture = ' ' * 4; GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)

  has_sampler = defined?(GL::SAMPLER_BINDING)
  last_sampler = ' ' * 4
  GL.GetIntegerv(GL::SAMPLER_BINDING, last_sampler) if has_sampler

  last_array_buffer = ' ' * 4; GL.GetIntegerv(GL::ARRAY_BUFFER_BINDING, last_array_buffer)
  last_vertex_array_object = ' ' * 4; GL.GetIntegerv(GL::VERTEX_ARRAY_BINDING, last_vertex_array_object)

  last_polygon_mode = ' ' * 8; GL.GetIntegerv(GL::POLYGON_MODE, last_polygon_mode)
  last_viewport = ' ' * 16; GL.GetIntegerv(GL::VIEWPORT, last_viewport)
  last_scissor_box = ' ' * 16; GL.GetIntegerv(GL::SCISSOR_BOX, last_scissor_box)

  last_blend_src_rgb = ' ' * 4; GL.GetIntegerv(GL::BLEND_SRC_RGB, last_blend_src_rgb)
  last_blend_dst_rgb = ' ' * 4; GL.GetIntegerv(GL::BLEND_DST_RGB, last_blend_dst_rgb)
  last_blend_src_alpha = ' ' * 4; GL.GetIntegerv(GL::BLEND_SRC_ALPHA, last_blend_src_alpha)
  last_blend_dst_alpha = ' ' * 4; GL.GetIntegerv(GL::BLEND_DST_ALPHA, last_blend_dst_alpha)
  last_blend_equation_rgb = ' ' * 4; GL.GetIntegerv(GL::BLEND_EQUATION_RGB, last_blend_equation_rgb)
  last_blend_equation_alpha = ' ' * 4; GL.GetIntegerv(GL::BLEND_EQUATION_ALPHA, last_blend_equation_alpha)

  last_enable_blend = GL.IsEnabled(GL::BLEND)
  last_enable_cull_face = GL.IsEnabled(GL::CULL_FACE)
  last_enable_depth_test = GL.IsEnabled(GL::DEPTH_TEST)
  last_enable_stencil_test = GL.IsEnabled(GL::STENCIL_TEST)
  last_enable_scissor_test = GL.IsEnabled(GL::SCISSOR_TEST)

  # Recreate VAO every frame so this works across multiple GL contexts.
  vao_mem = ' ' * 4
  GL.GenVertexArrays(1, vao_mem)
  vertex_array_object = vao_mem.unpack1('L')
  ImplDockingOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object)

  clip_off = draw_data[:DisplayPos]
  clip_scale = draw_data[:FramebufferScale]

  cmd_list_data = draw_data[:CmdLists][:Data]
  pointer_stride = FFI::Pointer.size

  draw_data[:CmdListsCount].times do |n|
    cmd_list_ptr = (cmd_list_data + pointer_stride * n).read_pointer
    cmd_list = ImDrawList.new(cmd_list_ptr)

    vtx_size = cmd_list[:VtxBuffer][:Size] * ImDrawVert.size
    idx_size = cmd_list[:IdxBuffer][:Size] * 2 # ImDrawIdx is currently ushort in generated bindings.

    GL.BufferData(GL::ARRAY_BUFFER, vtx_size, Fiddle::Pointer.new(cmd_list[:VtxBuffer][:Data]), GL::STREAM_DRAW)
    GL.BufferData(GL::ELEMENT_ARRAY_BUFFER, idx_size, Fiddle::Pointer.new(cmd_list[:IdxBuffer][:Data]), GL::STREAM_DRAW)

    cmd_list[:CmdBuffer][:Size].times do |cmd_i|
      pcmd = ImDrawCmd.new(cmd_list[:CmdBuffer][:Data] + ImDrawCmd.size * cmd_i)
      if pcmd[:UserCallback] != nil
        # Reset callback token is not exposed cleanly in current bindings, so keep old behavior.
        ImplDockingOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object)
        next
      end

      clip_min_x = (pcmd[:ClipRect][:x] - clip_off[:x]) * clip_scale[:x]
      clip_min_y = (pcmd[:ClipRect][:y] - clip_off[:y]) * clip_scale[:y]
      clip_max_x = (pcmd[:ClipRect][:z] - clip_off[:x]) * clip_scale[:x]
      clip_max_y = (pcmd[:ClipRect][:w] - clip_off[:y]) * clip_scale[:y]

      next if clip_max_x <= clip_min_x || clip_max_y <= clip_min_y

      GL.Scissor(clip_min_x.to_i, (fb_height - clip_max_y).to_i, (clip_max_x - clip_min_x).to_i, (clip_max_y - clip_min_y).to_i)

      GL.BindTexture(GL::TEXTURE_2D, pcmd.GetTexID())
      if @@g_DockingGL3GlVersion >= 320
        GL.DrawElementsBaseVertex(GL::TRIANGLES, pcmd[:ElemCount], GL::UNSIGNED_SHORT, Fiddle::Pointer.new(pcmd[:IdxOffset] * 2), pcmd[:VtxOffset])
      else
        GL.DrawElements(GL::TRIANGLES, pcmd[:ElemCount], GL::UNSIGNED_SHORT, Fiddle::Pointer.new(pcmd[:IdxOffset] * 2))
      end
    end
  end

  GL.DeleteVertexArrays(1, [vertex_array_object].pack('L'))

  GL.UseProgram(last_program.unpack1('L'))
  GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
  GL.BindSampler(0, last_sampler.unpack1('L')) if has_sampler
  GL.ActiveTexture(last_active_texture.unpack1('L'))
  GL.BindVertexArray(last_vertex_array_object.unpack1('L'))
  GL.BindBuffer(GL::ARRAY_BUFFER, last_array_buffer.unpack1('L'))

  GL.BlendEquationSeparate(last_blend_equation_rgb.unpack1('L'), last_blend_equation_alpha.unpack1('L'))
  GL.BlendFuncSeparate(
    last_blend_src_rgb.unpack1('L'),
    last_blend_dst_rgb.unpack1('L'),
    last_blend_src_alpha.unpack1('L'),
    last_blend_dst_alpha.unpack1('L')
  )

  if last_enable_blend then GL.Enable(GL::BLEND) else GL.Disable(GL::BLEND) end
  if last_enable_cull_face then GL.Enable(GL::CULL_FACE) else GL.Disable(GL::CULL_FACE) end
  if last_enable_depth_test then GL.Enable(GL::DEPTH_TEST) else GL.Disable(GL::DEPTH_TEST) end
  if last_enable_stencil_test then GL.Enable(GL::STENCIL_TEST) else GL.Disable(GL::STENCIL_TEST) end
  if last_enable_scissor_test then GL.Enable(GL::SCISSOR_TEST) else GL.Disable(GL::SCISSOR_TEST) end

  last_polygon_mode = last_polygon_mode.unpack('L2')
  GL.PolygonMode(GL::FRONT_AND_BACK, last_polygon_mode[0])

  last_viewport = last_viewport.unpack('L4')
  GL.Viewport(last_viewport[0], last_viewport[1], last_viewport[2], last_viewport[3])

  last_scissor_box = last_scissor_box.unpack('L4')
  GL.Scissor(last_scissor_box[0], last_scissor_box[1], last_scissor_box[2], last_scissor_box[3])
end

.ImplDockingOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object) ⇒ Object



250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
# File 'lib/imgui_impl_docking_opengl3.rb', line 250

def self.ImplDockingOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object)
  GL.Enable(GL::BLEND)
  GL.BlendEquation(GL::FUNC_ADD)
  GL.BlendFuncSeparate(GL::SRC_ALPHA, GL::ONE_MINUS_SRC_ALPHA, GL::ONE, GL::ONE_MINUS_SRC_ALPHA)
  GL.Disable(GL::CULL_FACE)
  GL.Disable(GL::DEPTH_TEST)
  GL.Disable(GL::STENCIL_TEST)
  GL.Enable(GL::SCISSOR_TEST)
  GL.PolygonMode(GL::FRONT_AND_BACK, GL::FILL)

  GL.Viewport(0, 0, fb_width, fb_height)
  l = draw_data[:DisplayPos][:x]
  r = draw_data[:DisplayPos][:x] + draw_data[:DisplaySize][:x]
  t = draw_data[:DisplayPos][:y]
  b = draw_data[:DisplayPos][:y] + draw_data[:DisplaySize][:y]

  ortho_projection = [
    2.0 / (r - l), 0.0, 0.0, 0.0,
    0.0, 2.0 / (t - b), 0.0, 0.0,
    0.0, 0.0, -1.0, 0.0,
    (r + l) / (l - r), (t + b) / (b - t), 0.0, 1.0,
  ]

  GL.UseProgram(@@g_DockingGL3ShaderHandle)
  GL.Uniform1i(@@g_DockingGL3AttribLocationTex, 0)
  GL.UniformMatrix4fv(@@g_DockingGL3AttribLocationProjMtx, 1, GL::FALSE, ortho_projection.pack('F16'))

  if defined?(GL::SAMPLER_BINDING)
    GL.BindSampler(0, 0)
  end

  GL.BindVertexArray(vertex_array_object)
  GL.BindBuffer(GL::ARRAY_BUFFER, @@g_DockingGL3VboHandle)
  GL.BindBuffer(GL::ELEMENT_ARRAY_BUFFER, @@g_DockingGL3ElementsHandle)

  GL.EnableVertexAttribArray(@@g_DockingGL3AttribLocationVtxPos)
  GL.EnableVertexAttribArray(@@g_DockingGL3AttribLocationVtxUV)
  GL.EnableVertexAttribArray(@@g_DockingGL3AttribLocationVtxColor)

  GL.VertexAttribPointer(@@g_DockingGL3AttribLocationVtxPos, 2, GL::FLOAT, GL::FALSE, ImDrawVert.size, ImDrawVert.offset_of(:pos))
  GL.VertexAttribPointer(@@g_DockingGL3AttribLocationVtxUV, 2, GL::FLOAT, GL::FALSE, ImDrawVert.size, ImDrawVert.offset_of(:uv))
  GL.VertexAttribPointer(@@g_DockingGL3AttribLocationVtxColor, 4, GL::UNSIGNED_BYTE, GL::TRUE, ImDrawVert.size, ImDrawVert.offset_of(:col))
end

.ImplDockingOpenGL3_ShutdownObject



110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/imgui_impl_docking_opengl3.rb', line 110

def self.ImplDockingOpenGL3_Shutdown()
  ImplDockingOpenGL3_DestroyDeviceObjects()

  io = ImGuiIO.new(ImGui::GetIO())
  io[:BackendRendererName] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures)

  begin
    platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
    platform_io.ClearRendererHandlers()
  rescue StandardError
    # Older generated bindings may not expose all platform IO helpers.
  end
end

.ImplDockingOpenGL3_UpdateTexture(tex) ⇒ Object



360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
# File 'lib/imgui_impl_docking_opengl3.rb', line 360

def self.ImplDockingOpenGL3_UpdateTexture(tex)
  status = tex[:Status]

  if status == ImTextureStatus_WantCreate || status == ImTextureStatus_WantUpdates
    GL.PixelStorei(GL::UNPACK_ROW_LENGTH, 0) if defined?(GL::UNPACK_ROW_LENGTH)
    GL.PixelStorei(GL::UNPACK_ALIGNMENT, 1) if defined?(GL::UNPACK_ALIGNMENT)
  end

  if status == ImTextureStatus_WantCreate
    return unless tex[:Format] == ImTextureFormat_RGBA32

    last_texture = ' ' * 4
    GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)

    texture_mem = ' ' * 4
    GL.GenTextures(1, texture_mem)
    gl_texture_id = texture_mem.unpack1('L')

    GL.BindTexture(GL::TEXTURE_2D, gl_texture_id)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_MIN_FILTER, GL::LINEAR)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_MAG_FILTER, GL::LINEAR)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_WRAP_S, GL::CLAMP_TO_EDGE)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_WRAP_T, GL::CLAMP_TO_EDGE)

    pixels_ptr = ImplDockingOpenGL3_AsGLPointer(tex[:Pixels])
    GL.TexImage2D(GL::TEXTURE_2D, 0, GL::RGBA, tex[:Width], tex[:Height], 0, GL::RGBA, GL::UNSIGNED_BYTE, pixels_ptr)

    tex.SetTexID(gl_texture_id)
    tex.SetStatus(ImTextureStatus_OK)

    GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
    return
  end

  if status == ImTextureStatus_WantUpdates
    last_texture = ' ' * 4
    GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)

    GL.BindTexture(GL::TEXTURE_2D, tex.GetTexID())

    updates = tex[:Updates]
    updates_ptr = updates[:Data]

    if !updates_ptr.nil? && !updates_ptr.null?
      if defined?(GL::UNPACK_ROW_LENGTH)
        GL.PixelStorei(GL::UNPACK_ROW_LENGTH, tex[:Width])

        updates[:Size].times do |i|
          rect = ImTextureRect.new(updates_ptr + i * ImTextureRect.size)
          pixels_ptr = ImplDockingOpenGL3_AsGLPointer(tex.GetPixelsAt(rect[:x], rect[:y]))
          GL.TexSubImage2D(GL::TEXTURE_2D, 0, rect[:x], rect[:y], rect[:w], rect[:h], GL::RGBA, GL::UNSIGNED_BYTE, pixels_ptr)
        end

        GL.PixelStorei(GL::UNPACK_ROW_LENGTH, 0)
      else
        updates[:Size].times do |i|
          rect = ImTextureRect.new(updates_ptr + i * ImTextureRect.size)
          rect[:h].times do |line|
            pixels_ptr = ImplDockingOpenGL3_AsGLPointer(tex.GetPixelsAt(rect[:x], rect[:y] + line))
            GL.TexSubImage2D(GL::TEXTURE_2D, 0, rect[:x], rect[:y] + line, rect[:w], 1, GL::RGBA, GL::UNSIGNED_BYTE, pixels_ptr)
          end
        end
      end
    end

    tex.SetStatus(ImTextureStatus_OK)
    GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
    return
  end

  if status == ImTextureStatus_WantDestroy && tex[:UnusedFrames] > 0
    ImplDockingOpenGL3_DestroyTexture(tex)
  end
end

.ImplDockingRaylib_InitObject

Docking-compatible wrapper API (single viewport only)



757
758
759
# File 'lib/imgui_impl_raylib.rb', line 757

def self.ImplDockingRaylib_Init()
  ImplRaylib_Init()
end

.ImplDockingRaylib_NewFrameObject

Docking-compatible wrapper API (single viewport only)



767
768
769
# File 'lib/imgui_impl_raylib.rb', line 767

def self.ImplDockingRaylib_NewFrame()
  ImplRaylib_NewFrame()
end

.ImplDockingRaylib_RenderDrawData(draw_data_raw) ⇒ Object

Docking-compatible wrapper API (single viewport only)



772
773
774
# File 'lib/imgui_impl_raylib.rb', line 772

def self.ImplDockingRaylib_RenderDrawData(draw_data_raw)
  ImplRaylib_RenderDrawData(draw_data_raw)
end

.ImplDockingRaylib_ShutdownObject

Docking-compatible wrapper API (single viewport only)



762
763
764
# File 'lib/imgui_impl_raylib.rb', line 762

def self.ImplDockingRaylib_Shutdown()
  ImplRaylib_Shutdown()
end

.ImplDockingRaylib_UpdateCamera(camera, mode) ⇒ Object

Docking-compatible wrapper API (single viewport only)



777
778
779
# File 'lib/imgui_impl_raylib.rb', line 777

def self.ImplDockingRaylib_UpdateCamera(camera, mode)
  ImplRaylib_UpdateCamera(camera, mode)
end

.ImplDockingSDL3_CloseGamepadsObject



658
659
660
661
662
663
664
665
666
# File 'lib/imgui_impl_docking_sdl3.rb', line 658

def self.ImplDockingSDL3_CloseGamepads
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  if bd.gamepad_mode != ImGui_ImplDockingSDL3_GamepadMode_Manual
    bd.gamepads.each { |gamepad| SDL.CloseGamepad(gamepad) if gamepad != nil }
  end
  bd.gamepads = []
end

.ImplDockingSDL3_Init(window, renderer = nil, sdl_gl_context = nil) ⇒ Object



563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
# File 'lib/imgui_impl_docking_sdl3.rb', line 563

def self.ImplDockingSDL3_Init(window, renderer = nil, sdl_gl_context = nil)
  io = ImGuiIO.new(ImGui::GetIO())
  raise 'Already initialized a platform backend!' if io[:BackendPlatformUserData] != nil && io[:BackendPlatformUserData].address != 0

  bd = ImGui_ImplDockingSDL3_Data.new
  bd.window = window
  bd.window_id = SDL.GetWindowID(window)
  bd.renderer = renderer

  sdl_backend = SDL.GetCurrentVideoDriver()
  sdl_backend_name = sdl_backend == nil ? '' : sdl_backend.read_string
  %w[windows cocoa x11 DIVE VMAN].each do |platform|
    next unless sdl_backend_name.start_with?(platform)

    bd.mouse_can_use_global_state = true
    bd.mouse_capture_mode = platform == 'x11' ? ImGui_ImplDockingSDL3_MouseCaptureMode_EnabledAfterDrag : ImGui_ImplDockingSDL3_MouseCaptureMode_Enabled
    break
  end
  bd.mouse_can_report_hovered_viewport = !FFI::Platform.mac? && bd.mouse_can_use_global_state

  @@g_DockingSDL3BackendData[ImGui::GetCurrentContext().address] = bd

  io[:BackendPlatformUserData] = FFI::Pointer.new(ImGui::GetCurrentContext().address)
  io[:BackendPlatformName] = @@g_DockingSDL3BackendPlatformName
  io[:BackendFlags] |= ImGuiBackendFlags_HasMouseCursors
  io[:BackendFlags] |= ImGuiBackendFlags_HasSetMousePos
  if bd.mouse_can_use_global_state
    io[:BackendFlags] |= ImGuiBackendFlags_PlatformHasViewports
    io[:BackendFlags] |= ImGuiBackendFlags_HasParentViewport
  end

  callbacks = ImGui_ImplDockingSDL3_EnsureCallbacks()
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  platform_io[:Platform_SetClipboardTextFn] = callbacks[:set_clipboard_text]
  platform_io[:Platform_GetClipboardTextFn] = callbacks[:get_clipboard_text]
  platform_io[:Platform_SetImeDataFn] = callbacks[:set_ime_data]
  platform_io[:Platform_OpenInShellFn] = callbacks[:open_in_shell]

  bd.want_update_monitors = true
  ImGui_ImplDockingSDL3_UpdateMonitors()

  bd.mouse_cursors[ImGuiMouseCursor_Arrow] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_DEFAULT)
  bd.mouse_cursors[ImGuiMouseCursor_TextInput] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_TEXT)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeAll] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_MOVE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeNS] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NS_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeEW] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_EW_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeNESW] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NESW_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeNWSE] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NWSE_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_Hand] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_POINTER)
  bd.mouse_cursors[ImGuiMouseCursor_Wait] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_WAIT)
  bd.mouse_cursors[ImGuiMouseCursor_Progress] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_PROGRESS)
  bd.mouse_cursors[ImGuiMouseCursor_NotAllowed] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NOT_ALLOWED)

  main_viewport = ImGuiViewport.new(ImGui::GetMainViewport())
  ImGui_ImplDockingSDL3_SetupPlatformHandles(main_viewport, window)

  SDL.SetHint(SDL::HINT_MOUSE_FOCUS_CLICKTHROUGH, '1') if defined?(SDL::HINT_MOUSE_FOCUS_CLICKTHROUGH)
  SDL.SetHint(SDL::HINT_MOUSE_AUTO_CAPTURE, '0') if defined?(SDL::HINT_MOUSE_AUTO_CAPTURE)
  SDL.SetHint('SDL_BORDERLESS_WINDOWED_STYLE', '0')

  ImGui_ImplDockingSDL3_InitMultiViewportSupport(window, sdl_gl_context) if (io[:BackendFlags] & ImGuiBackendFlags_PlatformHasViewports) != 0
  true
end

.ImplDockingSDL3_InitForD3D(window) ⇒ Object



638
639
640
# File 'lib/imgui_impl_docking_sdl3.rb', line 638

def self.ImplDockingSDL3_InitForD3D(window)
  ImplDockingSDL3_Init(window, nil, nil)
end

.ImplDockingSDL3_InitForMetal(window) ⇒ Object



642
643
644
# File 'lib/imgui_impl_docking_sdl3.rb', line 642

def self.ImplDockingSDL3_InitForMetal(window)
  ImplDockingSDL3_Init(window, nil, nil)
end

.ImplDockingSDL3_InitForOpenGL(window, sdl_gl_context = nil) ⇒ Object



627
628
629
# File 'lib/imgui_impl_docking_sdl3.rb', line 627

def self.ImplDockingSDL3_InitForOpenGL(window, sdl_gl_context = nil)
  ImplDockingSDL3_Init(window, nil, sdl_gl_context)
end

.ImplDockingSDL3_InitForOther(window) ⇒ Object



654
655
656
# File 'lib/imgui_impl_docking_sdl3.rb', line 654

def self.ImplDockingSDL3_InitForOther(window)
  ImplDockingSDL3_Init(window, nil, nil)
end

.ImplDockingSDL3_InitForSDLGPU(window) ⇒ Object



650
651
652
# File 'lib/imgui_impl_docking_sdl3.rb', line 650

def self.ImplDockingSDL3_InitForSDLGPU(window)
  ImplDockingSDL3_Init(window, nil, nil)
end

.ImplDockingSDL3_InitForSDLRenderer(window, renderer) ⇒ Object



646
647
648
# File 'lib/imgui_impl_docking_sdl3.rb', line 646

def self.ImplDockingSDL3_InitForSDLRenderer(window, renderer)
  ImplDockingSDL3_Init(window, renderer, nil)
end

.ImplDockingSDL3_InitForVulkan(window) ⇒ Object



631
632
633
634
635
636
# File 'lib/imgui_impl_docking_sdl3.rb', line 631

def self.ImplDockingSDL3_InitForVulkan(window)
  result = ImplDockingSDL3_Init(window, nil, nil)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  bd.use_vulkan = true if result && bd != nil
  result
end

.ImplDockingSDL3_NewFrameObject



860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
# File 'lib/imgui_impl_docking_sdl3.rb', line 860

def self.ImplDockingSDL3_NewFrame
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  raise 'Context or backend not initialized! Did you call ImGui::ImplDockingSDL3_Init()?' if bd == nil

  io = ImGuiIO.new(ImGui::GetIO())

  w, h, scale_x, scale_y = ImGui_ImplDockingSDL3_GetWindowSizeAndFramebufferScale(bd.window)
  io[:DisplaySize] = ImVec2.create(w.to_f, h.to_f)
  io[:DisplayFramebufferScale][:x] = scale_x
  io[:DisplayFramebufferScale][:y] = scale_y

  bd.want_update_monitors = true if FFI::Platform.windows?
  ImGui_ImplDockingSDL3_UpdateMonitors() if bd.want_update_monitors

  frequency = SDL.GetPerformanceFrequency()
  current_time = SDL.GetPerformanceCounter()
  current_time = bd.time + 1 if current_time <= bd.time
  io[:DeltaTime] = bd.time > 0 ? (current_time - bd.time).to_f / frequency.to_f : (1.0 / 60.0)
  bd.time = current_time

  if bd.mouse_pending_leave_frame != 0 && bd.mouse_pending_leave_frame >= ImGui::GetFrameCount() && bd.mouse_buttons_down == 0
    bd.mouse_window_id = 0
    bd.mouse_pending_leave_frame = 0
    io.AddMousePosEvent(-Float::MAX, -Float::MAX)
  end

  payload = ImGui::GetDragDropPayload()
  if bd.mouse_can_report_hovered_viewport && (payload == nil || payload.address == 0)
    io[:BackendFlags] |= ImGuiBackendFlags_HasMouseHoveredViewport
  else
    io[:BackendFlags] &= ~ImGuiBackendFlags_HasMouseHoveredViewport
  end

  ImplDockingSDL3_UpdateMouseData()
  ImplDockingSDL3_UpdateMouseCursor()
  ImGui_ImplDockingSDL3_UpdateIme()
  ImplDockingSDL3_UpdateGamepads()
end

.ImplDockingSDL3_ProcessEvent(event) ⇒ Object



458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
# File 'lib/imgui_impl_docking_sdl3.rb', line 458

def self.ImplDockingSDL3_ProcessEvent(event)
  io = ImGuiIO.new(ImGui::GetIO())
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return false if bd == nil

  event_type = event[:type]

  case event_type
  when SDL::EVENT_MOUSE_MOTION
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:motion][:windowID]) == nil
    mouse_x = event[:motion][:x].to_f
    mouse_y = event[:motion][:y].to_f
    if (io[:ConfigFlags] & ImGuiConfigFlags_ViewportsEnable) != 0
      window = SDL.GetWindowFromID(event[:motion][:windowID])
      if window != nil
        wx = FFI::MemoryPointer.new(:int)
        wy = FFI::MemoryPointer.new(:int)
        SDL.GetWindowPosition(window, wx, wy)
        mouse_x += wx.read_int
        mouse_y += wy.read_int
      end
    end
    io.AddMouseSourceEvent(ImGui_ImplDockingSDL3_IsTouchMouse(event[:motion][:which]) ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse)
    io.AddMousePosEvent(mouse_x, mouse_y)
    true

  when SDL::EVENT_MOUSE_WHEEL
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:wheel][:windowID]) == nil
    io.AddMouseSourceEvent(ImGui_ImplDockingSDL3_IsTouchMouse(event[:wheel][:which]) ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse)
    io.AddMouseWheelEvent(-event[:wheel][:x].to_f, event[:wheel][:y].to_f)
    true

  when SDL::EVENT_MOUSE_BUTTON_DOWN, SDL::EVENT_MOUSE_BUTTON_UP
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:button][:windowID]) == nil
    mouse_button = -1
    mouse_button = 0 if event[:button][:button] == SDL::BUTTON_LEFT
    mouse_button = 1 if event[:button][:button] == SDL::BUTTON_RIGHT
    mouse_button = 2 if event[:button][:button] == SDL::BUTTON_MIDDLE
    mouse_button = 3 if event[:button][:button] == SDL::BUTTON_X1
    mouse_button = 4 if event[:button][:button] == SDL::BUTTON_X2
    return false if mouse_button == -1

    is_down = event_type == SDL::EVENT_MOUSE_BUTTON_DOWN
    io.AddMouseSourceEvent(ImGui_ImplDockingSDL3_IsTouchMouse(event[:button][:which]) ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse)
    io.AddMouseButtonEvent(mouse_button, is_down)
    bd.mouse_buttons_down = is_down ? (bd.mouse_buttons_down | (1 << mouse_button)) : (bd.mouse_buttons_down & ~(1 << mouse_button))
    true

  when SDL::EVENT_TEXT_INPUT
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:text][:windowID]) == nil
    io.AddInputCharactersUTF8(event[:text][:text].read_string)
    true

  when SDL::EVENT_KEY_DOWN, SDL::EVENT_KEY_UP
    viewport = ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:key][:windowID])
    return false if viewport == nil
    ImGui_ImplDockingSDL3_UpdateKeyModifiers(event[:key][:mod])
    key = ImGui_ImplDockingSDL3_KeyEventToImGuiKey(event[:key][:key], event[:key][:scancode])
    io.AddKeyEvent(key, event_type == SDL::EVENT_KEY_DOWN)
    io.SetKeyEventNativeDataEx(key, event[:key][:key], event[:key][:scancode], event[:key][:scancode])
    true

  when SDL::EVENT_DISPLAY_ORIENTATION, SDL::EVENT_DISPLAY_ADDED, SDL::EVENT_DISPLAY_REMOVED,
       SDL::EVENT_DISPLAY_MOVED, SDL::EVENT_DISPLAY_CONTENT_SCALE_CHANGED
    bd.want_update_monitors = true
    true

  when SDL::EVENT_WINDOW_MOUSE_ENTER
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:window][:windowID]) == nil
    bd.mouse_window_id = event[:window][:windowID]
    bd.mouse_pending_leave_frame = 0
    true

  when SDL::EVENT_WINDOW_MOUSE_LEAVE
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:window][:windowID]) == nil
    bd.mouse_pending_leave_frame = ImGui::GetFrameCount() + 1
    true

  when SDL::EVENT_WINDOW_FOCUS_GAINED, SDL::EVENT_WINDOW_FOCUS_LOST
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:window][:windowID]) == nil
    io.AddFocusEvent(event_type == SDL::EVENT_WINDOW_FOCUS_GAINED)
    true

  when SDL::EVENT_WINDOW_CLOSE_REQUESTED, SDL::EVENT_WINDOW_MOVED, SDL::EVENT_WINDOW_RESIZED
    viewport = ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:window][:windowID])
    return false if viewport == nil
    viewport[:PlatformRequestClose] = true if event_type == SDL::EVENT_WINDOW_CLOSE_REQUESTED
    viewport[:PlatformRequestMove] = true if event_type == SDL::EVENT_WINDOW_MOVED
    viewport[:PlatformRequestResize] = true if event_type == SDL::EVENT_WINDOW_RESIZED
    true

  when SDL::EVENT_GAMEPAD_ADDED, SDL::EVENT_GAMEPAD_REMOVED
    bd.want_update_gamepads_list = true
    true

  else
    if defined?(SDL::EVENT_DISPLAY_USABLE_BOUNDS_CHANGED) && event_type == SDL::EVENT_DISPLAY_USABLE_BOUNDS_CHANGED
      bd.want_update_monitors = true
      true
    else
      false
    end
  end
end

.ImplDockingSDL3_Saturate(v) ⇒ Object



783
784
785
786
787
788
# File 'lib/imgui_impl_docking_sdl3.rb', line 783

def self.ImplDockingSDL3_Saturate(v)
  return 0.0 if v < 0.0
  return 1.0 if v > 1.0

  v
end

.ImplDockingSDL3_SetGamepadMode(mode, manual_gamepads_array = nil) ⇒ Object



668
669
670
671
672
673
674
675
676
677
678
679
# File 'lib/imgui_impl_docking_sdl3.rb', line 668

def self.ImplDockingSDL3_SetGamepadMode(mode, manual_gamepads_array = nil)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  ImplDockingSDL3_CloseGamepads()
  if mode == ImGui_ImplDockingSDL3_GamepadMode_Manual()
    bd.gamepads = manual_gamepads_array ? manual_gamepads_array.compact : []
  else
    bd.want_update_gamepads_list = true
  end
  bd.gamepad_mode = mode
end

.ImplDockingSDL3_SetMouseCaptureMode(mode) ⇒ Object



699
700
701
702
703
704
705
# File 'lib/imgui_impl_docking_sdl3.rb', line 699

def self.ImplDockingSDL3_SetMouseCaptureMode(mode)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  SDL.CaptureMouse(false) if mode == ImGui_ImplDockingSDL3_MouseCaptureMode_Disabled && bd.mouse_capture_mode != ImGui_ImplDockingSDL3_MouseCaptureMode_Disabled
  bd.mouse_capture_mode = mode
end

.ImplDockingSDL3_ShutdownObject



681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
# File 'lib/imgui_impl_docking_sdl3.rb', line 681

def self.ImplDockingSDL3_Shutdown
  io = ImGuiIO.new(ImGui::GetIO())
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  ImGui_ImplDockingSDL3_ShutdownMultiViewportSupport()
  SDL.free(bd.clipboard_text_data) if bd.clipboard_text_data != nil
  bd.mouse_cursors.each { |cursor| SDL.DestroyCursor(cursor) if cursor != nil }
  ImplDockingSDL3_CloseGamepads()

  io[:BackendPlatformName] = nil
  io[:BackendPlatformUserData] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_HasMouseCursors | ImGuiBackendFlags_HasSetMousePos | ImGuiBackendFlags_HasGamepad | ImGuiBackendFlags_PlatformHasViewports | ImGuiBackendFlags_HasMouseHoveredViewport | ImGuiBackendFlags_HasParentViewport)
  platform_io.ClearPlatformHandlers
  @@g_DockingSDL3BackendData.delete(ImGui::GetCurrentContext().address)
end

.ImplDockingSDL3_UpdateGamepadAnalog(bd, io, key, axis_no, v0, v1) ⇒ Object



798
799
800
801
802
803
804
805
# File 'lib/imgui_impl_docking_sdl3.rb', line 798

def self.ImplDockingSDL3_UpdateGamepadAnalog(bd, io, key, axis_no, v0, v1)
  merged_value = 0.0
  bd.gamepads.each do |gamepad|
    vn = ImplDockingSDL3_Saturate((SDL.GetGamepadAxis(gamepad, axis_no) - v0).to_f / (v1 - v0).to_f)
    merged_value = vn if merged_value < vn
  end
  io.AddKeyAnalogEvent(key, merged_value > 0.1, merged_value)
end

.ImplDockingSDL3_UpdateGamepadButton(bd, io, key, button_no) ⇒ Object



790
791
792
793
794
795
796
# File 'lib/imgui_impl_docking_sdl3.rb', line 790

def self.ImplDockingSDL3_UpdateGamepadButton(bd, io, key, button_no)
  merged_value = false
  bd.gamepads.each do |gamepad|
    merged_value ||= SDL.GetGamepadButton(gamepad, button_no)
  end
  io.AddKeyEvent(key, merged_value)
end

.ImplDockingSDL3_UpdateGamepadsObject



807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
# File 'lib/imgui_impl_docking_sdl3.rb', line 807

def self.ImplDockingSDL3_UpdateGamepads
  io = ImGuiIO.new(ImGui::GetIO())
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  if bd.want_update_gamepads_list && bd.gamepad_mode != ImGui_ImplDockingSDL3_GamepadMode_Manual
    ImplDockingSDL3_CloseGamepads()
    count_ptr = FFI::MemoryPointer.new(:int)
    gamepads_ptr = SDL.GetGamepads(count_ptr)
    count = count_ptr.read_int
    count.times do |n|
      joystick_id = (gamepads_ptr + n * FFI.type_size(:uint)).read_uint
      gamepad = SDL.OpenGamepad(joystick_id)
      next if gamepad == nil

      bd.gamepads << gamepad
      break if bd.gamepad_mode == ImGui_ImplDockingSDL3_GamepadMode_AutoFirst
    end
    bd.want_update_gamepads_list = false
    SDL.free(gamepads_ptr) if gamepads_ptr != nil
  end

  io[:BackendFlags] &= ~ImGuiBackendFlags_HasGamepad
  return if bd.gamepads.empty?

  io[:BackendFlags] |= ImGuiBackendFlags_HasGamepad
  dead_zone = 8000
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadStart, SDL::GAMEPAD_BUTTON_START)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadBack, SDL::GAMEPAD_BUTTON_BACK)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceLeft, SDL::GAMEPAD_BUTTON_WEST)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceRight, SDL::GAMEPAD_BUTTON_EAST)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceUp, SDL::GAMEPAD_BUTTON_NORTH)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceDown, SDL::GAMEPAD_BUTTON_SOUTH)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadLeft, SDL::GAMEPAD_BUTTON_DPAD_LEFT)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadRight, SDL::GAMEPAD_BUTTON_DPAD_RIGHT)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadUp, SDL::GAMEPAD_BUTTON_DPAD_UP)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadDown, SDL::GAMEPAD_BUTTON_DPAD_DOWN)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL1, SDL::GAMEPAD_BUTTON_LEFT_SHOULDER)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR1, SDL::GAMEPAD_BUTTON_RIGHT_SHOULDER)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadL2, SDL::GAMEPAD_AXIS_LEFT_TRIGGER, 0.0, 32767.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadR2, SDL::GAMEPAD_AXIS_RIGHT_TRIGGER, 0.0, 32767.0)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL3, SDL::GAMEPAD_BUTTON_LEFT_STICK)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR3, SDL::GAMEPAD_BUTTON_RIGHT_STICK)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickLeft, SDL::GAMEPAD_AXIS_LEFTX, -dead_zone, -32768.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickRight, SDL::GAMEPAD_AXIS_LEFTX, dead_zone, 32767.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickUp, SDL::GAMEPAD_AXIS_LEFTY, -dead_zone, -32768.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickDown, SDL::GAMEPAD_AXIS_LEFTY, dead_zone, 32767.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickLeft, SDL::GAMEPAD_AXIS_RIGHTX, -dead_zone, -32768.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickRight, SDL::GAMEPAD_AXIS_RIGHTX, dead_zone, 32767.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickUp, SDL::GAMEPAD_AXIS_RIGHTY, -dead_zone, -32768.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickDown, SDL::GAMEPAD_AXIS_RIGHTY, dead_zone, 32767.0)
end

.ImplDockingSDL3_UpdateMouseCursorObject



763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
# File 'lib/imgui_impl_docking_sdl3.rb', line 763

def self.ImplDockingSDL3_UpdateMouseCursor
  io = ImGuiIO.new(ImGui::GetIO())
  return if (io[:ConfigFlags] & ImGuiConfigFlags_NoMouseCursorChange) != 0

  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  imgui_cursor = ImGui::GetMouseCursor()
  if io[:MouseDrawCursor] || imgui_cursor == ImGuiMouseCursor_None
    SDL.HideCursor
  else
    expected_cursor = bd.mouse_cursors[imgui_cursor] || bd.mouse_cursors[ImGuiMouseCursor_Arrow]
    if bd.mouse_last_cursor != expected_cursor
      SDL.SetCursor(expected_cursor)
      bd.mouse_last_cursor = expected_cursor
    end
    SDL.ShowCursor
  end
end

.ImplDockingSDL3_UpdateMouseDataObject



707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
# File 'lib/imgui_impl_docking_sdl3.rb', line 707

def self.ImplDockingSDL3_UpdateMouseData
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  io = ImGuiIO.new(ImGui::GetIO())
  return if bd == nil

  if bd.mouse_capture_mode == ImGui_ImplDockingSDL3_MouseCaptureMode_Enabled
    SDL.CaptureMouse(bd.mouse_buttons_down != 0)
  elsif bd.mouse_capture_mode == ImGui_ImplDockingSDL3_MouseCaptureMode_EnabledAfterDrag
    want_capture = false
    ImGuiMouseButton_COUNT.times do |button_n|
      if ImGui::IsMouseDragging(button_n, 1.0)
        want_capture = true
        break
      end
    end
    SDL.CaptureMouse(want_capture)
  end

  focused_window = SDL.GetKeyboardFocus()
  is_app_focused = focused_window != nil && (bd.window == focused_window || ImGui_ImplDockingSDL3_GetViewportForWindowID(SDL.GetWindowID(focused_window)) != nil)
  return unless is_app_focused

  if io[:WantSetMousePos]
    if (io[:ConfigFlags] & ImGuiConfigFlags_ViewportsEnable) != 0
      SDL.WarpMouseGlobal(io[:MousePos][:x], io[:MousePos][:y])
    else
      SDL.WarpMouseInWindow(bd.window, io[:MousePos][:x], io[:MousePos][:y])
    end
  end

  hovered_window = SDL.GetMouseFocus()
  is_relative_mouse_mode = SDL.GetWindowRelativeMouseMode(bd.window)
  if hovered_window == nil && bd.mouse_can_use_global_state && bd.mouse_buttons_down == 0 && !is_relative_mouse_mode
    mx = FFI::MemoryPointer.new(:float)
    my = FFI::MemoryPointer.new(:float)
    SDL.GetGlobalMouseState(mx, my)
    mouse_x = mx.read_float
    mouse_y = my.read_float
    if (io[:ConfigFlags] & ImGuiConfigFlags_ViewportsEnable) == 0
      wx = FFI::MemoryPointer.new(:int)
      wy = FFI::MemoryPointer.new(:int)
      SDL.GetWindowPosition(focused_window, wx, wy)
      mouse_x -= wx.read_int
      mouse_y -= wy.read_int
    end
    io.AddMousePosEvent(mouse_x, mouse_y)
  end

  if (io[:BackendFlags] & ImGuiBackendFlags_HasMouseHoveredViewport) != 0
    mouse_viewport_id = 0
    mouse_viewport = ImGui_ImplDockingSDL3_GetViewportForWindowID(bd.mouse_window_id)
    mouse_viewport_id = mouse_viewport[:ID] if mouse_viewport != nil
    io.AddMouseViewportEvent(mouse_viewport_id)
  end
end

.ImplDockingSDL3Renderer_CreateDeviceObjectsObject



241
242
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 241

def self.ImplDockingSDL3Renderer_CreateDeviceObjects
end

.ImplDockingSDL3Renderer_DestroyDeviceObjectsObject



244
245
246
247
248
249
250
251
252
253
254
255
256
257
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 244

def self.ImplDockingSDL3Renderer_DestroyDeviceObjects
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  textures = platform_io[:Textures]
  textures[:Size].times do |i|
    tex_ptr = (textures[:Data] + FFI.type_size(:pointer) * i).read_pointer
    next if tex_ptr == nil || tex_ptr.address == 0

    tex = ImTextureData.new(tex_ptr)
    if tex[:RefCount] == 1
      tex.SetStatus(ImTextureStatus_WantDestroy)
      ImplDockingSDL3Renderer_UpdateTexture(tex)
    end
  end
end

.ImplDockingSDL3Renderer_EnsureColorBuffer(backend_data, num_vertices) ⇒ Object



74
75
76
77
78
79
80
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 74

def self.ImplDockingSDL3Renderer_EnsureColorBuffer(backend_data, num_vertices)
  if backend_data[:color_buffer] == nil || backend_data[:color_buffer_capacity] < num_vertices
    backend_data[:color_buffer] = FFI::MemoryPointer.new(SDL::FColor, num_vertices)
    backend_data[:color_buffer_capacity] = num_vertices
  end
  backend_data[:color_buffer]
end

.ImplDockingSDL3Renderer_Init(renderer) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 28

def self.ImplDockingSDL3Renderer_Init(renderer)
  io = ImGuiIO.new(ImGui::GetIO())

  backend_data = {
    bd: ImGui_ImplDockingSDLRenderer3_Data.new,
    color_buffer: nil,
    color_buffer_capacity: 0,
    render_state: nil
  }
  backend_data[:bd][:Renderer] = renderer

  @@g_DockingSDL3BackendRendererUserData[ImGui::GetCurrentContext().address] = backend_data

  io[:BackendRendererUserData] = backend_data[:bd]
  io[:BackendRendererName] = @@g_DockingSDL3BackendRendererName
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasVtxOffset
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasTextures
  true
end

.ImplDockingSDL3Renderer_NewFrameObject



69
70
71
72
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 69

def self.ImplDockingSDL3Renderer_NewFrame
  backend_data = ImGui_ImplDockingSDLRenderer3_GetBackendData
  raise 'Context or backend not initialized! Did you call ImGui::ImplDockingSDL3Renderer_Init()?' if backend_data == nil
end

.ImplDockingSDL3Renderer_RenderDrawData(draw_data_raw, renderer = nil) ⇒ Object



140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 140

def self.ImplDockingSDL3Renderer_RenderDrawData(draw_data_raw, renderer = nil)
  draw_data = draw_data_raw.kind_of?(ImDrawData) ? draw_data_raw : ImDrawData.new(draw_data_raw)
  backend_data = ImGui_ImplDockingSDLRenderer3_GetBackendData
  return if backend_data == nil

  renderer = backend_data[:bd][:Renderer] if renderer == nil
  return if renderer == nil

  rsx = FFI::MemoryPointer.new(:float)
  rsy = FFI::MemoryPointer.new(:float)
  SDL.GetRenderScale(renderer, rsx, rsy)
  render_scale = ImVec2.create(0.0, 0.0)
  render_scale[:x] = rsx.read_float == 1.0 ? draw_data[:FramebufferScale][:x] : 1.0
  render_scale[:y] = rsy.read_float == 1.0 ? draw_data[:FramebufferScale][:y] : 1.0

  fb_width = (draw_data[:DisplaySize][:x] * render_scale[:x]).to_i
  fb_height = (draw_data[:DisplaySize][:y] * render_scale[:y]).to_i
  return if fb_width == 0 || fb_height == 0

  if draw_data[:Textures] != nil && draw_data[:Textures].address != 0
    textures = ImVector_ImTextureDataPtr.new(draw_data[:Textures])
    textures[:Size].times do |i|
      tex_ptr = (textures[:Data] + FFI.type_size(:pointer) * i).read_pointer
      next if tex_ptr == nil || tex_ptr.address == 0

      tex = ImTextureData.new(tex_ptr)
      ImplDockingSDL3Renderer_UpdateTexture(tex) if tex[:Status] != ImTextureStatus_OK
    end
  end

  old_viewport_enabled = SDL.RenderViewportSet(renderer)
  old_clip_enabled = SDL.RenderClipEnabled(renderer)
  old_viewport = SDL::Rect.new
  old_clip_rect = SDL::Rect.new
  SDL.GetRenderViewport(renderer, old_viewport)
  SDL.GetRenderClipRect(renderer, old_clip_rect)

  ImplDockingSDL3Renderer_SetupRenderState(renderer)

  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  backend_data[:render_state] = ImGui_ImplDockingSDLRenderer3_RenderState.new
  backend_data[:render_state][:Renderer] = renderer
  platform_io[:Renderer_RenderState] = backend_data[:render_state]

  clip_off = draw_data[:DisplayPos]
  clip_scale = render_scale

  draw_data[:CmdListsCount].times do |n|
    cmd_list = ImDrawList.new((draw_data[:CmdLists][:Data] + FFI.type_size(:pointer) * n).read_pointer)
    vtx_buffer = cmd_list[:VtxBuffer][:Data]
    idx_buffer = cmd_list[:IdxBuffer][:Data]

    cmd_list[:CmdBuffer][:Size].times do |cmd_i|
      pcmd = ImDrawCmd.new(cmd_list[:CmdBuffer][:Data] + ImDrawCmd.size * cmd_i)
      if pcmd[:UserCallback] != nil && pcmd[:UserCallback].address != 0
        ImplDockingSDL3Renderer_SetupRenderState(renderer)
        next
      end

      clip_min = ImVec2.create((pcmd[:ClipRect][:x] - clip_off[:x]) * clip_scale[:x], (pcmd[:ClipRect][:y] - clip_off[:y]) * clip_scale[:y])
      clip_max = ImVec2.create((pcmd[:ClipRect][:z] - clip_off[:x]) * clip_scale[:x], (pcmd[:ClipRect][:w] - clip_off[:y]) * clip_scale[:y])
      clip_min[:x] = 0.0 if clip_min[:x] < 0.0
      clip_min[:y] = 0.0 if clip_min[:y] < 0.0
      clip_max[:x] = fb_width.to_f if clip_max[:x] > fb_width
      clip_max[:y] = fb_height.to_f if clip_max[:y] > fb_height
      next if clip_max[:x] <= clip_min[:x] || clip_max[:y] <= clip_min[:y]

      sdl_rect = SDL::Rect.new
      sdl_rect[:x] = clip_min[:x].to_i
      sdl_rect[:y] = clip_min[:y].to_i
      sdl_rect[:w] = (clip_max[:x] - clip_min[:x]).to_i
      sdl_rect[:h] = (clip_max[:y] - clip_min[:y]).to_i
      SDL.SetRenderClipRect(renderer, sdl_rect)

      vtx_base = pcmd[:VtxOffset] * ImDrawVert.size
      xy = vtx_buffer + vtx_base + ImDrawVert.offset_of(:pos)
      uv = vtx_buffer + vtx_base + ImDrawVert.offset_of(:uv)
      color_src = vtx_buffer + vtx_base + ImDrawVert.offset_of(:col)

      num_vertices = cmd_list[:VtxBuffer][:Size] - pcmd[:VtxOffset]
      color_f = ImplDockingSDL3Renderer_UpdateColorBuffer(backend_data, color_src, ImDrawVert.size, num_vertices)

      tex_id = pcmd.GetTexID
      tex_ptr = tex_id == 0 ? nil : FFI::Pointer.new(tex_id)
      SDL.RenderGeometryRaw(renderer,
                            tex_ptr,
                            xy, ImDrawVert.size,
                            color_f, SDL::FColor.size,
                            uv, ImDrawVert.size,
                            num_vertices,
                            idx_buffer + FFI.type_size(:ImDrawIdx) * pcmd[:IdxOffset], pcmd[:ElemCount], FFI.type_size(:ImDrawIdx))
    end
  end

  platform_io[:Renderer_RenderState] = nil
  backend_data[:render_state] = nil

  SDL.SetRenderViewport(renderer, old_viewport_enabled ? old_viewport : nil)
  SDL.SetRenderClipRect(renderer, old_clip_enabled ? old_clip_rect : nil)
end

.ImplDockingSDL3Renderer_SetupRenderState(renderer) ⇒ Object



64
65
66
67
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 64

def self.ImplDockingSDL3Renderer_SetupRenderState(renderer)
  SDL.SetRenderViewport(renderer, nil)
  SDL.SetRenderClipRect(renderer, nil)
end

.ImplDockingSDL3Renderer_ShutdownObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 48

def self.ImplDockingSDL3Renderer_Shutdown
  io = ImGuiIO.new(ImGui::GetIO())
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())

  ImplDockingSDL3Renderer_DestroyDeviceObjects

  if ImGui::GetCurrentContext() != nil
    @@g_DockingSDL3BackendRendererUserData.delete(ImGui::GetCurrentContext().address)
  end

  io[:BackendRendererName] = nil
  io[:BackendRendererUserData] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures)
  platform_io.ClearRendererHandlers
end

.ImplDockingSDL3Renderer_UpdateColorBuffer(backend_data, color_src, color_stride, num_vertices) ⇒ Object



82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 82

def self.ImplDockingSDL3Renderer_UpdateColorBuffer(backend_data, color_src, color_stride, num_vertices)
  color_dst = ImplDockingSDL3Renderer_EnsureColorBuffer(backend_data, num_vertices)
  num_vertices.times do |i|
    packed = (color_src + i * color_stride).read_uint
    color = SDL::FColor.new(color_dst + i * SDL::FColor.size)
    color[:r] = ((packed >> 0) & 0xff) / 255.0
    color[:g] = ((packed >> 8) & 0xff) / 255.0
    color[:b] = ((packed >> 16) & 0xff) / 255.0
    color[:a] = ((packed >> 24) & 0xff) / 255.0
  end
  color_dst
end

.ImplDockingSDL3Renderer_UpdateTexture(tex_raw) ⇒ Object



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 95

def self.ImplDockingSDL3Renderer_UpdateTexture(tex_raw)
  backend_data = ImGui_ImplDockingSDLRenderer3_GetBackendData
  return if backend_data == nil

  tex = tex_raw.kind_of?(ImTextureData) ? tex_raw : ImTextureData.new(tex_raw)

  case tex[:Status]
  when ImTextureStatus_WantCreate
    return if tex[:Format] != ImTextureFormat_RGBA32

    sdl_texture = SDL.CreateTexture(backend_data[:bd][:Renderer], SDL::PIXELFORMAT_RGBA32, SDL::TEXTUREACCESS_STATIC, tex[:Width], tex[:Height])
    raise 'Backend failed to create SDL texture!' if sdl_texture == nil

    SDL.UpdateTexture(sdl_texture, nil, tex.GetPixels, tex.GetPitch)
    SDL.SetTextureBlendMode(sdl_texture, SDL::BLENDMODE_BLEND)
    SDL.SetTextureScaleMode(sdl_texture, SDL::SCALEMODE_LINEAR)
    tex[:BackendUserData] = sdl_texture
    tex.SetTexID(sdl_texture.address)
    tex.SetStatus(ImTextureStatus_OK)

  when ImTextureStatus_WantUpdates
    sdl_texture = tex[:BackendUserData]
    return if sdl_texture == nil || sdl_texture.address == 0

    updates = tex[:Updates]
    updates[:Size].times do |i|
      rect = ImTextureRect.new(updates[:Data] + ImTextureRect.size * i)
      sdl_rect = SDL::Rect.new
      sdl_rect[:x] = rect[:x]
      sdl_rect[:y] = rect[:y]
      sdl_rect[:w] = rect[:w]
      sdl_rect[:h] = rect[:h]
      SDL.UpdateTexture(sdl_texture, sdl_rect, tex.GetPixelsAt(rect[:x], rect[:y]), tex.GetPitch)
    end
    tex.SetStatus(ImTextureStatus_OK)

  when ImTextureStatus_WantDestroy
    sdl_texture = tex[:BackendUserData]
    SDL.DestroyTexture(sdl_texture) if sdl_texture != nil && sdl_texture.address != 0
    tex[:BackendUserData] = nil
    tex.SetTexID(0)
    tex.SetStatus(ImTextureStatus_Destroyed)
  end
end

.ImplOpenGL3_AsGLPointer(pointer) ⇒ Object



327
328
329
330
331
# File 'lib/imgui_impl_opengl3.rb', line 327

def self.ImplOpenGL3_AsGLPointer(pointer)
  return nil if pointer.nil? || pointer.null?

  Fiddle::Pointer.new(pointer.to_i)
end

.ImplOpenGL3_CreateDeviceObjectsObject



408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
# File 'lib/imgui_impl_opengl3.rb', line 408

def self.ImplOpenGL3_CreateDeviceObjects()
  last_texture = ' ' * 4
  last_array_buffer = ' ' * 4
  GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)
  GL.GetIntegerv(GL::ARRAY_BUFFER_BINDING, last_array_buffer)

  last_vertex_array = ' ' * 4
  GL.GetIntegerv(GL::VERTEX_ARRAY_BINDING, last_vertex_array)

  glsl_version = @@g_GlslVersionString.split[1].to_i

  vertex_shader_glsl_120 = <<-'SRC'
  uniform mat4 ProjMtx;
  attribute vec2 Position;
  attribute vec2 UV;
  attribute vec4 Color;
  varying vec2 Frag_UV;
  varying vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  vertex_shader_glsl_130 = <<-'SRC'
  uniform mat4 ProjMtx;
  in vec2 Position;
  in vec2 UV;
  in vec4 Color;
  out vec2 Frag_UV;
  out vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  vertex_shader_glsl_300_es = <<-'SRC'
  precision highp float;
  layout (location = 0) in vec2 Position;
  layout (location = 1) in vec2 UV;
  layout (location = 2) in vec4 Color;
  uniform mat4 ProjMtx;
  out vec2 Frag_UV;
  out vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  vertex_shader_glsl_410_core = <<-'SRC'
  layout (location = 0) in vec2 Position;
  layout (location = 1) in vec2 UV;
  layout (location = 2) in vec4 Color;
  uniform mat4 ProjMtx;
  out vec2 Frag_UV;
  out vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  fragment_shader_glsl_120 = <<-'SRC'
  #ifdef GL_ES
      precision mediump float;
  #endif
  uniform sampler2D Texture;
  varying vec2 Frag_UV;
  varying vec4 Frag_Color;
  void main()
  {
      gl_FragColor = Frag_Color * texture2D(Texture, Frag_UV.st);
  }
  SRC

  fragment_shader_glsl_130 = <<-'SRC'
  uniform sampler2D Texture;
  in vec2 Frag_UV;
  in vec4 Frag_Color;
  out vec4 Out_Color;
  void main()
  {
      Out_Color = Frag_Color * texture(Texture, Frag_UV.st);
  }
  SRC

  fragment_shader_glsl_300_es = <<-'SRC'
  precision mediump float;
  uniform sampler2D Texture;
  in vec2 Frag_UV;
  in vec4 Frag_Color;
  layout (location = 0) out vec4 Out_Color;
  void main()
  {
      Out_Color = Frag_Color * texture(Texture, Frag_UV.st);
  }
  SRC

  fragment_shader_glsl_410_core = <<-'SRC'
  in vec2 Frag_UV;
  in vec4 Frag_Color;
  uniform sampler2D Texture;
  layout (location = 0) out vec4 Out_Color;
  void main()
  {
      Out_Color = Frag_Color * texture(Texture, Frag_UV.st);
  }
  SRC

  vertex_shader, fragment_shader = if glsl_version < 130
                                     [vertex_shader_glsl_120, fragment_shader_glsl_120]
                                   elsif glsl_version >= 410
                                     [vertex_shader_glsl_410_core, fragment_shader_glsl_410_core]
                                   elsif glsl_version == 300
                                     [vertex_shader_glsl_300_es, fragment_shader_glsl_300_es]
                                   else
                                     [vertex_shader_glsl_130, fragment_shader_glsl_130]
                                   end

  vert_handle = GL.CreateShader(GL::VERTEX_SHADER)
  GL.ShaderSource(vert_handle, 2, [@@g_GlslVersionString, vertex_shader].pack('p*'), nil)
  GL.CompileShader(vert_handle)
  return false unless PrintShaderCompileStatus(vert_handle)

  frag_handle = GL.CreateShader(GL::FRAGMENT_SHADER)
  GL.ShaderSource(frag_handle, 2, [@@g_GlslVersionString, fragment_shader].pack('p*'), nil)
  GL.CompileShader(frag_handle)
  return false unless PrintShaderCompileStatus(frag_handle)

  @@g_ShaderHandle = GL.CreateProgram()
  GL.AttachShader(@@g_ShaderHandle, vert_handle)
  GL.AttachShader(@@g_ShaderHandle, frag_handle)
  GL.LinkProgram(@@g_ShaderHandle)
  return false unless PrintProgramLinkStatus(@@g_ShaderHandle)

  GL.DetachShader(@@g_ShaderHandle, vert_handle)
  GL.DetachShader(@@g_ShaderHandle, frag_handle)
  GL.DeleteShader(vert_handle)
  GL.DeleteShader(frag_handle)

  @@g_AttribLocationTex = GL.GetUniformLocation(@@g_ShaderHandle, 'Texture')
  @@g_AttribLocationProjMtx = GL.GetUniformLocation(@@g_ShaderHandle, 'ProjMtx')
  @@g_AttribLocationVtxPos = GL.GetAttribLocation(@@g_ShaderHandle, 'Position')
  @@g_AttribLocationVtxUV = GL.GetAttribLocation(@@g_ShaderHandle, 'UV')
  @@g_AttribLocationVtxColor = GL.GetAttribLocation(@@g_ShaderHandle, 'Color')

  vbo_mem = ' ' * 4
  elem_mem = ' ' * 4
  GL.GenBuffers(1, vbo_mem)
  GL.GenBuffers(1, elem_mem)
  @@g_VboHandle = vbo_mem.unpack1('L')
  @@g_ElementsHandle = elem_mem.unpack1('L')

  GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
  GL.BindBuffer(GL::ARRAY_BUFFER, last_array_buffer.unpack1('L'))
  GL.BindVertexArray(last_vertex_array.unpack1('L'))

  true
end

.ImplOpenGL3_CreateFontsTextureObject

Compatibility wrapper retained for older caller code.



291
292
293
# File 'lib/imgui_impl_opengl3.rb', line 291

def self.ImplOpenGL3_CreateFontsTexture()
  true
end

.ImplOpenGL3_DestroyDeviceObjectsObject



578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
# File 'lib/imgui_impl_opengl3.rb', line 578

def self.ImplOpenGL3_DestroyDeviceObjects()
  if @@g_VboHandle != 0
    GL.DeleteBuffers(1, [@@g_VboHandle].pack('L'))
    @@g_VboHandle = 0
  end

  if @@g_ElementsHandle != 0
    GL.DeleteBuffers(1, [@@g_ElementsHandle].pack('L'))
    @@g_ElementsHandle = 0
  end

  if @@g_ShaderHandle != 0
    GL.DeleteProgram(@@g_ShaderHandle)
    @@g_ShaderHandle = 0
  end

  # Destroy textures retained only by the renderer backend.
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  textures = platform_io[:Textures]
  tex_data = textures[:Data]

  if !tex_data.nil? && !tex_data.null?
    pointer_stride = FFI::Pointer.size
    textures[:Size].times do |i|
      tex_ptr = (tex_data + pointer_stride * i).read_pointer
      next if tex_ptr.nil? || tex_ptr.null?

      tex = ImTextureData.new(tex_ptr)
      ImplOpenGL3_DestroyTexture(tex) if tex[:RefCount] == 1
    end
  end
end

.ImplOpenGL3_DestroyFontsTextureObject

Compatibility wrapper retained for older caller code.



296
297
298
# File 'lib/imgui_impl_opengl3.rb', line 296

def self.ImplOpenGL3_DestroyFontsTexture()
  nil
end

.ImplOpenGL3_DestroyTexture(tex) ⇒ Object



317
318
319
320
321
322
323
324
325
# File 'lib/imgui_impl_opengl3.rb', line 317

def self.ImplOpenGL3_DestroyTexture(tex)
  gl_tex_id = tex.GetTexID()
  if gl_tex_id != 0
    GL.DeleteTextures(1, [gl_tex_id].pack('L'))
  end

  tex.SetTexID(0)
  tex.SetStatus(ImTextureStatus_Destroyed)
end

.ImplOpenGL3_Init(glsl_version = nil) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/imgui_impl_opengl3.rb', line 63

def self.ImplOpenGL3_Init(glsl_version = nil)
  major, minor = ' ' * 4, ' ' * 4
  GL.GetIntegerv(GL::MAJOR_VERSION, major)
  GL.GetIntegerv(GL::MINOR_VERSION, minor)
  major = major.unpack1('L')
  minor = minor.unpack1('L')

  # OpenGL 2.x fallback when GL_MAJOR_VERSION/GL_MINOR_VERSION are unavailable.
  if major == 0 && minor == 0 && GL.respond_to?(:GetString)
    version_string = GL.GetString(GL::VERSION).to_s
    parts = version_string.split(/[ .]/)
    major = parts[0].to_i
    minor = parts[1].to_i
  end

  @@g_GlVersion = major * 100 + minor * 10

  max_texture_size = ' ' * 4
  GL.GetIntegerv(GL::MAX_TEXTURE_SIZE, max_texture_size)
  @@g_MaxTextureSize = max_texture_size.unpack1('L')

  io = ImGuiIO.new(ImGui::GetIO())
  io[:BackendRendererName] = @@g_BackendRendererName
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasVtxOffset if @@g_GlVersion >= 320
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasTextures

  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  platform_io[:Renderer_TextureMaxWidth] = @@g_MaxTextureSize
  platform_io[:Renderer_TextureMaxHeight] = @@g_MaxTextureSize

  if glsl_version.nil?
    if GL.get_platform() == :OPENGL_PLATFORM_MACOSX
      glsl_version = '#version 150'
    else
      glsl_version = '#version 130'
    end
  end

  @@g_GlslVersionString = glsl_version.end_with?("\n") ? glsl_version.dup : "#{glsl_version}\n"

  true
end

.ImplOpenGL3_NewFrameObject



121
122
123
# File 'lib/imgui_impl_opengl3.rb', line 121

def self.ImplOpenGL3_NewFrame()
  ImplOpenGL3_CreateDeviceObjects() if @@g_ShaderHandle == 0
end

.ImplOpenGL3_ProcessTextureUpdates(draw_data) ⇒ Object



300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
# File 'lib/imgui_impl_opengl3.rb', line 300

def self.ImplOpenGL3_ProcessTextureUpdates(draw_data)
  textures_ptr = draw_data[:Textures]
  return if textures_ptr.nil? || textures_ptr.null?

  textures = ImVector.new(textures_ptr)
  data_ptr = textures[:Data]
  pointer_stride = FFI::Pointer.size

  textures[:Size].times do |i|
    tex_ptr = (data_ptr + pointer_stride * i).read_pointer
    next if tex_ptr.nil? || tex_ptr.null?

    tex = ImTextureData.new(tex_ptr)
    ImplOpenGL3_UpdateTexture(tex) if tex[:Status] != ImTextureStatus_OK
  end
end

.ImplOpenGL3_RenderDrawData(draw_data_raw) ⇒ Object



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
# File 'lib/imgui_impl_opengl3.rb', line 125

def self.ImplOpenGL3_RenderDrawData(draw_data_raw)
  draw_data = ImDrawData.new(draw_data_raw)

  # Avoid rendering when minimized, scale coordinates for retina displays.
  fb_width = (draw_data[:DisplaySize][:x] * draw_data[:FramebufferScale][:x]).to_i
  fb_height = (draw_data[:DisplaySize][:y] * draw_data[:FramebufferScale][:y]).to_i
  return if fb_width <= 0 || fb_height <= 0

  ImplOpenGL3_ProcessTextureUpdates(draw_data)

  last_active_texture = ' ' * 4; GL.GetIntegerv(GL::ACTIVE_TEXTURE, last_active_texture)
  GL.ActiveTexture(GL::TEXTURE0)

  last_program = ' ' * 4; GL.GetIntegerv(GL::CURRENT_PROGRAM, last_program)
  last_texture = ' ' * 4; GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)

  has_sampler = defined?(GL::SAMPLER_BINDING)
  last_sampler = ' ' * 4
  GL.GetIntegerv(GL::SAMPLER_BINDING, last_sampler) if has_sampler

  last_array_buffer = ' ' * 4; GL.GetIntegerv(GL::ARRAY_BUFFER_BINDING, last_array_buffer)
  last_vertex_array_object = ' ' * 4; GL.GetIntegerv(GL::VERTEX_ARRAY_BINDING, last_vertex_array_object)

  last_polygon_mode = ' ' * 8; GL.GetIntegerv(GL::POLYGON_MODE, last_polygon_mode)
  last_viewport = ' ' * 16; GL.GetIntegerv(GL::VIEWPORT, last_viewport)
  last_scissor_box = ' ' * 16; GL.GetIntegerv(GL::SCISSOR_BOX, last_scissor_box)

  last_blend_src_rgb = ' ' * 4; GL.GetIntegerv(GL::BLEND_SRC_RGB, last_blend_src_rgb)
  last_blend_dst_rgb = ' ' * 4; GL.GetIntegerv(GL::BLEND_DST_RGB, last_blend_dst_rgb)
  last_blend_src_alpha = ' ' * 4; GL.GetIntegerv(GL::BLEND_SRC_ALPHA, last_blend_src_alpha)
  last_blend_dst_alpha = ' ' * 4; GL.GetIntegerv(GL::BLEND_DST_ALPHA, last_blend_dst_alpha)
  last_blend_equation_rgb = ' ' * 4; GL.GetIntegerv(GL::BLEND_EQUATION_RGB, last_blend_equation_rgb)
  last_blend_equation_alpha = ' ' * 4; GL.GetIntegerv(GL::BLEND_EQUATION_ALPHA, last_blend_equation_alpha)

  last_enable_blend = GL.IsEnabled(GL::BLEND)
  last_enable_cull_face = GL.IsEnabled(GL::CULL_FACE)
  last_enable_depth_test = GL.IsEnabled(GL::DEPTH_TEST)
  last_enable_stencil_test = GL.IsEnabled(GL::STENCIL_TEST)
  last_enable_scissor_test = GL.IsEnabled(GL::SCISSOR_TEST)

  # Recreate VAO every frame so this works across multiple GL contexts.
  vao_mem = ' ' * 4
  GL.GenVertexArrays(1, vao_mem)
  vertex_array_object = vao_mem.unpack1('L')
  ImplOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object)

  clip_off = draw_data[:DisplayPos]
  clip_scale = draw_data[:FramebufferScale]

  cmd_list_data = draw_data[:CmdLists][:Data]
  pointer_stride = FFI::Pointer.size

  draw_data[:CmdListsCount].times do |n|
    cmd_list_ptr = (cmd_list_data + pointer_stride * n).read_pointer
    cmd_list = ImDrawList.new(cmd_list_ptr)

    vtx_size = cmd_list[:VtxBuffer][:Size] * ImDrawVert.size
    idx_size = cmd_list[:IdxBuffer][:Size] * 2 # ImDrawIdx is currently ushort in generated bindings.

    GL.BufferData(GL::ARRAY_BUFFER, vtx_size, Fiddle::Pointer.new(cmd_list[:VtxBuffer][:Data]), GL::STREAM_DRAW)
    GL.BufferData(GL::ELEMENT_ARRAY_BUFFER, idx_size, Fiddle::Pointer.new(cmd_list[:IdxBuffer][:Data]), GL::STREAM_DRAW)

    cmd_list[:CmdBuffer][:Size].times do |cmd_i|
      pcmd = ImDrawCmd.new(cmd_list[:CmdBuffer][:Data] + ImDrawCmd.size * cmd_i)
      if pcmd[:UserCallback] != nil
        # Reset callback token is not exposed cleanly in current bindings, so keep old behavior.
        ImplOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object)
        next
      end

      clip_min_x = (pcmd[:ClipRect][:x] - clip_off[:x]) * clip_scale[:x]
      clip_min_y = (pcmd[:ClipRect][:y] - clip_off[:y]) * clip_scale[:y]
      clip_max_x = (pcmd[:ClipRect][:z] - clip_off[:x]) * clip_scale[:x]
      clip_max_y = (pcmd[:ClipRect][:w] - clip_off[:y]) * clip_scale[:y]

      next if clip_max_x <= clip_min_x || clip_max_y <= clip_min_y

      GL.Scissor(clip_min_x.to_i, (fb_height - clip_max_y).to_i, (clip_max_x - clip_min_x).to_i, (clip_max_y - clip_min_y).to_i)

      GL.BindTexture(GL::TEXTURE_2D, pcmd.GetTexID())
      if @@g_GlVersion >= 320
        GL.DrawElementsBaseVertex(GL::TRIANGLES, pcmd[:ElemCount], GL::UNSIGNED_SHORT, Fiddle::Pointer.new(pcmd[:IdxOffset] * 2), pcmd[:VtxOffset])
      else
        GL.DrawElements(GL::TRIANGLES, pcmd[:ElemCount], GL::UNSIGNED_SHORT, Fiddle::Pointer.new(pcmd[:IdxOffset] * 2))
      end
    end
  end

  GL.DeleteVertexArrays(1, [vertex_array_object].pack('L'))

  GL.UseProgram(last_program.unpack1('L'))
  GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
  GL.BindSampler(0, last_sampler.unpack1('L')) if has_sampler
  GL.ActiveTexture(last_active_texture.unpack1('L'))
  GL.BindVertexArray(last_vertex_array_object.unpack1('L'))
  GL.BindBuffer(GL::ARRAY_BUFFER, last_array_buffer.unpack1('L'))

  GL.BlendEquationSeparate(last_blend_equation_rgb.unpack1('L'), last_blend_equation_alpha.unpack1('L'))
  GL.BlendFuncSeparate(
    last_blend_src_rgb.unpack1('L'),
    last_blend_dst_rgb.unpack1('L'),
    last_blend_src_alpha.unpack1('L'),
    last_blend_dst_alpha.unpack1('L')
  )

  if last_enable_blend then GL.Enable(GL::BLEND) else GL.Disable(GL::BLEND) end
  if last_enable_cull_face then GL.Enable(GL::CULL_FACE) else GL.Disable(GL::CULL_FACE) end
  if last_enable_depth_test then GL.Enable(GL::DEPTH_TEST) else GL.Disable(GL::DEPTH_TEST) end
  if last_enable_stencil_test then GL.Enable(GL::STENCIL_TEST) else GL.Disable(GL::STENCIL_TEST) end
  if last_enable_scissor_test then GL.Enable(GL::SCISSOR_TEST) else GL.Disable(GL::SCISSOR_TEST) end

  last_polygon_mode = last_polygon_mode.unpack('L2')
  GL.PolygonMode(GL::FRONT_AND_BACK, last_polygon_mode[0])

  last_viewport = last_viewport.unpack('L4')
  GL.Viewport(last_viewport[0], last_viewport[1], last_viewport[2], last_viewport[3])

  last_scissor_box = last_scissor_box.unpack('L4')
  GL.Scissor(last_scissor_box[0], last_scissor_box[1], last_scissor_box[2], last_scissor_box[3])
end

.ImplOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object) ⇒ Object



246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
# File 'lib/imgui_impl_opengl3.rb', line 246

def self.ImplOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object)
  GL.Enable(GL::BLEND)
  GL.BlendEquation(GL::FUNC_ADD)
  GL.BlendFuncSeparate(GL::SRC_ALPHA, GL::ONE_MINUS_SRC_ALPHA, GL::ONE, GL::ONE_MINUS_SRC_ALPHA)
  GL.Disable(GL::CULL_FACE)
  GL.Disable(GL::DEPTH_TEST)
  GL.Disable(GL::STENCIL_TEST)
  GL.Enable(GL::SCISSOR_TEST)
  GL.PolygonMode(GL::FRONT_AND_BACK, GL::FILL)

  GL.Viewport(0, 0, fb_width, fb_height)
  l = draw_data[:DisplayPos][:x]
  r = draw_data[:DisplayPos][:x] + draw_data[:DisplaySize][:x]
  t = draw_data[:DisplayPos][:y]
  b = draw_data[:DisplayPos][:y] + draw_data[:DisplaySize][:y]

  ortho_projection = [
    2.0 / (r - l), 0.0, 0.0, 0.0,
    0.0, 2.0 / (t - b), 0.0, 0.0,
    0.0, 0.0, -1.0, 0.0,
    (r + l) / (l - r), (t + b) / (b - t), 0.0, 1.0,
  ]

  GL.UseProgram(@@g_ShaderHandle)
  GL.Uniform1i(@@g_AttribLocationTex, 0)
  GL.UniformMatrix4fv(@@g_AttribLocationProjMtx, 1, GL::FALSE, ortho_projection.pack('F16'))

  if defined?(GL::SAMPLER_BINDING)
    GL.BindSampler(0, 0)
  end

  GL.BindVertexArray(vertex_array_object)
  GL.BindBuffer(GL::ARRAY_BUFFER, @@g_VboHandle)
  GL.BindBuffer(GL::ELEMENT_ARRAY_BUFFER, @@g_ElementsHandle)

  GL.EnableVertexAttribArray(@@g_AttribLocationVtxPos)
  GL.EnableVertexAttribArray(@@g_AttribLocationVtxUV)
  GL.EnableVertexAttribArray(@@g_AttribLocationVtxColor)

  GL.VertexAttribPointer(@@g_AttribLocationVtxPos, 2, GL::FLOAT, GL::FALSE, ImDrawVert.size, ImDrawVert.offset_of(:pos))
  GL.VertexAttribPointer(@@g_AttribLocationVtxUV, 2, GL::FLOAT, GL::FALSE, ImDrawVert.size, ImDrawVert.offset_of(:uv))
  GL.VertexAttribPointer(@@g_AttribLocationVtxColor, 4, GL::UNSIGNED_BYTE, GL::TRUE, ImDrawVert.size, ImDrawVert.offset_of(:col))
end

.ImplOpenGL3_ShutdownObject



106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/imgui_impl_opengl3.rb', line 106

def self.ImplOpenGL3_Shutdown()
  ImplOpenGL3_DestroyDeviceObjects()

  io = ImGuiIO.new(ImGui::GetIO())
  io[:BackendRendererName] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures)

  begin
    platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
    platform_io.ClearRendererHandlers()
  rescue StandardError
    # Older generated bindings may not expose all platform IO helpers.
  end
end

.ImplOpenGL3_UpdateTexture(tex) ⇒ Object



333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
# File 'lib/imgui_impl_opengl3.rb', line 333

def self.ImplOpenGL3_UpdateTexture(tex)
  status = tex[:Status]

  if status == ImTextureStatus_WantCreate || status == ImTextureStatus_WantUpdates
    GL.PixelStorei(GL::UNPACK_ROW_LENGTH, 0) if defined?(GL::UNPACK_ROW_LENGTH)
    GL.PixelStorei(GL::UNPACK_ALIGNMENT, 1) if defined?(GL::UNPACK_ALIGNMENT)
  end

  if status == ImTextureStatus_WantCreate
    return unless tex[:Format] == ImTextureFormat_RGBA32

    last_texture = ' ' * 4
    GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)

    texture_mem = ' ' * 4
    GL.GenTextures(1, texture_mem)
    gl_texture_id = texture_mem.unpack1('L')

    GL.BindTexture(GL::TEXTURE_2D, gl_texture_id)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_MIN_FILTER, GL::LINEAR)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_MAG_FILTER, GL::LINEAR)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_WRAP_S, GL::CLAMP_TO_EDGE)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_WRAP_T, GL::CLAMP_TO_EDGE)

    pixels_ptr = ImplOpenGL3_AsGLPointer(tex[:Pixels])
    GL.TexImage2D(GL::TEXTURE_2D, 0, GL::RGBA, tex[:Width], tex[:Height], 0, GL::RGBA, GL::UNSIGNED_BYTE, pixels_ptr)

    tex.SetTexID(gl_texture_id)
    tex.SetStatus(ImTextureStatus_OK)

    GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
    return
  end

  if status == ImTextureStatus_WantUpdates
    last_texture = ' ' * 4
    GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)

    GL.BindTexture(GL::TEXTURE_2D, tex.GetTexID())

    updates = tex[:Updates]
    updates_ptr = updates[:Data]

    if !updates_ptr.nil? && !updates_ptr.null?
      if defined?(GL::UNPACK_ROW_LENGTH)
        GL.PixelStorei(GL::UNPACK_ROW_LENGTH, tex[:Width])

        updates[:Size].times do |i|
          rect = ImTextureRect.new(updates_ptr + i * ImTextureRect.size)
          pixels_ptr = ImplOpenGL3_AsGLPointer(tex.GetPixelsAt(rect[:x], rect[:y]))
          GL.TexSubImage2D(GL::TEXTURE_2D, 0, rect[:x], rect[:y], rect[:w], rect[:h], GL::RGBA, GL::UNSIGNED_BYTE, pixels_ptr)
        end

        GL.PixelStorei(GL::UNPACK_ROW_LENGTH, 0)
      else
        updates[:Size].times do |i|
          rect = ImTextureRect.new(updates_ptr + i * ImTextureRect.size)
          rect[:h].times do |line|
            pixels_ptr = ImplOpenGL3_AsGLPointer(tex.GetPixelsAt(rect[:x], rect[:y] + line))
            GL.TexSubImage2D(GL::TEXTURE_2D, 0, rect[:x], rect[:y] + line, rect[:w], 1, GL::RGBA, GL::UNSIGNED_BYTE, pixels_ptr)
          end
        end
      end
    end

    tex.SetStatus(ImTextureStatus_OK)
    GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
    return
  end

  if status == ImTextureStatus_WantDestroy && tex[:UnusedFrames] > 0
    ImplOpenGL3_DestroyTexture(tex)
  end
end

.ImplRaylib_CameraPointer(camera) ⇒ Object

INTERNAL


444
445
446
447
448
449
450
451
452
# File 'lib/imgui_impl_raylib.rb', line 444

def self.ImplRaylib_CameraPointer(camera)
  if camera.kind_of?(FFI::Pointer)
    camera
  elsif camera.respond_to?(:pointer)
    camera.pointer
  else
    raise ArgumentError, 'camera must be Raylib::Camera (FFI::Struct) or FFI::Pointer'
  end
end

.ImplRaylib_DisableUnsupportedViewports(io = nil) ⇒ Object

INTERNAL


32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/imgui_impl_raylib.rb', line 32

def self.ImplRaylib_DisableUnsupportedViewports(io = nil)
  io = ImGuiIO.new(ImGui::GetIO()) if io == nil
  return if (io[:ConfigFlags] & ImGuiConfigFlags_ViewportsEnable) == 0

  io[:ConfigFlags] &= ~ImGuiConfigFlags_ViewportsEnable
  bd = ImGui_ImplRaylib_GetBackendData()
  if bd != nil && !bd.warned_viewports_unsupported
    # raylib backend currently supports docking in a single OS window only.
    $stderr.puts('[imgui_impl_raylib] ImGuiConfigFlags_ViewportsEnable is not supported and was disabled.')
    bd.warned_viewports_unsupported = true
  end
end

.ImplRaylib_InitObject



590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
# File 'lib/imgui_impl_raylib.rb', line 590

def self.ImplRaylib_Init()
  # Setup backend capabilities flags
  bd = ImGui_ImplRaylib_Data.new
  @@g_BackendData[ImGui::GetCurrentContext().address] = bd

  io = ImGuiIO.new(ImGui::GetIO())
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())

  io[:BackendPlatformUserData] = nil
  io[:BackendPlatformName] = @@g_BackendPlatformName
  io[:BackendRendererUserData] = nil
  io[:BackendRendererName] = @@g_BackendRendererName
  io[:BackendFlags] |= ImGuiBackendFlags_HasMouseCursors # We can honor GetMouseCursor() values (optional)
  io[:BackendFlags] |= ImGuiBackendFlags_HasSetMousePos  # We can honor io.WantSetMousePos requests (optional, rarely used)
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasVtxOffset
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasTextures
  io[:BackendFlags] &= ~(ImGuiBackendFlags_PlatformHasViewports | ImGuiBackendFlags_RendererHasViewports)

  ImplRaylib_DisableUnsupportedViewports(io)

  # Conservative limit suitable for most GL backends used by raylib.
  platform_io[:Renderer_TextureMaxWidth] = 8192
  platform_io[:Renderer_TextureMaxHeight] = 8192

  bd.time = 0.0

  return true
end

.ImplRaylib_NewFrameObject



648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
# File 'lib/imgui_impl_raylib.rb', line 648

def self.ImplRaylib_NewFrame()
  bd = ImGui_ImplRaylib_GetBackendData()
  io = ImGuiIO.new(ImGui::GetIO())

  #  Setup display size (every frame to accommodate for window resizing)
  io[:DisplaySize][:x] = Raylib.GetScreenWidth()
  io[:DisplaySize][:y] = Raylib.GetScreenHeight()

  # Setup time step
  current_time = Raylib.GetTime()

  io[:DeltaTime] = bd.time > 0 ? (current_time - bd.time).to_f : 1.0 / 60.0
  bd.time = current_time

  ImplRaylib_DisableUnsupportedViewports(io)

  ImplRaylib_ProcessKeyboard()
  ImplRaylib_UpdateMouseData()
  ImplRaylib_UpdateMouseCursor()

  # [TODO] update gamepads
end

.ImplRaylib_ProcessKeyboardObject



374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
# File 'lib/imgui_impl_raylib.rb', line 374

def self.ImplRaylib_ProcessKeyboard()
  io = ImGuiIO.new(ImGui::GetIO())

  ImGui_ImplRaylib_UpdateKeyModifiers()

  KEY_IDS.each do |raylib_key|
    if Raylib.IsKeyPressed(raylib_key)
      key = ImGui_ImplRaylib_KeyToImGuiKey(raylib_key)
      io.AddKeyEvent(key, true)
    elsif Raylib.IsKeyReleased(raylib_key)
      key = ImGui_ImplRaylib_KeyToImGuiKey(raylib_key)
      io.AddKeyEvent(key, false)
    end
  end

  while (charPressed = Raylib.GetCharPressed()) != 0
    io.AddInputCharacter(charPressed)
  end

  return true
end

.ImplRaylib_ProcessTextureUpdates(draw_data) ⇒ Object

INTERNAL


124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/imgui_impl_raylib.rb', line 124

def self.ImplRaylib_ProcessTextureUpdates(draw_data)
  return if draw_data[:Textures] == nil || draw_data[:Textures].address == 0

  textures = ImVector_ImTextureDataPtr.new(draw_data[:Textures])
  textures[:Size].times do |i|
    tex_ptr = (textures[:Data] + FFI.type_size(:pointer) * i).read_pointer
    next if tex_ptr == nil || tex_ptr.address == 0

    tex = ImTextureData.new(tex_ptr)
    ImplRaylib_UpdateTexture(tex) if tex[:Status] != ImTextureStatus_OK
  end
end

.ImplRaylib_RenderDrawData(draw_data_raw) ⇒ Object



678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
# File 'lib/imgui_impl_raylib.rb', line 678

def self.ImplRaylib_RenderDrawData(draw_data_raw)
  draw_data = ImDrawData.new(draw_data_raw)

  fb_width = (draw_data[:DisplaySize][:x] * draw_data[:FramebufferScale][:x]).to_i
  fb_height = (draw_data[:DisplaySize][:y] * draw_data[:FramebufferScale][:y]).to_i
  return if fb_width <= 0 || fb_height <= 0

  ImplRaylib_ProcessTextureUpdates(draw_data)

  Raylib.rlDisableBackfaceCulling()

  clip_offset = draw_data[:DisplayPos]
  clip_scale = draw_data[:FramebufferScale]
  draw_data[:CmdListsCount].times do |n|
    cmd_list = ImDrawList.new((draw_data[:CmdLists][:Data] + FFI.type_size(:pointer) * n).read_pointer)
    vtx_buffer = cmd_list[:VtxBuffer][:Data] # const ImDrawVert*
    idx_buffer = cmd_list[:IdxBuffer][:Data] # const ImDrawIdx*

    cmd_list[:CmdBuffer][:Size].times do |cmd_i|
      pcmd = ImDrawCmd.new(cmd_list[:CmdBuffer][:Data] + ImDrawCmd.size * cmd_i) # const ImDrawCmd*
      if pcmd[:UserCallback] != nil
        # [TODO] Handle user callback (Ref.: https://github.com/ffi/ffi/wiki/Callbacks )
      else
        rect_min_x = (pcmd[:ClipRect][:x] - clip_offset[:x]) * clip_scale[:x]
        rect_min_y = (pcmd[:ClipRect][:y] - clip_offset[:y]) * clip_scale[:y]
        rect_max_x = (pcmd[:ClipRect][:z] - clip_offset[:x]) * clip_scale[:x]
        rect_max_y = (pcmd[:ClipRect][:w] - clip_offset[:y]) * clip_scale[:y]

        rect_min_x = 0.0 if rect_min_x < 0.0
        rect_min_y = 0.0 if rect_min_y < 0.0
        rect_max_x = fb_width.to_f if rect_max_x > fb_width
        rect_max_y = fb_height.to_f if rect_max_y > fb_height
        next if rect_max_x <= rect_min_x || rect_max_y <= rect_min_y

        rect_w = rect_max_x - rect_min_x
        rect_h = rect_max_y - rect_min_y

        Raylib.BeginScissorMode(rect_min_x.to_i, rect_min_y.to_i, rect_w.to_i, rect_h.to_i)

        # Render triangles
        indices = idx_buffer + FFI.type_size(:ImDrawIdx) * pcmd[:IdxOffset]
        vertices = vtx_buffer + ImDrawVert.size * pcmd[:VtxOffset]
        0.step(pcmd[:ElemCount] - 3, 3) do |i|
          Raylib.rlPushMatrix()
            Raylib.rlBegin(Raylib::RL_TRIANGLES)
            Raylib.rlSetTexture(pcmd.GetTexID())

              index = indices.get_array_of_uint16(i * FFI::type_size(:ImDrawIdx), 3)

              base_offset = ImDrawVert.size * index[0]
              xy = vertices + (base_offset + ImDrawVert.offset_of(:pos))
              uv = vertices + (base_offset + ImDrawVert.offset_of(:uv))
              color = vertices + (base_offset + ImDrawVert.offset_of(:col))
              set_vertex(xy.read_array_of_float(2), uv.read_array_of_float(2), color.read_array_of_uint8(4))

              base_offset = ImDrawVert.size * index[2]
              xy = vertices + (base_offset + ImDrawVert.offset_of(:pos))
              uv = vertices + (base_offset + ImDrawVert.offset_of(:uv))
              color = vertices + (base_offset + ImDrawVert.offset_of(:col))
              set_vertex(xy.read_array_of_float(2), uv.read_array_of_float(2), color.read_array_of_uint8(4))

              base_offset = ImDrawVert.size * index[1]
              xy = vertices + (base_offset + ImDrawVert.offset_of(:pos))
              uv = vertices + (base_offset + ImDrawVert.offset_of(:uv))
              color = vertices + (base_offset + ImDrawVert.offset_of(:col))
              set_vertex(xy.read_array_of_float(2), uv.read_array_of_float(2), color.read_array_of_uint8(4))

              Raylib.rlSetTexture(0)
            Raylib.rlEnd()
          Raylib.rlPopMatrix()
        end
        Raylib.EndScissorMode()
      end
    end
  end
  Raylib.rlEnableBackfaceCulling()
end

.ImplRaylib_ShutdownObject



619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
# File 'lib/imgui_impl_raylib.rb', line 619

def self.ImplRaylib_Shutdown()
  bd = ImGui_ImplRaylib_GetBackendData()
  io = ImGuiIO.new(ImGui::GetIO())
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())

  if bd != nil
    bd.textures.each_value do |texture|
      Raylib.UnloadTexture(texture) if texture != nil && texture[:id] != 0
    end
    bd.textures.clear
  end

  io[:BackendPlatformName] = nil
  io[:BackendPlatformUserData] = nil
  io[:BackendRendererName] = nil
  io[:BackendRendererUserData] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_HasMouseCursors | ImGuiBackendFlags_HasSetMousePos | ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures | ImGuiBackendFlags_PlatformHasViewports | ImGuiBackendFlags_RendererHasViewports)

  begin
    platform_io.ClearRendererHandlers()
  rescue StandardError
    # Older generated bindings may not expose this helper.
  end

  if ImGui::GetCurrentContext() != nil
    @@g_BackendData.delete(ImGui::GetCurrentContext().address)
  end
end

.ImplRaylib_UpdateCamera(camera, mode) ⇒ Object

ImGui-aware UpdateCamera implementation in Ruby. Unlike Raylib.UpdateCamera(), this checks io/io and avoids camera control while ImGui is consuming corresponding inputs.



457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
# File 'lib/imgui_impl_raylib.rb', line 457

def self.ImplRaylib_UpdateCamera(camera, mode)
  camera_ptr = ImplRaylib_CameraPointer(camera)
  io = ImGuiIO.new(ImGui::GetIO())

  mouse_position_delta = Raylib.GetMouseDelta()

  move_in_world_plane = (mode == Raylib::CAMERA_FIRST_PERSON) || (mode == Raylib::CAMERA_THIRD_PERSON)
  rotate_around_target = (mode == Raylib::CAMERA_THIRD_PERSON) || (mode == Raylib::CAMERA_ORBITAL)
  lock_view = (mode == Raylib::CAMERA_FREE) || (mode == Raylib::CAMERA_FIRST_PERSON) || (mode == Raylib::CAMERA_THIRD_PERSON) || (mode == Raylib::CAMERA_ORBITAL)
  rotate_up = false

  frame_time = Raylib.GetFrameTime()
  camera_move_speed = CAMERA_MOVE_SPEED * frame_time
  camera_rotation_speed = CAMERA_ROTATION_SPEED * frame_time
  camera_pan_speed = CAMERA_PAN_SPEED * frame_time
  camera_orbital_speed = CAMERA_ORBITAL_SPEED * frame_time

  wants_mouse = io[:WantCaptureMouse]
  wants_keyboard = io[:WantCaptureKeyboard]
  any_imgui_window_focused = false
  begin
    any_imgui_window_focused = ImGui.IsWindowFocused(ImGuiFocusedFlags_AnyWindow)
  rescue StandardError
    # Keep backward compatibility with older bindings.
    any_imgui_window_focused = false
  end
  block_keyboard_controls = wants_keyboard || any_imgui_window_focused

  if mode == Raylib::CAMERA_CUSTOM
    # no-op
  elsif mode == Raylib::CAMERA_ORBITAL
    rotation = Raylib.MatrixRotate(Raylib.GetCameraUp(camera_ptr), camera_orbital_speed)
    view = Raylib.Vector3Subtract(Raylib::Camera.new(camera_ptr)[:position], Raylib::Camera.new(camera_ptr)[:target])
    view = Raylib.Vector3Transform(view, rotation)
    camera_data = Raylib::Camera.new(camera_ptr)
    camera_data[:position] = Raylib.Vector3Add(camera_data[:target], view)
  else
    if !block_keyboard_controls
      if Raylib.IsKeyDown(Raylib::KEY_DOWN)
        Raylib.CameraPitch(camera_ptr, -camera_rotation_speed, lock_view, rotate_around_target, rotate_up)
      end
      if Raylib.IsKeyDown(Raylib::KEY_UP)
        Raylib.CameraPitch(camera_ptr, camera_rotation_speed, lock_view, rotate_around_target, rotate_up)
      end
      if Raylib.IsKeyDown(Raylib::KEY_RIGHT)
        Raylib.CameraYaw(camera_ptr, -camera_rotation_speed, rotate_around_target)
      end
      if Raylib.IsKeyDown(Raylib::KEY_LEFT)
        Raylib.CameraYaw(camera_ptr, camera_rotation_speed, rotate_around_target)
      end
      if Raylib.IsKeyDown(Raylib::KEY_Q)
        Raylib.CameraRoll(camera_ptr, -camera_rotation_speed)
      end
      if Raylib.IsKeyDown(Raylib::KEY_E)
        Raylib.CameraRoll(camera_ptr, camera_rotation_speed)
      end
    end

    if !wants_mouse
      if (mode == Raylib::CAMERA_FREE) && Raylib.IsMouseButtonDown(Raylib::MOUSE_BUTTON_MIDDLE)
        mouse_delta = Raylib.GetMouseDelta()
        if mouse_delta[:x] > 0.0
          Raylib.CameraMoveRight(camera_ptr, camera_pan_speed, move_in_world_plane)
        end
        if mouse_delta[:x] < 0.0
          Raylib.CameraMoveRight(camera_ptr, -camera_pan_speed, move_in_world_plane)
        end
        if mouse_delta[:y] > 0.0
          Raylib.CameraMoveUp(camera_ptr, -camera_pan_speed)
        end
        if mouse_delta[:y] < 0.0
          Raylib.CameraMoveUp(camera_ptr, camera_pan_speed)
        end
      else
        Raylib.CameraYaw(camera_ptr, -mouse_position_delta[:x] * CAMERA_MOUSE_MOVE_SENSITIVITY, rotate_around_target)
        Raylib.CameraPitch(camera_ptr, -mouse_position_delta[:y] * CAMERA_MOUSE_MOVE_SENSITIVITY, lock_view, rotate_around_target, rotate_up)
      end
    end

    if !block_keyboard_controls
      if Raylib.IsKeyDown(Raylib::KEY_W)
        Raylib.CameraMoveForward(camera_ptr, camera_move_speed, move_in_world_plane)
      end
      if Raylib.IsKeyDown(Raylib::KEY_A)
        Raylib.CameraMoveRight(camera_ptr, -camera_move_speed, move_in_world_plane)
      end
      if Raylib.IsKeyDown(Raylib::KEY_S)
        Raylib.CameraMoveForward(camera_ptr, -camera_move_speed, move_in_world_plane)
      end
      if Raylib.IsKeyDown(Raylib::KEY_D)
        Raylib.CameraMoveRight(camera_ptr, camera_move_speed, move_in_world_plane)
      end
    end

    if Raylib.IsGamepadAvailable(0)
      Raylib.CameraYaw(camera_ptr, -(Raylib.GetGamepadAxisMovement(0, Raylib::GAMEPAD_AXIS_RIGHT_X) * 2.0) * CAMERA_MOUSE_MOVE_SENSITIVITY, rotate_around_target)
      Raylib.CameraPitch(camera_ptr, -(Raylib.GetGamepadAxisMovement(0, Raylib::GAMEPAD_AXIS_RIGHT_Y) * 2.0) * CAMERA_MOUSE_MOVE_SENSITIVITY, lock_view, rotate_around_target, rotate_up)

      if Raylib.GetGamepadAxisMovement(0, Raylib::GAMEPAD_AXIS_LEFT_Y) <= -0.25
        Raylib.CameraMoveForward(camera_ptr, camera_move_speed, move_in_world_plane)
      end
      if Raylib.GetGamepadAxisMovement(0, Raylib::GAMEPAD_AXIS_LEFT_X) <= -0.25
        Raylib.CameraMoveRight(camera_ptr, -camera_move_speed, move_in_world_plane)
      end
      if Raylib.GetGamepadAxisMovement(0, Raylib::GAMEPAD_AXIS_LEFT_Y) >= 0.25
        Raylib.CameraMoveForward(camera_ptr, -camera_move_speed, move_in_world_plane)
      end
      if Raylib.GetGamepadAxisMovement(0, Raylib::GAMEPAD_AXIS_LEFT_X) >= 0.25
        Raylib.CameraMoveRight(camera_ptr, camera_move_speed, move_in_world_plane)
      end
    end

    if mode == Raylib::CAMERA_FREE && !block_keyboard_controls
      if Raylib.IsKeyDown(Raylib::KEY_SPACE)
        Raylib.CameraMoveUp(camera_ptr, camera_move_speed)
      end
      if Raylib.IsKeyDown(Raylib::KEY_LEFT_CONTROL)
        Raylib.CameraMoveUp(camera_ptr, -camera_move_speed)
      end
    end
  end

  if ((mode == Raylib::CAMERA_THIRD_PERSON) || (mode == Raylib::CAMERA_ORBITAL) || (mode == Raylib::CAMERA_FREE)) && !wants_mouse
    Raylib.CameraMoveToTarget(camera_ptr, -Raylib.GetMouseWheelMove())
    if Raylib.IsKeyPressed(Raylib::KEY_KP_SUBTRACT)
      Raylib.CameraMoveToTarget(camera_ptr, 2.0)
    end
    if Raylib.IsKeyPressed(Raylib::KEY_KP_ADD)
      Raylib.CameraMoveToTarget(camera_ptr, -2.0)
    end
  end
end

.ImplRaylib_UpdateMouseCursorObject

INTERNAL


428
429
430
431
432
433
434
435
436
437
# File 'lib/imgui_impl_raylib.rb', line 428

def self.ImplRaylib_UpdateMouseCursor()
  io = ImGuiIO.new(ImGui::GetIO())
  return if (io[:ConfigFlags] & ImGuiConfigFlags_NoMouseCursorChange)

  if io[:MouseDrawCursor] || ImGui::GetMouseCursor() == ImGuiMouseCursor_None
    Raylib.HideCursor() # Hide OS mouse cursor if imgui is drawing it or if it wants no cursor
  else
    Raylib.ShowCursor() # Show OS mouse cursor
  end
end

.ImplRaylib_UpdateMouseDataObject

INTERNAL


397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
# File 'lib/imgui_impl_raylib.rb', line 397

def self.ImplRaylib_UpdateMouseData()
  io = ImGuiIO.new(ImGui::GetIO())

  # Set OS mouse position if requested (rarely used, only when ImGuiConfigFlags_NavEnableSetMousePos is enabled by user)
  if io[:WantSetMousePos]
    Raylib.SetMousePosition(io[:MousePos][:x].to_i, io[:MousePos][:y].to_i)
  end

  wheel_move = Raylib.GetMouseWheelMove()
  wheel_y = if wheel_move > 0
              1.0
            elsif wheel_move < 0
              -1.0
            else
              0.0
            end
  io.AddMouseWheelEvent(0, wheel_y) # [TODO] Get wheel tilt from Raylib

  [Raylib::MOUSE_BUTTON_LEFT, Raylib::MOUSE_BUTTON_RIGHT, Raylib::MOUSE_BUTTON_MIDDLE].each_with_index do |button, mouse_button|
    pressed = Raylib.IsMouseButtonPressed(button)
    released = Raylib.IsMouseButtonReleased(button)
    if pressed || released
      io.AddMouseButtonEvent(mouse_button, pressed)
    end
  end

  mouse_pos = Raylib.GetMousePosition()
  io.AddMousePosEvent(mouse_pos[:x].to_f, mouse_pos[:y].to_f)
end

.ImplRaylib_UpdateTexture(tex_raw) ⇒ Object

INTERNAL


55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/imgui_impl_raylib.rb', line 55

def self.ImplRaylib_UpdateTexture(tex_raw)
  bd = ImGui_ImplRaylib_GetBackendData()
  return if bd == nil

  tex = tex_raw.kind_of?(ImTextureData) ? tex_raw : ImTextureData.new(tex_raw)

  case tex[:Status]
  when ImTextureStatus_WantCreate
    return if tex[:Format] != ImTextureFormat_RGBA32

    image = Raylib::Image.new
    image[:data] = tex.GetPixels()
    image[:width] = tex[:Width]
    image[:height] = tex[:Height]
    image[:mipmaps] = 1
    image[:format] = Raylib::PIXELFORMAT_UNCOMPRESSED_R8G8B8A8

    texture = Raylib.LoadTextureFromImage(image)
    raise 'Backend failed to create Raylib texture!' if texture[:id] == 0

    Raylib.SetTextureFilter(texture, Raylib::TEXTURE_FILTER_BILINEAR)
    Raylib.SetTextureWrap(texture, Raylib::TEXTURE_WRAP_CLAMP)

    bd.textures[texture[:id]] = texture

    tex.SetTexID(texture[:id])
    tex.SetStatus(ImTextureStatus_OK)

  when ImTextureStatus_WantUpdates
    tex_id = tex.GetTexID()
    return if tex_id == 0

    texture = bd.textures[tex_id]
    if texture == nil
      texture = Raylib::Texture.new
      texture[:id] = tex_id
      texture[:width] = tex[:Width]
      texture[:height] = tex[:Height]
      texture[:mipmaps] = 1
      texture[:format] = Raylib::PIXELFORMAT_UNCOMPRESSED_R8G8B8A8
    end

    # Raylib.UpdateTextureRec has no row-pitch argument, so sub-rect updates
    # sourced from a larger atlas can sample incorrect rows and corrupt glyphs.
    # Uploading the full atlas keeps texture data consistent across backends.
    Raylib.UpdateTexture(texture, tex.GetPixels())
    tex.SetStatus(ImTextureStatus_OK)

  when ImTextureStatus_WantDestroy
    tex_id = tex.GetTexID()
    if tex_id != 0 && tex[:UnusedFrames] > 0
      texture = bd.textures.delete(tex_id)
      if texture == nil
        texture = Raylib::Texture.new
        texture[:id] = tex_id
        texture[:width] = tex[:Width]
        texture[:height] = tex[:Height]
        texture[:mipmaps] = 1
        texture[:format] = Raylib::PIXELFORMAT_UNCOMPRESSED_R8G8B8A8
      end

      Raylib.UnloadTexture(texture)
      tex.SetTexID(0)
      tex.SetStatus(ImTextureStatus_Destroyed)
    end
  end
end

.ImplSDL3_CloseGamepadsObject



348
349
350
351
352
353
354
355
# File 'lib/imgui_impl_sdl3.rb', line 348

def self.ImplSDL3_CloseGamepads()
  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil
  if bd.gamepad_mode != ImGui_ImplSDL3_GamepadMode_Manual
    bd.gamepads.each { |g| SDL.CloseGamepad(g) if g != nil }
  end
  bd.gamepads = []
end

.ImplSDL3_GetWindowSizeAndFramebufferScale(window) ⇒ Object



549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
# File 'lib/imgui_impl_sdl3.rb', line 549

def self.ImplSDL3_GetWindowSizeAndFramebufferScale(window)
  w_ptr = FFI::MemoryPointer.new(:int)
  h_ptr = FFI::MemoryPointer.new(:int)
  SDL.GetWindowSize(window, w_ptr, h_ptr)
  w = w_ptr.read_int
  h = h_ptr.read_int
  if (SDL.GetWindowFlags(window) & SDL::WINDOW_MINIMIZED) != 0
    w = h = 0
  end

  display_w_ptr = FFI::MemoryPointer.new(:int)
  display_h_ptr = FFI::MemoryPointer.new(:int)
  SDL.GetWindowSizeInPixels(window, display_w_ptr, display_h_ptr)
  display_w = display_w_ptr.read_int
  display_h = display_h_ptr.read_int

  scale_x = (w > 0) ? (display_w.to_f / w.to_f) : 1.0
  scale_y = (h > 0) ? (display_h.to_f / h.to_f) : 1.0
  [w, h, scale_x, scale_y]
end

.ImplSDL3_Init(window, renderer = nil) ⇒ Object



276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
# File 'lib/imgui_impl_sdl3.rb', line 276

def self.ImplSDL3_Init(window, renderer = nil)
  io = ImGuiIO.new(ImGui::GetIO())

  bd = ImGui_ImplSDL3_Data.new
  bd.window = window
  bd.renderer = renderer
  bd.window_id = SDL.GetWindowID(window)

  sdl_backend = SDL.GetCurrentVideoDriver()
  sdl_backend_name = sdl_backend == nil ? '' : sdl_backend.read_string
  ['windows', 'cocoa', 'x11', 'DIVE', 'VMAN'].each do |platform|
    next unless sdl_backend_name.start_with?(platform)
    bd.mouse_can_use_global_state = true
    bd.mouse_capture_mode = (platform == 'x11') ? ImGui_ImplSDL3_MouseCaptureMode_EnabledAfterDrag : ImGui_ImplSDL3_MouseCaptureMode_Enabled
  end

  @@g_BackendData[ImGui::GetCurrentContext().address] = bd

  io[:BackendPlatformUserData] = FFI::Pointer.new(ImGui::GetCurrentContext().address)
  io[:BackendPlatformName] = @@g_BackendPlatformName
  io[:BackendFlags] |= ImGuiBackendFlags_HasMouseCursors
  io[:BackendFlags] |= ImGuiBackendFlags_HasSetMousePos

  bd.mouse_cursors[ImGuiMouseCursor_Arrow] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_DEFAULT)
  bd.mouse_cursors[ImGuiMouseCursor_TextInput] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_TEXT)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeAll] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_MOVE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeNS] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NS_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeEW] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_EW_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeNESW] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NESW_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeNWSE] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NWSE_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_Hand] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_POINTER)
  bd.mouse_cursors[ImGuiMouseCursor_Wait] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_WAIT)
  bd.mouse_cursors[ImGuiMouseCursor_Progress] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_PROGRESS)
  bd.mouse_cursors[ImGuiMouseCursor_NotAllowed] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NOT_ALLOWED)

  main_viewport = ImGuiViewport.new(ImGui::GetMainViewport())
  main_viewport[:PlatformHandle] = FFI::Pointer.new(bd.window_id)

  SDL.SetHint(SDL::HINT_MOUSE_FOCUS_CLICKTHROUGH, '1') if defined?(SDL::HINT_MOUSE_FOCUS_CLICKTHROUGH)
  SDL.SetHint(SDL::HINT_MOUSE_AUTO_CAPTURE, '0') if defined?(SDL::HINT_MOUSE_AUTO_CAPTURE)

  true
end

.ImplSDL3_InitForD3D(window) ⇒ Object



328
329
330
# File 'lib/imgui_impl_sdl3.rb', line 328

def self.ImplSDL3_InitForD3D(window)
  ImplSDL3_Init(window, nil)
end

.ImplSDL3_InitForMetal(window) ⇒ Object



332
333
334
# File 'lib/imgui_impl_sdl3.rb', line 332

def self.ImplSDL3_InitForMetal(window)
  ImplSDL3_Init(window, nil)
end

.ImplSDL3_InitForOpenGL(window, sdl_gl_context = nil) ⇒ Object



320
321
322
# File 'lib/imgui_impl_sdl3.rb', line 320

def self.ImplSDL3_InitForOpenGL(window, sdl_gl_context = nil)
  ImplSDL3_Init(window, nil)
end

.ImplSDL3_InitForOther(window) ⇒ Object



344
345
346
# File 'lib/imgui_impl_sdl3.rb', line 344

def self.ImplSDL3_InitForOther(window)
  ImplSDL3_Init(window, nil)
end

.ImplSDL3_InitForSDLGPU(window) ⇒ Object



340
341
342
# File 'lib/imgui_impl_sdl3.rb', line 340

def self.ImplSDL3_InitForSDLGPU(window)
  ImplSDL3_Init(window, nil)
end

.ImplSDL3_InitForSDLRenderer(window, renderer) ⇒ Object



336
337
338
# File 'lib/imgui_impl_sdl3.rb', line 336

def self.ImplSDL3_InitForSDLRenderer(window, renderer)
  ImplSDL3_Init(window, renderer)
end

.ImplSDL3_InitForVulkan(window) ⇒ Object



324
325
326
# File 'lib/imgui_impl_sdl3.rb', line 324

def self.ImplSDL3_InitForVulkan(window)
  ImplSDL3_Init(window, nil)
end

.ImplSDL3_NewFrameObject



570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
# File 'lib/imgui_impl_sdl3.rb', line 570

def self.ImplSDL3_NewFrame()
  bd = ImGui_ImplSDL3_GetBackendData()
  raise 'Context or backend not initialized! Did you call ImGui::ImplSDL3_Init()?' if bd == nil

  io = ImGuiIO.new(ImGui::GetIO())

  w, h, scale_x, scale_y = ImplSDL3_GetWindowSizeAndFramebufferScale(bd.window)
  io[:DisplaySize] = ImVec2.create(w.to_f, h.to_f)
  io[:DisplayFramebufferScale][:x] = scale_x
  io[:DisplayFramebufferScale][:y] = scale_y

  frequency = SDL.GetPerformanceFrequency()
  current_time = SDL.GetPerformanceCounter()
  current_time = bd.time + 1 if current_time <= bd.time
  io[:DeltaTime] = bd.time > 0 ? (current_time - bd.time).to_f / frequency.to_f : (1.0 / 60.0)
  bd.time = current_time

  if bd.mouse_pending_leave_frame != 0 && bd.mouse_pending_leave_frame >= ImGui::GetFrameCount() && bd.mouse_buttons_down == 0
    bd.mouse_window_id = 0
    bd.mouse_pending_leave_frame = 0
    io.AddMousePosEvent(-Float::MAX, -Float::MAX)
  end

  ImplSDL3_UpdateMouseData()
  ImplSDL3_UpdateMouseCursor()
  ImplSDL3_UpdateImeFromIO()
  ImplSDL3_UpdateGamepads()
end

.ImplSDL3_ProcessEvent(event) ⇒ Object



202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
# File 'lib/imgui_impl_sdl3.rb', line 202

def self.ImplSDL3_ProcessEvent(event)
  io = ImGuiIO.new(ImGui::GetIO())
  bd = ImGui_ImplSDL3_GetBackendData()
  return false if bd == nil

  event_type = event[:type]

  case event_type
  when SDL::EVENT_MOUSE_MOTION
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:motion][:windowID]) == nil
    io.AddMouseSourceEvent(ImGui_ImplSDL3_IsTouchMouse(event[:motion][:which]) ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse)
    io.AddMousePosEvent(event[:motion][:x].to_f, event[:motion][:y].to_f)
    true

  when SDL::EVENT_MOUSE_WHEEL
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:wheel][:windowID]) == nil
    io.AddMouseSourceEvent(ImGui_ImplSDL3_IsTouchMouse(event[:wheel][:which]) ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse)
    io.AddMouseWheelEvent(-event[:wheel][:x].to_f, event[:wheel][:y].to_f)
    true

  when SDL::EVENT_MOUSE_BUTTON_DOWN, SDL::EVENT_MOUSE_BUTTON_UP
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:button][:windowID]) == nil
    mouse_button = -1
    mouse_button = 0 if event[:button][:button] == SDL::BUTTON_LEFT
    mouse_button = 1 if event[:button][:button] == SDL::BUTTON_RIGHT
    mouse_button = 2 if event[:button][:button] == SDL::BUTTON_MIDDLE
    mouse_button = 3 if event[:button][:button] == SDL::BUTTON_X1
    mouse_button = 4 if event[:button][:button] == SDL::BUTTON_X2
    return false if mouse_button == -1

    is_down = event_type == SDL::EVENT_MOUSE_BUTTON_DOWN
    io.AddMouseSourceEvent(ImGui_ImplSDL3_IsTouchMouse(event[:button][:which]) ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse)
    io.AddMouseButtonEvent(mouse_button, is_down)
    bd.mouse_buttons_down = is_down ? (bd.mouse_buttons_down | (1 << mouse_button)) : (bd.mouse_buttons_down & ~(1 << mouse_button))
    true

  when SDL::EVENT_TEXT_INPUT
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:text][:windowID]) == nil
    io.AddInputCharactersUTF8(event[:text][:text].read_string)
    true

  when SDL::EVENT_KEY_DOWN, SDL::EVENT_KEY_UP
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:key][:windowID]) == nil
    ImGui_ImplSDL3_UpdateKeyModifiers(event[:key][:mod])
    key = ImGui_ImplSDL3_KeyEventToImGuiKey(event[:key][:key], event[:key][:scancode])
    io.AddKeyEvent(key, event_type == SDL::EVENT_KEY_DOWN)
    io.SetKeyEventNativeDataEx(key, event[:key][:key], event[:key][:scancode], event[:key][:scancode])
    true

  when SDL::EVENT_WINDOW_MOUSE_ENTER
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:window][:windowID]) == nil
    bd.mouse_window_id = event[:window][:windowID]
    bd.mouse_pending_leave_frame = 0
    true

  when SDL::EVENT_WINDOW_MOUSE_LEAVE
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:window][:windowID]) == nil
    bd.mouse_pending_leave_frame = ImGui::GetFrameCount() + 1
    true

  when SDL::EVENT_WINDOW_FOCUS_GAINED, SDL::EVENT_WINDOW_FOCUS_LOST
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:window][:windowID]) == nil
    io.AddFocusEvent(event_type == SDL::EVENT_WINDOW_FOCUS_GAINED)
    true

  when SDL::EVENT_GAMEPAD_ADDED, SDL::EVENT_GAMEPAD_REMOVED
    bd.want_update_gamepads_list = true
    true

  else
    false
  end
end

.ImplSDL3_Saturate(v) ⇒ Object



457
458
459
460
461
# File 'lib/imgui_impl_sdl3.rb', line 457

def self.ImplSDL3_Saturate(v)
  return 0.0 if v < 0.0
  return 1.0 if v > 1.0
  v
end

.ImplSDL3_SetGamepadMode(mode, manual_gamepads_array = nil) ⇒ Object



357
358
359
360
361
362
363
364
365
366
367
368
# File 'lib/imgui_impl_sdl3.rb', line 357

def self.ImplSDL3_SetGamepadMode(mode, manual_gamepads_array = nil)
  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil

  ImplSDL3_CloseGamepads()
  if mode == ImGui_ImplSDL3_GamepadMode_Manual
    bd.gamepads = manual_gamepads_array ? manual_gamepads_array.compact : []
  else
    bd.want_update_gamepads_list = true
  end
  bd.gamepad_mode = mode
end

.ImplSDL3_SetMouseCaptureMode(mode) ⇒ Object



391
392
393
394
395
396
# File 'lib/imgui_impl_sdl3.rb', line 391

def self.ImplSDL3_SetMouseCaptureMode(mode)
  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil
  SDL.CaptureMouse(false) if mode == ImGui_ImplSDL3_MouseCaptureMode_Disabled && bd.mouse_capture_mode != ImGui_ImplSDL3_MouseCaptureMode_Disabled
  bd.mouse_capture_mode = mode
end

.ImplSDL3_ShutdownObject



370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
# File 'lib/imgui_impl_sdl3.rb', line 370

def self.ImplSDL3_Shutdown()
  io = ImGuiIO.new(ImGui::GetIO())
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil

  # Docking branch requires viewport platform handles to be cleared before DestroyContext().
  main_viewport = ImGuiViewport.new(ImGui::GetMainViewport())
  main_viewport[:PlatformHandle] = nil
  main_viewport[:PlatformHandleRaw] = nil

  bd.mouse_cursors.each { |cursor| SDL.DestroyCursor(cursor) if cursor != nil }
  ImplSDL3_CloseGamepads()

  io[:BackendPlatformName] = nil
  io[:BackendPlatformUserData] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_HasMouseCursors | ImGuiBackendFlags_HasSetMousePos | ImGuiBackendFlags_HasGamepad)
  platform_io.ClearPlatformHandlers()
  @@g_BackendData.delete(ImGui::GetCurrentContext().address)
end

.ImplSDL3_UpdateGamepadAnalog(bd, io, key, axis_no, v0, v1) ⇒ Object



471
472
473
474
475
476
477
478
# File 'lib/imgui_impl_sdl3.rb', line 471

def self.ImplSDL3_UpdateGamepadAnalog(bd, io, key, axis_no, v0, v1)
  merged_value = 0.0
  bd.gamepads.each do |gamepad|
    vn = ImplSDL3_Saturate((SDL.GetGamepadAxis(gamepad, axis_no) - v0).to_f / (v1 - v0).to_f)
    merged_value = vn if merged_value < vn
  end
  io.AddKeyAnalogEvent(key, merged_value > 0.1, merged_value)
end

.ImplSDL3_UpdateGamepadButton(bd, io, key, button_no) ⇒ Object



463
464
465
466
467
468
469
# File 'lib/imgui_impl_sdl3.rb', line 463

def self.ImplSDL3_UpdateGamepadButton(bd, io, key, button_no)
  merged_value = false
  bd.gamepads.each do |gamepad|
    merged_value ||= SDL.GetGamepadButton(gamepad, button_no)
  end
  io.AddKeyEvent(key, merged_value)
end

.ImplSDL3_UpdateGamepadsObject



480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
# File 'lib/imgui_impl_sdl3.rb', line 480

def self.ImplSDL3_UpdateGamepads()
  io = ImGuiIO.new(ImGui::GetIO())
  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil

  if bd.want_update_gamepads_list && bd.gamepad_mode != ImGui_ImplSDL3_GamepadMode_Manual
    ImplSDL3_CloseGamepads()
    count_ptr = FFI::MemoryPointer.new(:int)
    gamepads_ptr = SDL.GetGamepads(count_ptr)
    count = count_ptr.read_int
    count.times do |n|
      joystick_id = (gamepads_ptr + n * FFI.type_size(:uint)).read_uint
      gamepad = SDL.OpenGamepad(joystick_id)
      next if gamepad == nil
      bd.gamepads << gamepad
      break if bd.gamepad_mode == ImGui_ImplSDL3_GamepadMode_AutoFirst
    end
    bd.want_update_gamepads_list = false
    SDL.free(gamepads_ptr) if gamepads_ptr != nil
  end

  io[:BackendFlags] &= ~ImGuiBackendFlags_HasGamepad
  return if bd.gamepads.empty?
  io[:BackendFlags] |= ImGuiBackendFlags_HasGamepad

  dead_zone = 8000
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadStart, SDL::GAMEPAD_BUTTON_START)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadBack, SDL::GAMEPAD_BUTTON_BACK)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceLeft, SDL::GAMEPAD_BUTTON_WEST)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceRight, SDL::GAMEPAD_BUTTON_EAST)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceUp, SDL::GAMEPAD_BUTTON_NORTH)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceDown, SDL::GAMEPAD_BUTTON_SOUTH)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadLeft, SDL::GAMEPAD_BUTTON_DPAD_LEFT)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadRight, SDL::GAMEPAD_BUTTON_DPAD_RIGHT)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadUp, SDL::GAMEPAD_BUTTON_DPAD_UP)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadDown, SDL::GAMEPAD_BUTTON_DPAD_DOWN)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL1, SDL::GAMEPAD_BUTTON_LEFT_SHOULDER)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR1, SDL::GAMEPAD_BUTTON_RIGHT_SHOULDER)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadL2, SDL::GAMEPAD_AXIS_LEFT_TRIGGER, 0.0, 32767.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadR2, SDL::GAMEPAD_AXIS_RIGHT_TRIGGER, 0.0, 32767.0)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL3, SDL::GAMEPAD_BUTTON_LEFT_STICK)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR3, SDL::GAMEPAD_BUTTON_RIGHT_STICK)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickLeft, SDL::GAMEPAD_AXIS_LEFTX, -dead_zone, -32768.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickRight, SDL::GAMEPAD_AXIS_LEFTX, dead_zone, 32767.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickUp, SDL::GAMEPAD_AXIS_LEFTY, -dead_zone, -32768.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickDown, SDL::GAMEPAD_AXIS_LEFTY, dead_zone, 32767.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickLeft, SDL::GAMEPAD_AXIS_RIGHTX, -dead_zone, -32768.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickRight, SDL::GAMEPAD_AXIS_RIGHTX, dead_zone, 32767.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickUp, SDL::GAMEPAD_AXIS_RIGHTY, -dead_zone, -32768.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickDown, SDL::GAMEPAD_AXIS_RIGHTY, dead_zone, 32767.0)
end

.ImplSDL3_UpdateImeFromIOObject



532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
# File 'lib/imgui_impl_sdl3.rb', line 532

def self.ImplSDL3_UpdateImeFromIO()
  io = ImGuiIO.new(ImGui::GetIO())
  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil

  window = SDL.GetKeyboardFocus()
  return if window == nil

  if io[:WantTextInput]
    unless SDL.TextInputActive(window)
      SDL.StartTextInput(window)
    end
  else
    SDL.StopTextInput(window) if SDL.TextInputActive(window)
  end
end

.ImplSDL3_UpdateMouseCursorObject



437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
# File 'lib/imgui_impl_sdl3.rb', line 437

def self.ImplSDL3_UpdateMouseCursor()
  io = ImGuiIO.new(ImGui::GetIO())
  return if (io[:ConfigFlags] & ImGuiConfigFlags_NoMouseCursorChange) != 0

  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil

  imgui_cursor = ImGui::GetMouseCursor()
  if io[:MouseDrawCursor] || imgui_cursor == ImGuiMouseCursor_None
    SDL.HideCursor()
  else
    expected_cursor = bd.mouse_cursors[imgui_cursor] || bd.mouse_cursors[ImGuiMouseCursor_Arrow]
    if bd.mouse_last_cursor != expected_cursor
      SDL.SetCursor(expected_cursor)
      bd.mouse_last_cursor = expected_cursor
    end
    SDL.ShowCursor()
  end
end

.ImplSDL3_UpdateMouseDataObject



398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
# File 'lib/imgui_impl_sdl3.rb', line 398

def self.ImplSDL3_UpdateMouseData()
  bd = ImGui_ImplSDL3_GetBackendData()
  io = ImGuiIO.new(ImGui::GetIO())
  return if bd == nil

  if bd.mouse_capture_mode == ImGui_ImplSDL3_MouseCaptureMode_Enabled
    SDL.CaptureMouse(bd.mouse_buttons_down != 0)
  elsif bd.mouse_capture_mode == ImGui_ImplSDL3_MouseCaptureMode_EnabledAfterDrag
    want_capture = false
    ImGuiMouseButton_COUNT.times do |button_n|
      if ImGui::IsMouseDragging(button_n, 1.0)
        want_capture = true
        break
      end
    end
    SDL.CaptureMouse(want_capture)
  end

  focused_window = SDL.GetKeyboardFocus()
  is_app_focused = (focused_window == bd.window)
  return unless is_app_focused

  if io[:WantSetMousePos]
    SDL.WarpMouseInWindow(bd.window, io[:MousePos][:x], io[:MousePos][:y])
  end

  hovered_window = SDL.GetMouseFocus()
  is_relative_mouse_mode = SDL.GetWindowRelativeMouseMode(bd.window)
  if hovered_window == nil && bd.mouse_can_use_global_state && bd.mouse_buttons_down == 0 && !is_relative_mouse_mode
    mx = FFI::MemoryPointer.new(:float)
    my = FFI::MemoryPointer.new(:float)
    wx = FFI::MemoryPointer.new(:int)
    wy = FFI::MemoryPointer.new(:int)
    SDL.GetGlobalMouseState(mx, my)
    SDL.GetWindowPosition(focused_window, wx, wy)
    io.AddMousePosEvent(mx.read_float - wx.read_int, my.read_float - wy.read_int)
  end
end

.ImplSDL3Renderer_CreateDeviceObjectsObject



237
238
# File 'lib/imgui_impl_sdl3renderer.rb', line 237

def self.ImplSDL3Renderer_CreateDeviceObjects()
end

.ImplSDL3Renderer_DestroyDeviceObjectsObject



240
241
242
243
244
245
246
247
248
249
250
251
252
# File 'lib/imgui_impl_sdl3renderer.rb', line 240

def self.ImplSDL3Renderer_DestroyDeviceObjects()
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  textures = platform_io[:Textures]
  textures[:Size].times do |i|
    tex_ptr = (textures[:Data] + FFI.type_size(:pointer) * i).read_pointer
    next if tex_ptr == nil || tex_ptr.address == 0
    tex = ImTextureData.new(tex_ptr)
    if tex[:RefCount] == 1
      tex.SetStatus(ImTextureStatus_WantDestroy)
      ImplSDL3Renderer_UpdateTexture(tex)
    end
  end
end

.ImplSDL3Renderer_EnsureColorBuffer(backend_data, num_vertices) ⇒ Object



68
69
70
71
72
73
74
# File 'lib/imgui_impl_sdl3renderer.rb', line 68

def self.ImplSDL3Renderer_EnsureColorBuffer(backend_data, num_vertices)
  if backend_data[:color_buffer] == nil || backend_data[:color_buffer_capacity] < num_vertices
    backend_data[:color_buffer] = FFI::MemoryPointer.new(SDL::FColor, num_vertices)
    backend_data[:color_buffer_capacity] = num_vertices
  end
  backend_data[:color_buffer]
end

.ImplSDL3Renderer_Init(renderer) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/imgui_impl_sdl3renderer.rb', line 22

def self.ImplSDL3Renderer_Init(renderer)
  io = ImGuiIO.new(ImGui::GetIO())

  backend_data = {
    bd: ImGui_ImplSDLRenderer3_Data.new,
    color_buffer: nil,
    color_buffer_capacity: 0
  }
  backend_data[:bd][:Renderer] = renderer

  @@g_BackendRendererUserData[ImGui::GetCurrentContext().address] = backend_data

  io[:BackendRendererUserData] = backend_data[:bd]
  io[:BackendRendererName] = @@g_BackendRendererName
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasVtxOffset
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasTextures

  true
end

.ImplSDL3Renderer_NewFrameObject



63
64
65
66
# File 'lib/imgui_impl_sdl3renderer.rb', line 63

def self.ImplSDL3Renderer_NewFrame()
  backend_data = ImGui_ImplSDLRenderer3_GetBackendData()
  raise 'Context or backend not initialized! Did you call ImGui::ImplSDL3Renderer_Init()?' if backend_data == nil
end

.ImplSDL3Renderer_RenderDrawData(draw_data_raw, renderer = nil) ⇒ Object



139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
# File 'lib/imgui_impl_sdl3renderer.rb', line 139

def self.ImplSDL3Renderer_RenderDrawData(draw_data_raw, renderer = nil)
  draw_data = draw_data_raw.kind_of?(ImDrawData) ? draw_data_raw : ImDrawData.new(draw_data_raw)
  backend_data = ImGui_ImplSDLRenderer3_GetBackendData()
  return if backend_data == nil

  renderer = backend_data[:bd][:Renderer] if renderer == nil
  return if renderer == nil

  rsx = FFI::MemoryPointer.new(:float)
  rsy = FFI::MemoryPointer.new(:float)
  SDL.GetRenderScale(renderer, rsx, rsy)
  render_scale = ImVec2.create(0, 0)
  render_scale[:x] = (rsx.read_float == 1.0) ? draw_data[:FramebufferScale][:x] : 1.0
  render_scale[:y] = (rsy.read_float == 1.0) ? draw_data[:FramebufferScale][:y] : 1.0

  fb_width = (draw_data[:DisplaySize][:x] * render_scale[:x]).to_i
  fb_height = (draw_data[:DisplaySize][:y] * render_scale[:y]).to_i
  return if fb_width == 0 || fb_height == 0

  if draw_data[:Textures] != nil && draw_data[:Textures].address != 0
    textures = ImVector_ImTextureDataPtr.new(draw_data[:Textures])
    textures[:Size].times do |i|
      tex_ptr = (textures[:Data] + FFI.type_size(:pointer) * i).read_pointer
      next if tex_ptr == nil || tex_ptr.address == 0
      tex = ImTextureData.new(tex_ptr)
      ImplSDL3Renderer_UpdateTexture(tex) if tex[:Status] != ImTextureStatus_OK
    end
  end

  old_viewport_enabled = SDL.RenderViewportSet(renderer)
  old_clip_enabled = SDL.RenderClipEnabled(renderer)
  old_viewport = SDL::Rect.new
  old_clip_rect = SDL::Rect.new
  SDL.GetRenderViewport(renderer, old_viewport)
  SDL.GetRenderClipRect(renderer, old_clip_rect)

  ImplSDL3Renderer_SetupRenderState(renderer)

  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  platform_io[:Renderer_RenderState] = nil

  clip_off = draw_data[:DisplayPos]
  clip_scale = render_scale

  draw_data[:CmdListsCount].times do |n|
    cmd_list = ImDrawList.new((draw_data[:CmdLists][:Data] + FFI.type_size(:pointer) * n).read_pointer)
    vtx_buffer = cmd_list[:VtxBuffer][:Data]
    idx_buffer = cmd_list[:IdxBuffer][:Data]

    cmd_list[:CmdBuffer][:Size].times do |cmd_i|
      pcmd = ImDrawCmd.new(cmd_list[:CmdBuffer][:Data] + ImDrawCmd.size * cmd_i)
      if pcmd[:UserCallback] != nil && pcmd[:UserCallback].address != 0
        ImplSDL3Renderer_SetupRenderState(renderer)
        next
      end

      clip_min = ImVec2.create((pcmd[:ClipRect][:x] - clip_off[:x]) * clip_scale[:x], (pcmd[:ClipRect][:y] - clip_off[:y]) * clip_scale[:y])
      clip_max = ImVec2.create((pcmd[:ClipRect][:z] - clip_off[:x]) * clip_scale[:x], (pcmd[:ClipRect][:w] - clip_off[:y]) * clip_scale[:y])

      clip_min[:x] = 0.0 if clip_min[:x] < 0.0
      clip_min[:y] = 0.0 if clip_min[:y] < 0.0
      clip_max[:x] = fb_width.to_f if clip_max[:x] > fb_width
      clip_max[:y] = fb_height.to_f if clip_max[:y] > fb_height
      next if clip_max[:x] <= clip_min[:x] || clip_max[:y] <= clip_min[:y]

      sdl_rect = SDL::Rect.new
      sdl_rect[:x] = clip_min[:x].to_i
      sdl_rect[:y] = clip_min[:y].to_i
      sdl_rect[:w] = (clip_max[:x] - clip_min[:x]).to_i
      sdl_rect[:h] = (clip_max[:y] - clip_min[:y]).to_i
      SDL.SetRenderClipRect(renderer, sdl_rect)

      vtx_base = pcmd[:VtxOffset] * ImDrawVert.size
      xy = vtx_buffer + vtx_base + ImDrawVert.offset_of(:pos)
      uv = vtx_buffer + vtx_base + ImDrawVert.offset_of(:uv)
      color_src = vtx_buffer + vtx_base + ImDrawVert.offset_of(:col)

      num_vertices = cmd_list[:VtxBuffer][:Size] - pcmd[:VtxOffset]
      color_f = ImplSDL3Renderer_UpdateColorBuffer(backend_data, color_src, ImDrawVert.size, num_vertices)

      tex_id = pcmd.GetTexID()
      tex_ptr = tex_id == 0 ? nil : FFI::Pointer.new(tex_id)

      SDL.RenderGeometryRaw(renderer, tex_ptr,
                            xy, ImDrawVert.size,
                            color_f, SDL::FColor.size,
                            uv, ImDrawVert.size,
                            num_vertices,
                            idx_buffer + FFI.type_size(:ImDrawIdx) * pcmd[:IdxOffset], pcmd[:ElemCount], FFI.type_size(:ImDrawIdx))
    end
  end

  platform_io[:Renderer_RenderState] = nil

  SDL.SetRenderViewport(renderer, old_viewport_enabled ? old_viewport : nil)
  SDL.SetRenderClipRect(renderer, old_clip_enabled ? old_clip_rect : nil)
end

.ImplSDL3Renderer_SetupRenderState(renderer) ⇒ Object



58
59
60
61
# File 'lib/imgui_impl_sdl3renderer.rb', line 58

def self.ImplSDL3Renderer_SetupRenderState(renderer)
  SDL.SetRenderViewport(renderer, nil)
  SDL.SetRenderClipRect(renderer, nil)
end

.ImplSDL3Renderer_ShutdownObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/imgui_impl_sdl3renderer.rb', line 42

def self.ImplSDL3Renderer_Shutdown()
  io = ImGuiIO.new(ImGui::GetIO())
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())

  ImplSDL3Renderer_DestroyDeviceObjects()

  if ImGui::GetCurrentContext() != nil
    @@g_BackendRendererUserData.delete(ImGui::GetCurrentContext().address)
  end

  io[:BackendRendererName] = nil
  io[:BackendRendererUserData] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures)
  platform_io.ClearRendererHandlers()
end

.ImplSDL3Renderer_UpdateColorBuffer(backend_data, color_src, color_stride, num_vertices) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/imgui_impl_sdl3renderer.rb', line 76

def self.ImplSDL3Renderer_UpdateColorBuffer(backend_data, color_src, color_stride, num_vertices)
  color_dst = ImplSDL3Renderer_EnsureColorBuffer(backend_data, num_vertices)
  num_vertices.times do |i|
    packed = (color_src + i * color_stride).read_uint
    c = SDL::FColor.new(color_dst + i * SDL::FColor.size)
    c[:r] = ((packed >> 0) & 0xff) / 255.0
    c[:g] = ((packed >> 8) & 0xff) / 255.0
    c[:b] = ((packed >> 16) & 0xff) / 255.0
    c[:a] = ((packed >> 24) & 0xff) / 255.0
  end
  color_dst
end

.ImplSDL3Renderer_UpdateTexture(tex_raw) ⇒ Object



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# File 'lib/imgui_impl_sdl3renderer.rb', line 89

def self.ImplSDL3Renderer_UpdateTexture(tex_raw)
  backend_data = ImGui_ImplSDLRenderer3_GetBackendData()
  return if backend_data == nil

  tex = tex_raw.kind_of?(ImTextureData) ? tex_raw : ImTextureData.new(tex_raw)

  case tex[:Status]
  when ImTextureStatus_WantCreate
    return if tex[:Format] != ImTextureFormat_RGBA32

    sdl_texture = SDL.CreateTexture(backend_data[:bd][:Renderer], SDL::PIXELFORMAT_RGBA32, SDL::TEXTUREACCESS_STATIC, tex[:Width], tex[:Height])
    if sdl_texture == nil
        error = SDL.GetError()
        puts "SDL_CreateTexture failed: #{error.read_string}"
    end
    raise 'Backend failed to create SDL texture!' if sdl_texture == nil

    SDL.UpdateTexture(sdl_texture, nil, tex.GetPixels(), tex.GetPitch())
    SDL.SetTextureBlendMode(sdl_texture, SDL::BLENDMODE_BLEND)
    SDL.SetTextureScaleMode(sdl_texture, SDL::SCALEMODE_LINEAR)

    tex.SetTexID(sdl_texture.address)
    tex.SetStatus(ImTextureStatus_OK)

  when ImTextureStatus_WantUpdates
    sdl_texture = tex.GetTexID() == 0 ? nil : FFI::Pointer.new(tex.GetTexID())
    return if sdl_texture == nil

    updates = tex[:Updates]
    updates[:Size].times do |i|
      r = ImTextureRect.new(updates[:Data] + ImTextureRect.size * i)
      sdl_rect = SDL::Rect.new
      sdl_rect[:x] = r[:x]
      sdl_rect[:y] = r[:y]
      sdl_rect[:w] = r[:w]
      sdl_rect[:h] = r[:h]
      SDL.UpdateTexture(sdl_texture, sdl_rect, tex.GetPixelsAt(r[:x], r[:y]), tex.GetPitch())
    end
    tex.SetStatus(ImTextureStatus_OK)

  when ImTextureStatus_WantDestroy
    if tex.GetTexID() != 0
      sdl_texture = FFI::Pointer.new(tex.GetTexID())
      SDL.DestroyTexture(sdl_texture)
    end
    tex.SetTexID(0)
    tex.SetStatus(ImTextureStatus_Destroyed)
  end
end

.import_symbols(output_error = false) ⇒ Object



5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
# File 'lib/imgui.rb', line 5896

def self.import_symbols(output_error = false)
  callback :ImGuiInputTextCallback, [:pointer], :int
  callback :ImGuiSizeCallback, [:pointer], :void
  callback :ImGuiMemAllocFunc, [:size_t, :pointer], :pointer
  callback :ImGuiMemFreeFunc, [:pointer, :pointer], :void
  callback :ImDrawCallback, [:pointer, :pointer], :void
  callback :ImGuiErrorCallback, [:pointer, :pointer, :pointer], :void
  callback :ImGuiContextHookCallback, [:pointer, :pointer], :void
  callback :ImGuiDemoMarkerCallback, [:pointer, :int, :pointer], :void

  entries = [
    [:ImTextureRef_GetTexID, :ImTextureRef_GetTexID, [:pointer], :uint64],
    [:ImGui_CreateContext, :ImGui_CreateContext, [:pointer], :pointer],
    [:ImGui_DestroyContext, :ImGui_DestroyContext, [:pointer], :void],
    [:ImGui_GetCurrentContext, :ImGui_GetCurrentContext, [], :pointer],
    [:ImGui_SetCurrentContext, :ImGui_SetCurrentContext, [:pointer], :void],
    [:ImGui_GetIO, :ImGui_GetIO, [], :pointer],
    [:ImGui_GetPlatformIO, :ImGui_GetPlatformIO, [], :pointer],
    [:ImGui_GetStyle, :ImGui_GetStyle, [], :pointer],
    [:ImGui_NewFrame, :ImGui_NewFrame, [], :void],
    [:ImGui_EndFrame, :ImGui_EndFrame, [], :void],
    [:ImGui_Render, :ImGui_Render, [], :void],
    [:ImGui_GetDrawData, :ImGui_GetDrawData, [], :pointer],
    [:ImGui_ShowDemoWindow, :ImGui_ShowDemoWindow, [:pointer], :void],
    [:ImGui_ShowMetricsWindow, :ImGui_ShowMetricsWindow, [:pointer], :void],
    [:ImGui_ShowDebugLogWindow, :ImGui_ShowDebugLogWindow, [:pointer], :void],
    [:ImGui_ShowIDStackToolWindow, :ImGui_ShowIDStackToolWindow, [], :void],
    [:ImGui_ShowIDStackToolWindowEx, :ImGui_ShowIDStackToolWindowEx, [:pointer], :void],
    [:ImGui_ShowAboutWindow, :ImGui_ShowAboutWindow, [:pointer], :void],
    [:ImGui_ShowStyleEditor, :ImGui_ShowStyleEditor, [:pointer], :void],
    [:ImGui_ShowStyleSelector, :ImGui_ShowStyleSelector, [:pointer], :bool],
    [:ImGui_ShowFontSelector, :ImGui_ShowFontSelector, [:pointer], :void],
    [:ImGui_ShowUserGuide, :ImGui_ShowUserGuide, [], :void],
    [:ImGui_GetVersion, :ImGui_GetVersion, [], :pointer],
    [:ImGui_StyleColorsDark, :ImGui_StyleColorsDark, [:pointer], :void],
    [:ImGui_StyleColorsLight, :ImGui_StyleColorsLight, [:pointer], :void],
    [:ImGui_StyleColorsClassic, :ImGui_StyleColorsClassic, [:pointer], :void],
    [:ImGui_Begin, :ImGui_Begin, [:pointer, :pointer, :int], :bool],
    [:ImGui_End, :ImGui_End, [], :void],
    [:ImGui_BeginChild, :ImGui_BeginChild, [:pointer, ImVec2.by_value, :int, :int], :bool],
    [:ImGui_BeginChildID, :ImGui_BeginChildID, [:uint, ImVec2.by_value, :int, :int], :bool],
    [:ImGui_EndChild, :ImGui_EndChild, [], :void],
    [:ImGui_IsWindowAppearing, :ImGui_IsWindowAppearing, [], :bool],
    [:ImGui_IsWindowCollapsed, :ImGui_IsWindowCollapsed, [], :bool],
    [:ImGui_IsWindowFocused, :ImGui_IsWindowFocused, [:int], :bool],
    [:ImGui_IsWindowHovered, :ImGui_IsWindowHovered, [:int], :bool],
    [:ImGui_GetWindowDrawList, :ImGui_GetWindowDrawList, [], :pointer],
    [:ImGui_GetWindowDpiScale, :ImGui_GetWindowDpiScale, [], :float],
    [:ImGui_GetWindowPos, :ImGui_GetWindowPos, [], ImVec2.by_value],
    [:ImGui_GetWindowSize, :ImGui_GetWindowSize, [], ImVec2.by_value],
    [:ImGui_GetWindowWidth, :ImGui_GetWindowWidth, [], :float],
    [:ImGui_GetWindowHeight, :ImGui_GetWindowHeight, [], :float],
    [:ImGui_GetWindowViewport, :ImGui_GetWindowViewport, [], :pointer],
    [:ImGui_SetNextWindowPos, :ImGui_SetNextWindowPos, [ImVec2.by_value, :int], :void],
    [:ImGui_SetNextWindowPosEx, :ImGui_SetNextWindowPosEx, [ImVec2.by_value, :int, ImVec2.by_value], :void],
    [:ImGui_SetNextWindowSize, :ImGui_SetNextWindowSize, [ImVec2.by_value, :int], :void],
    [:ImGui_SetNextWindowSizeConstraints, :ImGui_SetNextWindowSizeConstraints, [ImVec2.by_value, ImVec2.by_value, :ImGuiSizeCallback, :pointer], :void],
    [:ImGui_SetNextWindowContentSize, :ImGui_SetNextWindowContentSize, [ImVec2.by_value], :void],
    [:ImGui_SetNextWindowCollapsed, :ImGui_SetNextWindowCollapsed, [:bool, :int], :void],
    [:ImGui_SetNextWindowFocus, :ImGui_SetNextWindowFocus, [], :void],
    [:ImGui_SetNextWindowScroll, :ImGui_SetNextWindowScroll, [ImVec2.by_value], :void],
    [:ImGui_SetNextWindowBgAlpha, :ImGui_SetNextWindowBgAlpha, [:float], :void],
    [:ImGui_SetNextWindowViewport, :ImGui_SetNextWindowViewport, [:uint], :void],
    [:ImGui_SetWindowPos, :ImGui_SetWindowPos, [ImVec2.by_value, :int], :void],
    [:ImGui_SetWindowSize, :ImGui_SetWindowSize, [ImVec2.by_value, :int], :void],
    [:ImGui_SetWindowCollapsed, :ImGui_SetWindowCollapsed, [:bool, :int], :void],
    [:ImGui_SetWindowFocus, :ImGui_SetWindowFocus, [], :void],
    [:ImGui_SetWindowPosStr, :ImGui_SetWindowPosStr, [:pointer, ImVec2.by_value, :int], :void],
    [:ImGui_SetWindowSizeStr, :ImGui_SetWindowSizeStr, [:pointer, ImVec2.by_value, :int], :void],
    [:ImGui_SetWindowCollapsedStr, :ImGui_SetWindowCollapsedStr, [:pointer, :bool, :int], :void],
    [:ImGui_SetWindowFocusStr, :ImGui_SetWindowFocusStr, [:pointer], :void],
    [:ImGui_GetScrollX, :ImGui_GetScrollX, [], :float],
    [:ImGui_GetScrollY, :ImGui_GetScrollY, [], :float],
    [:ImGui_SetScrollX, :ImGui_SetScrollX, [:float], :void],
    [:ImGui_SetScrollY, :ImGui_SetScrollY, [:float], :void],
    [:ImGui_GetScrollMaxX, :ImGui_GetScrollMaxX, [], :float],
    [:ImGui_GetScrollMaxY, :ImGui_GetScrollMaxY, [], :float],
    [:ImGui_SetScrollHereX, :ImGui_SetScrollHereX, [:float], :void],
    [:ImGui_SetScrollHereY, :ImGui_SetScrollHereY, [:float], :void],
    [:ImGui_SetScrollFromPosX, :ImGui_SetScrollFromPosX, [:float, :float], :void],
    [:ImGui_SetScrollFromPosY, :ImGui_SetScrollFromPosY, [:float, :float], :void],
    [:ImGui_PushFontFloat, :ImGui_PushFontFloat, [:pointer, :float], :void],
    [:ImGui_PopFont, :ImGui_PopFont, [], :void],
    [:ImGui_GetFont, :ImGui_GetFont, [], :pointer],
    [:ImGui_GetFontSize, :ImGui_GetFontSize, [], :float],
    [:ImGui_GetFontBaked, :ImGui_GetFontBaked, [], :pointer],
    [:ImGui_PushStyleColor, :ImGui_PushStyleColor, [:int, :uint], :void],
    [:ImGui_PushStyleColorImVec4, :ImGui_PushStyleColorImVec4, [:int, ImVec4.by_value], :void],
    [:ImGui_PopStyleColor, :ImGui_PopStyleColor, [], :void],
    [:ImGui_PopStyleColorEx, :ImGui_PopStyleColorEx, [:int], :void],
    [:ImGui_PushStyleVar, :ImGui_PushStyleVar, [:int, :float], :void],
    [:ImGui_PushStyleVarImVec2, :ImGui_PushStyleVarImVec2, [:int, ImVec2.by_value], :void],
    [:ImGui_PushStyleVarX, :ImGui_PushStyleVarX, [:int, :float], :void],
    [:ImGui_PushStyleVarY, :ImGui_PushStyleVarY, [:int, :float], :void],
    [:ImGui_PopStyleVar, :ImGui_PopStyleVar, [], :void],
    [:ImGui_PopStyleVarEx, :ImGui_PopStyleVarEx, [:int], :void],
    [:ImGui_PushItemFlag, :ImGui_PushItemFlag, [:int, :bool], :void],
    [:ImGui_PopItemFlag, :ImGui_PopItemFlag, [], :void],
    [:ImGui_PushItemWidth, :ImGui_PushItemWidth, [:float], :void],
    [:ImGui_PopItemWidth, :ImGui_PopItemWidth, [], :void],
    [:ImGui_SetNextItemWidth, :ImGui_SetNextItemWidth, [:float], :void],
    [:ImGui_CalcItemWidth, :ImGui_CalcItemWidth, [], :float],
    [:ImGui_PushTextWrapPos, :ImGui_PushTextWrapPos, [:float], :void],
    [:ImGui_PopTextWrapPos, :ImGui_PopTextWrapPos, [], :void],
    [:ImGui_GetFontTexUvWhitePixel, :ImGui_GetFontTexUvWhitePixel, [], ImVec2.by_value],
    [:ImGui_GetColorU32, :ImGui_GetColorU32, [:int], :uint],
    [:ImGui_GetColorU32Ex, :ImGui_GetColorU32Ex, [:int, :float], :uint],
    [:ImGui_GetColorU32ImVec4, :ImGui_GetColorU32ImVec4, [ImVec4.by_value], :uint],
    [:ImGui_GetColorU32ImU32, :ImGui_GetColorU32ImU32, [:uint], :uint],
    [:ImGui_GetColorU32ImU32Ex, :ImGui_GetColorU32ImU32Ex, [:uint, :float], :uint],
    [:ImGui_GetStyleColorVec4, :ImGui_GetStyleColorVec4, [:int], :pointer],
    [:ImGui_GetCursorScreenPos, :ImGui_GetCursorScreenPos, [], ImVec2.by_value],
    [:ImGui_SetCursorScreenPos, :ImGui_SetCursorScreenPos, [ImVec2.by_value], :void],
    [:ImGui_GetContentRegionAvail, :ImGui_GetContentRegionAvail, [], ImVec2.by_value],
    [:ImGui_GetCursorPos, :ImGui_GetCursorPos, [], ImVec2.by_value],
    [:ImGui_GetCursorPosX, :ImGui_GetCursorPosX, [], :float],
    [:ImGui_GetCursorPosY, :ImGui_GetCursorPosY, [], :float],
    [:ImGui_SetCursorPos, :ImGui_SetCursorPos, [ImVec2.by_value], :void],
    [:ImGui_SetCursorPosX, :ImGui_SetCursorPosX, [:float], :void],
    [:ImGui_SetCursorPosY, :ImGui_SetCursorPosY, [:float], :void],
    [:ImGui_GetCursorStartPos, :ImGui_GetCursorStartPos, [], ImVec2.by_value],
    [:ImGui_Separator, :ImGui_Separator, [], :void],
    [:ImGui_SameLine, :ImGui_SameLine, [], :void],
    [:ImGui_SameLineEx, :ImGui_SameLineEx, [:float, :float], :void],
    [:ImGui_NewLine, :ImGui_NewLine, [], :void],
    [:ImGui_Spacing, :ImGui_Spacing, [], :void],
    [:ImGui_Dummy, :ImGui_Dummy, [ImVec2.by_value], :void],
    [:ImGui_Indent, :ImGui_Indent, [], :void],
    [:ImGui_IndentEx, :ImGui_IndentEx, [:float], :void],
    [:ImGui_Unindent, :ImGui_Unindent, [], :void],
    [:ImGui_UnindentEx, :ImGui_UnindentEx, [:float], :void],
    [:ImGui_BeginGroup, :ImGui_BeginGroup, [], :void],
    [:ImGui_EndGroup, :ImGui_EndGroup, [], :void],
    [:ImGui_AlignTextToFramePadding, :ImGui_AlignTextToFramePadding, [], :void],
    [:ImGui_GetTextLineHeight, :ImGui_GetTextLineHeight, [], :float],
    [:ImGui_GetTextLineHeightWithSpacing, :ImGui_GetTextLineHeightWithSpacing, [], :float],
    [:ImGui_GetFrameHeight, :ImGui_GetFrameHeight, [], :float],
    [:ImGui_GetFrameHeightWithSpacing, :ImGui_GetFrameHeightWithSpacing, [], :float],
    [:ImGui_PushID, :ImGui_PushID, [:pointer], :void],
    [:ImGui_PushIDStr, :ImGui_PushIDStr, [:pointer, :pointer], :void],
    [:ImGui_PushIDPtr, :ImGui_PushIDPtr, [:pointer], :void],
    [:ImGui_PushIDInt, :ImGui_PushIDInt, [:int], :void],
    [:ImGui_PopID, :ImGui_PopID, [], :void],
    [:ImGui_GetID, :ImGui_GetID, [:pointer], :uint],
    [:ImGui_GetIDStr, :ImGui_GetIDStr, [:pointer, :pointer], :uint],
    [:ImGui_GetIDPtr, :ImGui_GetIDPtr, [:pointer], :uint],
    [:ImGui_GetIDInt, :ImGui_GetIDInt, [:int], :uint],
    [:ImGui_TextUnformatted, :ImGui_TextUnformatted, [:pointer], :void],
    [:ImGui_TextUnformattedEx, :ImGui_TextUnformattedEx, [:pointer, :pointer], :void],
    [:ImGui_Text, :ImGui_Text, [:pointer, :varargs], :void],
    [:ImGui_TextColored, :ImGui_TextColored, [ImVec4.by_value, :pointer, :varargs], :void],
    [:ImGui_TextDisabled, :ImGui_TextDisabled, [:pointer, :varargs], :void],
    [:ImGui_TextWrapped, :ImGui_TextWrapped, [:pointer, :varargs], :void],
    [:ImGui_LabelText, :ImGui_LabelText, [:pointer, :pointer, :varargs], :void],
    [:ImGui_BulletText, :ImGui_BulletText, [:pointer, :varargs], :void],
    [:ImGui_SeparatorText, :ImGui_SeparatorText, [:pointer], :void],
    [:ImGui_Button, :ImGui_Button, [:pointer], :bool],
    [:ImGui_ButtonEx, :ImGui_ButtonEx, [:pointer, ImVec2.by_value], :bool],
    [:ImGui_SmallButton, :ImGui_SmallButton, [:pointer], :bool],
    [:ImGui_InvisibleButton, :ImGui_InvisibleButton, [:pointer, ImVec2.by_value, :int], :bool],
    [:ImGui_ArrowButton, :ImGui_ArrowButton, [:pointer, :int], :bool],
    [:ImGui_Checkbox, :ImGui_Checkbox, [:pointer, :pointer], :bool],
    [:ImGui_CheckboxFlagsIntPtr, :ImGui_CheckboxFlagsIntPtr, [:pointer, :pointer, :int], :bool],
    [:ImGui_CheckboxFlagsUintPtr, :ImGui_CheckboxFlagsUintPtr, [:pointer, :pointer, :uint], :bool],
    [:ImGui_RadioButton, :ImGui_RadioButton, [:pointer, :bool], :bool],
    [:ImGui_RadioButtonIntPtr, :ImGui_RadioButtonIntPtr, [:pointer, :pointer, :int], :bool],
    [:ImGui_ProgressBar, :ImGui_ProgressBar, [:float, ImVec2.by_value, :pointer], :void],
    [:ImGui_Bullet, :ImGui_Bullet, [], :void],
    [:ImGui_TextLink, :ImGui_TextLink, [:pointer], :bool],
    [:ImGui_TextLinkOpenURL, :ImGui_TextLinkOpenURL, [:pointer], :bool],
    [:ImGui_TextLinkOpenURLEx, :ImGui_TextLinkOpenURLEx, [:pointer, :pointer], :bool],
    [:ImGui_Image, :ImGui_Image, [ImTextureRef.by_value, ImVec2.by_value], :void],
    [:ImGui_ImageEx, :ImGui_ImageEx, [ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], :void],
    [:ImGui_ImageWithBg, :ImGui_ImageWithBg, [ImTextureRef.by_value, ImVec2.by_value], :void],
    [:ImGui_ImageWithBgEx, :ImGui_ImageWithBgEx, [ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec4.by_value, ImVec4.by_value], :void],
    [:ImGui_ImageButton, :ImGui_ImageButton, [:pointer, ImTextureRef.by_value, ImVec2.by_value], :bool],
    [:ImGui_ImageButtonEx, :ImGui_ImageButtonEx, [:pointer, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec4.by_value, ImVec4.by_value], :bool],
    [:ImGui_BeginCombo, :ImGui_BeginCombo, [:pointer, :pointer, :int], :bool],
    [:ImGui_EndCombo, :ImGui_EndCombo, [], :void],
    [:ImGui_ComboChar, :ImGui_ComboChar, [:pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_ComboCharEx, :ImGui_ComboCharEx, [:pointer, :pointer, :pointer, :int, :int], :bool],
    [:ImGui_Combo, :ImGui_Combo, [:pointer, :pointer, :pointer], :bool],
    [:ImGui_ComboEx, :ImGui_ComboEx, [:pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_ComboCallback, :ImGui_ComboCallback, [:pointer, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_ComboCallbackEx, :ImGui_ComboCallbackEx, [:pointer, :pointer, :pointer, :pointer, :int, :int], :bool],
    [:ImGui_DragFloat, :ImGui_DragFloat, [:pointer, :pointer], :bool],
    [:ImGui_DragFloatEx, :ImGui_DragFloatEx, [:pointer, :pointer, :float, :float, :float, :pointer, :int], :bool],
    [:ImGui_DragFloat2, :ImGui_DragFloat2, [:pointer, :pointer], :bool],
    [:ImGui_DragFloat2Ex, :ImGui_DragFloat2Ex, [:pointer, :pointer, :float, :float, :float, :pointer, :int], :bool],
    [:ImGui_DragFloat3, :ImGui_DragFloat3, [:pointer, :pointer], :bool],
    [:ImGui_DragFloat3Ex, :ImGui_DragFloat3Ex, [:pointer, :pointer, :float, :float, :float, :pointer, :int], :bool],
    [:ImGui_DragFloat4, :ImGui_DragFloat4, [:pointer, :pointer], :bool],
    [:ImGui_DragFloat4Ex, :ImGui_DragFloat4Ex, [:pointer, :pointer, :float, :float, :float, :pointer, :int], :bool],
    [:ImGui_DragFloatRange2, :ImGui_DragFloatRange2, [:pointer, :pointer, :pointer], :bool],
    [:ImGui_DragFloatRange2Ex, :ImGui_DragFloatRange2Ex, [:pointer, :pointer, :pointer, :float, :float, :float, :pointer, :pointer, :int], :bool],
    [:ImGui_DragInt, :ImGui_DragInt, [:pointer, :pointer], :bool],
    [:ImGui_DragIntEx, :ImGui_DragIntEx, [:pointer, :pointer, :float, :int, :int, :pointer, :int], :bool],
    [:ImGui_DragInt2, :ImGui_DragInt2, [:pointer, :pointer], :bool],
    [:ImGui_DragInt2Ex, :ImGui_DragInt2Ex, [:pointer, :pointer, :float, :int, :int, :pointer, :int], :bool],
    [:ImGui_DragInt3, :ImGui_DragInt3, [:pointer, :pointer], :bool],
    [:ImGui_DragInt3Ex, :ImGui_DragInt3Ex, [:pointer, :pointer, :float, :int, :int, :pointer, :int], :bool],
    [:ImGui_DragInt4, :ImGui_DragInt4, [:pointer, :pointer], :bool],
    [:ImGui_DragInt4Ex, :ImGui_DragInt4Ex, [:pointer, :pointer, :float, :int, :int, :pointer, :int], :bool],
    [:ImGui_DragIntRange2, :ImGui_DragIntRange2, [:pointer, :pointer, :pointer], :bool],
    [:ImGui_DragIntRange2Ex, :ImGui_DragIntRange2Ex, [:pointer, :pointer, :pointer, :float, :int, :int, :pointer, :pointer, :int], :bool],
    [:ImGui_DragScalar, :ImGui_DragScalar, [:pointer, :int, :pointer], :bool],
    [:ImGui_DragScalarEx, :ImGui_DragScalarEx, [:pointer, :int, :pointer, :float, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_DragScalarN, :ImGui_DragScalarN, [:pointer, :int, :pointer, :int], :bool],
    [:ImGui_DragScalarNEx, :ImGui_DragScalarNEx, [:pointer, :int, :pointer, :int, :float, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_SliderFloat, :ImGui_SliderFloat, [:pointer, :pointer, :float, :float], :bool],
    [:ImGui_SliderFloatEx, :ImGui_SliderFloatEx, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_SliderFloat2, :ImGui_SliderFloat2, [:pointer, :pointer, :float, :float], :bool],
    [:ImGui_SliderFloat2Ex, :ImGui_SliderFloat2Ex, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_SliderFloat3, :ImGui_SliderFloat3, [:pointer, :pointer, :float, :float], :bool],
    [:ImGui_SliderFloat3Ex, :ImGui_SliderFloat3Ex, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_SliderFloat4, :ImGui_SliderFloat4, [:pointer, :pointer, :float, :float], :bool],
    [:ImGui_SliderFloat4Ex, :ImGui_SliderFloat4Ex, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_SliderAngle, :ImGui_SliderAngle, [:pointer, :pointer], :bool],
    [:ImGui_SliderAngleEx, :ImGui_SliderAngleEx, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_SliderInt, :ImGui_SliderInt, [:pointer, :pointer, :int, :int], :bool],
    [:ImGui_SliderIntEx, :ImGui_SliderIntEx, [:pointer, :pointer, :int, :int, :pointer, :int], :bool],
    [:ImGui_SliderInt2, :ImGui_SliderInt2, [:pointer, :pointer, :int, :int], :bool],
    [:ImGui_SliderInt2Ex, :ImGui_SliderInt2Ex, [:pointer, :pointer, :int, :int, :pointer, :int], :bool],
    [:ImGui_SliderInt3, :ImGui_SliderInt3, [:pointer, :pointer, :int, :int], :bool],
    [:ImGui_SliderInt3Ex, :ImGui_SliderInt3Ex, [:pointer, :pointer, :int, :int, :pointer, :int], :bool],
    [:ImGui_SliderInt4, :ImGui_SliderInt4, [:pointer, :pointer, :int, :int], :bool],
    [:ImGui_SliderInt4Ex, :ImGui_SliderInt4Ex, [:pointer, :pointer, :int, :int, :pointer, :int], :bool],
    [:ImGui_SliderScalar, :ImGui_SliderScalar, [:pointer, :int, :pointer, :pointer, :pointer], :bool],
    [:ImGui_SliderScalarEx, :ImGui_SliderScalarEx, [:pointer, :int, :pointer, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_SliderScalarN, :ImGui_SliderScalarN, [:pointer, :int, :pointer, :int, :pointer, :pointer], :bool],
    [:ImGui_SliderScalarNEx, :ImGui_SliderScalarNEx, [:pointer, :int, :pointer, :int, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_VSliderFloat, :ImGui_VSliderFloat, [:pointer, ImVec2.by_value, :pointer, :float, :float], :bool],
    [:ImGui_VSliderFloatEx, :ImGui_VSliderFloatEx, [:pointer, ImVec2.by_value, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_VSliderInt, :ImGui_VSliderInt, [:pointer, ImVec2.by_value, :pointer, :int, :int], :bool],
    [:ImGui_VSliderIntEx, :ImGui_VSliderIntEx, [:pointer, ImVec2.by_value, :pointer, :int, :int, :pointer, :int], :bool],
    [:ImGui_VSliderScalar, :ImGui_VSliderScalar, [:pointer, ImVec2.by_value, :int, :pointer, :pointer, :pointer], :bool],
    [:ImGui_VSliderScalarEx, :ImGui_VSliderScalarEx, [:pointer, ImVec2.by_value, :int, :pointer, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_InputText, :ImGui_InputText, [:pointer, :pointer, :size_t, :int], :bool],
    [:ImGui_InputTextEx, :ImGui_InputTextEx, [:pointer, :pointer, :size_t, :int, :ImGuiInputTextCallback, :pointer], :bool],
    [:ImGui_InputTextMultiline, :ImGui_InputTextMultiline, [:pointer, :pointer, :size_t], :bool],
    [:ImGui_InputTextMultilineEx, :ImGui_InputTextMultilineEx, [:pointer, :pointer, :size_t, ImVec2.by_value, :int, :ImGuiInputTextCallback, :pointer], :bool],
    [:ImGui_InputTextWithHint, :ImGui_InputTextWithHint, [:pointer, :pointer, :pointer, :size_t, :int], :bool],
    [:ImGui_InputTextWithHintEx, :ImGui_InputTextWithHintEx, [:pointer, :pointer, :pointer, :size_t, :int, :ImGuiInputTextCallback, :pointer], :bool],
    [:ImGui_InputFloat, :ImGui_InputFloat, [:pointer, :pointer], :bool],
    [:ImGui_InputFloatEx, :ImGui_InputFloatEx, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_InputFloat2, :ImGui_InputFloat2, [:pointer, :pointer], :bool],
    [:ImGui_InputFloat2Ex, :ImGui_InputFloat2Ex, [:pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_InputFloat3, :ImGui_InputFloat3, [:pointer, :pointer], :bool],
    [:ImGui_InputFloat3Ex, :ImGui_InputFloat3Ex, [:pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_InputFloat4, :ImGui_InputFloat4, [:pointer, :pointer], :bool],
    [:ImGui_InputFloat4Ex, :ImGui_InputFloat4Ex, [:pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_InputInt, :ImGui_InputInt, [:pointer, :pointer], :bool],
    [:ImGui_InputIntEx, :ImGui_InputIntEx, [:pointer, :pointer, :int, :int, :int], :bool],
    [:ImGui_InputInt2, :ImGui_InputInt2, [:pointer, :pointer, :int], :bool],
    [:ImGui_InputInt3, :ImGui_InputInt3, [:pointer, :pointer, :int], :bool],
    [:ImGui_InputInt4, :ImGui_InputInt4, [:pointer, :pointer, :int], :bool],
    [:ImGui_InputDouble, :ImGui_InputDouble, [:pointer, :pointer], :bool],
    [:ImGui_InputDoubleEx, :ImGui_InputDoubleEx, [:pointer, :pointer, :double, :double, :pointer, :int], :bool],
    [:ImGui_InputScalar, :ImGui_InputScalar, [:pointer, :int, :pointer], :bool],
    [:ImGui_InputScalarEx, :ImGui_InputScalarEx, [:pointer, :int, :pointer, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_InputScalarN, :ImGui_InputScalarN, [:pointer, :int, :pointer, :int], :bool],
    [:ImGui_InputScalarNEx, :ImGui_InputScalarNEx, [:pointer, :int, :pointer, :int, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_ColorEdit3, :ImGui_ColorEdit3, [:pointer, :pointer, :int], :bool],
    [:ImGui_ColorEdit4, :ImGui_ColorEdit4, [:pointer, :pointer, :int], :bool],
    [:ImGui_ColorPicker3, :ImGui_ColorPicker3, [:pointer, :pointer, :int], :bool],
    [:ImGui_ColorPicker4, :ImGui_ColorPicker4, [:pointer, :pointer, :int, :pointer], :bool],
    [:ImGui_ColorButton, :ImGui_ColorButton, [:pointer, ImVec4.by_value, :int], :bool],
    [:ImGui_ColorButtonEx, :ImGui_ColorButtonEx, [:pointer, ImVec4.by_value, :int, ImVec2.by_value], :bool],
    [:ImGui_SetColorEditOptions, :ImGui_SetColorEditOptions, [:int], :void],
    [:ImGui_TreeNode, :ImGui_TreeNode, [:pointer], :bool],
    [:ImGui_TreeNodeStr, :ImGui_TreeNodeStr, [:pointer, :pointer, :varargs], :bool],
    [:ImGui_TreeNodePtr, :ImGui_TreeNodePtr, [:pointer, :pointer, :varargs], :bool],
    [:ImGui_TreeNodeEx, :ImGui_TreeNodeEx, [:pointer, :int], :bool],
    [:ImGui_TreeNodeExStr, :ImGui_TreeNodeExStr, [:pointer, :int, :pointer, :varargs], :bool],
    [:ImGui_TreeNodeExPtr, :ImGui_TreeNodeExPtr, [:pointer, :int, :pointer, :varargs], :bool],
    [:ImGui_TreePush, :ImGui_TreePush, [:pointer], :void],
    [:ImGui_TreePushPtr, :ImGui_TreePushPtr, [:pointer], :void],
    [:ImGui_TreePop, :ImGui_TreePop, [], :void],
    [:ImGui_GetTreeNodeToLabelSpacing, :ImGui_GetTreeNodeToLabelSpacing, [], :float],
    [:ImGui_CollapsingHeader, :ImGui_CollapsingHeader, [:pointer, :int], :bool],
    [:ImGui_CollapsingHeaderBoolPtr, :ImGui_CollapsingHeaderBoolPtr, [:pointer, :pointer, :int], :bool],
    [:ImGui_SetNextItemOpen, :ImGui_SetNextItemOpen, [:bool, :int], :void],
    [:ImGui_SetNextItemStorageID, :ImGui_SetNextItemStorageID, [:uint], :void],
    [:ImGui_TreeNodeGetOpen, :ImGui_TreeNodeGetOpen, [:uint], :bool],
    [:ImGui_Selectable, :ImGui_Selectable, [:pointer], :bool],
    [:ImGui_SelectableEx, :ImGui_SelectableEx, [:pointer, :bool, :int, ImVec2.by_value], :bool],
    [:ImGui_SelectableBoolPtr, :ImGui_SelectableBoolPtr, [:pointer, :pointer, :int], :bool],
    [:ImGui_SelectableBoolPtrEx, :ImGui_SelectableBoolPtrEx, [:pointer, :pointer, :int, ImVec2.by_value], :bool],
    [:ImGui_BeginMultiSelect, :ImGui_BeginMultiSelect, [:int], :pointer],
    [:ImGui_BeginMultiSelectEx, :ImGui_BeginMultiSelectEx, [:int, :int, :int], :pointer],
    [:ImGui_EndMultiSelect, :ImGui_EndMultiSelect, [], :pointer],
    [:ImGui_SetNextItemSelectionUserData, :ImGui_SetNextItemSelectionUserData, [:int64], :void],
    [:ImGui_IsItemToggledSelection, :ImGui_IsItemToggledSelection, [], :bool],
    [:ImGui_BeginListBox, :ImGui_BeginListBox, [:pointer, ImVec2.by_value], :bool],
    [:ImGui_EndListBox, :ImGui_EndListBox, [], :void],
    [:ImGui_ListBox, :ImGui_ListBox, [:pointer, :pointer, :pointer, :int, :int], :bool],
    [:ImGui_ListBoxCallback, :ImGui_ListBoxCallback, [:pointer, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_ListBoxCallbackEx, :ImGui_ListBoxCallbackEx, [:pointer, :pointer, :pointer, :pointer, :int, :int], :bool],
    [:ImGui_PlotLines, :ImGui_PlotLines, [:pointer, :pointer, :int], :void],
    [:ImGui_PlotLinesEx, :ImGui_PlotLinesEx, [:pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value, :int], :void],
    [:ImGui_PlotLinesCallback, :ImGui_PlotLinesCallback, [:pointer, :pointer, :pointer, :int], :void],
    [:ImGui_PlotLinesCallbackEx, :ImGui_PlotLinesCallbackEx, [:pointer, :pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value], :void],
    [:ImGui_PlotHistogram, :ImGui_PlotHistogram, [:pointer, :pointer, :int], :void],
    [:ImGui_PlotHistogramEx, :ImGui_PlotHistogramEx, [:pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value, :int], :void],
    [:ImGui_PlotHistogramCallback, :ImGui_PlotHistogramCallback, [:pointer, :pointer, :pointer, :int], :void],
    [:ImGui_PlotHistogramCallbackEx, :ImGui_PlotHistogramCallbackEx, [:pointer, :pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value], :void],
    [:ImGui_BeginMenuBar, :ImGui_BeginMenuBar, [], :bool],
    [:ImGui_EndMenuBar, :ImGui_EndMenuBar, [], :void],
    [:ImGui_BeginMainMenuBar, :ImGui_BeginMainMenuBar, [], :bool],
    [:ImGui_EndMainMenuBar, :ImGui_EndMainMenuBar, [], :void],
    [:ImGui_BeginMenu, :ImGui_BeginMenu, [:pointer], :bool],
    [:ImGui_BeginMenuEx, :ImGui_BeginMenuEx, [:pointer, :bool], :bool],
    [:ImGui_EndMenu, :ImGui_EndMenu, [], :void],
    [:ImGui_MenuItem, :ImGui_MenuItem, [:pointer], :bool],
    [:ImGui_MenuItemEx, :ImGui_MenuItemEx, [:pointer, :pointer, :bool, :bool], :bool],
    [:ImGui_MenuItemBoolPtr, :ImGui_MenuItemBoolPtr, [:pointer, :pointer, :pointer, :bool], :bool],
    [:ImGui_BeginTooltip, :ImGui_BeginTooltip, [], :bool],
    [:ImGui_EndTooltip, :ImGui_EndTooltip, [], :void],
    [:ImGui_SetTooltip, :ImGui_SetTooltip, [:pointer, :varargs], :void],
    [:ImGui_BeginItemTooltip, :ImGui_BeginItemTooltip, [], :bool],
    [:ImGui_SetItemTooltip, :ImGui_SetItemTooltip, [:pointer, :varargs], :void],
    [:ImGui_BeginPopup, :ImGui_BeginPopup, [:pointer, :int], :bool],
    [:ImGui_BeginPopupModal, :ImGui_BeginPopupModal, [:pointer, :pointer, :int], :bool],
    [:ImGui_EndPopup, :ImGui_EndPopup, [], :void],
    [:ImGui_OpenPopup, :ImGui_OpenPopup, [:pointer, :int], :void],
    [:ImGui_OpenPopupID, :ImGui_OpenPopupID, [:uint, :int], :void],
    [:ImGui_OpenPopupOnItemClick, :ImGui_OpenPopupOnItemClick, [:pointer, :int], :void],
    [:ImGui_CloseCurrentPopup, :ImGui_CloseCurrentPopup, [], :void],
    [:ImGui_BeginPopupContextItem, :ImGui_BeginPopupContextItem, [], :bool],
    [:ImGui_BeginPopupContextItemEx, :ImGui_BeginPopupContextItemEx, [:pointer, :int], :bool],
    [:ImGui_BeginPopupContextWindow, :ImGui_BeginPopupContextWindow, [], :bool],
    [:ImGui_BeginPopupContextWindowEx, :ImGui_BeginPopupContextWindowEx, [:pointer, :int], :bool],
    [:ImGui_BeginPopupContextVoid, :ImGui_BeginPopupContextVoid, [], :bool],
    [:ImGui_BeginPopupContextVoidEx, :ImGui_BeginPopupContextVoidEx, [:pointer, :int], :bool],
    [:ImGui_IsPopupOpen, :ImGui_IsPopupOpen, [:pointer, :int], :bool],
    [:ImGui_BeginTable, :ImGui_BeginTable, [:pointer, :int, :int], :bool],
    [:ImGui_BeginTableEx, :ImGui_BeginTableEx, [:pointer, :int, :int, ImVec2.by_value, :float], :bool],
    [:ImGui_EndTable, :ImGui_EndTable, [], :void],
    [:ImGui_TableNextRow, :ImGui_TableNextRow, [], :void],
    [:ImGui_TableNextRowEx, :ImGui_TableNextRowEx, [:int, :float], :void],
    [:ImGui_TableNextColumn, :ImGui_TableNextColumn, [], :bool],
    [:ImGui_TableSetColumnIndex, :ImGui_TableSetColumnIndex, [:int], :bool],
    [:ImGui_TableSetupColumn, :ImGui_TableSetupColumn, [:pointer, :int], :void],
    [:ImGui_TableSetupColumnEx, :ImGui_TableSetupColumnEx, [:pointer, :int, :float, :uint], :void],
    [:ImGui_TableSetupScrollFreeze, :ImGui_TableSetupScrollFreeze, [:int, :int], :void],
    [:ImGui_TableHeader, :ImGui_TableHeader, [:pointer], :void],
    [:ImGui_TableHeadersRow, :ImGui_TableHeadersRow, [], :void],
    [:ImGui_TableAngledHeadersRow, :ImGui_TableAngledHeadersRow, [], :void],
    [:ImGui_TableGetSortSpecs, :ImGui_TableGetSortSpecs, [], :pointer],
    [:ImGui_TableGetColumnCount, :ImGui_TableGetColumnCount, [], :int],
    [:ImGui_TableGetColumnIndex, :ImGui_TableGetColumnIndex, [], :int],
    [:ImGui_TableGetRowIndex, :ImGui_TableGetRowIndex, [], :int],
    [:ImGui_TableGetColumnName, :ImGui_TableGetColumnName, [:int], :pointer],
    [:ImGui_TableGetColumnFlags, :ImGui_TableGetColumnFlags, [:int], :int],
    [:ImGui_TableSetColumnEnabled, :ImGui_TableSetColumnEnabled, [:int, :bool], :void],
    [:ImGui_TableGetHoveredColumn, :ImGui_TableGetHoveredColumn, [], :int],
    [:ImGui_TableSetBgColor, :ImGui_TableSetBgColor, [:int, :uint, :int], :void],
    [:ImGui_Columns, :ImGui_Columns, [], :void],
    [:ImGui_ColumnsEx, :ImGui_ColumnsEx, [:int, :pointer, :bool], :void],
    [:ImGui_NextColumn, :ImGui_NextColumn, [], :void],
    [:ImGui_GetColumnIndex, :ImGui_GetColumnIndex, [], :int],
    [:ImGui_GetColumnWidth, :ImGui_GetColumnWidth, [:int], :float],
    [:ImGui_SetColumnWidth, :ImGui_SetColumnWidth, [:int, :float], :void],
    [:ImGui_GetColumnOffset, :ImGui_GetColumnOffset, [:int], :float],
    [:ImGui_SetColumnOffset, :ImGui_SetColumnOffset, [:int, :float], :void],
    [:ImGui_GetColumnsCount, :ImGui_GetColumnsCount, [], :int],
    [:ImGui_BeginTabBar, :ImGui_BeginTabBar, [:pointer, :int], :bool],
    [:ImGui_EndTabBar, :ImGui_EndTabBar, [], :void],
    [:ImGui_BeginTabItem, :ImGui_BeginTabItem, [:pointer, :pointer, :int], :bool],
    [:ImGui_EndTabItem, :ImGui_EndTabItem, [], :void],
    [:ImGui_TabItemButton, :ImGui_TabItemButton, [:pointer, :int], :bool],
    [:ImGui_SetTabItemClosed, :ImGui_SetTabItemClosed, [:pointer], :void],
    [:ImGui_DockSpace, :ImGui_DockSpace, [:uint], :uint],
    [:ImGui_DockSpaceEx, :ImGui_DockSpaceEx, [:uint, ImVec2.by_value, :int, :pointer], :uint],
    [:ImGui_DockSpaceOverViewport, :ImGui_DockSpaceOverViewport, [], :uint],
    [:ImGui_DockSpaceOverViewportEx, :ImGui_DockSpaceOverViewportEx, [:uint, :pointer, :int, :pointer], :uint],
    [:ImGui_SetNextWindowDockID, :ImGui_SetNextWindowDockID, [:uint, :int], :void],
    [:ImGui_SetNextWindowClass, :ImGui_SetNextWindowClass, [:pointer], :void],
    [:ImGui_GetWindowDockID, :ImGui_GetWindowDockID, [], :uint],
    [:ImGui_IsWindowDocked, :ImGui_IsWindowDocked, [], :bool],
    [:ImGui_LogToTTY, :ImGui_LogToTTY, [:int], :void],
    [:ImGui_LogToFile, :ImGui_LogToFile, [:int, :pointer], :void],
    [:ImGui_LogToClipboard, :ImGui_LogToClipboard, [:int], :void],
    [:ImGui_LogFinish, :ImGui_LogFinish, [], :void],
    [:ImGui_LogButtons, :ImGui_LogButtons, [], :void],
    [:ImGui_LogText, :ImGui_LogText, [:pointer, :varargs], :void],
    [:ImGui_BeginDragDropSource, :ImGui_BeginDragDropSource, [:int], :bool],
    [:ImGui_SetDragDropPayload, :ImGui_SetDragDropPayload, [:pointer, :pointer, :size_t, :int], :bool],
    [:ImGui_EndDragDropSource, :ImGui_EndDragDropSource, [], :void],
    [:ImGui_BeginDragDropTarget, :ImGui_BeginDragDropTarget, [], :bool],
    [:ImGui_AcceptDragDropPayload, :ImGui_AcceptDragDropPayload, [:pointer, :int], :pointer],
    [:ImGui_EndDragDropTarget, :ImGui_EndDragDropTarget, [], :void],
    [:ImGui_GetDragDropPayload, :ImGui_GetDragDropPayload, [], :pointer],
    [:ImGui_BeginDisabled, :ImGui_BeginDisabled, [:bool], :void],
    [:ImGui_EndDisabled, :ImGui_EndDisabled, [], :void],
    [:ImGui_PushClipRect, :ImGui_PushClipRect, [ImVec2.by_value, ImVec2.by_value, :bool], :void],
    [:ImGui_PopClipRect, :ImGui_PopClipRect, [], :void],
    [:ImGui_SetItemDefaultFocus, :ImGui_SetItemDefaultFocus, [], :void],
    [:ImGui_SetKeyboardFocusHere, :ImGui_SetKeyboardFocusHere, [], :void],
    [:ImGui_SetKeyboardFocusHereEx, :ImGui_SetKeyboardFocusHereEx, [:int], :void],
    [:ImGui_SetNavCursorVisible, :ImGui_SetNavCursorVisible, [:bool], :void],
    [:ImGui_SetNextItemAllowOverlap, :ImGui_SetNextItemAllowOverlap, [], :void],
    [:ImGui_IsItemHovered, :ImGui_IsItemHovered, [:int], :bool],
    [:ImGui_IsItemActive, :ImGui_IsItemActive, [], :bool],
    [:ImGui_IsItemFocused, :ImGui_IsItemFocused, [], :bool],
    [:ImGui_IsItemClicked, :ImGui_IsItemClicked, [], :bool],
    [:ImGui_IsItemClickedEx, :ImGui_IsItemClickedEx, [:int], :bool],
    [:ImGui_IsItemVisible, :ImGui_IsItemVisible, [], :bool],
    [:ImGui_IsItemEdited, :ImGui_IsItemEdited, [], :bool],
    [:ImGui_IsItemActivated, :ImGui_IsItemActivated, [], :bool],
    [:ImGui_IsItemDeactivated, :ImGui_IsItemDeactivated, [], :bool],
    [:ImGui_IsItemDeactivatedAfterEdit, :ImGui_IsItemDeactivatedAfterEdit, [], :bool],
    [:ImGui_IsItemToggledOpen, :ImGui_IsItemToggledOpen, [], :bool],
    [:ImGui_IsAnyItemHovered, :ImGui_IsAnyItemHovered, [], :bool],
    [:ImGui_IsAnyItemActive, :ImGui_IsAnyItemActive, [], :bool],
    [:ImGui_IsAnyItemFocused, :ImGui_IsAnyItemFocused, [], :bool],
    [:ImGui_GetItemID, :ImGui_GetItemID, [], :uint],
    [:ImGui_GetItemRectMin, :ImGui_GetItemRectMin, [], ImVec2.by_value],
    [:ImGui_GetItemRectMax, :ImGui_GetItemRectMax, [], ImVec2.by_value],
    [:ImGui_GetItemRectSize, :ImGui_GetItemRectSize, [], ImVec2.by_value],
    [:ImGui_GetItemFlags, :ImGui_GetItemFlags, [], :int],
    [:ImGui_GetMainViewport, :ImGui_GetMainViewport, [], :pointer],
    [:ImGui_GetBackgroundDrawList, :ImGui_GetBackgroundDrawList, [], :pointer],
    [:ImGui_GetBackgroundDrawListEx, :ImGui_GetBackgroundDrawListEx, [:pointer], :pointer],
    [:ImGui_GetForegroundDrawList, :ImGui_GetForegroundDrawList, [], :pointer],
    [:ImGui_GetForegroundDrawListEx, :ImGui_GetForegroundDrawListEx, [:pointer], :pointer],
    [:ImGui_IsRectVisibleBySize, :ImGui_IsRectVisibleBySize, [ImVec2.by_value], :bool],
    [:ImGui_IsRectVisible, :ImGui_IsRectVisible, [ImVec2.by_value, ImVec2.by_value], :bool],
    [:ImGui_GetTime, :ImGui_GetTime, [], :double],
    [:ImGui_GetFrameCount, :ImGui_GetFrameCount, [], :int],
    [:ImGui_GetDrawListSharedData, :ImGui_GetDrawListSharedData, [], :pointer],
    [:ImGui_GetStyleColorName, :ImGui_GetStyleColorName, [:int], :pointer],
    [:ImGui_SetStateStorage, :ImGui_SetStateStorage, [:pointer], :void],
    [:ImGui_GetStateStorage, :ImGui_GetStateStorage, [], :pointer],
    [:ImGui_CalcTextSize, :ImGui_CalcTextSize, [:pointer], ImVec2.by_value],
    [:ImGui_CalcTextSizeEx, :ImGui_CalcTextSizeEx, [:pointer, :pointer, :bool, :float], ImVec2.by_value],
    [:ImGui_ColorConvertU32ToFloat4, :ImGui_ColorConvertU32ToFloat4, [:uint], ImVec4.by_value],
    [:ImGui_ColorConvertFloat4ToU32, :ImGui_ColorConvertFloat4ToU32, [ImVec4.by_value], :uint],
    [:ImGui_ColorConvertRGBtoHSV, :ImGui_ColorConvertRGBtoHSV, [:float, :float, :float, :pointer, :pointer, :pointer], :void],
    [:ImGui_ColorConvertHSVtoRGB, :ImGui_ColorConvertHSVtoRGB, [:float, :float, :float, :pointer, :pointer, :pointer], :void],
    [:ImGui_IsKeyDown, :ImGui_IsKeyDown, [:int], :bool],
    [:ImGui_IsKeyPressed, :ImGui_IsKeyPressed, [:int], :bool],
    [:ImGui_IsKeyPressedEx, :ImGui_IsKeyPressedEx, [:int, :bool], :bool],
    [:ImGui_IsKeyReleased, :ImGui_IsKeyReleased, [:int], :bool],
    [:ImGui_IsKeyChordPressed, :ImGui_IsKeyChordPressed, [:int], :bool],
    [:ImGui_GetKeyPressedAmount, :ImGui_GetKeyPressedAmount, [:int, :float, :float], :int],
    [:ImGui_GetKeyName, :ImGui_GetKeyName, [:int], :pointer],
    [:ImGui_SetNextFrameWantCaptureKeyboard, :ImGui_SetNextFrameWantCaptureKeyboard, [:bool], :void],
    [:ImGui_Shortcut, :ImGui_Shortcut, [:int, :int], :bool],
    [:ImGui_SetNextItemShortcut, :ImGui_SetNextItemShortcut, [:int, :int], :void],
    [:ImGui_SetItemKeyOwner, :ImGui_SetItemKeyOwner, [:int], :bool],
    [:ImGui_IsMouseDown, :ImGui_IsMouseDown, [:int], :bool],
    [:ImGui_IsMouseClicked, :ImGui_IsMouseClicked, [:int], :bool],
    [:ImGui_IsMouseClickedEx, :ImGui_IsMouseClickedEx, [:int, :bool], :bool],
    [:ImGui_IsMouseReleased, :ImGui_IsMouseReleased, [:int], :bool],
    [:ImGui_IsMouseDoubleClicked, :ImGui_IsMouseDoubleClicked, [:int], :bool],
    [:ImGui_IsMouseReleasedWithDelay, :ImGui_IsMouseReleasedWithDelay, [:int, :float], :bool],
    [:ImGui_GetMouseClickedCount, :ImGui_GetMouseClickedCount, [:int], :int],
    [:ImGui_IsMouseHoveringRect, :ImGui_IsMouseHoveringRect, [ImVec2.by_value, ImVec2.by_value], :bool],
    [:ImGui_IsMouseHoveringRectEx, :ImGui_IsMouseHoveringRectEx, [ImVec2.by_value, ImVec2.by_value, :bool], :bool],
    [:ImGui_IsMousePosValid, :ImGui_IsMousePosValid, [:pointer], :bool],
    [:ImGui_IsAnyMouseDown, :ImGui_IsAnyMouseDown, [], :bool],
    [:ImGui_GetMousePos, :ImGui_GetMousePos, [], ImVec2.by_value],
    [:ImGui_GetMousePosOnOpeningCurrentPopup, :ImGui_GetMousePosOnOpeningCurrentPopup, [], ImVec2.by_value],
    [:ImGui_IsMouseDragging, :ImGui_IsMouseDragging, [:int, :float], :bool],
    [:ImGui_GetMouseDragDelta, :ImGui_GetMouseDragDelta, [:int, :float], ImVec2.by_value],
    [:ImGui_ResetMouseDragDelta, :ImGui_ResetMouseDragDelta, [], :void],
    [:ImGui_ResetMouseDragDeltaEx, :ImGui_ResetMouseDragDeltaEx, [:int], :void],
    [:ImGui_GetMouseCursor, :ImGui_GetMouseCursor, [], :int],
    [:ImGui_SetMouseCursor, :ImGui_SetMouseCursor, [:int], :void],
    [:ImGui_SetNextFrameWantCaptureMouse, :ImGui_SetNextFrameWantCaptureMouse, [:bool], :void],
    [:ImGui_GetClipboardText, :ImGui_GetClipboardText, [], :pointer],
    [:ImGui_SetClipboardText, :ImGui_SetClipboardText, [:pointer], :void],
    [:ImGui_LoadIniSettingsFromDisk, :ImGui_LoadIniSettingsFromDisk, [:pointer], :void],
    [:ImGui_LoadIniSettingsFromMemory, :ImGui_LoadIniSettingsFromMemory, [:pointer, :size_t], :void],
    [:ImGui_SaveIniSettingsToDisk, :ImGui_SaveIniSettingsToDisk, [:pointer], :void],
    [:ImGui_SaveIniSettingsToMemory, :ImGui_SaveIniSettingsToMemory, [:pointer], :pointer],
    [:ImGui_DebugTextEncoding, :ImGui_DebugTextEncoding, [:pointer], :void],
    [:ImGui_DebugFlashStyleColor, :ImGui_DebugFlashStyleColor, [:int], :void],
    [:ImGui_DebugStartItemPicker, :ImGui_DebugStartItemPicker, [], :void],
    [:ImGui_DebugCheckVersionAndDataLayout, :ImGui_DebugCheckVersionAndDataLayout, [:pointer, :size_t, :size_t, :size_t, :size_t, :size_t, :size_t], :bool],
    [:ImGui_DebugLog, :ImGui_DebugLog, [:pointer, :varargs], :void],
    [:ImGui_SetAllocatorFunctions, :ImGui_SetAllocatorFunctions, [:pointer, :pointer, :pointer], :void],
    [:ImGui_GetAllocatorFunctions, :ImGui_GetAllocatorFunctions, [:pointer, :pointer, :pointer], :void],
    [:ImGui_MemAlloc, :ImGui_MemAlloc, [:size_t], :pointer],
    [:ImGui_MemFree, :ImGui_MemFree, [:pointer], :void],
    [:ImGui_UpdatePlatformWindows, :ImGui_UpdatePlatformWindows, [], :void],
    [:ImGui_RenderPlatformWindowsDefault, :ImGui_RenderPlatformWindowsDefault, [], :void],
    [:ImGui_RenderPlatformWindowsDefaultEx, :ImGui_RenderPlatformWindowsDefaultEx, [:pointer, :pointer], :void],
    [:ImGui_DestroyPlatformWindows, :ImGui_DestroyPlatformWindows, [], :void],
    [:ImGui_FindViewportByID, :ImGui_FindViewportByID, [:uint], :pointer],
    [:ImGui_FindViewportByPlatformHandle, :ImGui_FindViewportByPlatformHandle, [:pointer], :pointer],
    [:ImVector_Construct, :ImVector_Construct, [:pointer], :void],
    [:ImVector_Destruct, :ImVector_Destruct, [:pointer], :void],
    [:ImGuiPlatformIO_SetPlatform_GetWindowWorkAreaInsets, :ImGuiPlatformIO_SetPlatform_GetWindowWorkAreaInsets, [:pointer], :void],
    [:ImGuiPlatformIO_SetPlatform_GetWindowFramebufferScale, :ImGuiPlatformIO_SetPlatform_GetWindowFramebufferScale, [:pointer], :void],
    [:ImGuiPlatformIO_SetPlatform_GetWindowPos, :ImGuiPlatformIO_SetPlatform_GetWindowPos, [:pointer], :void],
    [:ImGuiPlatformIO_SetPlatform_GetWindowSize, :ImGuiPlatformIO_SetPlatform_GetWindowSize, [:pointer], :void],
    [:ImGuiStyle_ScaleAllSizes, :ImGuiStyle_ScaleAllSizes, [:pointer, :float], :void],
    [:ImGuiIO_AddKeyEvent, :ImGuiIO_AddKeyEvent, [:pointer, :int, :bool], :void],
    [:ImGuiIO_AddKeyAnalogEvent, :ImGuiIO_AddKeyAnalogEvent, [:pointer, :int, :bool, :float], :void],
    [:ImGuiIO_AddMousePosEvent, :ImGuiIO_AddMousePosEvent, [:pointer, :float, :float], :void],
    [:ImGuiIO_AddMouseButtonEvent, :ImGuiIO_AddMouseButtonEvent, [:pointer, :int, :bool], :void],
    [:ImGuiIO_AddMouseWheelEvent, :ImGuiIO_AddMouseWheelEvent, [:pointer, :float, :float], :void],
    [:ImGuiIO_AddMouseSourceEvent, :ImGuiIO_AddMouseSourceEvent, [:pointer, :int], :void],
    [:ImGuiIO_AddMouseViewportEvent, :ImGuiIO_AddMouseViewportEvent, [:pointer, :uint], :void],
    [:ImGuiIO_AddFocusEvent, :ImGuiIO_AddFocusEvent, [:pointer, :bool], :void],
    [:ImGuiIO_AddInputCharacter, :ImGuiIO_AddInputCharacter, [:pointer, :uint], :void],
    [:ImGuiIO_AddInputCharacterUTF16, :ImGuiIO_AddInputCharacterUTF16, [:pointer, :ushort], :void],
    [:ImGuiIO_AddInputCharactersUTF8, :ImGuiIO_AddInputCharactersUTF8, [:pointer, :pointer], :void],
    [:ImGuiIO_SetKeyEventNativeData, :ImGuiIO_SetKeyEventNativeData, [:pointer, :int, :int, :int], :void],
    [:ImGuiIO_SetKeyEventNativeDataEx, :ImGuiIO_SetKeyEventNativeDataEx, [:pointer, :int, :int, :int, :int], :void],
    [:ImGuiIO_SetAppAcceptingEvents, :ImGuiIO_SetAppAcceptingEvents, [:pointer, :bool], :void],
    [:ImGuiIO_ClearEventsQueue, :ImGuiIO_ClearEventsQueue, [:pointer], :void],
    [:ImGuiIO_ClearInputKeys, :ImGuiIO_ClearInputKeys, [:pointer], :void],
    [:ImGuiIO_ClearInputMouse, :ImGuiIO_ClearInputMouse, [:pointer], :void],
    [:ImGuiInputTextCallbackData_DeleteChars, :ImGuiInputTextCallbackData_DeleteChars, [:pointer, :int, :int], :void],
    [:ImGuiInputTextCallbackData_InsertChars, :ImGuiInputTextCallbackData_InsertChars, [:pointer, :int, :pointer, :pointer], :void],
    [:ImGuiInputTextCallbackData_SelectAll, :ImGuiInputTextCallbackData_SelectAll, [:pointer], :void],
    [:ImGuiInputTextCallbackData_SetSelection, :ImGuiInputTextCallbackData_SetSelection, [:pointer, :int, :int], :void],
    [:ImGuiInputTextCallbackData_ClearSelection, :ImGuiInputTextCallbackData_ClearSelection, [:pointer], :void],
    [:ImGuiInputTextCallbackData_HasSelection, :ImGuiInputTextCallbackData_HasSelection, [:pointer], :bool],
    [:ImGuiPayload_Clear, :ImGuiPayload_Clear, [:pointer], :void],
    [:ImGuiPayload_IsDataType, :ImGuiPayload_IsDataType, [:pointer, :pointer], :bool],
    [:ImGuiPayload_IsPreview, :ImGuiPayload_IsPreview, [:pointer], :bool],
    [:ImGuiPayload_IsDelivery, :ImGuiPayload_IsDelivery, [:pointer], :bool],
    [:ImGuiTextFilter_ImGuiTextRange_empty, :ImGuiTextFilter_ImGuiTextRange_empty, [:pointer], :bool],
    [:ImGuiTextFilter_ImGuiTextRange_split, :ImGuiTextFilter_ImGuiTextRange_split, [:pointer, :char, :pointer], :void],
    [:ImGuiTextFilter_Draw, :ImGuiTextFilter_Draw, [:pointer, :pointer, :float], :bool],
    [:ImGuiTextFilter_PassFilter, :ImGuiTextFilter_PassFilter, [:pointer, :pointer, :pointer], :bool],
    [:ImGuiTextFilter_Build, :ImGuiTextFilter_Build, [:pointer], :void],
    [:ImGuiTextFilter_Clear, :ImGuiTextFilter_Clear, [:pointer], :void],
    [:ImGuiTextFilter_IsActive, :ImGuiTextFilter_IsActive, [:pointer], :bool],
    [:ImGuiTextBuffer_begin, :ImGuiTextBuffer_begin, [:pointer], :pointer],
    [:ImGuiTextBuffer_end, :ImGuiTextBuffer_end, [:pointer], :pointer],
    [:ImGuiTextBuffer_size, :ImGuiTextBuffer_size, [:pointer], :int],
    [:ImGuiTextBuffer_empty, :ImGuiTextBuffer_empty, [:pointer], :bool],
    [:ImGuiTextBuffer_clear, :ImGuiTextBuffer_clear, [:pointer], :void],
    [:ImGuiTextBuffer_resize, :ImGuiTextBuffer_resize, [:pointer, :int], :void],
    [:ImGuiTextBuffer_reserve, :ImGuiTextBuffer_reserve, [:pointer, :int], :void],
    [:ImGuiTextBuffer_c_str, :ImGuiTextBuffer_c_str, [:pointer], :pointer],
    [:ImGuiTextBuffer_append, :ImGuiTextBuffer_append, [:pointer, :pointer, :pointer], :void],
    [:ImGuiTextBuffer_appendf, :ImGuiTextBuffer_appendf, [:pointer, :pointer, :varargs], :void],
    [:ImGuiStorage_Clear, :ImGuiStorage_Clear, [:pointer], :void],
    [:ImGuiStorage_GetInt, :ImGuiStorage_GetInt, [:pointer, :uint, :int], :int],
    [:ImGuiStorage_SetInt, :ImGuiStorage_SetInt, [:pointer, :uint, :int], :void],
    [:ImGuiStorage_GetBool, :ImGuiStorage_GetBool, [:pointer, :uint, :bool], :bool],
    [:ImGuiStorage_SetBool, :ImGuiStorage_SetBool, [:pointer, :uint, :bool], :void],
    [:ImGuiStorage_GetFloat, :ImGuiStorage_GetFloat, [:pointer, :uint, :float], :float],
    [:ImGuiStorage_SetFloat, :ImGuiStorage_SetFloat, [:pointer, :uint, :float], :void],
    [:ImGuiStorage_GetVoidPtr, :ImGuiStorage_GetVoidPtr, [:pointer, :uint], :pointer],
    [:ImGuiStorage_SetVoidPtr, :ImGuiStorage_SetVoidPtr, [:pointer, :uint, :pointer], :void],
    [:ImGuiStorage_GetIntRef, :ImGuiStorage_GetIntRef, [:pointer, :uint, :int], :pointer],
    [:ImGuiStorage_GetBoolRef, :ImGuiStorage_GetBoolRef, [:pointer, :uint, :bool], :pointer],
    [:ImGuiStorage_GetFloatRef, :ImGuiStorage_GetFloatRef, [:pointer, :uint, :float], :pointer],
    [:ImGuiStorage_GetVoidPtrRef, :ImGuiStorage_GetVoidPtrRef, [:pointer, :uint, :pointer], :pointer],
    [:ImGuiStorage_BuildSortByKey, :ImGuiStorage_BuildSortByKey, [:pointer], :void],
    [:ImGuiStorage_SetAllInt, :ImGuiStorage_SetAllInt, [:pointer, :int], :void],
    [:ImGuiListClipper_Begin, :ImGuiListClipper_Begin, [:pointer, :int, :float], :void],
    [:ImGuiListClipper_End, :ImGuiListClipper_End, [:pointer], :void],
    [:ImGuiListClipper_Step, :ImGuiListClipper_Step, [:pointer], :bool],
    [:ImGuiListClipper_IncludeItemByIndex, :ImGuiListClipper_IncludeItemByIndex, [:pointer, :int], :void],
    [:ImGuiListClipper_IncludeItemsByIndex, :ImGuiListClipper_IncludeItemsByIndex, [:pointer, :int, :int], :void],
    [:ImGuiListClipper_SeekCursorForItem, :ImGuiListClipper_SeekCursorForItem, [:pointer, :int], :void],
    [:ImColor_SetHSV, :ImColor_SetHSV, [:pointer, :float, :float, :float, :float], :void],
    [:ImColor_HSV, :ImColor_HSV, [:float, :float, :float, :float], ImColor.by_value],
    [:ImGuiSelectionBasicStorage_ApplyRequests, :ImGuiSelectionBasicStorage_ApplyRequests, [:pointer, :pointer], :void],
    [:ImGuiSelectionBasicStorage_Contains, :ImGuiSelectionBasicStorage_Contains, [:pointer, :uint], :bool],
    [:ImGuiSelectionBasicStorage_Clear, :ImGuiSelectionBasicStorage_Clear, [:pointer], :void],
    [:ImGuiSelectionBasicStorage_Swap, :ImGuiSelectionBasicStorage_Swap, [:pointer, :pointer], :void],
    [:ImGuiSelectionBasicStorage_SetItemSelected, :ImGuiSelectionBasicStorage_SetItemSelected, [:pointer, :uint, :bool], :void],
    [:ImGuiSelectionBasicStorage_GetNextSelectedItem, :ImGuiSelectionBasicStorage_GetNextSelectedItem, [:pointer, :pointer, :pointer], :bool],
    [:ImGuiSelectionBasicStorage_GetStorageIdFromIndex, :ImGuiSelectionBasicStorage_GetStorageIdFromIndex, [:pointer, :int], :uint],
    [:ImGuiSelectionExternalStorage_ApplyRequests, :ImGuiSelectionExternalStorage_ApplyRequests, [:pointer, :pointer], :void],
    [:ImDrawCmd_GetTexID, :ImDrawCmd_GetTexID, [:pointer], :uint64],
    [:ImDrawListSplitter_Clear, :ImDrawListSplitter_Clear, [:pointer], :void],
    [:ImDrawListSplitter_ClearFreeMemory, :ImDrawListSplitter_ClearFreeMemory, [:pointer], :void],
    [:ImDrawListSplitter_Split, :ImDrawListSplitter_Split, [:pointer, :pointer, :int], :void],
    [:ImDrawListSplitter_Merge, :ImDrawListSplitter_Merge, [:pointer, :pointer], :void],
    [:ImDrawListSplitter_SetCurrentChannel, :ImDrawListSplitter_SetCurrentChannel, [:pointer, :pointer, :int], :void],
    [:ImDrawList_PushClipRect, :ImDrawList_PushClipRect, [:pointer, ImVec2.by_value, ImVec2.by_value, :bool], :void],
    [:ImDrawList_PushClipRectFullScreen, :ImDrawList_PushClipRectFullScreen, [:pointer], :void],
    [:ImDrawList_PopClipRect, :ImDrawList_PopClipRect, [:pointer], :void],
    [:ImDrawList_PushTexture, :ImDrawList_PushTexture, [:pointer, ImTextureRef.by_value], :void],
    [:ImDrawList_PopTexture, :ImDrawList_PopTexture, [:pointer], :void],
    [:ImDrawList_GetClipRectMin, :ImDrawList_GetClipRectMin, [:pointer], ImVec2.by_value],
    [:ImDrawList_GetClipRectMax, :ImDrawList_GetClipRectMax, [:pointer], ImVec2.by_value],
    [:ImDrawList_AddLine, :ImDrawList_AddLine, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddLineEx, :ImDrawList_AddLineEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float], :void],
    [:ImDrawList_AddLineH, :ImDrawList_AddLineH, [:pointer, :float, :float, :float, :uint], :void],
    [:ImDrawList_AddLineHEx, :ImDrawList_AddLineHEx, [:pointer, :float, :float, :float, :uint, :float], :void],
    [:ImDrawList_AddLineV, :ImDrawList_AddLineV, [:pointer, :float, :float, :float, :uint], :void],
    [:ImDrawList_AddLineVEx, :ImDrawList_AddLineVEx, [:pointer, :float, :float, :float, :uint, :float], :void],
    [:ImDrawList_AddRect, :ImDrawList_AddRect, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddRectEx, :ImDrawList_AddRectEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :float, :int], :void],
    [:ImDrawList_AddRectFilled, :ImDrawList_AddRectFilled, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddRectFilledEx, :ImDrawList_AddRectFilledEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
    [:ImDrawList_AddRectFilledMultiColor, :ImDrawList_AddRectFilledMultiColor, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :uint, :uint, :uint], :void],
    [:ImDrawList_AddQuad, :ImDrawList_AddQuad, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddQuadEx, :ImDrawList_AddQuadEx, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float], :void],
    [:ImDrawList_AddQuadFilled, :ImDrawList_AddQuadFilled, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddTriangle, :ImDrawList_AddTriangle, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddTriangleEx, :ImDrawList_AddTriangleEx, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float], :void],
    [:ImDrawList_AddTriangleFilled, :ImDrawList_AddTriangleFilled, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddCircle, :ImDrawList_AddCircle, [:pointer, ImVec2.by_value, :float, :uint], :void],
    [:ImDrawList_AddCircleEx, :ImDrawList_AddCircleEx, [:pointer, ImVec2.by_value, :float, :uint, :int, :float], :void],
    [:ImDrawList_AddCircleFilled, :ImDrawList_AddCircleFilled, [:pointer, ImVec2.by_value, :float, :uint, :int], :void],
    [:ImDrawList_AddNgon, :ImDrawList_AddNgon, [:pointer, ImVec2.by_value, :float, :uint, :int], :void],
    [:ImDrawList_AddNgonEx, :ImDrawList_AddNgonEx, [:pointer, ImVec2.by_value, :float, :uint, :int, :float], :void],
    [:ImDrawList_AddNgonFilled, :ImDrawList_AddNgonFilled, [:pointer, ImVec2.by_value, :float, :uint, :int], :void],
    [:ImDrawList_AddEllipse, :ImDrawList_AddEllipse, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddEllipseEx, :ImDrawList_AddEllipseEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int, :float], :void],
    [:ImDrawList_AddEllipseFilled, :ImDrawList_AddEllipseFilled, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddEllipseFilledEx, :ImDrawList_AddEllipseFilledEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
    [:ImDrawList_AddText, :ImDrawList_AddText, [:pointer, ImVec2.by_value, :uint, :pointer], :void],
    [:ImDrawList_AddTextEx, :ImDrawList_AddTextEx, [:pointer, ImVec2.by_value, :uint, :pointer, :pointer], :void],
    [:ImDrawList_AddTextImFontPtr, :ImDrawList_AddTextImFontPtr, [:pointer, :pointer, :float, ImVec2.by_value, :uint, :pointer], :void],
    [:ImDrawList_AddTextImFontPtrEx, :ImDrawList_AddTextImFontPtrEx, [:pointer, :pointer, :float, ImVec2.by_value, :uint, :pointer, :pointer, :float, :pointer], :void],
    [:ImDrawList_AddBezierCubic, :ImDrawList_AddBezierCubic, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
    [:ImDrawList_AddBezierQuadratic, :ImDrawList_AddBezierQuadratic, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
    [:ImDrawList_AddPolyline, :ImDrawList_AddPolyline, [:pointer, :pointer, :int, :uint, :float, :int], :void],
    [:ImDrawList_AddConvexPolyFilled, :ImDrawList_AddConvexPolyFilled, [:pointer, :pointer, :int, :uint], :void],
    [:ImDrawList_AddConcavePolyFilled, :ImDrawList_AddConcavePolyFilled, [:pointer, :pointer, :int, :uint], :void],
    [:ImDrawList_AddImage, :ImDrawList_AddImage, [:pointer, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value], :void],
    [:ImDrawList_AddImageEx, :ImDrawList_AddImageEx, [:pointer, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddImageQuad, :ImDrawList_AddImageQuad, [:pointer, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], :void],
    [:ImDrawList_AddImageQuadEx, :ImDrawList_AddImageQuadEx, [:pointer, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddImageRounded, :ImDrawList_AddImageRounded, [:pointer, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
    [:ImDrawList_PathClear, :ImDrawList_PathClear, [:pointer], :void],
    [:ImDrawList_PathLineTo, :ImDrawList_PathLineTo, [:pointer, ImVec2.by_value], :void],
    [:ImDrawList_PathLineToMergeDuplicate, :ImDrawList_PathLineToMergeDuplicate, [:pointer, ImVec2.by_value], :void],
    [:ImDrawList_PathFillConvex, :ImDrawList_PathFillConvex, [:pointer, :uint], :void],
    [:ImDrawList_PathFillConcave, :ImDrawList_PathFillConcave, [:pointer, :uint], :void],
    [:ImDrawList_PathStroke, :ImDrawList_PathStroke, [:pointer, :uint, :float, :int], :void],
    [:ImDrawList_PathArcTo, :ImDrawList_PathArcTo, [:pointer, ImVec2.by_value, :float, :float, :float, :int], :void],
    [:ImDrawList_PathArcToFast, :ImDrawList_PathArcToFast, [:pointer, ImVec2.by_value, :float, :int, :int], :void],
    [:ImDrawList_PathEllipticalArcTo, :ImDrawList_PathEllipticalArcTo, [:pointer, ImVec2.by_value, ImVec2.by_value, :float, :float, :float], :void],
    [:ImDrawList_PathEllipticalArcToEx, :ImDrawList_PathEllipticalArcToEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :float, :float, :float, :int], :void],
    [:ImDrawList_PathBezierCubicCurveTo, :ImDrawList_PathBezierCubicCurveTo, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :int], :void],
    [:ImDrawList_PathBezierQuadraticCurveTo, :ImDrawList_PathBezierQuadraticCurveTo, [:pointer, ImVec2.by_value, ImVec2.by_value, :int], :void],
    [:ImDrawList_PathRect, :ImDrawList_PathRect, [:pointer, ImVec2.by_value, ImVec2.by_value, :float, :int], :void],
    [:ImDrawList_AddCallback, :ImDrawList_AddCallback, [:pointer, :ImDrawCallback], :void],
    [:ImDrawList_AddCallbackEx, :ImDrawList_AddCallbackEx, [:pointer, :ImDrawCallback, :pointer, :size_t], :void],
    [:ImDrawList_AddDrawCmd, :ImDrawList_AddDrawCmd, [:pointer], :void],
    [:ImDrawList_CloneOutput, :ImDrawList_CloneOutput, [:pointer], :pointer],
    [:ImDrawList_ChannelsSplit, :ImDrawList_ChannelsSplit, [:pointer, :int], :void],
    [:ImDrawList_ChannelsMerge, :ImDrawList_ChannelsMerge, [:pointer], :void],
    [:ImDrawList_ChannelsSetCurrent, :ImDrawList_ChannelsSetCurrent, [:pointer, :int], :void],
    [:ImDrawList_PrimReserve, :ImDrawList_PrimReserve, [:pointer, :int, :int], :void],
    [:ImDrawList_PrimUnreserve, :ImDrawList_PrimUnreserve, [:pointer, :int, :int], :void],
    [:ImDrawList_PrimRect, :ImDrawList_PrimRect, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_PrimRectUV, :ImDrawList_PrimRectUV, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_PrimQuadUV, :ImDrawList_PrimQuadUV, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_PrimWriteVtx, :ImDrawList_PrimWriteVtx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_PrimWriteIdx, :ImDrawList_PrimWriteIdx, [:pointer, :ushort], :void],
    [:ImDrawList_PrimVtx, :ImDrawList_PrimVtx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddRectImDrawFlags, :ImDrawList_AddRectImDrawFlags, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int, :float], :void],
    [:ImDrawList_AddPolylineImDrawFlags, :ImDrawList_AddPolylineImDrawFlags, [:pointer, :pointer, :int, :uint, :int, :float], :void],
    [:ImDrawList_PathStrokeImDrawFlags, :ImDrawList_PathStrokeImDrawFlags, [:pointer, :uint, :int, :float], :void],
    [:ImDrawList_PushTextureID, :ImDrawList_PushTextureID, [:pointer, ImTextureRef.by_value], :void],
    [:ImDrawList_PopTextureID, :ImDrawList_PopTextureID, [:pointer], :void],
    [:ImDrawList__SetDrawListSharedData, :ImDrawList__SetDrawListSharedData, [:pointer, :pointer], :void],
    [:ImDrawList__ResetForNewFrame, :ImDrawList__ResetForNewFrame, [:pointer], :void],
    [:ImDrawList__ClearFreeMemory, :ImDrawList__ClearFreeMemory, [:pointer], :void],
    [:ImDrawList__PopUnusedDrawCmd, :ImDrawList__PopUnusedDrawCmd, [:pointer], :void],
    [:ImDrawList__TryMergeDrawCmds, :ImDrawList__TryMergeDrawCmds, [:pointer], :void],
    [:ImDrawList__OnChangedClipRect, :ImDrawList__OnChangedClipRect, [:pointer], :void],
    [:ImDrawList__OnChangedTexture, :ImDrawList__OnChangedTexture, [:pointer], :void],
    [:ImDrawList__OnChangedVtxOffset, :ImDrawList__OnChangedVtxOffset, [:pointer], :void],
    [:ImDrawList__SetTexture, :ImDrawList__SetTexture, [:pointer, ImTextureRef.by_value], :void],
    [:ImDrawList__CalcCircleAutoSegmentCount, :ImDrawList__CalcCircleAutoSegmentCount, [:pointer, :float], :int],
    [:ImDrawList__PathArcToFastEx, :ImDrawList__PathArcToFastEx, [:pointer, ImVec2.by_value, :float, :int, :int, :int], :void],
    [:ImDrawList__PathArcToN, :ImDrawList__PathArcToN, [:pointer, ImVec2.by_value, :float, :float, :float, :int], :void],
    [:ImDrawData_Clear, :ImDrawData_Clear, [:pointer], :void],
    [:ImDrawData_AddDrawList, :ImDrawData_AddDrawList, [:pointer, :pointer], :void],
    [:ImDrawData_DeIndexAllBuffers, :ImDrawData_DeIndexAllBuffers, [:pointer], :void],
    [:ImDrawData_ScaleClipRects, :ImDrawData_ScaleClipRects, [:pointer, ImVec2.by_value], :void],
    [:ImTextureData_Create, :ImTextureData_Create, [:pointer, :int, :int, :int], :void],
    [:ImTextureData_DestroyPixels, :ImTextureData_DestroyPixels, [:pointer], :void],
    [:ImTextureData_GetPixels, :ImTextureData_GetPixels, [:pointer], :pointer],
    [:ImTextureData_GetPixelsAt, :ImTextureData_GetPixelsAt, [:pointer, :int, :int], :pointer],
    [:ImTextureData_GetSizeInBytes, :ImTextureData_GetSizeInBytes, [:pointer], :int],
    [:ImTextureData_GetPitch, :ImTextureData_GetPitch, [:pointer], :int],
    [:ImTextureData_GetTexRef, :ImTextureData_GetTexRef, [:pointer], ImTextureRef.by_value],
    [:ImTextureData_GetTexID, :ImTextureData_GetTexID, [:pointer], :uint64],
    [:ImTextureData_SetTexID, :ImTextureData_SetTexID, [:pointer, :uint64], :void],
    [:ImTextureData_SetStatus, :ImTextureData_SetStatus, [:pointer, :int], :void],
    [:ImFontGlyphRangesBuilder_Clear, :ImFontGlyphRangesBuilder_Clear, [:pointer], :void],
    [:ImFontGlyphRangesBuilder_GetBit, :ImFontGlyphRangesBuilder_GetBit, [:pointer, :size_t], :bool],
    [:ImFontGlyphRangesBuilder_SetBit, :ImFontGlyphRangesBuilder_SetBit, [:pointer, :size_t], :void],
    [:ImFontGlyphRangesBuilder_AddChar, :ImFontGlyphRangesBuilder_AddChar, [:pointer, :ushort], :void],
    [:ImFontGlyphRangesBuilder_AddText, :ImFontGlyphRangesBuilder_AddText, [:pointer, :pointer, :pointer], :void],
    [:ImFontGlyphRangesBuilder_AddRanges, :ImFontGlyphRangesBuilder_AddRanges, [:pointer, :pointer], :void],
    [:ImFontGlyphRangesBuilder_BuildRanges, :ImFontGlyphRangesBuilder_BuildRanges, [:pointer, :pointer], :void],
    [:ImFontAtlas_AddFont, :ImFontAtlas_AddFont, [:pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontDefault, :ImFontAtlas_AddFontDefault, [:pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontDefaultVector, :ImFontAtlas_AddFontDefaultVector, [:pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontDefaultBitmap, :ImFontAtlas_AddFontDefaultBitmap, [:pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontFromFileTTF, :ImFontAtlas_AddFontFromFileTTF, [:pointer, :pointer, :float, :pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontFromMemoryTTF, :ImFontAtlas_AddFontFromMemoryTTF, [:pointer, :pointer, :int, :float, :pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontFromMemoryCompressedTTF, :ImFontAtlas_AddFontFromMemoryCompressedTTF, [:pointer, :pointer, :int, :float, :pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontFromMemoryCompressedBase85TTF, :ImFontAtlas_AddFontFromMemoryCompressedBase85TTF, [:pointer, :pointer, :float, :pointer, :pointer], :pointer],
    [:ImFontAtlas_RemoveFont, :ImFontAtlas_RemoveFont, [:pointer, :pointer], :void],
    [:ImFontAtlas_Clear, :ImFontAtlas_Clear, [:pointer], :void],
    [:ImFontAtlas_ClearFonts, :ImFontAtlas_ClearFonts, [:pointer], :void],
    [:ImFontAtlas_CompactCache, :ImFontAtlas_CompactCache, [:pointer], :void],
    [:ImFontAtlas_SetFontLoader, :ImFontAtlas_SetFontLoader, [:pointer, :pointer], :void],
    [:ImFontAtlas_ClearInputData, :ImFontAtlas_ClearInputData, [:pointer], :void],
    [:ImFontAtlas_ClearTexData, :ImFontAtlas_ClearTexData, [:pointer], :void],
    [:ImFontAtlas_Build, :ImFontAtlas_Build, [:pointer], :bool],
    [:ImFontAtlas_GetTexDataAsAlpha8, :ImFontAtlas_GetTexDataAsAlpha8, [:pointer, :pointer, :pointer, :pointer, :pointer], :void],
    [:ImFontAtlas_GetTexDataAsRGBA32, :ImFontAtlas_GetTexDataAsRGBA32, [:pointer, :pointer, :pointer, :pointer, :pointer], :void],
    [:ImFontAtlas_SetTexID, :ImFontAtlas_SetTexID, [:pointer, :uint64], :void],
    [:ImFontAtlas_SetTexIDImTextureRef, :ImFontAtlas_SetTexIDImTextureRef, [:pointer, ImTextureRef.by_value], :void],
    [:ImFontAtlas_IsBuilt, :ImFontAtlas_IsBuilt, [:pointer], :bool],
    [:ImFontAtlas_GetGlyphRangesDefault, :ImFontAtlas_GetGlyphRangesDefault, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesGreek, :ImFontAtlas_GetGlyphRangesGreek, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesKorean, :ImFontAtlas_GetGlyphRangesKorean, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesJapanese, :ImFontAtlas_GetGlyphRangesJapanese, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesChineseFull, :ImFontAtlas_GetGlyphRangesChineseFull, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon, :ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesCyrillic, :ImFontAtlas_GetGlyphRangesCyrillic, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesThai, :ImFontAtlas_GetGlyphRangesThai, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesVietnamese, :ImFontAtlas_GetGlyphRangesVietnamese, [:pointer], :pointer],
    [:ImFontAtlas_AddCustomRect, :ImFontAtlas_AddCustomRect, [:pointer, :int, :int, :pointer], :int],
    [:ImFontAtlas_RemoveCustomRect, :ImFontAtlas_RemoveCustomRect, [:pointer, :int], :void],
    [:ImFontAtlas_GetCustomRect, :ImFontAtlas_GetCustomRect, [:pointer, :int, :pointer], :bool],
    [:ImFontAtlas_AddCustomRectRegular, :ImFontAtlas_AddCustomRectRegular, [:pointer, :int, :int], :int],
    [:ImFontAtlas_GetCustomRectByIndex, :ImFontAtlas_GetCustomRectByIndex, [:pointer, :int], :pointer],
    [:ImFontAtlas_CalcCustomRectUV, :ImFontAtlas_CalcCustomRectUV, [:pointer, :pointer, :pointer, :pointer], :void],
    [:ImFontAtlas_AddCustomRectFontGlyph, :ImFontAtlas_AddCustomRectFontGlyph, [:pointer, :pointer, :ushort, :int, :int, :float, ImVec2.by_value], :int],
    [:ImFontAtlas_AddCustomRectFontGlyphForSize, :ImFontAtlas_AddCustomRectFontGlyphForSize, [:pointer, :pointer, :float, :ushort, :int, :int, :float, ImVec2.by_value], :int],
    [:ImFontBaked_ClearOutputData, :ImFontBaked_ClearOutputData, [:pointer], :void],
    [:ImFontBaked_FindGlyph, :ImFontBaked_FindGlyph, [:pointer, :ushort], :pointer],
    [:ImFontBaked_FindGlyphNoFallback, :ImFontBaked_FindGlyphNoFallback, [:pointer, :ushort], :pointer],
    [:ImFontBaked_GetCharAdvance, :ImFontBaked_GetCharAdvance, [:pointer, :ushort], :float],
    [:ImFontBaked_IsGlyphLoaded, :ImFontBaked_IsGlyphLoaded, [:pointer, :ushort], :bool],
    [:ImFont_IsGlyphInFont, :ImFont_IsGlyphInFont, [:pointer, :ushort], :bool],
    [:ImFont_IsLoaded, :ImFont_IsLoaded, [:pointer], :bool],
    [:ImFont_GetDebugName, :ImFont_GetDebugName, [:pointer], :pointer],
    [:ImFont_GetFontBaked, :ImFont_GetFontBaked, [:pointer, :float], :pointer],
    [:ImFont_GetFontBakedEx, :ImFont_GetFontBakedEx, [:pointer, :float, :float], :pointer],
    [:ImFont_CalcTextSizeA, :ImFont_CalcTextSizeA, [:pointer, :float, :float, :float, :pointer], ImVec2.by_value],
    [:ImFont_CalcTextSizeAEx, :ImFont_CalcTextSizeAEx, [:pointer, :float, :float, :float, :pointer, :pointer, :pointer], ImVec2.by_value],
    [:ImFont_CalcWordWrapPosition, :ImFont_CalcWordWrapPosition, [:pointer, :float, :pointer, :pointer, :float], :pointer],
    [:ImFont_RenderChar, :ImFont_RenderChar, [:pointer, :pointer, :float, ImVec2.by_value, :uint, :ushort], :void],
    [:ImFont_RenderCharEx, :ImFont_RenderCharEx, [:pointer, :pointer, :float, ImVec2.by_value, :uint, :ushort, :pointer], :void],
    [:ImFont_RenderText, :ImFont_RenderText, [:pointer, :pointer, :float, ImVec2.by_value, :uint, ImVec4.by_value, :pointer, :pointer, :float, :int], :void],
    [:ImFont_CalcWordWrapPositionA, :ImFont_CalcWordWrapPositionA, [:pointer, :float, :pointer, :pointer, :float], :pointer],
    [:ImFont_ClearOutputData, :ImFont_ClearOutputData, [:pointer], :void],
    [:ImFont_AddRemapChar, :ImFont_AddRemapChar, [:pointer, :ushort, :ushort], :void],
    [:ImFont_IsGlyphRangeUnused, :ImFont_IsGlyphRangeUnused, [:pointer, :uint, :uint], :bool],
    [:ImGuiViewport_GetCenter, :ImGuiViewport_GetCenter, [:pointer], ImVec2.by_value],
    [:ImGuiViewport_GetWorkCenter, :ImGuiViewport_GetWorkCenter, [:pointer], ImVec2.by_value],
    [:ImGuiViewport_GetDebugName, :ImGuiViewport_GetDebugName, [:pointer], :pointer],
    [:ImGuiPlatformIO_ClearPlatformHandlers, :ImGuiPlatformIO_ClearPlatformHandlers, [:pointer], :void],
    [:ImGuiPlatformIO_ClearRendererHandlers, :ImGuiPlatformIO_ClearRendererHandlers, [:pointer], :void],
    [:ImGui_PushFont, :ImGui_PushFont, [:pointer], :void],
    [:ImGui_SetWindowFontScale, :ImGui_SetWindowFontScale, [:float], :void],
    [:ImGui_ImageImVec4, :ImGui_ImageImVec4, [ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec4.by_value, ImVec4.by_value], :void],
    [:ImGui_PushButtonRepeat, :ImGui_PushButtonRepeat, [:bool], :void],
    [:ImGui_PopButtonRepeat, :ImGui_PopButtonRepeat, [], :void],
    [:ImGui_PushTabStop, :ImGui_PushTabStop, [:bool], :void],
    [:ImGui_PopTabStop, :ImGui_PopTabStop, [], :void],
    [:ImGui_GetContentRegionMax, :ImGui_GetContentRegionMax, [], ImVec2.by_value],
    [:ImGui_GetWindowContentRegionMin, :ImGui_GetWindowContentRegionMin, [], ImVec2.by_value],
    [:ImGui_GetWindowContentRegionMax, :ImGui_GetWindowContentRegionMax, [], ImVec2.by_value],
    [:cImHashData, :cImHashData, [:pointer, :size_t], :uint],
    [:cImHashDataEx, :cImHashDataEx, [:pointer, :size_t, :uint], :uint],
    [:cImHashStr, :cImHashStr, [:pointer], :uint],
    [:cImHashStrEx, :cImHashStrEx, [:pointer, :size_t, :uint], :uint],
    [:cImHashSkipUncontributingPrefix, :cImHashSkipUncontributingPrefix, [:pointer], :pointer],
    [:cImAlphaBlendColors, :cImAlphaBlendColors, [:uint, :uint], :uint],
    [:cImIsPowerOfTwo, :cImIsPowerOfTwo, [:int], :bool],
    [:cImIsPowerOfTwoImU64, :cImIsPowerOfTwoImU64, [:uint64], :bool],
    [:cImUpperPowerOfTwo, :cImUpperPowerOfTwo, [:int], :int],
    [:cImCountSetBits, :cImCountSetBits, [:uint], :uint],
    [:cImStricmp, :cImStricmp, [:pointer, :pointer], :int],
    [:cImStrnicmp, :cImStrnicmp, [:pointer, :pointer, :size_t], :int],
    [:cImStrncpy, :cImStrncpy, [:pointer, :pointer, :size_t], :void],
    [:cImStrdup, :cImStrdup, [:pointer], :pointer],
    [:cImMemdup, :cImMemdup, [:pointer, :size_t], :pointer],
    [:cImStrdupcpy, :cImStrdupcpy, [:pointer, :pointer, :pointer], :pointer],
    [:cImStrchrRange, :cImStrchrRange, [:pointer, :pointer, :char], :pointer],
    [:cImStreolRange, :cImStreolRange, [:pointer, :pointer], :pointer],
    [:cImStristr, :cImStristr, [:pointer, :pointer, :pointer, :pointer], :pointer],
    [:cImStrTrimBlanks, :cImStrTrimBlanks, [:pointer], :void],
    [:cImStrSkipBlank, :cImStrSkipBlank, [:pointer], :pointer],
    [:cImStrlenW, :cImStrlenW, [:pointer], :int],
    [:cImStrbol, :cImStrbol, [:pointer, :pointer], :pointer],
    [:cImToUpper, :cImToUpper, [:char], :char],
    [:cImCharIsBlankA, :cImCharIsBlankA, [:char], :bool],
    [:cImCharIsBlankW, :cImCharIsBlankW, [:uint], :bool],
    [:cImCharIsXdigitA, :cImCharIsXdigitA, [:char], :bool],
    [:cImFormatString, :cImFormatString, [:pointer, :size_t, :pointer, :varargs], :int],
    [:cImFormatStringToTempBuffer, :cImFormatStringToTempBuffer, [:pointer, :pointer, :pointer, :varargs], :void],
    [:cImParseFormatFindStart, :cImParseFormatFindStart, [:pointer], :pointer],
    [:cImParseFormatFindEnd, :cImParseFormatFindEnd, [:pointer], :pointer],
    [:cImParseFormatTrimDecorations, :cImParseFormatTrimDecorations, [:pointer, :pointer, :size_t], :pointer],
    [:cImParseFormatSanitizeForPrinting, :cImParseFormatSanitizeForPrinting, [:pointer, :pointer, :size_t], :void],
    [:cImParseFormatSanitizeForScanning, :cImParseFormatSanitizeForScanning, [:pointer, :pointer, :size_t], :pointer],
    [:cImParseFormatPrecision, :cImParseFormatPrecision, [:pointer, :int], :int],
    [:cImTextCharToUtf8, :cImTextCharToUtf8, [:pointer, :uint], :int],
    [:cImTextStrToUtf8, :cImTextStrToUtf8, [:pointer, :int, :pointer, :pointer], :int],
    [:cImTextCharFromUtf8, :cImTextCharFromUtf8, [:pointer, :pointer, :pointer], :int],
    [:cImTextStrFromUtf8, :cImTextStrFromUtf8, [:pointer, :int, :pointer, :pointer], :int],
    [:cImTextStrFromUtf8Ex, :cImTextStrFromUtf8Ex, [:pointer, :int, :pointer, :pointer, :pointer], :int],
    [:cImTextCountCharsFromUtf8, :cImTextCountCharsFromUtf8, [:pointer, :pointer], :int],
    [:cImTextCountUtf8BytesFromChar, :cImTextCountUtf8BytesFromChar, [:pointer, :pointer], :int],
    [:cImTextCountUtf8BytesFromStr, :cImTextCountUtf8BytesFromStr, [:pointer, :pointer], :int],
    [:cImTextFindPreviousUtf8Codepoint, :cImTextFindPreviousUtf8Codepoint, [:pointer, :pointer], :pointer],
    [:cImTextFindValidUtf8CodepointEnd, :cImTextFindValidUtf8CodepointEnd, [:pointer, :pointer, :pointer], :pointer],
    [:cImTextCountLines, :cImTextCountLines, [:pointer, :pointer], :int],
    [:cImFontCalcTextSizeEx, :cImFontCalcTextSizeEx, [:pointer, :float, :float, :float, :pointer, :pointer, :pointer, :pointer, :pointer, :int], ImVec2.by_value],
    [:cImFontCalcWordWrapPositionEx, :cImFontCalcWordWrapPositionEx, [:pointer, :float, :pointer, :pointer, :float, :int], :pointer],
    [:cImTextCalcWordWrapNextLineStart, :cImTextCalcWordWrapNextLineStart, [:pointer, :pointer, :int], :pointer],
    [:cImTextInitClassifiers, :cImTextInitClassifiers, [], :void],
    [:cImTextClassifierClear, :cImTextClassifierClear, [:pointer, :uint, :uint, :int], :void],
    [:cImTextClassifierSetCharClass, :cImTextClassifierSetCharClass, [:pointer, :uint, :uint, :int, :uint], :void],
    [:cImTextClassifierSetCharClassFromStr, :cImTextClassifierSetCharClassFromStr, [:pointer, :uint, :uint, :int, :pointer], :void],
    [:cImFileOpen, :cImFileOpen, [:pointer, :pointer], :pointer],
    [:cImFileClose, :cImFileClose, [:pointer], :bool],
    [:cImFileGetSize, :cImFileGetSize, [:pointer], :uint64],
    [:cImFileRead, :cImFileRead, [:pointer, :uint64, :uint64, :pointer], :uint64],
    [:cImFileWrite, :cImFileWrite, [:pointer, :uint64, :uint64, :pointer], :uint64],
    [:cImFileLoadToMemory, :cImFileLoadToMemory, [:pointer, :pointer], :pointer],
    [:cImFileLoadToMemoryEx, :cImFileLoadToMemoryEx, [:pointer, :pointer, :pointer, :int], :pointer],
    [:cImPow, :cImPow, [:float, :float], :float],
    [:cImPowDouble, :cImPowDouble, [:double, :double], :double],
    [:cImLog, :cImLog, [:float], :float],
    [:cImLogDouble, :cImLogDouble, [:double], :double],
    [:cImAbs, :cImAbs, [:int], :int],
    [:cImAbsFloat, :cImAbsFloat, [:float], :float],
    [:cImAbsDouble, :cImAbsDouble, [:double], :double],
    [:cImSign, :cImSign, [:float], :float],
    [:cImSignDouble, :cImSignDouble, [:double], :double],
    [:cImRsqrt, :cImRsqrt, [:float], :float],
    [:cImRsqrtFloat, :cImRsqrtFloat, [:float], :float],
    [:cImRsqrtDouble, :cImRsqrtDouble, [:double], :double],
    [:cImMin, :cImMin, [ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImMax, :cImMax, [ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImClamp, :cImClamp, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImLerp, :cImLerp, [ImVec2.by_value, ImVec2.by_value, :float], ImVec2.by_value],
    [:cImLerpImVec2, :cImLerpImVec2, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImLerpImVec4, :cImLerpImVec4, [ImVec4.by_value, ImVec4.by_value, :float], ImVec4.by_value],
    [:cImSaturate, :cImSaturate, [:float], :float],
    [:cImLengthSqr, :cImLengthSqr, [ImVec2.by_value], :float],
    [:cImLengthSqrImVec4, :cImLengthSqrImVec4, [ImVec4.by_value], :float],
    [:cImInvLength, :cImInvLength, [ImVec2.by_value, :float], :float],
    [:cImTrunc, :cImTrunc, [:float], :float],
    [:cImTruncImVec2, :cImTruncImVec2, [ImVec2.by_value], ImVec2.by_value],
    [:cImFloor, :cImFloor, [:float], :float],
    [:cImFloorImVec2, :cImFloorImVec2, [ImVec2.by_value], ImVec2.by_value],
    [:cImTrunc64, :cImTrunc64, [:float], :float],
    [:cImRound64, :cImRound64, [:float], :float],
    [:cImModPositive, :cImModPositive, [:int, :int], :int],
    [:cImDot, :cImDot, [ImVec2.by_value, ImVec2.by_value], :float],
    [:cImRotate, :cImRotate, [ImVec2.by_value, :float, :float], ImVec2.by_value],
    [:cImLinearSweep, :cImLinearSweep, [:float, :float, :float], :float],
    [:cImLinearRemapClamp, :cImLinearRemapClamp, [:float, :float, :float, :float, :float], :float],
    [:cImMul, :cImMul, [ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImIsFloatAboveGuaranteedIntegerPrecision, :cImIsFloatAboveGuaranteedIntegerPrecision, [:float], :bool],
    [:cImExponentialMovingAverage, :cImExponentialMovingAverage, [:float, :float, :int], :float],
    [:cImBezierCubicCalc, :cImBezierCubicCalc, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :float], ImVec2.by_value],
    [:cImBezierCubicClosestPoint, :cImBezierCubicClosestPoint, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :int], ImVec2.by_value],
    [:cImBezierCubicClosestPointCasteljau, :cImBezierCubicClosestPointCasteljau, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :float], ImVec2.by_value],
    [:cImBezierQuadraticCalc, :cImBezierQuadraticCalc, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :float], ImVec2.by_value],
    [:cImLineClosestPoint, :cImLineClosestPoint, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImTriangleContainsPoint, :cImTriangleContainsPoint, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], :bool],
    [:cImTriangleClosestPoint, :cImTriangleClosestPoint, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImTriangleBarycentricCoords, :cImTriangleBarycentricCoords, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :pointer, :pointer, :pointer], :void],
    [:cImTriangleArea, :cImTriangleArea, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], :float],
    [:cImTriangleIsClockwise, :cImTriangleIsClockwise, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], :bool],
    [:ImRect_GetCenter, :ImRect_GetCenter, [:pointer], ImVec2.by_value],
    [:ImRect_GetSize, :ImRect_GetSize, [:pointer], ImVec2.by_value],
    [:ImRect_GetWidth, :ImRect_GetWidth, [:pointer], :float],
    [:ImRect_GetHeight, :ImRect_GetHeight, [:pointer], :float],
    [:ImRect_GetArea, :ImRect_GetArea, [:pointer], :float],
    [:ImRect_GetTL, :ImRect_GetTL, [:pointer], ImVec2.by_value],
    [:ImRect_GetTR, :ImRect_GetTR, [:pointer], ImVec2.by_value],
    [:ImRect_GetBL, :ImRect_GetBL, [:pointer], ImVec2.by_value],
    [:ImRect_GetBR, :ImRect_GetBR, [:pointer], ImVec2.by_value],
    [:ImRect_Contains, :ImRect_Contains, [:pointer, ImVec2.by_value], :bool],
    [:ImRect_ContainsImRect, :ImRect_ContainsImRect, [:pointer, ImRect.by_value], :bool],
    [:ImRect_ContainsWithPad, :ImRect_ContainsWithPad, [:pointer, ImVec2.by_value, ImVec2.by_value], :bool],
    [:ImRect_Overlaps, :ImRect_Overlaps, [:pointer, ImRect.by_value], :bool],
    [:ImRect_Add, :ImRect_Add, [:pointer, ImVec2.by_value], :void],
    [:ImRect_AddImRect, :ImRect_AddImRect, [:pointer, ImRect.by_value], :void],
    [:ImRect_AddX, :ImRect_AddX, [:pointer, :float], :void],
    [:ImRect_AddY, :ImRect_AddY, [:pointer, :float], :void],
    [:ImRect_Expand, :ImRect_Expand, [:pointer, :float], :void],
    [:ImRect_ExpandImVec2, :ImRect_ExpandImVec2, [:pointer, ImVec2.by_value], :void],
    [:ImRect_Translate, :ImRect_Translate, [:pointer, ImVec2.by_value], :void],
    [:ImRect_TranslateX, :ImRect_TranslateX, [:pointer, :float], :void],
    [:ImRect_TranslateY, :ImRect_TranslateY, [:pointer, :float], :void],
    [:ImRect_ClipWith, :ImRect_ClipWith, [:pointer, ImRect.by_value], :void],
    [:ImRect_ClipWithFull, :ImRect_ClipWithFull, [:pointer, ImRect.by_value], :void],
    [:ImRect_IsInverted, :ImRect_IsInverted, [:pointer], :bool],
    [:ImRect_ToVec4, :ImRect_ToVec4, [:pointer], ImVec4.by_value],
    [:cImBitArrayGetStorageSizeInBytes, :cImBitArrayGetStorageSizeInBytes, [:int], :size_t],
    [:cImBitArrayClearAllBits, :cImBitArrayClearAllBits, [:pointer, :int], :void],
    [:cImBitArrayTestBit, :cImBitArrayTestBit, [:pointer, :int], :bool],
    [:cImBitArrayClearBit, :cImBitArrayClearBit, [:pointer, :int], :void],
    [:cImBitArraySetBit, :cImBitArraySetBit, [:pointer, :int], :void],
    [:cImBitArraySetBitRange, :cImBitArraySetBitRange, [:pointer, :int, :int], :void],
    [:ImBitVector_Create, :ImBitVector_Create, [:pointer, :int], :void],
    [:ImBitVector_Clear, :ImBitVector_Clear, [:pointer], :void],
    [:ImBitVector_TestBit, :ImBitVector_TestBit, [:pointer, :int], :bool],
    [:ImBitVector_SetBit, :ImBitVector_SetBit, [:pointer, :int], :void],
    [:ImBitVector_ClearBit, :ImBitVector_ClearBit, [:pointer, :int], :void],
    [:ImStableVector_ImFontBaked_32_clear, :ImStableVector_ImFontBaked_32_clear, [:pointer], :void],
    [:ImStableVector_ImFontBaked_32_resize, :ImStableVector_ImFontBaked_32_resize, [:pointer, :int], :void],
    [:ImStableVector_ImFontBaked_32_reserve, :ImStableVector_ImFontBaked_32_reserve, [:pointer, :int], :void],
    [:ImGuiTextIndex_clear, :ImGuiTextIndex_clear, [:pointer], :void],
    [:ImGuiTextIndex_size, :ImGuiTextIndex_size, [:pointer], :int],
    [:ImGuiTextIndex_get_line_begin, :ImGuiTextIndex_get_line_begin, [:pointer, :pointer, :int], :pointer],
    [:ImGuiTextIndex_get_line_end, :ImGuiTextIndex_get_line_end, [:pointer, :pointer, :int], :pointer],
    [:ImGuiTextIndex_append, :ImGuiTextIndex_append, [:pointer, :pointer, :int, :int], :void],
    [:cImLowerBound, :cImLowerBound, [:pointer, :pointer, :uint], :pointer],
    [:ImDrawListSharedData_SetCircleTessellationMaxError, :ImDrawListSharedData_SetCircleTessellationMaxError, [:pointer, :float], :void],
    [:ImGuiStyleVarInfo_GetVarPtr, :ImGuiStyleVarInfo_GetVarPtr, [:pointer, :pointer], :pointer],
    [:ImGuiMenuColumns_Update, :ImGuiMenuColumns_Update, [:pointer, :float, :bool], :void],
    [:ImGuiMenuColumns_DeclColumns, :ImGuiMenuColumns_DeclColumns, [:pointer, :float, :float, :float, :float], :float],
    [:ImGuiMenuColumns_CalcNextTotalWidth, :ImGuiMenuColumns_CalcNextTotalWidth, [:pointer, :bool], :void],
    [:ImGuiInputTextDeactivatedState_ClearFreeMemory, :ImGuiInputTextDeactivatedState_ClearFreeMemory, [:pointer], :void],
    [:ImGuiInputTextState_ClearText, :ImGuiInputTextState_ClearText, [:pointer], :void],
    [:ImGuiInputTextState_ClearFreeMemory, :ImGuiInputTextState_ClearFreeMemory, [:pointer], :void],
    [:ImGuiInputTextState_OnKeyPressed, :ImGuiInputTextState_OnKeyPressed, [:pointer, :int], :void],
    [:ImGuiInputTextState_OnCharPressed, :ImGuiInputTextState_OnCharPressed, [:pointer, :uint], :void],
    [:ImGuiInputTextState_GetPreferredOffsetX, :ImGuiInputTextState_GetPreferredOffsetX, [:pointer], :float],
    [:ImGuiInputTextState_GetText, :ImGuiInputTextState_GetText, [:pointer], :pointer],
    [:ImGuiInputTextState_CursorAnimReset, :ImGuiInputTextState_CursorAnimReset, [:pointer], :void],
    [:ImGuiInputTextState_CursorClamp, :ImGuiInputTextState_CursorClamp, [:pointer], :void],
    [:ImGuiInputTextState_HasSelection, :ImGuiInputTextState_HasSelection, [:pointer], :bool],
    [:ImGuiInputTextState_ClearSelection, :ImGuiInputTextState_ClearSelection, [:pointer], :void],
    [:ImGuiInputTextState_GetCursorPos, :ImGuiInputTextState_GetCursorPos, [:pointer], :int],
    [:ImGuiInputTextState_GetSelectionStart, :ImGuiInputTextState_GetSelectionStart, [:pointer], :int],
    [:ImGuiInputTextState_GetSelectionEnd, :ImGuiInputTextState_GetSelectionEnd, [:pointer], :int],
    [:ImGuiInputTextState_SetSelection, :ImGuiInputTextState_SetSelection, [:pointer, :int, :int], :void],
    [:ImGuiInputTextState_SelectAll, :ImGuiInputTextState_SelectAll, [:pointer], :void],
    [:ImGuiInputTextState_ReloadUserBufAndSelectAll, :ImGuiInputTextState_ReloadUserBufAndSelectAll, [:pointer], :void],
    [:ImGuiInputTextState_ReloadUserBufAndKeepSelection, :ImGuiInputTextState_ReloadUserBufAndKeepSelection, [:pointer], :void],
    [:ImGuiInputTextState_ReloadUserBufAndMoveToEnd, :ImGuiInputTextState_ReloadUserBufAndMoveToEnd, [:pointer], :void],
    [:ImGuiNextWindowData_ClearFlags, :ImGuiNextWindowData_ClearFlags, [:pointer], :void],
    [:ImGuiNextItemData_ClearFlags, :ImGuiNextItemData_ClearFlags, [:pointer], :void],
    [:ImGuiKeyRoutingTable_Clear, :ImGuiKeyRoutingTable_Clear, [:pointer], :void],
    [:ImGuiListClipperRange_FromIndices, :ImGuiListClipperRange_FromIndices, [:int, :int], ImGuiListClipperRange.by_value],
    [:ImGuiListClipperRange_FromPositions, :ImGuiListClipperRange_FromPositions, [:float, :float, :int, :int], ImGuiListClipperRange.by_value],
    [:ImGuiListClipperData_Reset, :ImGuiListClipperData_Reset, [:pointer, :pointer], :void],
    [:ImGuiNavItemData_Clear, :ImGuiNavItemData_Clear, [:pointer], :void],
    [:ImGuiTypingSelectState_Clear, :ImGuiTypingSelectState_Clear, [:pointer], :void],
    [:ImGuiMultiSelectTempData_Clear, :ImGuiMultiSelectTempData_Clear, [:pointer], :void],
    [:ImGuiMultiSelectTempData_ClearIO, :ImGuiMultiSelectTempData_ClearIO, [:pointer], :void],
    [:ImGuiViewportP_ClearRequestFlags, :ImGuiViewportP_ClearRequestFlags, [:pointer], :void],
    [:ImGuiViewportP_CalcWorkRectPos, :ImGuiViewportP_CalcWorkRectPos, [:pointer, ImVec2.by_value], ImVec2.by_value],
    [:ImGuiViewportP_CalcWorkRectSize, :ImGuiViewportP_CalcWorkRectSize, [:pointer, ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:ImGuiViewportP_UpdateWorkRect, :ImGuiViewportP_UpdateWorkRect, [:pointer], :void],
    [:ImGuiViewportP_GetMainRect, :ImGuiViewportP_GetMainRect, [:pointer], ImRect.by_value],
    [:ImGuiViewportP_GetWorkRect, :ImGuiViewportP_GetWorkRect, [:pointer], ImRect.by_value],
    [:ImGuiViewportP_GetBuildWorkRect, :ImGuiViewportP_GetBuildWorkRect, [:pointer], ImRect.by_value],
    [:ImGuiWindowSettings_GetName, :ImGuiWindowSettings_GetName, [:pointer], :pointer],
    [:ImGuiWindow_GetIDStr, :ImGuiWindow_GetIDStr, [:pointer, :pointer], :uint],
    [:ImGuiWindow_GetIDStrEx, :ImGuiWindow_GetIDStrEx, [:pointer, :pointer, :pointer], :uint],
    [:ImGuiWindow_GetID, :ImGuiWindow_GetID, [:pointer, :pointer], :uint],
    [:ImGuiWindow_GetIDInt, :ImGuiWindow_GetIDInt, [:pointer, :int], :uint],
    [:ImGuiWindow_GetIDFromPos, :ImGuiWindow_GetIDFromPos, [:pointer, ImVec2.by_value], :uint],
    [:ImGuiWindow_GetIDFromRectangle, :ImGuiWindow_GetIDFromRectangle, [:pointer, ImRect.by_value], :uint],
    [:ImGuiWindow_Rect, :ImGuiWindow_Rect, [:pointer], ImRect.by_value],
    [:ImGuiWindow_TitleBarRect, :ImGuiWindow_TitleBarRect, [:pointer], ImRect.by_value],
    [:ImGuiWindow_MenuBarRect, :ImGuiWindow_MenuBarRect, [:pointer], ImRect.by_value],
    [:ImGuiTableSettings_GetColumnSettings, :ImGuiTableSettings_GetColumnSettings, [:pointer], :pointer],
    [:ImGui_GetIOImGuiContextPtr, :ImGui_GetIOImGuiContextPtr, [:pointer], :pointer],
    [:ImGui_GetPlatformIOImGuiContextPtr, :ImGui_GetPlatformIOImGuiContextPtr, [:pointer], :pointer],
    [:ImGui_GetScale, :ImGui_GetScale, [], :float],
    [:ImGui_GetCurrentWindowRead, :ImGui_GetCurrentWindowRead, [], :pointer],
    [:ImGui_GetCurrentWindow, :ImGui_GetCurrentWindow, [], :pointer],
    [:ImGui_FindWindowByID, :ImGui_FindWindowByID, [:uint], :pointer],
    [:ImGui_FindWindowByName, :ImGui_FindWindowByName, [:pointer], :pointer],
    [:ImGui_UpdateWindowParentAndRootLinks, :ImGui_UpdateWindowParentAndRootLinks, [:pointer, :int, :pointer], :void],
    [:ImGui_UpdateWindowSkipRefresh, :ImGui_UpdateWindowSkipRefresh, [:pointer], :void],
    [:ImGui_CalcWindowNextAutoFitSize, :ImGui_CalcWindowNextAutoFitSize, [:pointer], ImVec2.by_value],
    [:ImGui_IsWindowChildOf, :ImGui_IsWindowChildOf, [:pointer, :pointer, :bool, :bool], :bool],
    [:ImGui_IsWindowInBeginStack, :ImGui_IsWindowInBeginStack, [:pointer], :bool],
    [:ImGui_IsWindowWithinBeginStackOf, :ImGui_IsWindowWithinBeginStackOf, [:pointer, :pointer], :bool],
    [:ImGui_IsWindowAbove, :ImGui_IsWindowAbove, [:pointer, :pointer], :bool],
    [:ImGui_IsWindowNavFocusable, :ImGui_IsWindowNavFocusable, [:pointer], :bool],
    [:ImGui_SetWindowPosImGuiWindowPtr, :ImGui_SetWindowPosImGuiWindowPtr, [:pointer, ImVec2.by_value, :int], :void],
    [:ImGui_SetWindowSizeImGuiWindowPtr, :ImGui_SetWindowSizeImGuiWindowPtr, [:pointer, ImVec2.by_value, :int], :void],
    [:ImGui_SetWindowCollapsedImGuiWindowPtr, :ImGui_SetWindowCollapsedImGuiWindowPtr, [:pointer, :bool, :int], :void],
    [:ImGui_SetWindowHitTestHole, :ImGui_SetWindowHitTestHole, [:pointer, ImVec2.by_value, ImVec2.by_value], :void],
    [:ImGui_SetWindowHiddenAndSkipItemsForCurrentFrame, :ImGui_SetWindowHiddenAndSkipItemsForCurrentFrame, [:pointer], :void],
    [:ImGui_SetWindowParentWindowForFocusRoute, :ImGui_SetWindowParentWindowForFocusRoute, [:pointer, :pointer], :void],
    [:ImGui_WindowRectAbsToRel, :ImGui_WindowRectAbsToRel, [:pointer, ImRect.by_value], ImRect.by_value],
    [:ImGui_WindowRectRelToAbs, :ImGui_WindowRectRelToAbs, [:pointer, ImRect.by_value], ImRect.by_value],
    [:ImGui_WindowPosAbsToRel, :ImGui_WindowPosAbsToRel, [:pointer, ImVec2.by_value], ImVec2.by_value],
    [:ImGui_WindowPosRelToAbs, :ImGui_WindowPosRelToAbs, [:pointer, ImVec2.by_value], ImVec2.by_value],
    [:ImGui_FocusWindow, :ImGui_FocusWindow, [:pointer, :int], :void],
    [:ImGui_FocusTopMostWindowUnderOne, :ImGui_FocusTopMostWindowUnderOne, [:pointer, :pointer, :pointer, :int], :void],
    [:ImGui_BringWindowToFocusFront, :ImGui_BringWindowToFocusFront, [:pointer], :void],
    [:ImGui_BringWindowToDisplayFront, :ImGui_BringWindowToDisplayFront, [:pointer], :void],
    [:ImGui_BringWindowToDisplayBack, :ImGui_BringWindowToDisplayBack, [:pointer], :void],
    [:ImGui_BringWindowToDisplayBehind, :ImGui_BringWindowToDisplayBehind, [:pointer, :pointer], :void],
    [:ImGui_FindWindowDisplayIndex, :ImGui_FindWindowDisplayIndex, [:pointer], :int],
    [:ImGui_FindBottomMostVisibleWindowWithinBeginStack, :ImGui_FindBottomMostVisibleWindowWithinBeginStack, [:pointer], :pointer],
    [:ImGui_SetNextWindowRefreshPolicy, :ImGui_SetNextWindowRefreshPolicy, [:int], :void],
    [:ImGui_RegisterUserTexture, :ImGui_RegisterUserTexture, [:pointer], :void],
    [:ImGui_UnregisterUserTexture, :ImGui_UnregisterUserTexture, [:pointer], :void],
    [:ImGui_RegisterFontAtlas, :ImGui_RegisterFontAtlas, [:pointer], :void],
    [:ImGui_UnregisterFontAtlas, :ImGui_UnregisterFontAtlas, [:pointer], :void],
    [:ImGui_SetCurrentFont, :ImGui_SetCurrentFont, [:pointer, :float, :float], :void],
    [:ImGui_UpdateCurrentFontSize, :ImGui_UpdateCurrentFontSize, [:float], :void],
    [:ImGui_SetFontRasterizerDensity, :ImGui_SetFontRasterizerDensity, [:float], :void],
    [:ImGui_GetFontRasterizerDensity, :ImGui_GetFontRasterizerDensity, [], :float],
    [:ImGui_GetRoundedFontSize, :ImGui_GetRoundedFontSize, [:float], :float],
    [:ImGui_GetDefaultFont, :ImGui_GetDefaultFont, [], :pointer],
    [:ImGui_PushPasswordFont, :ImGui_PushPasswordFont, [], :void],
    [:ImGui_PopPasswordFont, :ImGui_PopPasswordFont, [], :void],
    [:ImGui_GetForegroundDrawListImGuiWindowPtr, :ImGui_GetForegroundDrawListImGuiWindowPtr, [:pointer], :pointer],
    [:ImGui_AddDrawListToDrawDataEx, :ImGui_AddDrawListToDrawDataEx, [:pointer, :pointer, :pointer], :void],
    [:ImGui_Initialize, :ImGui_Initialize, [], :void],
    [:ImGui_Shutdown, :ImGui_Shutdown, [], :void],
    [:ImGui_SetContextName, :ImGui_SetContextName, [:pointer, :pointer], :void],
    [:ImGui_AddContextHook, :ImGui_AddContextHook, [:pointer, :pointer], :uint],
    [:ImGui_RemoveContextHook, :ImGui_RemoveContextHook, [:pointer, :uint], :void],
    [:ImGui_CallContextHooks, :ImGui_CallContextHooks, [:pointer, :int], :void],
    [:ImGui_UpdateInputEvents, :ImGui_UpdateInputEvents, [:bool], :void],
    [:ImGui_UpdateHoveredWindowAndCaptureFlags, :ImGui_UpdateHoveredWindowAndCaptureFlags, [ImVec2.by_value], :void],
    [:ImGui_FindHoveredWindowEx, :ImGui_FindHoveredWindowEx, [ImVec2.by_value, :bool, :pointer, :pointer], :void],
    [:ImGui_StartMouseMovingWindow, :ImGui_StartMouseMovingWindow, [:pointer], :void],
    [:ImGui_StartMouseMovingWindowOrNode, :ImGui_StartMouseMovingWindowOrNode, [:pointer, :pointer, :bool], :void],
    [:ImGui_StopMouseMovingWindow, :ImGui_StopMouseMovingWindow, [], :void],
    [:ImGui_UpdateMouseMovingWindowNewFrame, :ImGui_UpdateMouseMovingWindowNewFrame, [], :void],
    [:ImGui_UpdateMouseMovingWindowEndFrame, :ImGui_UpdateMouseMovingWindowEndFrame, [], :void],
    [:ImGui_TranslateWindowsInViewport, :ImGui_TranslateWindowsInViewport, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], :void],
    [:ImGui_ScaleWindowsInViewport, :ImGui_ScaleWindowsInViewport, [:pointer, :float], :void],
    [:ImGui_DestroyPlatformWindow, :ImGui_DestroyPlatformWindow, [:pointer], :void],
    [:ImGui_SetWindowViewport, :ImGui_SetWindowViewport, [:pointer, :pointer], :void],
    [:ImGui_SetCurrentViewport, :ImGui_SetCurrentViewport, [:pointer, :pointer], :void],
    [:ImGui_GetViewportPlatformMonitor, :ImGui_GetViewportPlatformMonitor, [:pointer], :pointer],
    [:ImGui_FindHoveredViewportFromPlatformWindowStack, :ImGui_FindHoveredViewportFromPlatformWindowStack, [ImVec2.by_value], :pointer],
    [:ImGui_MarkIniSettingsDirty, :ImGui_MarkIniSettingsDirty, [], :void],
    [:ImGui_MarkIniSettingsDirtyImGuiWindowPtr, :ImGui_MarkIniSettingsDirtyImGuiWindowPtr, [:pointer], :void],
    [:ImGui_ClearIniSettings, :ImGui_ClearIniSettings, [], :void],
    [:ImGui_AddSettingsHandler, :ImGui_AddSettingsHandler, [:pointer], :void],
    [:ImGui_RemoveSettingsHandler, :ImGui_RemoveSettingsHandler, [:pointer], :void],
    [:ImGui_FindSettingsHandler, :ImGui_FindSettingsHandler, [:pointer], :pointer],
    [:ImGui_CreateNewWindowSettings, :ImGui_CreateNewWindowSettings, [:pointer], :pointer],
    [:ImGui_FindWindowSettingsByID, :ImGui_FindWindowSettingsByID, [:uint], :pointer],
    [:ImGui_FindWindowSettingsByWindow, :ImGui_FindWindowSettingsByWindow, [:pointer], :pointer],
    [:ImGui_ClearWindowSettings, :ImGui_ClearWindowSettings, [:pointer], :void],
    [:ImGui_LocalizeRegisterEntries, :ImGui_LocalizeRegisterEntries, [:pointer, :int], :void],
    [:ImGui_LocalizeGetMsg, :ImGui_LocalizeGetMsg, [:int], :pointer],
    [:ImGui_SetScrollXImGuiWindowPtr, :ImGui_SetScrollXImGuiWindowPtr, [:pointer, :float], :void],
    [:ImGui_SetScrollYImGuiWindowPtr, :ImGui_SetScrollYImGuiWindowPtr, [:pointer, :float], :void],
    [:ImGui_SetScrollFromPosXImGuiWindowPtr, :ImGui_SetScrollFromPosXImGuiWindowPtr, [:pointer, :float, :float], :void],
    [:ImGui_SetScrollFromPosYImGuiWindowPtr, :ImGui_SetScrollFromPosYImGuiWindowPtr, [:pointer, :float, :float], :void],
    [:ImGui_ScrollToItem, :ImGui_ScrollToItem, [:int], :void],
    [:ImGui_ScrollToRect, :ImGui_ScrollToRect, [:pointer, ImRect.by_value, :int], :void],
    [:ImGui_ScrollToRectEx, :ImGui_ScrollToRectEx, [:pointer, ImRect.by_value, :int], ImVec2.by_value],
    [:ImGui_ScrollToBringRectIntoView, :ImGui_ScrollToBringRectIntoView, [:pointer, ImRect.by_value], :void],
    [:ImGui_GetItemStatusFlags, :ImGui_GetItemStatusFlags, [], :int],
    [:ImGui_GetActiveID, :ImGui_GetActiveID, [], :uint],
    [:ImGui_GetFocusID, :ImGui_GetFocusID, [], :uint],
    [:ImGui_SetActiveID, :ImGui_SetActiveID, [:uint, :pointer], :void],
    [:ImGui_SetFocusID, :ImGui_SetFocusID, [:uint, :pointer], :void],
    [:ImGui_ClearActiveID, :ImGui_ClearActiveID, [], :void],
    [:ImGui_GetHoveredID, :ImGui_GetHoveredID, [], :uint],
    [:ImGui_SetHoveredID, :ImGui_SetHoveredID, [:uint], :void],
    [:ImGui_KeepAliveID, :ImGui_KeepAliveID, [:uint], :void],
    [:ImGui_MarkItemEdited, :ImGui_MarkItemEdited, [:uint], :void],
    [:ImGui_PushOverrideID, :ImGui_PushOverrideID, [:uint], :void],
    [:ImGui_GetIDWithSeedStr, :ImGui_GetIDWithSeedStr, [:pointer, :pointer, :uint], :uint],
    [:ImGui_GetIDWithSeed, :ImGui_GetIDWithSeed, [:int, :uint], :uint],
    [:ImGui_ItemSize, :ImGui_ItemSize, [ImVec2.by_value], :void],
    [:ImGui_ItemSizeEx, :ImGui_ItemSizeEx, [ImVec2.by_value, :float], :void],
    [:ImGui_ItemSizeImRect, :ImGui_ItemSizeImRect, [ImRect.by_value], :void],
    [:ImGui_ItemSizeImRectEx, :ImGui_ItemSizeImRectEx, [ImRect.by_value, :float], :void],
    [:ImGui_ItemAdd, :ImGui_ItemAdd, [ImRect.by_value, :uint], :bool],
    [:ImGui_ItemAddEx, :ImGui_ItemAddEx, [ImRect.by_value, :uint, :pointer, :int], :bool],
    [:ImGui_ItemHoverable, :ImGui_ItemHoverable, [ImRect.by_value, :uint, :int], :bool],
    [:ImGui_IsWindowContentHoverable, :ImGui_IsWindowContentHoverable, [:pointer, :int], :bool],
    [:ImGui_IsClippedEx, :ImGui_IsClippedEx, [ImRect.by_value, :uint], :bool],
    [:ImGui_SetLastItemData, :ImGui_SetLastItemData, [:uint, :int, :int, ImRect.by_value], :void],
    [:ImGui_CalcItemSize, :ImGui_CalcItemSize, [ImVec2.by_value, :float, :float], ImVec2.by_value],
    [:ImGui_CalcWrapWidthForPos, :ImGui_CalcWrapWidthForPos, [ImVec2.by_value, :float], :float],
    [:ImGui_PushMultiItemsWidths, :ImGui_PushMultiItemsWidths, [:int, :float], :void],
    [:ImGui_ShrinkWidths, :ImGui_ShrinkWidths, [:pointer, :int, :float, :float], :void],
    [:ImGui_CalcClipRectVisibleItemsY, :ImGui_CalcClipRectVisibleItemsY, [ImRect.by_value, ImVec2.by_value, :float, :pointer, :pointer], :void],
    [:ImGui_GetStyleVarInfo, :ImGui_GetStyleVarInfo, [:int], :pointer],
    [:ImGui_BeginDisabledOverrideReenable, :ImGui_BeginDisabledOverrideReenable, [], :void],
    [:ImGui_EndDisabledOverrideReenable, :ImGui_EndDisabledOverrideReenable, [], :void],
    [:ImGui_LogBegin, :ImGui_LogBegin, [:int, :int], :void],
    [:ImGui_LogToBuffer, :ImGui_LogToBuffer, [], :void],
    [:ImGui_LogToBufferEx, :ImGui_LogToBufferEx, [:int], :void],
    [:ImGui_LogRenderedText, :ImGui_LogRenderedText, [:pointer, :pointer], :void],
    [:ImGui_LogRenderedTextEx, :ImGui_LogRenderedTextEx, [:pointer, :pointer, :pointer], :void],
    [:ImGui_LogSetNextTextDecoration, :ImGui_LogSetNextTextDecoration, [:pointer, :pointer], :void],
    [:ImGui_BeginChildEx, :ImGui_BeginChildEx, [:pointer, :uint, ImVec2.by_value, :int, :int], :bool],
    [:ImGui_FindFrontMostVisibleChildWindow, :ImGui_FindFrontMostVisibleChildWindow, [:pointer], :pointer],
    [:ImGui_BeginPopupEx, :ImGui_BeginPopupEx, [:uint, :int], :bool],
    [:ImGui_BeginPopupMenuEx, :ImGui_BeginPopupMenuEx, [:uint, :pointer, :int], :bool],
    [:ImGui_OpenPopupEx, :ImGui_OpenPopupEx, [:uint], :void],
    [:ImGui_OpenPopupExEx, :ImGui_OpenPopupExEx, [:uint, :int], :void],
    [:ImGui_ClosePopupToLevel, :ImGui_ClosePopupToLevel, [:int, :bool], :void],
    [:ImGui_ClosePopupsOverWindow, :ImGui_ClosePopupsOverWindow, [:pointer, :bool], :void],
    [:ImGui_ClosePopupsExceptModals, :ImGui_ClosePopupsExceptModals, [], :void],
    [:ImGui_IsPopupOpenID, :ImGui_IsPopupOpenID, [:uint, :int], :bool],
    [:ImGui_GetPopupAllowedExtentRect, :ImGui_GetPopupAllowedExtentRect, [:pointer], ImRect.by_value],
    [:ImGui_GetTopMostPopupModal, :ImGui_GetTopMostPopupModal, [], :pointer],
    [:ImGui_GetTopMostAndVisiblePopupModal, :ImGui_GetTopMostAndVisiblePopupModal, [], :pointer],
    [:ImGui_FindBlockingModal, :ImGui_FindBlockingModal, [:pointer], :pointer],
    [:ImGui_FindBestWindowPosForPopup, :ImGui_FindBestWindowPosForPopup, [:pointer], ImVec2.by_value],
    [:ImGui_FindBestWindowPosForPopupEx, :ImGui_FindBestWindowPosForPopupEx, [ImVec2.by_value, ImVec2.by_value, :pointer, ImRect.by_value, ImRect.by_value, :int], ImVec2.by_value],
    [:ImGui_GetMouseButtonFromPopupFlags, :ImGui_GetMouseButtonFromPopupFlags, [:int], :int],
    [:ImGui_IsPopupOpenRequestForItem, :ImGui_IsPopupOpenRequestForItem, [:int, :uint], :bool],
    [:ImGui_IsPopupOpenRequestForWindow, :ImGui_IsPopupOpenRequestForWindow, [:int], :bool],
    [:ImGui_BeginTooltipEx, :ImGui_BeginTooltipEx, [:int, :int], :bool],
    [:ImGui_BeginTooltipHidden, :ImGui_BeginTooltipHidden, [], :bool],
    [:ImGui_BeginViewportSideBar, :ImGui_BeginViewportSideBar, [:pointer, :pointer, :int, :float, :int], :bool],
    [:ImGui_BeginMenuWithIcon, :ImGui_BeginMenuWithIcon, [:pointer, :pointer], :bool],
    [:ImGui_BeginMenuWithIconEx, :ImGui_BeginMenuWithIconEx, [:pointer, :pointer, :bool], :bool],
    [:ImGui_MenuItemWithIcon, :ImGui_MenuItemWithIcon, [:pointer, :pointer], :bool],
    [:ImGui_MenuItemWithIconEx, :ImGui_MenuItemWithIconEx, [:pointer, :pointer, :pointer, :bool, :bool], :bool],
    [:ImGui_BeginComboPopup, :ImGui_BeginComboPopup, [:uint, ImRect.by_value, :int], :bool],
    [:ImGui_BeginComboPreview, :ImGui_BeginComboPreview, [], :bool],
    [:ImGui_EndComboPreview, :ImGui_EndComboPreview, [], :void],
    [:ImGui_NavInitWindow, :ImGui_NavInitWindow, [:pointer, :bool], :void],
    [:ImGui_NavInitRequestApplyResult, :ImGui_NavInitRequestApplyResult, [], :void],
    [:ImGui_NavMoveRequestButNoResultYet, :ImGui_NavMoveRequestButNoResultYet, [], :bool],
    [:ImGui_NavMoveRequestSubmit, :ImGui_NavMoveRequestSubmit, [:int, :int, :int, :int], :void],
    [:ImGui_NavMoveRequestForward, :ImGui_NavMoveRequestForward, [:int, :int, :int, :int], :void],
    [:ImGui_NavMoveRequestResolveWithLastItem, :ImGui_NavMoveRequestResolveWithLastItem, [:pointer], :void],
    [:ImGui_NavMoveRequestResolveWithPastTreeNode, :ImGui_NavMoveRequestResolveWithPastTreeNode, [:pointer, :pointer], :void],
    [:ImGui_NavMoveRequestCancel, :ImGui_NavMoveRequestCancel, [], :void],
    [:ImGui_NavMoveRequestApplyResult, :ImGui_NavMoveRequestApplyResult, [], :void],
    [:ImGui_NavMoveRequestTryWrapping, :ImGui_NavMoveRequestTryWrapping, [:pointer, :int], :void],
    [:ImGui_NavHighlightActivated, :ImGui_NavHighlightActivated, [:uint], :void],
    [:ImGui_NavClearPreferredPosForAxis, :ImGui_NavClearPreferredPosForAxis, [:int], :void],
    [:ImGui_SetNavCursorVisibleAfterMove, :ImGui_SetNavCursorVisibleAfterMove, [], :void],
    [:ImGui_NavUpdateCurrentWindowIsScrollPushableX, :ImGui_NavUpdateCurrentWindowIsScrollPushableX, [], :void],
    [:ImGui_SetNavWindow, :ImGui_SetNavWindow, [:pointer], :void],
    [:ImGui_SetNavID, :ImGui_SetNavID, [:uint, :int, :uint, ImRect.by_value], :void],
    [:ImGui_SetNavFocusScope, :ImGui_SetNavFocusScope, [:uint], :void],
    [:ImGui_FocusItem, :ImGui_FocusItem, [], :void],
    [:ImGui_ActivateItemByID, :ImGui_ActivateItemByID, [:uint], :void],
    [:ImGui_IsNamedKey, :ImGui_IsNamedKey, [:int], :bool],
    [:ImGui_IsNamedKeyOrMod, :ImGui_IsNamedKeyOrMod, [:int], :bool],
    [:ImGui_IsLegacyKey, :ImGui_IsLegacyKey, [:int], :bool],
    [:ImGui_IsKeyboardKey, :ImGui_IsKeyboardKey, [:int], :bool],
    [:ImGui_IsGamepadKey, :ImGui_IsGamepadKey, [:int], :bool],
    [:ImGui_IsMouseKey, :ImGui_IsMouseKey, [:int], :bool],
    [:ImGui_IsAliasKey, :ImGui_IsAliasKey, [:int], :bool],
    [:ImGui_IsLRModKey, :ImGui_IsLRModKey, [:int], :bool],
    [:ImGui_FixupKeyChord, :ImGui_FixupKeyChord, [:int], :int],
    [:ImGui_ConvertSingleModFlagToKey, :ImGui_ConvertSingleModFlagToKey, [:int], :int],
    [:ImGui_GetKeyDataImGuiContextPtr, :ImGui_GetKeyDataImGuiContextPtr, [:pointer, :int], :pointer],
    [:ImGui_GetKeyData, :ImGui_GetKeyData, [:int], :pointer],
    [:ImGui_GetKeyChordName, :ImGui_GetKeyChordName, [:int], :pointer],
    [:ImGui_MouseButtonToKey, :ImGui_MouseButtonToKey, [:int], :int],
    [:ImGui_IsMouseDragPastThreshold, :ImGui_IsMouseDragPastThreshold, [:int], :bool],
    [:ImGui_IsMouseDragPastThresholdEx, :ImGui_IsMouseDragPastThresholdEx, [:int, :float], :bool],
    [:ImGui_GetKeyMagnitude2d, :ImGui_GetKeyMagnitude2d, [:int, :int, :int, :int], ImVec2.by_value],
    [:ImGui_GetNavTweakPressedAmount, :ImGui_GetNavTweakPressedAmount, [:int], :float],
    [:ImGui_CalcTypematicRepeatAmount, :ImGui_CalcTypematicRepeatAmount, [:float, :float, :float, :float], :int],
    [:ImGui_GetTypematicRepeatRate, :ImGui_GetTypematicRepeatRate, [:int, :pointer, :pointer], :void],
    [:ImGui_TeleportMousePos, :ImGui_TeleportMousePos, [ImVec2.by_value], :void],
    [:ImGui_SetActiveIdUsingAllKeyboardKeys, :ImGui_SetActiveIdUsingAllKeyboardKeys, [], :void],
    [:ImGui_IsActiveIdUsingNavDir, :ImGui_IsActiveIdUsingNavDir, [:int], :bool],
    [:ImGui_GetKeyOwner, :ImGui_GetKeyOwner, [:int], :uint],
    [:ImGui_SetKeyOwner, :ImGui_SetKeyOwner, [:int, :uint, :int], :void],
    [:ImGui_SetKeyOwnersForKeyChord, :ImGui_SetKeyOwnersForKeyChord, [:int, :uint, :int], :void],
    [:ImGui_SetItemKeyOwnerImGuiInputFlags, :ImGui_SetItemKeyOwnerImGuiInputFlags, [:int, :int], :bool],
    [:ImGui_TestKeyOwner, :ImGui_TestKeyOwner, [:int, :uint], :bool],
    [:ImGui_GetKeyOwnerData, :ImGui_GetKeyOwnerData, [:pointer, :int], :pointer],
    [:ImGui_IsKeyDownID, :ImGui_IsKeyDownID, [:int, :uint], :bool],
    [:ImGui_IsKeyPressedImGuiInputFlags, :ImGui_IsKeyPressedImGuiInputFlags, [:int, :int], :bool],
    [:ImGui_IsKeyPressedImGuiInputFlagsEx, :ImGui_IsKeyPressedImGuiInputFlagsEx, [:int, :int, :uint], :bool],
    [:ImGui_IsKeyReleasedID, :ImGui_IsKeyReleasedID, [:int, :uint], :bool],
    [:ImGui_IsKeyChordPressedImGuiInputFlags, :ImGui_IsKeyChordPressedImGuiInputFlags, [:int, :int], :bool],
    [:ImGui_IsKeyChordPressedImGuiInputFlagsEx, :ImGui_IsKeyChordPressedImGuiInputFlagsEx, [:int, :int, :uint], :bool],
    [:ImGui_IsMouseDownID, :ImGui_IsMouseDownID, [:int, :uint], :bool],
    [:ImGui_IsMouseClickedImGuiInputFlags, :ImGui_IsMouseClickedImGuiInputFlags, [:int, :int], :bool],
    [:ImGui_IsMouseClickedImGuiInputFlagsEx, :ImGui_IsMouseClickedImGuiInputFlagsEx, [:int, :int, :uint], :bool],
    [:ImGui_IsMouseReleasedID, :ImGui_IsMouseReleasedID, [:int, :uint], :bool],
    [:ImGui_IsMouseDoubleClickedID, :ImGui_IsMouseDoubleClickedID, [:int, :uint], :bool],
    [:ImGui_ShortcutID, :ImGui_ShortcutID, [:int, :int, :uint], :bool],
    [:ImGui_SetShortcutRouting, :ImGui_SetShortcutRouting, [:int, :int, :uint], :bool],
    [:ImGui_TestShortcutRouting, :ImGui_TestShortcutRouting, [:int, :uint], :bool],
    [:ImGui_GetShortcutRoutingData, :ImGui_GetShortcutRoutingData, [:int], :pointer],
    [:ImGui_DockContextInitialize, :ImGui_DockContextInitialize, [:pointer], :void],
    [:ImGui_DockContextShutdown, :ImGui_DockContextShutdown, [:pointer], :void],
    [:ImGui_DockContextClearNodes, :ImGui_DockContextClearNodes, [:pointer, :uint, :bool], :void],
    [:ImGui_DockContextRebuildNodes, :ImGui_DockContextRebuildNodes, [:pointer], :void],
    [:ImGui_DockContextNewFrameUpdateUndocking, :ImGui_DockContextNewFrameUpdateUndocking, [:pointer], :void],
    [:ImGui_DockContextNewFrameUpdateDocking, :ImGui_DockContextNewFrameUpdateDocking, [:pointer], :void],
    [:ImGui_DockContextEndFrame, :ImGui_DockContextEndFrame, [:pointer], :void],
    [:ImGui_DockContextGenNodeID, :ImGui_DockContextGenNodeID, [:pointer], :uint],
    [:ImGui_DockContextQueueDock, :ImGui_DockContextQueueDock, [:pointer, :pointer, :pointer, :pointer, :int, :float, :bool], :void],
    [:ImGui_DockContextQueueUndockWindow, :ImGui_DockContextQueueUndockWindow, [:pointer, :pointer], :void],
    [:ImGui_DockContextQueueUndockNode, :ImGui_DockContextQueueUndockNode, [:pointer, :pointer], :void],
    [:ImGui_DockContextProcessUndockWindow, :ImGui_DockContextProcessUndockWindow, [:pointer, :pointer], :void],
    [:ImGui_DockContextProcessUndockWindowEx, :ImGui_DockContextProcessUndockWindowEx, [:pointer, :pointer, :bool], :void],
    [:ImGui_DockContextProcessUndockNode, :ImGui_DockContextProcessUndockNode, [:pointer, :pointer], :void],
    [:ImGui_DockContextCalcDropPosForDocking, :ImGui_DockContextCalcDropPosForDocking, [:pointer, :pointer, :pointer, :pointer, :int, :bool, :pointer], :bool],
    [:ImGui_DockContextFindNodeByID, :ImGui_DockContextFindNodeByID, [:pointer, :uint], :pointer],
    [:ImGui_DockNodeWindowMenuHandler_Default, :ImGui_DockNodeWindowMenuHandler_Default, [:pointer, :pointer, :pointer], :void],
    [:ImGui_DockNodeBeginAmendTabBar, :ImGui_DockNodeBeginAmendTabBar, [:pointer], :bool],
    [:ImGui_DockNodeEndAmendTabBar, :ImGui_DockNodeEndAmendTabBar, [], :void],
    [:ImGui_DockNodeGetRootNode, :ImGui_DockNodeGetRootNode, [:pointer], :pointer],
    [:ImGui_DockNodeIsInHierarchyOf, :ImGui_DockNodeIsInHierarchyOf, [:pointer, :pointer], :bool],
    [:ImGui_DockNodeGetDepth, :ImGui_DockNodeGetDepth, [:pointer], :int],
    [:ImGui_DockNodeGetWindowMenuButtonId, :ImGui_DockNodeGetWindowMenuButtonId, [:pointer], :uint],
    [:ImGui_GetWindowDockNode, :ImGui_GetWindowDockNode, [], :pointer],
    [:ImGui_GetWindowAlwaysWantOwnTabBar, :ImGui_GetWindowAlwaysWantOwnTabBar, [:pointer], :bool],
    [:ImGui_BeginDocked, :ImGui_BeginDocked, [:pointer, :pointer], :void],
    [:ImGui_BeginDockableDragDropSource, :ImGui_BeginDockableDragDropSource, [:pointer], :void],
    [:ImGui_BeginDockableDragDropTarget, :ImGui_BeginDockableDragDropTarget, [:pointer], :void],
    [:ImGui_SetWindowDock, :ImGui_SetWindowDock, [:pointer, :uint, :int], :void],
    [:ImGui_DockBuilderDockWindow, :ImGui_DockBuilderDockWindow, [:pointer, :uint], :void],
    [:ImGui_DockBuilderGetNode, :ImGui_DockBuilderGetNode, [:uint], :pointer],
    [:ImGui_DockBuilderGetCentralNode, :ImGui_DockBuilderGetCentralNode, [:uint], :pointer],
    [:ImGui_DockBuilderAddNode, :ImGui_DockBuilderAddNode, [], :uint],
    [:ImGui_DockBuilderAddNodeEx, :ImGui_DockBuilderAddNodeEx, [:uint, :int], :uint],
    [:ImGui_DockBuilderRemoveNode, :ImGui_DockBuilderRemoveNode, [:uint], :void],
    [:ImGui_DockBuilderRemoveNodeDockedWindows, :ImGui_DockBuilderRemoveNodeDockedWindows, [:uint], :void],
    [:ImGui_DockBuilderRemoveNodeDockedWindowsEx, :ImGui_DockBuilderRemoveNodeDockedWindowsEx, [:uint, :bool], :void],
    [:ImGui_DockBuilderRemoveNodeChildNodes, :ImGui_DockBuilderRemoveNodeChildNodes, [:uint], :void],
    [:ImGui_DockBuilderSetNodePos, :ImGui_DockBuilderSetNodePos, [:uint, ImVec2.by_value], :void],
    [:ImGui_DockBuilderSetNodeSize, :ImGui_DockBuilderSetNodeSize, [:uint, ImVec2.by_value], :void],
    [:ImGui_DockBuilderSplitNode, :ImGui_DockBuilderSplitNode, [:uint, :int, :float, :pointer, :pointer], :uint],
    [:ImGui_DockBuilderCopyDockSpace, :ImGui_DockBuilderCopyDockSpace, [:uint, :uint, :pointer], :void],
    [:ImGui_DockBuilderCopyNode, :ImGui_DockBuilderCopyNode, [:uint, :uint, :pointer], :void],
    [:ImGui_DockBuilderCopyWindowSettings, :ImGui_DockBuilderCopyWindowSettings, [:pointer, :pointer], :void],
    [:ImGui_DockBuilderFinish, :ImGui_DockBuilderFinish, [:uint], :void],
    [:ImGui_PushFocusScope, :ImGui_PushFocusScope, [:uint], :void],
    [:ImGui_PopFocusScope, :ImGui_PopFocusScope, [], :void],
    [:ImGui_IsInNavFocusRoute, :ImGui_IsInNavFocusRoute, [:uint], :bool],
    [:ImGui_GetCurrentFocusScope, :ImGui_GetCurrentFocusScope, [], :uint],
    [:ImGui_IsDragDropActive, :ImGui_IsDragDropActive, [], :bool],
    [:ImGui_BeginDragDropTargetCustom, :ImGui_BeginDragDropTargetCustom, [ImRect.by_value, :uint], :bool],
    [:ImGui_BeginDragDropTargetViewport, :ImGui_BeginDragDropTargetViewport, [:pointer], :bool],
    [:ImGui_BeginDragDropTargetViewportEx, :ImGui_BeginDragDropTargetViewportEx, [:pointer, :pointer], :bool],
    [:ImGui_ClearDragDrop, :ImGui_ClearDragDrop, [], :void],
    [:ImGui_IsDragDropPayloadBeingAccepted, :ImGui_IsDragDropPayloadBeingAccepted, [], :bool],
    [:ImGui_RenderDragDropTargetRectForItem, :ImGui_RenderDragDropTargetRectForItem, [ImRect.by_value], :void],
    [:ImGui_RenderDragDropTargetRectEx, :ImGui_RenderDragDropTargetRectEx, [:pointer, ImRect.by_value, :float], :void],
    [:ImGui_GetTypingSelectRequest, :ImGui_GetTypingSelectRequest, [], :pointer],
    [:ImGui_GetTypingSelectRequestEx, :ImGui_GetTypingSelectRequestEx, [:int], :pointer],
    [:ImGui_TypingSelectFindMatch, :ImGui_TypingSelectFindMatch, [:pointer, :int, :pointer, :pointer, :int], :int],
    [:ImGui_TypingSelectFindNextSingleCharMatch, :ImGui_TypingSelectFindNextSingleCharMatch, [:pointer, :int, :pointer, :pointer, :int], :int],
    [:ImGui_TypingSelectFindBestLeadingMatch, :ImGui_TypingSelectFindBestLeadingMatch, [:pointer, :int, :pointer, :pointer], :int],
    [:ImGui_BeginBoxSelect, :ImGui_BeginBoxSelect, [ImRect.by_value, :pointer, :uint, :int], :bool],
    [:ImGui_EndBoxSelect, :ImGui_EndBoxSelect, [ImRect.by_value, :int], :void],
    [:ImGui_MultiSelectItemHeader, :ImGui_MultiSelectItemHeader, [:uint, :pointer, :pointer], :void],
    [:ImGui_MultiSelectItemFooter, :ImGui_MultiSelectItemFooter, [:uint, :pointer, :pointer], :void],
    [:ImGui_MultiSelectAddSetAll, :ImGui_MultiSelectAddSetAll, [:pointer, :bool], :void],
    [:ImGui_MultiSelectAddSetRange, :ImGui_MultiSelectAddSetRange, [:pointer, :bool, :int, :int64, :int64], :void],
    [:ImGui_GetBoxSelectState, :ImGui_GetBoxSelectState, [:uint], :pointer],
    [:ImGui_GetMultiSelectState, :ImGui_GetMultiSelectState, [:uint], :pointer],
    [:ImGui_SetWindowClipRectBeforeSetChannel, :ImGui_SetWindowClipRectBeforeSetChannel, [:pointer, ImRect.by_value], :void],
    [:ImGui_BeginColumns, :ImGui_BeginColumns, [:pointer, :int, :int], :void],
    [:ImGui_EndColumns, :ImGui_EndColumns, [], :void],
    [:ImGui_PushColumnClipRect, :ImGui_PushColumnClipRect, [:int], :void],
    [:ImGui_PushColumnsBackground, :ImGui_PushColumnsBackground, [], :void],
    [:ImGui_PopColumnsBackground, :ImGui_PopColumnsBackground, [], :void],
    [:ImGui_GetColumnsID, :ImGui_GetColumnsID, [:pointer, :int], :uint],
    [:ImGui_FindOrCreateColumns, :ImGui_FindOrCreateColumns, [:pointer, :uint], :pointer],
    [:ImGui_GetColumnOffsetFromNorm, :ImGui_GetColumnOffsetFromNorm, [:pointer, :float], :float],
    [:ImGui_GetColumnNormFromOffset, :ImGui_GetColumnNormFromOffset, [:pointer, :float], :float],
    [:ImGui_TableOpenContextMenu, :ImGui_TableOpenContextMenu, [], :void],
    [:ImGui_TableOpenContextMenuEx, :ImGui_TableOpenContextMenuEx, [:int], :void],
    [:ImGui_TableSetColumnWidth, :ImGui_TableSetColumnWidth, [:int, :float], :void],
    [:ImGui_TableSetColumnSortDirection, :ImGui_TableSetColumnSortDirection, [:int, :uchar, :bool], :void],
    [:ImGui_TableGetHoveredRow, :ImGui_TableGetHoveredRow, [], :int],
    [:ImGui_TableGetHeaderRowHeight, :ImGui_TableGetHeaderRowHeight, [], :float],
    [:ImGui_TableGetHeaderAngledMaxLabelWidth, :ImGui_TableGetHeaderAngledMaxLabelWidth, [], :float],
    [:ImGui_TablePushBackgroundChannel, :ImGui_TablePushBackgroundChannel, [], :void],
    [:ImGui_TablePopBackgroundChannel, :ImGui_TablePopBackgroundChannel, [], :void],
    [:ImGui_TablePushColumnChannel, :ImGui_TablePushColumnChannel, [:int], :void],
    [:ImGui_TablePopColumnChannel, :ImGui_TablePopColumnChannel, [], :void],
    [:ImGui_TableAngledHeadersRowEx, :ImGui_TableAngledHeadersRowEx, [:uint, :float, :float, :pointer, :int], :void],
    [:ImGui_GetCurrentTable, :ImGui_GetCurrentTable, [], :pointer],
    [:ImGui_TableFindByID, :ImGui_TableFindByID, [:uint], :pointer],
    [:ImGui_BeginTableWithID, :ImGui_BeginTableWithID, [:pointer, :uint, :int, :int], :bool],
    [:ImGui_BeginTableWithIDEx, :ImGui_BeginTableWithIDEx, [:pointer, :uint, :int, :int, ImVec2.by_value, :float], :bool],
    [:ImGui_TableBeginInitMemory, :ImGui_TableBeginInitMemory, [:pointer, :int], :void],
    [:ImGui_TableBeginApplyRequests, :ImGui_TableBeginApplyRequests, [:pointer], :void],
    [:ImGui_TableSetupDrawChannels, :ImGui_TableSetupDrawChannels, [:pointer], :void],
    [:ImGui_TableUpdateLayout, :ImGui_TableUpdateLayout, [:pointer], :void],
    [:ImGui_TableUpdateBorders, :ImGui_TableUpdateBorders, [:pointer], :void],
    [:ImGui_TableUpdateColumnsWeightFromWidth, :ImGui_TableUpdateColumnsWeightFromWidth, [:pointer], :void],
    [:ImGui_TableApplyExternalUnclipRect, :ImGui_TableApplyExternalUnclipRect, [:pointer, :pointer], :void],
    [:ImGui_TableDrawBorders, :ImGui_TableDrawBorders, [:pointer], :void],
    [:ImGui_TableDrawDefaultContextMenu, :ImGui_TableDrawDefaultContextMenu, [:pointer, :int], :void],
    [:ImGui_TableBeginContextMenuPopup, :ImGui_TableBeginContextMenuPopup, [:pointer], :bool],
    [:ImGui_TableMergeDrawChannels, :ImGui_TableMergeDrawChannels, [:pointer], :void],
    [:ImGui_TableGetInstanceData, :ImGui_TableGetInstanceData, [:pointer, :int], :pointer],
    [:ImGui_TableGetInstanceID, :ImGui_TableGetInstanceID, [:pointer, :int], :uint],
    [:ImGui_TableFixDisplayOrder, :ImGui_TableFixDisplayOrder, [:pointer], :void],
    [:ImGui_TableSortSpecsSanitize, :ImGui_TableSortSpecsSanitize, [:pointer], :void],
    [:ImGui_TableSortSpecsBuild, :ImGui_TableSortSpecsBuild, [:pointer], :void],
    [:ImGui_TableGetColumnNextSortDirection, :ImGui_TableGetColumnNextSortDirection, [:pointer], :uchar],
    [:ImGui_TableFixColumnSortDirection, :ImGui_TableFixColumnSortDirection, [:pointer, :pointer], :void],
    [:ImGui_TableGetColumnWidthAuto, :ImGui_TableGetColumnWidthAuto, [:pointer, :pointer], :float],
    [:ImGui_TableBeginRow, :ImGui_TableBeginRow, [:pointer], :void],
    [:ImGui_TableEndRow, :ImGui_TableEndRow, [:pointer], :void],
    [:ImGui_TableBeginCell, :ImGui_TableBeginCell, [:pointer, :int], :void],
    [:ImGui_TableEndCell, :ImGui_TableEndCell, [:pointer], :void],
    [:ImGui_TableGetCellBgRect, :ImGui_TableGetCellBgRect, [:pointer, :int], ImRect.by_value],
    [:ImGui_TableGetColumnNameImGuiTablePtr, :ImGui_TableGetColumnNameImGuiTablePtr, [:pointer, :int], :pointer],
    [:ImGui_TableGetColumnResizeID, :ImGui_TableGetColumnResizeID, [:pointer, :int], :uint],
    [:ImGui_TableGetColumnResizeIDEx, :ImGui_TableGetColumnResizeIDEx, [:pointer, :int, :int], :uint],
    [:ImGui_TableCalcMaxColumnWidth, :ImGui_TableCalcMaxColumnWidth, [:pointer, :int], :float],
    [:ImGui_TableSetColumnWidthAutoSingle, :ImGui_TableSetColumnWidthAutoSingle, [:pointer, :int], :void],
    [:ImGui_TableSetColumnWidthAutoAll, :ImGui_TableSetColumnWidthAutoAll, [:pointer], :void],
    [:ImGui_TableSetColumnDisplayOrder, :ImGui_TableSetColumnDisplayOrder, [:pointer, :int, :int], :void],
    [:ImGui_TableQueueSetColumnDisplayOrder, :ImGui_TableQueueSetColumnDisplayOrder, [:pointer, :int, :int], :void],
    [:ImGui_TableRemove, :ImGui_TableRemove, [:pointer], :void],
    [:ImGui_TableGcCompactTransientBuffers, :ImGui_TableGcCompactTransientBuffers, [:pointer], :void],
    [:ImGui_TableGcCompactTransientBuffersImGuiTableTempDataPtr, :ImGui_TableGcCompactTransientBuffersImGuiTableTempDataPtr, [:pointer], :void],
    [:ImGui_TableGcCompactSettings, :ImGui_TableGcCompactSettings, [], :void],
    [:ImGui_TableLoadSettings, :ImGui_TableLoadSettings, [:pointer], :void],
    [:ImGui_TableSaveSettings, :ImGui_TableSaveSettings, [:pointer], :void],
    [:ImGui_TableResetSettings, :ImGui_TableResetSettings, [:pointer], :void],
    [:ImGui_TableGetBoundSettings, :ImGui_TableGetBoundSettings, [:pointer], :pointer],
    [:ImGui_TableSettingsAddSettingsHandler, :ImGui_TableSettingsAddSettingsHandler, [], :void],
    [:ImGui_TableSettingsCreate, :ImGui_TableSettingsCreate, [:uint, :int], :pointer],
    [:ImGui_TableSettingsFindByID, :ImGui_TableSettingsFindByID, [:uint], :pointer],
    [:ImGui_GetCurrentTabBar, :ImGui_GetCurrentTabBar, [], :pointer],
    [:ImGui_TabBarFindByID, :ImGui_TabBarFindByID, [:uint], :pointer],
    [:ImGui_TabBarRemove, :ImGui_TabBarRemove, [:pointer], :void],
    [:ImGui_BeginTabBarEx, :ImGui_BeginTabBarEx, [:pointer, ImRect.by_value, :int], :bool],
    [:ImGui_TabBarFindTabByID, :ImGui_TabBarFindTabByID, [:pointer, :uint], :pointer],
    [:ImGui_TabBarFindTabByOrder, :ImGui_TabBarFindTabByOrder, [:pointer, :int], :pointer],
    [:ImGui_TabBarFindMostRecentlySelectedTabForActiveWindow, :ImGui_TabBarFindMostRecentlySelectedTabForActiveWindow, [:pointer], :pointer],
    [:ImGui_TabBarGetCurrentTab, :ImGui_TabBarGetCurrentTab, [:pointer], :pointer],
    [:ImGui_TabBarGetTabOrder, :ImGui_TabBarGetTabOrder, [:pointer, :pointer], :int],
    [:ImGui_TabBarGetTabName, :ImGui_TabBarGetTabName, [:pointer, :pointer], :pointer],
    [:ImGui_TabBarAddTab, :ImGui_TabBarAddTab, [:pointer, :int, :pointer], :void],
    [:ImGui_TabBarRemoveTab, :ImGui_TabBarRemoveTab, [:pointer, :uint], :void],
    [:ImGui_TabBarCloseTab, :ImGui_TabBarCloseTab, [:pointer, :pointer], :void],
    [:ImGui_TabBarQueueFocus, :ImGui_TabBarQueueFocus, [:pointer, :pointer], :void],
    [:ImGui_TabBarQueueFocusStr, :ImGui_TabBarQueueFocusStr, [:pointer, :pointer], :void],
    [:ImGui_TabBarQueueReorder, :ImGui_TabBarQueueReorder, [:pointer, :pointer, :int], :void],
    [:ImGui_TabBarQueueReorderFromMousePos, :ImGui_TabBarQueueReorderFromMousePos, [:pointer, :pointer, ImVec2.by_value], :void],
    [:ImGui_TabBarProcessReorder, :ImGui_TabBarProcessReorder, [:pointer], :bool],
    [:ImGui_TabItemEx, :ImGui_TabItemEx, [:pointer, :pointer, :pointer, :int, :pointer], :bool],
    [:ImGui_TabItemSpacing, :ImGui_TabItemSpacing, [:pointer, :int, :float], :void],
    [:ImGui_TabItemCalcSizeStr, :ImGui_TabItemCalcSizeStr, [:pointer, :bool], ImVec2.by_value],
    [:ImGui_TabItemCalcSize, :ImGui_TabItemCalcSize, [:pointer], ImVec2.by_value],
    [:ImGui_TabItemBackground, :ImGui_TabItemBackground, [:pointer, ImRect.by_value, :int, :uint], :void],
    [:ImGui_TabItemLabelAndCloseButton, :ImGui_TabItemLabelAndCloseButton, [:pointer, ImRect.by_value, :int, ImVec2.by_value, :pointer, :uint, :uint, :bool, :pointer, :pointer], :void],
    [:ImGui_RenderText, :ImGui_RenderText, [ImVec2.by_value, :pointer], :void],
    [:ImGui_RenderTextEx, :ImGui_RenderTextEx, [ImVec2.by_value, :pointer, :pointer, :bool], :void],
    [:ImGui_RenderTextWrapped, :ImGui_RenderTextWrapped, [ImVec2.by_value, :pointer, :pointer, :float], :void],
    [:ImGui_RenderTextClipped, :ImGui_RenderTextClipped, [ImVec2.by_value, ImVec2.by_value, :pointer, :pointer, :pointer], :void],
    [:ImGui_RenderTextClippedEx, :ImGui_RenderTextClippedEx, [ImVec2.by_value, ImVec2.by_value, :pointer, :pointer, :pointer, ImVec2.by_value, :pointer], :void],
    [:ImGui_RenderTextClippedWithDrawList, :ImGui_RenderTextClippedWithDrawList, [:pointer, ImVec2.by_value, ImVec2.by_value, :pointer, :pointer, :pointer], :void],
    [:ImGui_RenderTextClippedWithDrawListEx, :ImGui_RenderTextClippedWithDrawListEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :pointer, :pointer, :pointer, ImVec2.by_value, :pointer], :void],
    [:ImGui_RenderTextEllipsis, :ImGui_RenderTextEllipsis, [:pointer, ImVec2.by_value, ImVec2.by_value, :float, :pointer, :pointer, :pointer], :void],
    [:ImGui_RenderFrame, :ImGui_RenderFrame, [ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImGui_RenderFrameEx, :ImGui_RenderFrameEx, [ImVec2.by_value, ImVec2.by_value, :uint, :bool, :float], :void],
    [:ImGui_RenderFrameBorder, :ImGui_RenderFrameBorder, [ImVec2.by_value, ImVec2.by_value], :void],
    [:ImGui_RenderFrameBorderEx, :ImGui_RenderFrameBorderEx, [ImVec2.by_value, ImVec2.by_value, :float], :void],
    [:ImGui_RenderColorComponentMarker, :ImGui_RenderColorComponentMarker, [ImRect.by_value, :uint, :float], :void],
    [:ImGui_RenderColorRectWithAlphaCheckerboard, :ImGui_RenderColorRectWithAlphaCheckerboard, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, ImVec2.by_value], :void],
    [:ImGui_RenderColorRectWithAlphaCheckerboardEx, :ImGui_RenderColorRectWithAlphaCheckerboardEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, ImVec2.by_value, :float, :int], :void],
    [:ImGui_RenderNavCursor, :ImGui_RenderNavCursor, [ImRect.by_value, :uint], :void],
    [:ImGui_RenderNavCursorEx, :ImGui_RenderNavCursorEx, [ImRect.by_value, :uint, :int], :void],
    [:ImGui_RenderNavHighlight, :ImGui_RenderNavHighlight, [ImRect.by_value, :uint], :void],
    [:ImGui_RenderNavHighlightEx, :ImGui_RenderNavHighlightEx, [ImRect.by_value, :uint, :int], :void],
    [:ImGui_FindRenderedTextEnd, :ImGui_FindRenderedTextEnd, [:pointer], :pointer],
    [:ImGui_FindRenderedTextEndEx, :ImGui_FindRenderedTextEndEx, [:pointer, :pointer], :pointer],
    [:ImGui_RenderMouseCursor, :ImGui_RenderMouseCursor, [ImVec2.by_value, :float, :int, :uint, :uint, :uint], :void],
    [:ImGui_RenderArrow, :ImGui_RenderArrow, [:pointer, ImVec2.by_value, :uint, :int], :void],
    [:ImGui_RenderArrowEx, :ImGui_RenderArrowEx, [:pointer, ImVec2.by_value, :uint, :int, :float], :void],
    [:ImGui_RenderBullet, :ImGui_RenderBullet, [:pointer, ImVec2.by_value, :uint], :void],
    [:ImGui_RenderCheckMark, :ImGui_RenderCheckMark, [:pointer, ImVec2.by_value, :uint, :float], :void],
    [:ImGui_RenderArrowPointingAt, :ImGui_RenderArrowPointingAt, [:pointer, ImVec2.by_value, ImVec2.by_value, :int, :uint], :void],
    [:ImGui_RenderArrowDockMenu, :ImGui_RenderArrowDockMenu, [:pointer, ImVec2.by_value, :float, :uint], :void],
    [:ImGui_RenderRectFilledInRangeH, :ImGui_RenderRectFilledInRangeH, [:pointer, ImRect.by_value, :uint, :float, :float, :float], :void],
    [:ImGui_RenderRectFilledWithHole, :ImGui_RenderRectFilledWithHole, [:pointer, ImRect.by_value, ImRect.by_value, :uint, :float], :void],
    [:ImGui_CalcRoundingFlagsForRectInRect, :ImGui_CalcRoundingFlagsForRectInRect, [ImRect.by_value, ImRect.by_value, :float], :int],
    [:ImGui_TextEx, :ImGui_TextEx, [:pointer], :void],
    [:ImGui_TextExEx, :ImGui_TextExEx, [:pointer, :pointer, :int], :void],
    [:ImGui_TextAligned, :ImGui_TextAligned, [:float, :float, :pointer, :varargs], :void],
    [:ImGui_ButtonWithFlags, :ImGui_ButtonWithFlags, [:pointer], :bool],
    [:ImGui_ButtonWithFlagsEx, :ImGui_ButtonWithFlagsEx, [:pointer, ImVec2.by_value, :int], :bool],
    [:ImGui_ArrowButtonEx, :ImGui_ArrowButtonEx, [:pointer, :int, ImVec2.by_value, :int], :bool],
    [:ImGui_ImageButtonWithFlags, :ImGui_ImageButtonWithFlags, [:uint, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec4.by_value, ImVec4.by_value, :int], :bool],
    [:ImGui_SeparatorEx, :ImGui_SeparatorEx, [:int], :void],
    [:ImGui_SeparatorExEx, :ImGui_SeparatorExEx, [:int, :float], :void],
    [:ImGui_SeparatorTextEx, :ImGui_SeparatorTextEx, [:uint, :pointer, :pointer, :float], :void],
    [:ImGui_CheckboxFlagsImS64Ptr, :ImGui_CheckboxFlagsImS64Ptr, [:pointer, :pointer, :int64], :bool],
    [:ImGui_CheckboxFlagsImU64Ptr, :ImGui_CheckboxFlagsImU64Ptr, [:pointer, :pointer, :uint64], :bool],
    [:ImGui_CloseButton, :ImGui_CloseButton, [:uint, ImVec2.by_value], :bool],
    [:ImGui_CollapseButton, :ImGui_CollapseButton, [:uint, ImVec2.by_value, :pointer], :bool],
    [:ImGui_Scrollbar, :ImGui_Scrollbar, [:int], :void],
    [:ImGui_ScrollbarEx, :ImGui_ScrollbarEx, [ImRect.by_value, :uint, :int, :pointer, :int64, :int64], :bool],
    [:ImGui_ScrollbarExEx, :ImGui_ScrollbarExEx, [ImRect.by_value, :uint, :int, :pointer, :int64, :int64, :int], :bool],
    [:ImGui_GetWindowScrollbarRect, :ImGui_GetWindowScrollbarRect, [:pointer, :int], ImRect.by_value],
    [:ImGui_GetWindowScrollbarID, :ImGui_GetWindowScrollbarID, [:pointer, :int], :uint],
    [:ImGui_GetWindowResizeCornerID, :ImGui_GetWindowResizeCornerID, [:pointer, :int], :uint],
    [:ImGui_GetWindowResizeBorderID, :ImGui_GetWindowResizeBorderID, [:pointer, :int], :uint],
    [:ImGui_ExtendHitBoxWhenNearViewportEdge, :ImGui_ExtendHitBoxWhenNearViewportEdge, [:pointer, :pointer, :float, :int], :void],
    [:ImGui_ButtonBehavior, :ImGui_ButtonBehavior, [ImRect.by_value, :uint, :pointer, :pointer, :int], :bool],
    [:ImGui_DragBehavior, :ImGui_DragBehavior, [:uint, :int, :pointer, :float, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_SliderBehavior, :ImGui_SliderBehavior, [ImRect.by_value, :uint, :int, :pointer, :pointer, :pointer, :pointer, :int, :pointer], :bool],
    [:ImGui_SplitterBehavior, :ImGui_SplitterBehavior, [ImRect.by_value, :uint, :int, :pointer, :pointer, :float, :float], :bool],
    [:ImGui_SplitterBehaviorEx, :ImGui_SplitterBehaviorEx, [ImRect.by_value, :uint, :int, :pointer, :pointer, :float, :float, :float, :float, :uint], :bool],
    [:ImGui_TreeNodeBehavior, :ImGui_TreeNodeBehavior, [:uint, :int, :pointer], :bool],
    [:ImGui_TreeNodeBehaviorEx, :ImGui_TreeNodeBehaviorEx, [:uint, :int, :pointer, :pointer], :bool],
    [:ImGui_TreeNodeDrawLineToChildNode, :ImGui_TreeNodeDrawLineToChildNode, [ImVec2.by_value], :void],
    [:ImGui_TreeNodeDrawLineToTreePop, :ImGui_TreeNodeDrawLineToTreePop, [:pointer], :void],
    [:ImGui_TreePushOverrideID, :ImGui_TreePushOverrideID, [:uint], :void],
    [:ImGui_TreeNodeSetOpen, :ImGui_TreeNodeSetOpen, [:uint, :bool], :void],
    [:ImGui_TreeNodeUpdateNextOpen, :ImGui_TreeNodeUpdateNextOpen, [:uint, :int], :bool],
    [:ImGui_DataTypeGetInfo, :ImGui_DataTypeGetInfo, [:int], :pointer],
    [:ImGui_DataTypeFormatString, :ImGui_DataTypeFormatString, [:pointer, :int, :int, :pointer, :pointer], :int],
    [:ImGui_DataTypeApplyOp, :ImGui_DataTypeApplyOp, [:int, :int, :pointer, :pointer, :pointer], :void],
    [:ImGui_DataTypeApplyFromText, :ImGui_DataTypeApplyFromText, [:pointer, :int, :pointer, :pointer], :bool],
    [:ImGui_DataTypeApplyFromTextEx, :ImGui_DataTypeApplyFromTextEx, [:pointer, :int, :pointer, :pointer, :pointer], :bool],
    [:ImGui_DataTypeCompare, :ImGui_DataTypeCompare, [:int, :pointer, :pointer], :int],
    [:ImGui_DataTypeClamp, :ImGui_DataTypeClamp, [:int, :pointer, :pointer, :pointer], :bool],
    [:ImGui_DataTypeIsZero, :ImGui_DataTypeIsZero, [:int, :pointer], :bool],
    [:ImGui_InputTextWithHintAndSize, :ImGui_InputTextWithHintAndSize, [:pointer, :pointer, :pointer, :int, ImVec2.by_value, :int], :bool],
    [:ImGui_InputTextWithHintAndSizeEx, :ImGui_InputTextWithHintAndSizeEx, [:pointer, :pointer, :pointer, :int, ImVec2.by_value, :int, :ImGuiInputTextCallback, :pointer], :bool],
    [:ImGui_InputTextDeactivateHook, :ImGui_InputTextDeactivateHook, [:uint], :void],
    [:ImGui_TempInputText, :ImGui_TempInputText, [ImRect.by_value, :uint, :pointer, :pointer, :size_t, :int], :bool],
    [:ImGui_TempInputTextEx, :ImGui_TempInputTextEx, [ImRect.by_value, :uint, :pointer, :pointer, :size_t, :int, :ImGuiInputTextCallback, :pointer], :bool],
    [:ImGui_TempInputScalar, :ImGui_TempInputScalar, [ImRect.by_value, :uint, :pointer, :int, :pointer, :pointer], :bool],
    [:ImGui_TempInputScalarEx, :ImGui_TempInputScalarEx, [ImRect.by_value, :uint, :pointer, :int, :pointer, :pointer, :pointer, :pointer], :bool],
    [:ImGui_TempInputIsActive, :ImGui_TempInputIsActive, [:uint], :bool],
    [:ImGui_GetInputTextState, :ImGui_GetInputTextState, [:uint], :pointer],
    [:ImGui_SetNextItemRefVal, :ImGui_SetNextItemRefVal, [:int, :pointer], :void],
    [:ImGui_IsItemActiveAsInputText, :ImGui_IsItemActiveAsInputText, [], :bool],
    [:ImGui_ColorTooltip, :ImGui_ColorTooltip, [:pointer, :pointer, :int], :void],
    [:ImGui_ColorEditOptionsPopup, :ImGui_ColorEditOptionsPopup, [:pointer, :int], :void],
    [:ImGui_ColorPickerOptionsPopup, :ImGui_ColorPickerOptionsPopup, [:pointer, :int], :void],
    [:ImGui_SetNextItemColorMarker, :ImGui_SetNextItemColorMarker, [:uint], :void],
    [:ImGui_PlotEx, :ImGui_PlotEx, [:int, :pointer, :pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value], :int],
    [:ImGui_ShadeVertsLinearColorGradientKeepAlpha, :ImGui_ShadeVertsLinearColorGradientKeepAlpha, [:pointer, :int, :int, ImVec2.by_value, ImVec2.by_value, :uint, :uint], :void],
    [:ImGui_ShadeVertsLinearUV, :ImGui_ShadeVertsLinearUV, [:pointer, :int, :int, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :bool], :void],
    [:ImGui_ShadeVertsTransformPos, :ImGui_ShadeVertsTransformPos, [:pointer, :int, :int, ImVec2.by_value, :float, :float, ImVec2.by_value], :void],
    [:ImGui_GcCompactTransientMiscBuffers, :ImGui_GcCompactTransientMiscBuffers, [], :void],
    [:ImGui_GcCompactTransientWindowBuffers, :ImGui_GcCompactTransientWindowBuffers, [:pointer], :void],
    [:ImGui_GcAwakeTransientWindowBuffers, :ImGui_GcAwakeTransientWindowBuffers, [:pointer], :void],
    [:ImGui_ErrorLog, :ImGui_ErrorLog, [:pointer], :bool],
    [:ImGui_ErrorRecoveryStoreState, :ImGui_ErrorRecoveryStoreState, [:pointer], :void],
    [:ImGui_ErrorRecoveryTryToRecoverState, :ImGui_ErrorRecoveryTryToRecoverState, [:pointer], :void],
    [:ImGui_ErrorRecoveryTryToRecoverWindowState, :ImGui_ErrorRecoveryTryToRecoverWindowState, [:pointer], :void],
    [:ImGui_ErrorCheckUsingSetCursorPosToExtendParentBoundaries, :ImGui_ErrorCheckUsingSetCursorPosToExtendParentBoundaries, [], :void],
    [:ImGui_ErrorCheckEndFrameFinalizeErrorTooltip, :ImGui_ErrorCheckEndFrameFinalizeErrorTooltip, [], :void],
    [:ImGui_BeginErrorTooltip, :ImGui_BeginErrorTooltip, [], :bool],
    [:ImGui_EndErrorTooltip, :ImGui_EndErrorTooltip, [], :void],
    [:ImGui_DemoMarker, :ImGui_DemoMarker, [:pointer, :int, :pointer], :void],
    [:ImGui_DebugAllocHook, :ImGui_DebugAllocHook, [:pointer, :int, :pointer, :size_t], :void],
    [:ImGui_DebugDrawCursorPos, :ImGui_DebugDrawCursorPos, [], :void],
    [:ImGui_DebugDrawCursorPosEx, :ImGui_DebugDrawCursorPosEx, [:uint], :void],
    [:ImGui_DebugDrawLineExtents, :ImGui_DebugDrawLineExtents, [], :void],
    [:ImGui_DebugDrawLineExtentsEx, :ImGui_DebugDrawLineExtentsEx, [:uint], :void],
    [:ImGui_DebugDrawItemRect, :ImGui_DebugDrawItemRect, [], :void],
    [:ImGui_DebugDrawItemRectEx, :ImGui_DebugDrawItemRectEx, [:uint], :void],
    [:ImGui_DebugTextUnformattedWithLocateItem, :ImGui_DebugTextUnformattedWithLocateItem, [:pointer, :pointer], :void],
    [:ImGui_DebugLocateItem, :ImGui_DebugLocateItem, [:uint], :void],
    [:ImGui_DebugLocateItemOnHover, :ImGui_DebugLocateItemOnHover, [:uint], :void],
    [:ImGui_DebugLocateItemResolveWithLastItem, :ImGui_DebugLocateItemResolveWithLastItem, [], :void],
    [:ImGui_DebugBreakClearData, :ImGui_DebugBreakClearData, [], :void],
    [:ImGui_DebugBreakButton, :ImGui_DebugBreakButton, [:pointer, :pointer], :bool],
    [:ImGui_DebugBreakButtonTooltip, :ImGui_DebugBreakButtonTooltip, [:bool, :pointer], :void],
    [:ImGui_ShowFontAtlas, :ImGui_ShowFontAtlas, [:pointer], :void],
    [:ImGui_DebugTextureIDToU64, :ImGui_DebugTextureIDToU64, [:uint64], :uint64],
    [:ImGui_DebugHookIdInfo, :ImGui_DebugHookIdInfo, [:uint, :int, :pointer, :pointer], :void],
    [:ImGui_DebugNodeColumns, :ImGui_DebugNodeColumns, [:pointer], :void],
    [:ImGui_DebugNodeDockNode, :ImGui_DebugNodeDockNode, [:pointer, :pointer], :void],
    [:ImGui_DebugNodeDrawList, :ImGui_DebugNodeDrawList, [:pointer, :pointer, :pointer, :pointer], :void],
    [:ImGui_DebugNodeDrawCmdShowMeshAndBoundingBox, :ImGui_DebugNodeDrawCmdShowMeshAndBoundingBox, [:pointer, :pointer, :pointer, :bool, :bool], :void],
    [:ImGui_DebugNodeFont, :ImGui_DebugNodeFont, [:pointer], :void],
    [:ImGui_DebugNodeFontGlyphsForSrcMask, :ImGui_DebugNodeFontGlyphsForSrcMask, [:pointer, :pointer, :int], :void],
    [:ImGui_DebugNodeFontGlyph, :ImGui_DebugNodeFontGlyph, [:pointer, :pointer], :void],
    [:ImGui_DebugNodeTexture, :ImGui_DebugNodeTexture, [:pointer, :int], :void],
    [:ImGui_DebugNodeTextureEx, :ImGui_DebugNodeTextureEx, [:pointer, :int, :pointer], :void],
    [:ImGui_DebugNodeStorage, :ImGui_DebugNodeStorage, [:pointer, :pointer], :void],
    [:ImGui_DebugNodeTabBar, :ImGui_DebugNodeTabBar, [:pointer, :pointer], :void],
    [:ImGui_DebugNodeTable, :ImGui_DebugNodeTable, [:pointer], :void],
    [:ImGui_DebugNodeTableSettings, :ImGui_DebugNodeTableSettings, [:pointer], :void],
    [:ImGui_DebugNodeInputTextState, :ImGui_DebugNodeInputTextState, [:pointer], :void],
    [:ImGui_DebugNodeTypingSelectState, :ImGui_DebugNodeTypingSelectState, [:pointer], :void],
    [:ImGui_DebugNodeMultiSelectState, :ImGui_DebugNodeMultiSelectState, [:pointer], :void],
    [:ImGui_DebugNodeWindow, :ImGui_DebugNodeWindow, [:pointer, :pointer], :void],
    [:ImGui_DebugNodeWindowSettings, :ImGui_DebugNodeWindowSettings, [:pointer], :void],
    [:ImGui_DebugNodeWindowsList, :ImGui_DebugNodeWindowsList, [:pointer, :pointer], :void],
    [:ImGui_DebugNodeWindowsListByBeginStackParent, :ImGui_DebugNodeWindowsListByBeginStackParent, [:pointer, :int, :pointer], :void],
    [:ImGui_DebugNodeViewport, :ImGui_DebugNodeViewport, [:pointer], :void],
    [:ImGui_DebugNodePlatformMonitor, :ImGui_DebugNodePlatformMonitor, [:pointer, :pointer, :int], :void],
    [:ImGui_DebugRenderKeyboardPreview, :ImGui_DebugRenderKeyboardPreview, [:pointer], :void],
    [:ImGui_DebugRenderViewportThumbnail, :ImGui_DebugRenderViewportThumbnail, [:pointer, :pointer, ImRect.by_value], :void],
    [:cImFontAtlasRectId_GetIndex, :cImFontAtlasRectId_GetIndex, [:int], :int],
    [:cImFontAtlasRectId_GetGeneration, :cImFontAtlasRectId_GetGeneration, [:int], :uint],
    [:cImFontAtlasRectId_Make, :cImFontAtlasRectId_Make, [:int, :int], :int],
    [:cImFontAtlasBuildInit, :cImFontAtlasBuildInit, [:pointer], :void],
    [:cImFontAtlasBuildDestroy, :cImFontAtlasBuildDestroy, [:pointer], :void],
    [:cImFontAtlasBuildMain, :cImFontAtlasBuildMain, [:pointer], :void],
    [:cImFontAtlasBuildSetupFontLoader, :cImFontAtlasBuildSetupFontLoader, [:pointer, :pointer], :void],
    [:cImFontAtlasBuildNotifySetFont, :cImFontAtlasBuildNotifySetFont, [:pointer, :pointer, :pointer], :void],
    [:cImFontAtlasBuildUpdatePointers, :cImFontAtlasBuildUpdatePointers, [:pointer], :void],
    [:cImFontAtlasBuildRenderBitmapFromString, :cImFontAtlasBuildRenderBitmapFromString, [:pointer, :int, :int, :int, :int, :pointer, :char], :void],
    [:cImFontAtlasBuildClear, :cImFontAtlasBuildClear, [:pointer], :void],
    [:cImFontAtlasTextureAdd, :cImFontAtlasTextureAdd, [:pointer, :int, :int], :pointer],
    [:cImFontAtlasTextureMakeSpace, :cImFontAtlasTextureMakeSpace, [:pointer], :void],
    [:cImFontAtlasTextureRepack, :cImFontAtlasTextureRepack, [:pointer, :int, :int], :void],
    [:cImFontAtlasTextureGrow, :cImFontAtlasTextureGrow, [:pointer], :void],
    [:cImFontAtlasTextureGrowEx, :cImFontAtlasTextureGrowEx, [:pointer, :int, :int], :void],
    [:cImFontAtlasTextureCompact, :cImFontAtlasTextureCompact, [:pointer], :void],
    [:cImFontAtlasTextureGetSizeEstimate, :cImFontAtlasTextureGetSizeEstimate, [:pointer], ImVec2i.by_value],
    [:cImFontAtlasBuildSetupFontSpecialGlyphs, :cImFontAtlasBuildSetupFontSpecialGlyphs, [:pointer, :pointer, :pointer], :void],
    [:cImFontAtlasBuildLegacyPreloadAllGlyphRanges, :cImFontAtlasBuildLegacyPreloadAllGlyphRanges, [:pointer], :void],
    [:cImFontAtlasBuildGetOversampleFactors, :cImFontAtlasBuildGetOversampleFactors, [:pointer, :pointer, :pointer, :pointer], :void],
    [:cImFontAtlasBuildDiscardBakes, :cImFontAtlasBuildDiscardBakes, [:pointer, :int], :void],
    [:cImFontAtlasFontSourceInit, :cImFontAtlasFontSourceInit, [:pointer, :pointer], :bool],
    [:cImFontAtlasFontSourceAddToFont, :cImFontAtlasFontSourceAddToFont, [:pointer, :pointer, :pointer], :void],
    [:cImFontAtlasFontDestroySourceData, :cImFontAtlasFontDestroySourceData, [:pointer, :pointer], :void],
    [:cImFontAtlasFontInitOutput, :cImFontAtlasFontInitOutput, [:pointer, :pointer], :bool],
    [:cImFontAtlasFontDestroyOutput, :cImFontAtlasFontDestroyOutput, [:pointer, :pointer], :void],
    [:cImFontAtlasFontRebuildOutput, :cImFontAtlasFontRebuildOutput, [:pointer, :pointer], :void],
    [:cImFontAtlasFontDiscardBakes, :cImFontAtlasFontDiscardBakes, [:pointer, :pointer, :int], :void],
    [:cImFontAtlasBakedGetId, :cImFontAtlasBakedGetId, [:uint, :float, :float], :uint],
    [:cImFontAtlasBakedGetOrAdd, :cImFontAtlasBakedGetOrAdd, [:pointer, :pointer, :float, :float], :pointer],
    [:cImFontAtlasBakedGetClosestMatch, :cImFontAtlasBakedGetClosestMatch, [:pointer, :pointer, :float, :float], :pointer],
    [:cImFontAtlasBakedAdd, :cImFontAtlasBakedAdd, [:pointer, :pointer, :float, :float, :uint], :pointer],
    [:cImFontAtlasBakedDiscard, :cImFontAtlasBakedDiscard, [:pointer, :pointer, :pointer], :void],
    [:cImFontAtlasBakedAddFontGlyph, :cImFontAtlasBakedAddFontGlyph, [:pointer, :pointer, :pointer, :pointer], :pointer],
    [:cImFontAtlasBakedAddFontGlyphAdvancedX, :cImFontAtlasBakedAddFontGlyphAdvancedX, [:pointer, :pointer, :pointer, :ushort, :float], :void],
    [:cImFontAtlasBakedDiscardFontGlyph, :cImFontAtlasBakedDiscardFontGlyph, [:pointer, :pointer, :pointer, :pointer], :void],
    [:cImFontAtlasBakedSetFontGlyphBitmap, :cImFontAtlasBakedSetFontGlyphBitmap, [:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :int, :int], :void],
    [:cImFontAtlasPackInit, :cImFontAtlasPackInit, [:pointer], :void],
    [:cImFontAtlasPackAddRect, :cImFontAtlasPackAddRect, [:pointer, :int, :int], :int],
    [:cImFontAtlasPackAddRectEx, :cImFontAtlasPackAddRectEx, [:pointer, :int, :int, :pointer], :int],
    [:cImFontAtlasPackGetRect, :cImFontAtlasPackGetRect, [:pointer, :int], :pointer],
    [:cImFontAtlasPackGetRectSafe, :cImFontAtlasPackGetRectSafe, [:pointer, :int], :pointer],
    [:cImFontAtlasPackDiscardRect, :cImFontAtlasPackDiscardRect, [:pointer, :int], :void],
    [:cImFontAtlasUpdateNewFrame, :cImFontAtlasUpdateNewFrame, [:pointer, :int, :bool], :void],
    [:cImFontAtlasAddDrawListSharedData, :cImFontAtlasAddDrawListSharedData, [:pointer, :pointer], :void],
    [:cImFontAtlasRemoveDrawListSharedData, :cImFontAtlasRemoveDrawListSharedData, [:pointer, :pointer], :void],
    [:cImFontAtlasUpdateDrawListsTextures, :cImFontAtlasUpdateDrawListsTextures, [:pointer, ImTextureRef.by_value, ImTextureRef.by_value], :void],
    [:cImFontAtlasUpdateDrawListsSharedData, :cImFontAtlasUpdateDrawListsSharedData, [:pointer], :void],
    [:cImFontAtlasTextureBlockConvert, :cImFontAtlasTextureBlockConvert, [:pointer, :int, :int, :pointer, :int, :int, :int, :int], :void],
    [:cImFontAtlasTextureBlockPostProcess, :cImFontAtlasTextureBlockPostProcess, [:pointer], :void],
    [:cImFontAtlasTextureBlockPostProcessMultiply, :cImFontAtlasTextureBlockPostProcessMultiply, [:pointer, :float], :void],
    [:cImFontAtlasTextureBlockFill, :cImFontAtlasTextureBlockFill, [:pointer, :int, :int, :int, :int, :uint], :void],
    [:cImFontAtlasTextureBlockCopy, :cImFontAtlasTextureBlockCopy, [:pointer, :int, :int, :pointer, :int, :int, :int, :int], :void],
    [:cImFontAtlasTextureBlockQueueUpload, :cImFontAtlasTextureBlockQueueUpload, [:pointer, :pointer, :int, :int, :int, :int], :void],
    [:cImTextureDataQueueUpload, :cImTextureDataQueueUpload, [:pointer, :int, :int, :int, :int], :void],
    [:cImTextureDataGetFormatBytesPerPixel, :cImTextureDataGetFormatBytesPerPixel, [:int], :int],
    [:cImTextureDataGetStatusName, :cImTextureDataGetStatusName, [:int], :pointer],
    [:cImTextureDataGetFormatName, :cImTextureDataGetFormatName, [:int], :pointer],
    [:cImFontAtlasDebugLogTextureRequests, :cImFontAtlasDebugLogTextureRequests, [:pointer], :void],
    [:cImFontAtlasGetMouseCursorTexData, :cImFontAtlasGetMouseCursorTexData, [:pointer, :int, :pointer, :pointer, :pointer, :pointer], :bool],
  ]
  entries.each do |entry|
    attach_function entry[0], entry[1], entry[2], entry[3]
  rescue FFI::NotFoundError
    warn "[Warning] Failed to import #{entry[0]}."
  end
  @@imgui_import_done = true

end

.Indent(*arg) ⇒ Object



11500
11501
11502
11503
11504
11505
11506
11507
11508
11509
# File 'lib/imgui.rb', line 11500

def self.Indent(*arg)
  # arg: 
  # ret: void
  return ImGui_Indent() if arg.empty?
  # arg: 0:indent_w(float)
  # ret: void
  return ImGui_IndentEx(0.0) if arg.length == 0 && (true)
  return ImGui_IndentEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::Indent : No matching functions found (#{arg})")
end

.InitializeObject

ret: void



9131
9132
9133
# File 'lib/imgui.rb', line 9131

def self.Initialize()
  ImGui_Initialize()
end

.InputDouble(*arg) ⇒ Object



12138
12139
12140
12141
12142
12143
12144
12145
12146
12147
12148
12149
12150
# File 'lib/imgui.rb', line 12138

def self.InputDouble(*arg)
  # arg: 0:label(const char*), 1:v(double*)
  # ret: bool
  return ImGui_InputDouble(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(double*), 2:step(double), 3:step_fast(double), 4:format(const char*), 5:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputDoubleEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_InputDoubleEx(arg[0], arg[1], arg[2], arg[3], "%.6f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_InputDoubleEx(arg[0], arg[1], arg[2], 0.0, "%.6f", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_InputDoubleEx(arg[0], arg[1], 0.0, 0.0, "%.6f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_InputDoubleEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputDouble : No matching functions found (#{arg})")
end

.InputFloat(*arg) ⇒ Object



12075
12076
12077
12078
12079
12080
12081
12082
12083
12084
12085
12086
12087
# File 'lib/imgui.rb', line 12075

def self.InputFloat(*arg)
  # arg: 0:label(const char*), 1:v(float*)
  # ret: bool
  return ImGui_InputFloat(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float*), 2:step(float), 3:step_fast(float), 4:format(const char*), 5:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_InputFloatEx(arg[0], arg[1], arg[2], arg[3], "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_InputFloatEx(arg[0], arg[1], arg[2], 0.0, "%.3f", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_InputFloatEx(arg[0], arg[1], 0.0, 0.0, "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_InputFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputFloat : No matching functions found (#{arg})")
end

.InputFloat2(*arg) ⇒ Object



12089
12090
12091
12092
12093
12094
12095
12096
12097
12098
12099
# File 'lib/imgui.rb', line 12089

def self.InputFloat2(*arg)
  # arg: 0:label(const char*), 1:v(float[2])
  # ret: bool
  return ImGui_InputFloat2(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float[2]), 2:format(const char*), 3:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputFloat2Ex(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String))
  return ImGui_InputFloat2Ex(arg[0], arg[1], "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_InputFloat2Ex(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputFloat2 : No matching functions found (#{arg})")
end

.InputFloat3(*arg) ⇒ Object



12101
12102
12103
12104
12105
12106
12107
12108
12109
12110
12111
# File 'lib/imgui.rb', line 12101

def self.InputFloat3(*arg)
  # arg: 0:label(const char*), 1:v(float[3])
  # ret: bool
  return ImGui_InputFloat3(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float[3]), 2:format(const char*), 3:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputFloat3Ex(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String))
  return ImGui_InputFloat3Ex(arg[0], arg[1], "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_InputFloat3Ex(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputFloat3 : No matching functions found (#{arg})")
end

.InputFloat4(*arg) ⇒ Object



12113
12114
12115
12116
12117
12118
12119
12120
12121
12122
12123
# File 'lib/imgui.rb', line 12113

def self.InputFloat4(*arg)
  # arg: 0:label(const char*), 1:v(float[4])
  # ret: bool
  return ImGui_InputFloat4(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float[4]), 2:format(const char*), 3:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputFloat4Ex(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String))
  return ImGui_InputFloat4Ex(arg[0], arg[1], "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_InputFloat4Ex(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputFloat4 : No matching functions found (#{arg})")
end

.InputInt(*arg) ⇒ Object



12125
12126
12127
12128
12129
12130
12131
12132
12133
12134
12135
12136
# File 'lib/imgui.rb', line 12125

def self.InputInt(*arg)
  # arg: 0:label(const char*), 1:v(int*)
  # ret: bool
  return ImGui_InputInt(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(int*), 2:step(int), 3:step_fast(int), 4:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputIntEx(arg[0], arg[1], arg[2], arg[3], 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_InputIntEx(arg[0], arg[1], arg[2], 100, 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_InputIntEx(arg[0], arg[1], 1, 100, 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_InputIntEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputInt : No matching functions found (#{arg})")
end

.InputInt2(label, v, flags = 0) ⇒ Object

arg: label(const char*), v(int), flags(ImGuiInputTextFlags) ret: bool



8032
8033
8034
# File 'lib/imgui.rb', line 8032

def self.InputInt2(label, v, flags = 0)
  ImGui_InputInt2(label, v, flags)
end

.InputInt3(label, v, flags = 0) ⇒ Object

arg: label(const char*), v(int), flags(ImGuiInputTextFlags) ret: bool



8038
8039
8040
# File 'lib/imgui.rb', line 8038

def self.InputInt3(label, v, flags = 0)
  ImGui_InputInt3(label, v, flags)
end

.InputInt4(label, v, flags = 0) ⇒ Object

arg: label(const char*), v(int), flags(ImGuiInputTextFlags) ret: bool



8044
8045
8046
# File 'lib/imgui.rb', line 8044

def self.InputInt4(label, v, flags = 0)
  ImGui_InputInt4(label, v, flags)
end

.InputScalar(*arg) ⇒ Object



12152
12153
12154
12155
12156
12157
12158
12159
12160
12161
12162
12163
12164
# File 'lib/imgui.rb', line 12152

def self.InputScalar(*arg)
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*)
  # ret: bool
  return ImGui_InputScalar(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:p_step(const void*), 4:p_step_fast(const void*), 5:format(const char*), 6:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String))
  return ImGui_InputScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer))
  return ImGui_InputScalarEx(arg[0], arg[1], arg[2], arg[3], nil, nil, 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer))
  return ImGui_InputScalarEx(arg[0], arg[1], arg[2], nil, nil, nil, 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer))
  return ImGui_InputScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputScalar : No matching functions found (#{arg})")
end

.InputScalarN(*arg) ⇒ Object



12166
12167
12168
12169
12170
12171
12172
12173
12174
12175
12176
12177
12178
# File 'lib/imgui.rb', line 12166

def self.InputScalarN(*arg)
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:components(int)
  # ret: bool
  return ImGui_InputScalarN(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:components(int), 4:p_step(const void*), 5:p_step_fast(const void*), 6:format(const char*), 7:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String))
  return ImGui_InputScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer))
  return ImGui_InputScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer))
  return ImGui_InputScalarNEx(arg[0], arg[1], arg[2], arg[3], nil, nil, nil, 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_InputScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String) && arg[7].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputScalarN : No matching functions found (#{arg})")
end

.InputText(*arg) ⇒ Object



12033
12034
12035
12036
12037
12038
12039
12040
12041
12042
12043
12044
12045
# File 'lib/imgui.rb', line 12033

def self.InputText(*arg)
  # arg: 0:label(const char*), 1:buf(char*), 2:buf_size(size_t), 3:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputText(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_InputText(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:buf(char*), 2:buf_size(size_t), 3:flags(ImGuiInputTextFlags), 4:callback(ImGuiInputTextCallback), 5:user_data(void*)
  # ret: bool
  return ImGui_InputTextEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && (arg[4].respond_to?(:call) || arg[4].kind_of?(FFI::Pointer)))
  return ImGui_InputTextEx(arg[0], arg[1], arg[2], arg[3], nil, nil) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_InputTextEx(arg[0], arg[1], arg[2], 0, nil, nil) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_InputTextEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && (arg[4].respond_to?(:call) || arg[4].kind_of?(FFI::Pointer)) && arg[5].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::InputText : No matching functions found (#{arg})")
end

.InputTextDeactivateHook(id) ⇒ Object

arg: id(ImGuiID) ret: void



10915
10916
10917
# File 'lib/imgui.rb', line 10915

def self.InputTextDeactivateHook(id)
  ImGui_InputTextDeactivateHook(id)
end

.InputTextEx(*arg) ⇒ Object



13194
13195
13196
13197
13198
13199
13200
13201
13202
13203
13204
# File 'lib/imgui.rb', line 13194

def self.InputTextEx(*arg)
  # arg: 0:label(const char*), 1:hint(const char*), 2:buf(char*), 3:buf_size(int), 4:size_arg(ImVec2), 5:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputTextWithHintAndSize(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(Integer))
  # arg: 0:label(const char*), 1:hint(const char*), 2:buf(char*), 3:buf_size(int), 4:size_arg(ImVec2), 5:flags(ImGuiInputTextFlags), 6:callback(ImGuiInputTextCallback), 7:user_data(void*)
  # ret: bool
  return ImGui_InputTextWithHintAndSizeEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(Integer) && (arg[6].respond_to?(:call) || arg[6].kind_of?(FFI::Pointer)))
  return ImGui_InputTextWithHintAndSizeEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, nil) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(Integer))
  return ImGui_InputTextWithHintAndSizeEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(Integer) && (arg[6].respond_to?(:call) || arg[6].kind_of?(FFI::Pointer)) && arg[7].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::InputTextEx : No matching functions found (#{arg})")
end

.InputTextMultiline(*arg) ⇒ Object



12047
12048
12049
12050
12051
12052
12053
12054
12055
12056
12057
12058
12059
# File 'lib/imgui.rb', line 12047

def self.InputTextMultiline(*arg)
  # arg: 0:label(const char*), 1:buf(char*), 2:buf_size(size_t)
  # ret: bool
  return ImGui_InputTextMultiline(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:buf(char*), 2:buf_size(size_t), 3:size(ImVec2), 4:flags(ImGuiInputTextFlags), 5:callback(ImGuiInputTextCallback), 6:user_data(void*)
  # ret: bool
  return ImGui_InputTextMultilineEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(Integer) && (arg[5].respond_to?(:call) || arg[5].kind_of?(FFI::Pointer)))
  return ImGui_InputTextMultilineEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, nil) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(Integer))
  return ImGui_InputTextMultilineEx(arg[0], arg[1], arg[2], arg[3], 0, nil, nil) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2))
  return ImGui_InputTextMultilineEx(arg[0], arg[1], arg[2], ImVec2.create(0,0), 0, nil, nil) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_InputTextMultilineEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(Integer) && (arg[5].respond_to?(:call) || arg[5].kind_of?(FFI::Pointer)) && arg[6].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::InputTextMultiline : No matching functions found (#{arg})")
end

.InputTextWithHint(*arg) ⇒ Object



12061
12062
12063
12064
12065
12066
12067
12068
12069
12070
12071
12072
12073
# File 'lib/imgui.rb', line 12061

def self.InputTextWithHint(*arg)
  # arg: 0:label(const char*), 1:hint(const char*), 2:buf(char*), 3:buf_size(size_t), 4:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputTextWithHint(arg[0], arg[1], arg[2], arg[3], 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_InputTextWithHint(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  # arg: 0:label(const char*), 1:hint(const char*), 2:buf(char*), 3:buf_size(size_t), 4:flags(ImGuiInputTextFlags), 5:callback(ImGuiInputTextCallback), 6:user_data(void*)
  # ret: bool
  return ImGui_InputTextWithHintEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && (arg[5].respond_to?(:call) || arg[5].kind_of?(FFI::Pointer)))
  return ImGui_InputTextWithHintEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, nil) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_InputTextWithHintEx(arg[0], arg[1], arg[2], arg[3], 0, nil, nil) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_InputTextWithHintEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && (arg[5].respond_to?(:call) || arg[5].kind_of?(FFI::Pointer)) && arg[6].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::InputTextWithHint : No matching functions found (#{arg})")
end

.InvisibleButton(str_id, size, flags = 0) ⇒ Object

arg: str_id(const char*), size(ImVec2), flags(ImGuiButtonFlags) ret: bool



7986
7987
7988
# File 'lib/imgui.rb', line 7986

def self.InvisibleButton(str_id, size, flags = 0)
  ImGui_InvisibleButton(str_id, size, flags)
end

.IsActiveIdUsingNavDir(dir) ⇒ Object

arg: dir(ImGuiDir) ret: bool



9819
9820
9821
# File 'lib/imgui.rb', line 9819

def self.IsActiveIdUsingNavDir(dir)
  ImGui_IsActiveIdUsingNavDir(dir)
end

.IsAliasKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



9748
9749
9750
# File 'lib/imgui.rb', line 9748

def self.IsAliasKey(key)
  ImGui_IsAliasKey(key)
end

.IsAnyItemActiveObject

ret: bool



8551
8552
8553
# File 'lib/imgui.rb', line 8551

def self.IsAnyItemActive()
  ImGui_IsAnyItemActive()
end

.IsAnyItemFocusedObject

ret: bool



8556
8557
8558
# File 'lib/imgui.rb', line 8556

def self.IsAnyItemFocused()
  ImGui_IsAnyItemFocused()
end

.IsAnyItemHoveredObject

ret: bool



8546
8547
8548
# File 'lib/imgui.rb', line 8546

def self.IsAnyItemHovered()
  ImGui_IsAnyItemHovered()
end

.IsAnyMouseDownObject

ret: bool



8689
8690
8691
# File 'lib/imgui.rb', line 8689

def self.IsAnyMouseDown()
  ImGui_IsAnyMouseDown()
end

.IsClippedEx(bb, id) ⇒ Object

arg: bb(ImRect), id(ImGuiID) ret: bool



9409
9410
9411
# File 'lib/imgui.rb', line 9409

def self.IsClippedEx(bb, id)
  ImGui_IsClippedEx(bb, id)
end

.IsDragDropActiveObject

ret: bool



10126
10127
10128
# File 'lib/imgui.rb', line 10126

def self.IsDragDropActive()
  ImGui_IsDragDropActive()
end

.IsDragDropPayloadBeingAcceptedObject

ret: bool



10142
10143
10144
# File 'lib/imgui.rb', line 10142

def self.IsDragDropPayloadBeingAccepted()
  ImGui_IsDragDropPayloadBeingAccepted()
end

.IsGamepadKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



9736
9737
9738
# File 'lib/imgui.rb', line 9736

def self.IsGamepadKey(key)
  ImGui_IsGamepadKey(key)
end

.IsInNavFocusRoute(focus_scope_id) ⇒ Object

arg: focus_scope_id(ImGuiID) ret: bool



10116
10117
10118
# File 'lib/imgui.rb', line 10116

def self.IsInNavFocusRoute(focus_scope_id)
  ImGui_IsInNavFocusRoute(focus_scope_id)
end

.IsItemActivatedObject

ret: bool



8526
8527
8528
# File 'lib/imgui.rb', line 8526

def self.IsItemActivated()
  ImGui_IsItemActivated()
end

.IsItemActiveObject

ret: bool



8506
8507
8508
# File 'lib/imgui.rb', line 8506

def self.IsItemActive()
  ImGui_IsItemActive()
end

.IsItemActiveAsInputTextObject

ret: bool



10938
10939
10940
# File 'lib/imgui.rb', line 10938

def self.IsItemActiveAsInputText()
  ImGui_IsItemActiveAsInputText()
end

.IsItemClicked(*arg) ⇒ Object



12534
12535
12536
12537
12538
12539
12540
12541
12542
12543
# File 'lib/imgui.rb', line 12534

def self.IsItemClicked(*arg)
  # arg: 
  # ret: bool
  return ImGui_IsItemClicked() if arg.empty?
  # arg: 0:mouse_button(ImGuiMouseButton)
  # ret: bool
  return ImGui_IsItemClickedEx(0) if arg.length == 0 && (true)
  return ImGui_IsItemClickedEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsItemClicked : No matching functions found (#{arg})")
end

.IsItemDeactivatedObject

ret: bool



8531
8532
8533
# File 'lib/imgui.rb', line 8531

def self.IsItemDeactivated()
  ImGui_IsItemDeactivated()
end

.IsItemDeactivatedAfterEditObject

ret: bool



8536
8537
8538
# File 'lib/imgui.rb', line 8536

def self.IsItemDeactivatedAfterEdit()
  ImGui_IsItemDeactivatedAfterEdit()
end

.IsItemEditedObject

ret: bool



8521
8522
8523
# File 'lib/imgui.rb', line 8521

def self.IsItemEdited()
  ImGui_IsItemEdited()
end

.IsItemFocusedObject

ret: bool



8511
8512
8513
# File 'lib/imgui.rb', line 8511

def self.IsItemFocused()
  ImGui_IsItemFocused()
end

.IsItemHovered(flags = 0) ⇒ Object

arg: flags(ImGuiHoveredFlags) ret: bool



8501
8502
8503
# File 'lib/imgui.rb', line 8501

def self.IsItemHovered(flags = 0)
  ImGui_IsItemHovered(flags)
end

.IsItemToggledOpenObject

ret: bool



8541
8542
8543
# File 'lib/imgui.rb', line 8541

def self.IsItemToggledOpen()
  ImGui_IsItemToggledOpen()
end

.IsItemToggledSelectionObject

ret: bool



8118
8119
8120
# File 'lib/imgui.rb', line 8118

def self.IsItemToggledSelection()
  ImGui_IsItemToggledSelection()
end

.IsItemVisibleObject

ret: bool



8516
8517
8518
# File 'lib/imgui.rb', line 8516

def self.IsItemVisible()
  ImGui_IsItemVisible()
end

.IsKeyboardKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



9730
9731
9732
# File 'lib/imgui.rb', line 9730

def self.IsKeyboardKey(key)
  ImGui_IsKeyboardKey(key)
end

.IsKeyChordPressed(*arg) ⇒ Object



12631
12632
12633
12634
12635
12636
12637
12638
12639
12640
12641
12642
12643
# File 'lib/imgui.rb', line 12631

def self.IsKeyChordPressed(*arg)
  # arg: 0:key_chord(ImGuiKeyChord)
  # ret: bool
  return ImGui_IsKeyChordPressed(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:key_chord(ImGuiKeyChord), 1:flags(ImGuiInputFlags)
  # ret: bool
  return ImGui_IsKeyChordPressedImGuiInputFlags(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  # arg: 0:key_chord(ImGuiKeyChord), 1:flags(ImGuiInputFlags), 2:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsKeyChordPressedImGuiInputFlagsEx(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  return ImGui_IsKeyChordPressedImGuiInputFlagsEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsKeyChordPressed : No matching functions found (#{arg})")
end

.IsKeyDown(*arg) ⇒ Object



12593
12594
12595
12596
12597
12598
12599
12600
12601
# File 'lib/imgui.rb', line 12593

def self.IsKeyDown(*arg)
  # arg: 0:key(ImGuiKey)
  # ret: bool
  return ImGui_IsKeyDown(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:key(ImGuiKey), 1:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsKeyDownID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsKeyDown : No matching functions found (#{arg})")
end

.IsKeyPressed(*arg) ⇒ Object



12603
12604
12605
12606
12607
12608
12609
12610
12611
12612
12613
12614
12615
12616
12617
12618
12619
# File 'lib/imgui.rb', line 12603

def self.IsKeyPressed(*arg)
  # arg: 0:key(ImGuiKey)
  # ret: bool
  return ImGui_IsKeyPressed(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:key(ImGuiKey), 1:repeat(bool)
  # ret: bool
  return ImGui_IsKeyPressedEx(arg[0], true) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_IsKeyPressedEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  # arg: 0:key(ImGuiKey), 1:flags(ImGuiInputFlags)
  # ret: bool
  return ImGui_IsKeyPressedImGuiInputFlags(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  # arg: 0:key(ImGuiKey), 1:flags(ImGuiInputFlags), 2:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsKeyPressedImGuiInputFlagsEx(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  return ImGui_IsKeyPressedImGuiInputFlagsEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsKeyPressed : No matching functions found (#{arg})")
end

.IsKeyReleased(*arg) ⇒ Object



12621
12622
12623
12624
12625
12626
12627
12628
12629
# File 'lib/imgui.rb', line 12621

def self.IsKeyReleased(*arg)
  # arg: 0:key(ImGuiKey)
  # ret: bool
  return ImGui_IsKeyReleased(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:key(ImGuiKey), 1:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsKeyReleasedID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsKeyReleased : No matching functions found (#{arg})")
end

.IsLegacyKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



9724
9725
9726
# File 'lib/imgui.rb', line 9724

def self.IsLegacyKey(key)
  ImGui_IsLegacyKey(key)
end

.IsLRModKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



9754
9755
9756
# File 'lib/imgui.rb', line 9754

def self.IsLRModKey(key)
  ImGui_IsLRModKey(key)
end

.IsMouseClicked(*arg) ⇒ Object



12676
12677
12678
12679
12680
12681
12682
12683
12684
12685
12686
12687
12688
12689
12690
12691
12692
# File 'lib/imgui.rb', line 12676

def self.IsMouseClicked(*arg)
  # arg: 0:button(ImGuiMouseButton)
  # ret: bool
  return ImGui_IsMouseClicked(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:button(ImGuiMouseButton), 1:repeat(bool)
  # ret: bool
  return ImGui_IsMouseClickedEx(arg[0], false) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_IsMouseClickedEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  # arg: 0:button(ImGuiMouseButton), 1:flags(ImGuiInputFlags)
  # ret: bool
  return ImGui_IsMouseClickedImGuiInputFlags(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  # arg: 0:button(ImGuiMouseButton), 1:flags(ImGuiInputFlags), 2:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsMouseClickedImGuiInputFlagsEx(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  return ImGui_IsMouseClickedImGuiInputFlagsEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsMouseClicked : No matching functions found (#{arg})")
end

.IsMouseDoubleClicked(*arg) ⇒ Object



12704
12705
12706
12707
12708
12709
12710
12711
12712
# File 'lib/imgui.rb', line 12704

def self.IsMouseDoubleClicked(*arg)
  # arg: 0:button(ImGuiMouseButton)
  # ret: bool
  return ImGui_IsMouseDoubleClicked(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:button(ImGuiMouseButton), 1:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsMouseDoubleClickedID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsMouseDoubleClicked : No matching functions found (#{arg})")
end

.IsMouseDown(*arg) ⇒ Object



12666
12667
12668
12669
12670
12671
12672
12673
12674
# File 'lib/imgui.rb', line 12666

def self.IsMouseDown(*arg)
  # arg: 0:button(ImGuiMouseButton)
  # ret: bool
  return ImGui_IsMouseDown(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:button(ImGuiMouseButton), 1:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsMouseDownID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsMouseDown : No matching functions found (#{arg})")
end

.IsMouseDragging(button, lock_threshold = -1.0)) ⇒ Object

arg: button(ImGuiMouseButton), lock_threshold(float) ret: bool



8705
8706
8707
# File 'lib/imgui.rb', line 8705

def self.IsMouseDragging(button, lock_threshold = -1.0)
  ImGui_IsMouseDragging(button, lock_threshold)
end

.IsMouseDragPastThreshold(*arg) ⇒ Object



12865
12866
12867
12868
12869
12870
12871
12872
12873
12874
# File 'lib/imgui.rb', line 12865

def self.IsMouseDragPastThreshold(*arg)
  # arg: 0:button(ImGuiMouseButton)
  # ret: bool
  return ImGui_IsMouseDragPastThreshold(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:button(ImGuiMouseButton), 1:lock_threshold(float)
  # ret: bool
  return ImGui_IsMouseDragPastThresholdEx(arg[0], -1.0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_IsMouseDragPastThresholdEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::IsMouseDragPastThreshold : No matching functions found (#{arg})")
end

.IsMouseHoveringRect(*arg) ⇒ Object



12714
12715
12716
12717
12718
12719
12720
12721
12722
12723
# File 'lib/imgui.rb', line 12714

def self.IsMouseHoveringRect(*arg)
  # arg: 0:r_min(ImVec2), 1:r_max(ImVec2)
  # ret: bool
  return ImGui_IsMouseHoveringRect(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2))
  # arg: 0:r_min(ImVec2), 1:r_max(ImVec2), 2:clip(bool)
  # ret: bool
  return ImGui_IsMouseHoveringRectEx(arg[0], arg[1], true) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2))
  return ImGui_IsMouseHoveringRectEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::IsMouseHoveringRect : No matching functions found (#{arg})")
end

.IsMouseKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



9742
9743
9744
# File 'lib/imgui.rb', line 9742

def self.IsMouseKey(key)
  ImGui_IsMouseKey(key)
end

.IsMousePosValid(mouse_pos = nil) ⇒ Object

arg: mouse_pos(const ImVec2*) ret: bool



8684
8685
8686
# File 'lib/imgui.rb', line 8684

def self.IsMousePosValid(mouse_pos = nil)
  ImGui_IsMousePosValid(mouse_pos)
end

.IsMouseReleased(*arg) ⇒ Object



12694
12695
12696
12697
12698
12699
12700
12701
12702
# File 'lib/imgui.rb', line 12694

def self.IsMouseReleased(*arg)
  # arg: 0:button(ImGuiMouseButton)
  # ret: bool
  return ImGui_IsMouseReleased(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:button(ImGuiMouseButton), 1:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsMouseReleasedID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsMouseReleased : No matching functions found (#{arg})")
end

.IsMouseReleasedWithDelay(button, delay) ⇒ Object

arg: button(ImGuiMouseButton), delay(float) ret: bool



8672
8673
8674
# File 'lib/imgui.rb', line 8672

def self.IsMouseReleasedWithDelay(button, delay)
  ImGui_IsMouseReleasedWithDelay(button, delay)
end

.IsNamedKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



9712
9713
9714
# File 'lib/imgui.rb', line 9712

def self.IsNamedKey(key)
  ImGui_IsNamedKey(key)
end

.IsNamedKeyOrMod(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



9718
9719
9720
# File 'lib/imgui.rb', line 9718

def self.IsNamedKeyOrMod(key)
  ImGui_IsNamedKeyOrMod(key)
end

.IsPopupOpen(*arg) ⇒ Object



12421
12422
12423
12424
12425
12426
12427
12428
12429
12430
# File 'lib/imgui.rb', line 12421

def self.IsPopupOpen(*arg)
  # arg: 0:str_id(const char*), 1:flags(ImGuiPopupFlags)
  # ret: bool
  return ImGui_IsPopupOpen(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_IsPopupOpen(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  # arg: 0:id(ImGuiID), 1:popup_flags(ImGuiPopupFlags)
  # ret: bool
  return ImGui_IsPopupOpenID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsPopupOpen : No matching functions found (#{arg})")
end

.IsPopupOpenRequestForItem(flags, id) ⇒ Object

arg: flags(ImGuiPopupFlags), id(ImGuiID) ret: bool



9560
9561
9562
# File 'lib/imgui.rb', line 9560

def self.IsPopupOpenRequestForItem(flags, id)
  ImGui_IsPopupOpenRequestForItem(flags, id)
end

.IsPopupOpenRequestForWindow(flags) ⇒ Object

arg: flags(ImGuiPopupFlags) ret: bool



9566
9567
9568
# File 'lib/imgui.rb', line 9566

def self.IsPopupOpenRequestForWindow(flags)
  ImGui_IsPopupOpenRequestForWindow(flags)
end

.IsRectVisible(*arg) ⇒ Object



12570
12571
12572
12573
12574
12575
12576
12577
12578
# File 'lib/imgui.rb', line 12570

def self.IsRectVisible(*arg)
  # arg: 0:size(ImVec2)
  # ret: bool
  return ImGui_IsRectVisibleBySize(arg[0]) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  # arg: 0:rect_min(ImVec2), 1:rect_max(ImVec2)
  # ret: bool
  return ImGui_IsRectVisible(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::IsRectVisible : No matching functions found (#{arg})")
end

.IsWindowAbove(potential_above, potential_below) ⇒ Object

arg: potential_above(ImGuiWindow*), potential_below(ImGuiWindow*) ret: bool



8950
8951
8952
# File 'lib/imgui.rb', line 8950

def self.IsWindowAbove(potential_above, potential_below)
  ImGui_IsWindowAbove(potential_above, potential_below)
end

.IsWindowAppearingObject

ret: bool



7599
7600
7601
# File 'lib/imgui.rb', line 7599

def self.IsWindowAppearing()
  ImGui_IsWindowAppearing()
end

.IsWindowChildOf(window, potential_parent, popup_hierarchy, dock_hierarchy) ⇒ Object

arg: window(ImGuiWindow*), potential_parent(ImGuiWindow*), popup_hierarchy(bool), dock_hierarchy(bool) ret: bool



8932
8933
8934
# File 'lib/imgui.rb', line 8932

def self.IsWindowChildOf(window, potential_parent, popup_hierarchy, dock_hierarchy)
  ImGui_IsWindowChildOf(window, potential_parent, popup_hierarchy, dock_hierarchy)
end

.IsWindowCollapsedObject

ret: bool



7604
7605
7606
# File 'lib/imgui.rb', line 7604

def self.IsWindowCollapsed()
  ImGui_IsWindowCollapsed()
end

.IsWindowContentHoverable(window, flags = 0) ⇒ Object

arg: window(ImGuiWindow*), flags(ImGuiHoveredFlags) ret: bool



9403
9404
9405
# File 'lib/imgui.rb', line 9403

def self.IsWindowContentHoverable(window, flags = 0)
  ImGui_IsWindowContentHoverable(window, flags)
end

.IsWindowDockedObject

ret: bool



8385
8386
8387
# File 'lib/imgui.rb', line 8385

def self.IsWindowDocked()
  ImGui_IsWindowDocked()
end

.IsWindowFocused(flags = 0) ⇒ Object

arg: flags(ImGuiFocusedFlags) ret: bool



7610
7611
7612
# File 'lib/imgui.rb', line 7610

def self.IsWindowFocused(flags = 0)
  ImGui_IsWindowFocused(flags)
end

.IsWindowHovered(flags = 0) ⇒ Object

arg: flags(ImGuiHoveredFlags) ret: bool



7616
7617
7618
# File 'lib/imgui.rb', line 7616

def self.IsWindowHovered(flags = 0)
  ImGui_IsWindowHovered(flags)
end

.IsWindowInBeginStack(window) ⇒ Object

arg: window(ImGuiWindow*) ret: bool



8938
8939
8940
# File 'lib/imgui.rb', line 8938

def self.IsWindowInBeginStack(window)
  ImGui_IsWindowInBeginStack(window)
end

.IsWindowNavFocusable(window) ⇒ Object

arg: window(ImGuiWindow*) ret: bool



8956
8957
8958
# File 'lib/imgui.rb', line 8956

def self.IsWindowNavFocusable(window)
  ImGui_IsWindowNavFocusable(window)
end

.IsWindowWithinBeginStackOf(window, potential_parent) ⇒ Object

arg: window(ImGuiWindow*), potential_parent(ImGuiWindow*) ret: bool



8944
8945
8946
# File 'lib/imgui.rb', line 8944

def self.IsWindowWithinBeginStackOf(window, potential_parent)
  ImGui_IsWindowWithinBeginStackOf(window, potential_parent)
end

.ItemAdd(*arg) ⇒ Object



12786
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
# File 'lib/imgui.rb', line 12786

def self.ItemAdd(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID)
  # ret: bool
  return ImGui_ItemAdd(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:nav_bb(const ImRect*), 3:extra_flags(ImGuiItemFlags)
  # ret: bool
  return ImGui_ItemAddEx(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer))
  return ImGui_ItemAddEx(arg[0], arg[1], nil, 0) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer))
  return ImGui_ItemAddEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::ItemAdd : No matching functions found (#{arg})")
end

.ItemHoverable(bb, id, item_flags) ⇒ Object

arg: bb(ImRect), id(ImGuiID), item_flags(ImGuiItemFlags) ret: bool



9397
9398
9399
# File 'lib/imgui.rb', line 9397

def self.ItemHoverable(bb, id, item_flags)
  ImGui_ItemHoverable(bb, id, item_flags)
end

.ItemSize(*arg) ⇒ Object



12768
12769
12770
12771
12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
# File 'lib/imgui.rb', line 12768

def self.ItemSize(*arg)
  # arg: 0:size(ImVec2)
  # ret: void
  return ImGui_ItemSize(arg[0]) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  # arg: 0:size(ImVec2), 1:text_baseline_y(float)
  # ret: void
  return ImGui_ItemSizeEx(arg[0], -1.0) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  return ImGui_ItemSizeEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(Float))
  # arg: 0:bb(ImRect)
  # ret: void
  return ImGui_ItemSizeImRect(arg[0]) if arg.length == 1 && (arg[0].kind_of?(ImRect))
  # arg: 0:bb(ImRect), 1:text_baseline_y(float)
  # ret: void
  return ImGui_ItemSizeImRectEx(arg[0], -1.0) if arg.length == 1 && (arg[0].kind_of?(ImRect))
  return ImGui_ItemSizeImRectEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::ItemSize : No matching functions found (#{arg})")
end

.KeepAliveID(id) ⇒ Object

arg: id(ImGuiID) ret: void



9379
9380
9381
# File 'lib/imgui.rb', line 9379

def self.KeepAliveID(id)
  ImGui_KeepAliveID(id)
end

.LabelText(label, fmt, *varargs) ⇒ Object

arg: label(const char*), fmt(const char*), unnamed_arg2(…) ret: void



7962
7963
7964
# File 'lib/imgui.rb', line 7962

def self.LabelText(label, fmt, *varargs)
  ImGui_LabelText(label, fmt, *varargs)
end

.ListBox(*arg) ⇒ Object



12276
12277
12278
12279
12280
12281
12282
12283
12284
12285
12286
12287
12288
12289
# File 'lib/imgui.rb', line 12276

def self.ListBox(*arg)
  # arg: 0:label(const char*), 1:current_item(int*), 2:items(const char*const[]), 3:items_count(int), 4:height_in_items(int)
  # ret: bool
  return ImGui_ListBox(arg[0], arg[1], arg[2], arg[3], -1) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_ListBox(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  # arg: 0:label(const char*), 1:current_item(int*), 2:getter(const char* (*getter)(void* user_data, int idx)), 3:user_data(void*), 4:items_count(int)
  # ret: bool
  return ImGui_ListBoxCallback(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer))
  # arg: 0:label(const char*), 1:current_item(int*), 2:getter(const char* (*getter)(void* user_data, int idx)), 3:user_data(void*), 4:items_count(int), 5:height_in_items(int)
  # ret: bool
  return ImGui_ListBoxCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], -1) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer))
  return ImGui_ListBoxCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::ListBox : No matching functions found (#{arg})")
end

.load_lib(libpath, output_error = false) ⇒ Object



5890
5891
5892
5893
5894
# File 'lib/imgui.rb', line 5890

def self.load_lib(libpath, output_error = false)
  ffi_lib_flags :now, :global
  ffi_lib libpath
  import_symbols(output_error) unless @@imgui_import_done
end

.LoadIniSettingsFromDisk(ini_filename) ⇒ Object

arg: ini_filename(const char*) ret: void



8745
8746
8747
# File 'lib/imgui.rb', line 8745

def self.LoadIniSettingsFromDisk(ini_filename)
  ImGui_LoadIniSettingsFromDisk(ini_filename)
end

.LoadIniSettingsFromMemory(ini_data, ini_size = 0) ⇒ Object

arg: ini_data(const char*), ini_size(size_t) ret: void



8751
8752
8753
# File 'lib/imgui.rb', line 8751

def self.LoadIniSettingsFromMemory(ini_data, ini_size = 0)
  ImGui_LoadIniSettingsFromMemory(ini_data, ini_size)
end

.LocalizeGetMsg(key) ⇒ Object

arg: key(ImGuiLocKey) ret: pointer



9306
9307
9308
# File 'lib/imgui.rb', line 9306

def self.LocalizeGetMsg(key)
  ImGui_LocalizeGetMsg(key)
end

.LocalizeRegisterEntries(entries, count) ⇒ Object

arg: entries(const ImGuiLocEntry*), count(int) ret: void



9300
9301
9302
# File 'lib/imgui.rb', line 9300

def self.LocalizeRegisterEntries(entries, count)
  ImGui_LocalizeRegisterEntries(entries, count)
end

.LogBegin(flags, auto_open_depth) ⇒ Object

arg: flags(ImGuiLogFlags), auto_open_depth(int) ret: void



9467
9468
9469
# File 'lib/imgui.rb', line 9467

def self.LogBegin(flags, auto_open_depth)
  ImGui_LogBegin(flags, auto_open_depth)
end

.LogButtonsObject

ret: void



8413
8414
8415
# File 'lib/imgui.rb', line 8413

def self.LogButtons()
  ImGui_LogButtons()
end

.LogFinishObject

ret: void



8408
8409
8410
# File 'lib/imgui.rb', line 8408

def self.LogFinish()
  ImGui_LogFinish()
end

.LogRenderedText(*arg) ⇒ Object



12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
# File 'lib/imgui.rb', line 12809

def self.LogRenderedText(*arg)
  # arg: 0:ref_pos(const ImVec2*), 1:text(const char*)
  # ret: void
  return ImGui_LogRenderedText(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(String))
  # arg: 0:ref_pos(const ImVec2*), 1:text(const char*), 2:text_end(const char*)
  # ret: void
  return ImGui_LogRenderedTextEx(arg[0], arg[1], nil) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(String))
  return ImGui_LogRenderedTextEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(String) && arg[2].kind_of?(String))
  $stderr.puts("[Warning] ImGui::LogRenderedText : No matching functions found (#{arg})")
end

.LogSetNextTextDecoration(prefix, suffix) ⇒ Object

arg: prefix(const char*), suffix(const char*) ret: void



9473
9474
9475
# File 'lib/imgui.rb', line 9473

def self.LogSetNextTextDecoration(prefix, suffix)
  ImGui_LogSetNextTextDecoration(prefix, suffix)
end

.LogText(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(…) ret: void



8419
8420
8421
# File 'lib/imgui.rb', line 8419

def self.LogText(fmt, *varargs)
  ImGui_LogText(fmt, *varargs)
end

.LogToBuffer(*arg) ⇒ Object



12798
12799
12800
12801
12802
12803
12804
12805
12806
12807
# File 'lib/imgui.rb', line 12798

def self.LogToBuffer(*arg)
  # arg: 
  # ret: void
  return ImGui_LogToBuffer() if arg.empty?
  # arg: 0:auto_open_depth(int)
  # ret: void
  return ImGui_LogToBufferEx(-1) if arg.length == 0 && (true)
  return ImGui_LogToBufferEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::LogToBuffer : No matching functions found (#{arg})")
end

.LogToClipboard(auto_open_depth = -1)) ⇒ Object

arg: auto_open_depth(int) ret: void



8403
8404
8405
# File 'lib/imgui.rb', line 8403

def self.LogToClipboard(auto_open_depth = -1)
  ImGui_LogToClipboard(auto_open_depth)
end

.LogToFile(auto_open_depth = -1,, filename = nil) ⇒ Object

arg: auto_open_depth(int), filename(const char*) ret: void



8397
8398
8399
# File 'lib/imgui.rb', line 8397

def self.LogToFile(auto_open_depth = -1, filename = nil)
  ImGui_LogToFile(auto_open_depth, filename)
end

.LogToTTY(auto_open_depth = -1)) ⇒ Object

arg: auto_open_depth(int) ret: void



8391
8392
8393
# File 'lib/imgui.rb', line 8391

def self.LogToTTY(auto_open_depth = -1)
  ImGui_LogToTTY(auto_open_depth)
end

.MarkIniSettingsDirty(*arg) ⇒ Object



12748
12749
12750
12751
12752
12753
12754
12755
12756
# File 'lib/imgui.rb', line 12748

def self.MarkIniSettingsDirty(*arg)
  # arg: 
  # ret: void
  return ImGui_MarkIniSettingsDirty() if arg.empty?
  # arg: 0:window(ImGuiWindow*)
  # ret: void
  return ImGui_MarkIniSettingsDirtyImGuiWindowPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::MarkIniSettingsDirty : No matching functions found (#{arg})")
end

.MarkItemEdited(id) ⇒ Object

arg: id(ImGuiID) ret: void



9385
9386
9387
# File 'lib/imgui.rb', line 9385

def self.MarkItemEdited(id)
  ImGui_MarkItemEdited(id)
end

.MemAlloc(size) ⇒ Object

arg: size(size_t) ret: pointer



8810
8811
8812
# File 'lib/imgui.rb', line 8810

def self.MemAlloc(size)
  ImGui_MemAlloc(size)
end

.MemFree(ptr) ⇒ Object

arg: ptr(void*) ret: void



8816
8817
8818
# File 'lib/imgui.rb', line 8816

def self.MemFree(ptr)
  ImGui_MemFree(ptr)
end


12356
12357
12358
12359
12360
12361
12362
12363
12364
12365
12366
12367
12368
12369
12370
12371
# File 'lib/imgui.rb', line 12356

def self.MenuItem(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_MenuItem(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:label(const char*), 1:shortcut(const char*), 2:selected(bool), 3:enabled(bool)
  # ret: bool
  return ImGui_MenuItemEx(arg[0], arg[1], arg[2], true) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)))
  return ImGui_MenuItemEx(arg[0], arg[1], false, true) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  return ImGui_MenuItemEx(arg[0], nil, false, true) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_MenuItemEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)))
  # arg: 0:label(const char*), 1:shortcut(const char*), 2:p_selected(bool*), 3:enabled(bool)
  # ret: bool
  return ImGui_MenuItemBoolPtr(arg[0], arg[1], arg[2], true) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer))
  return ImGui_MenuItemBoolPtr(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::MenuItem : No matching functions found (#{arg})")
end


12842
12843
12844
12845
12846
12847
12848
12849
12850
12851
12852
12853
# File 'lib/imgui.rb', line 12842

def self.MenuItemEx(*arg)
  # arg: 0:label(const char*), 1:icon(const char*)
  # ret: bool
  return ImGui_MenuItemWithIcon(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  # arg: 0:label(const char*), 1:icon(const char*), 2:shortcut(const char*), 3:selected(bool), 4:enabled(bool)
  # ret: bool
  return ImGui_MenuItemWithIconEx(arg[0], arg[1], arg[2], arg[3], true) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(String) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)))
  return ImGui_MenuItemWithIconEx(arg[0], arg[1], arg[2], false, true) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(String))
  return ImGui_MenuItemWithIconEx(arg[0], arg[1], nil, false, true) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  return ImGui_MenuItemWithIconEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(String) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)) && (arg[4].is_a?(TrueClass) || arg[4].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::MenuItemEx : No matching functions found (#{arg})")
end

.MouseButtonToKey(button) ⇒ Object

arg: button(ImGuiMouseButton) ret: int



9778
9779
9780
# File 'lib/imgui.rb', line 9778

def self.MouseButtonToKey(button)
  ImGui_MouseButtonToKey(button)
end

.MultiSelectAddSetAll(ms, selected) ⇒ Object

arg: ms(ImGuiMultiSelectTempData*), selected(bool) ret: void



10202
10203
10204
# File 'lib/imgui.rb', line 10202

def self.MultiSelectAddSetAll(ms, selected)
  ImGui_MultiSelectAddSetAll(ms, selected)
end

.MultiSelectAddSetRange(ms, selected, range_dir, first_item, last_item) ⇒ Object

arg: ms(ImGuiMultiSelectTempData*), selected(bool), range_dir(int), first_item(ImGuiSelectionUserData), last_item(ImGuiSelectionUserData) ret: void



10208
10209
10210
# File 'lib/imgui.rb', line 10208

def self.MultiSelectAddSetRange(ms, selected, range_dir, first_item, last_item)
  ImGui_MultiSelectAddSetRange(ms, selected, range_dir, first_item, last_item)
end

.MultiSelectItemFooter(id, p_selected, p_pressed) ⇒ Object

arg: id(ImGuiID), p_selected(bool*), p_pressed(bool*) ret: void



10196
10197
10198
# File 'lib/imgui.rb', line 10196

def self.MultiSelectItemFooter(id, p_selected, p_pressed)
  ImGui_MultiSelectItemFooter(id, p_selected, p_pressed)
end

.MultiSelectItemHeader(id, p_selected, p_button_flags) ⇒ Object

arg: id(ImGuiID), p_selected(bool*), p_button_flags(ImGuiButtonFlags*) ret: void



10190
10191
10192
# File 'lib/imgui.rb', line 10190

def self.MultiSelectItemHeader(id, p_selected, p_button_flags)
  ImGui_MultiSelectItemHeader(id, p_selected, p_button_flags)
end

arg: axis(ImGuiAxis) ret: void



9667
9668
9669
# File 'lib/imgui.rb', line 9667

def self.NavClearPreferredPosForAxis(axis)
  ImGui_NavClearPreferredPosForAxis(axis)
end

arg: id(ImGuiID) ret: void



9661
9662
9663
# File 'lib/imgui.rb', line 9661

def self.NavHighlightActivated(id)
  ImGui_NavHighlightActivated(id)
end

ret: void



9610
9611
9612
# File 'lib/imgui.rb', line 9610

def self.NavInitRequestApplyResult()
  ImGui_NavInitRequestApplyResult()
end

arg: window(ImGuiWindow*), force_reinit(bool) ret: void



9605
9606
9607
# File 'lib/imgui.rb', line 9605

def self.NavInitWindow(window, force_reinit)
  ImGui_NavInitWindow(window, force_reinit)
end

ret: void



9649
9650
9651
# File 'lib/imgui.rb', line 9649

def self.NavMoveRequestApplyResult()
  ImGui_NavMoveRequestApplyResult()
end

ret: bool



9615
9616
9617
# File 'lib/imgui.rb', line 9615

def self.NavMoveRequestButNoResultYet()
  ImGui_NavMoveRequestButNoResultYet()
end

ret: void



9644
9645
9646
# File 'lib/imgui.rb', line 9644

def self.NavMoveRequestCancel()
  ImGui_NavMoveRequestCancel()
end

arg: move_dir(ImGuiDir), clip_dir(ImGuiDir), move_flags(ImGuiNavMoveFlags), scroll_flags(ImGuiScrollFlags) ret: void



9627
9628
9629
# File 'lib/imgui.rb', line 9627

def self.NavMoveRequestForward(move_dir, clip_dir, move_flags, scroll_flags)
  ImGui_NavMoveRequestForward(move_dir, clip_dir, move_flags, scroll_flags)
end

arg: result(ImGuiNavItemData*) ret: void



9633
9634
9635
# File 'lib/imgui.rb', line 9633

def self.NavMoveRequestResolveWithLastItem(result)
  ImGui_NavMoveRequestResolveWithLastItem(result)
end

arg: result(ImGuiNavItemData*), tree_node_data(const ImGuiTreeNodeStackData*) ret: void



9639
9640
9641
# File 'lib/imgui.rb', line 9639

def self.NavMoveRequestResolveWithPastTreeNode(result, tree_node_data)
  ImGui_NavMoveRequestResolveWithPastTreeNode(result, tree_node_data)
end

arg: move_dir(ImGuiDir), clip_dir(ImGuiDir), move_flags(ImGuiNavMoveFlags), scroll_flags(ImGuiScrollFlags) ret: void



9621
9622
9623
# File 'lib/imgui.rb', line 9621

def self.NavMoveRequestSubmit(move_dir, clip_dir, move_flags, scroll_flags)
  ImGui_NavMoveRequestSubmit(move_dir, clip_dir, move_flags, scroll_flags)
end

arg: window(ImGuiWindow*), move_flags(ImGuiNavMoveFlags) ret: void



9655
9656
9657
# File 'lib/imgui.rb', line 9655

def self.NavMoveRequestTryWrapping(window, move_flags)
  ImGui_NavMoveRequestTryWrapping(window, move_flags)
end

ret: void



9677
9678
9679
# File 'lib/imgui.rb', line 9677

def self.NavUpdateCurrentWindowIsScrollPushableX()
  ImGui_NavUpdateCurrentWindowIsScrollPushableX()
end

.NewFrameObject

ret: void



7493
7494
7495
# File 'lib/imgui.rb', line 7493

def self.NewFrame()
  ImGui_NewFrame()
end

.NewLineObject

ret: void



7881
7882
7883
# File 'lib/imgui.rb', line 7881

def self.NewLine()
  ImGui_NewLine()
end

.NextColumnObject

ret: void



8295
8296
8297
# File 'lib/imgui.rb', line 8295

def self.NextColumn()
  ImGui_NextColumn()
end

.OpenPopup(*arg) ⇒ Object



12373
12374
12375
12376
12377
12378
12379
12380
12381
12382
12383
# File 'lib/imgui.rb', line 12373

def self.OpenPopup(*arg)
  # arg: 0:str_id(const char*), 1:popup_flags(ImGuiPopupFlags)
  # ret: void
  return ImGui_OpenPopup(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_OpenPopup(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  # arg: 0:id(ImGuiID), 1:popup_flags(ImGuiPopupFlags)
  # ret: void
  return ImGui_OpenPopupID(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_OpenPopupID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::OpenPopup : No matching functions found (#{arg})")
end

.OpenPopupEx(*arg) ⇒ Object



12820
12821
12822
12823
12824
12825
12826
12827
12828
12829
# File 'lib/imgui.rb', line 12820

def self.OpenPopupEx(*arg)
  # arg: 0:id(ImGuiID)
  # ret: void
  return ImGui_OpenPopupEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:id(ImGuiID), 1:popup_flags(ImGuiPopupFlags)
  # ret: void
  return ImGui_OpenPopupExEx(arg[0], ImGuiPopupFlags_None) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_OpenPopupExEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::OpenPopupEx : No matching functions found (#{arg})")
end

.OpenPopupOnItemClick(str_id = nil, popup_flags = 0) ⇒ Object

arg: str_id(const char*), popup_flags(ImGuiPopupFlags) ret: void



8204
8205
8206
# File 'lib/imgui.rb', line 8204

def self.OpenPopupOnItemClick(str_id = nil, popup_flags = 0)
  ImGui_OpenPopupOnItemClick(str_id, popup_flags)
end

.PlotEx(plot_type, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, size_arg) ⇒ Object

arg: plot_type(ImGuiPlotType), label(const char*), values_getter(float (*values_getter)(void* data, int idx)), data(void*), values_count(int), values_offset(int), overlay_text(const char*), scale_min(float), scale_max(float), size_arg(ImVec2) ret: int



10968
10969
10970
# File 'lib/imgui.rb', line 10968

def self.PlotEx(plot_type, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, size_arg)
  ImGui_PlotEx(plot_type, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, size_arg)
end

.PlotHistogram(*arg) ⇒ Object



12318
12319
12320
12321
12322
12323
12324
12325
12326
12327
12328
12329
12330
12331
12332
12333
12334
12335
12336
12337
12338
12339
12340
12341
12342
12343
# File 'lib/imgui.rb', line 12318

def self.PlotHistogram(*arg)
  # arg: 0:label(const char*), 1:values(const float*), 2:values_count(int)
  # ret: void
  return ImGui_PlotHistogram(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:values(const float*), 2:values_count(int), 3:values_offset(int), 4:overlay_text(const char*), 5:scale_min(float), 6:scale_max(float), 7:graph_size(ImVec2), 8:stride(int)
  # ret: void
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], FFI::TYPE_FLOAT32.size) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(ImVec2))
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float))
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float))
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], arg[3], arg[4], Float::MAX, Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String))
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], arg[3], nil, Float::MAX, Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], 0, nil, Float::MAX, Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(ImVec2) && arg[8].kind_of?(Integer))
  # arg: 0:label(const char*), 1:values_getter(float (*values_getter)(void* data, int idx)), 2:data(void*), 3:values_count(int)
  # ret: void
  return ImGui_PlotHistogramCallback(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:values_getter(float (*values_getter)(void* data, int idx)), 2:data(void*), 3:values_count(int), 4:values_offset(int), 5:overlay_text(const char*), 6:scale_min(float), 7:scale_max(float), 8:graph_size(ImVec2)
  # ret: void
  return ImGui_PlotHistogramCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], ImVec2.create(0,0)) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float))
  return ImGui_PlotHistogramCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], Float::MAX, ImVec2.create(0,0)) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Float))
  return ImGui_PlotHistogramCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], Float::MAX, Float::MAX, ImVec2.create(0,0)) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_PlotHistogramCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, Float::MAX, Float::MAX, ImVec2.create(0,0)) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_PlotHistogramCallbackEx(arg[0], arg[1], arg[2], arg[3], 0, nil, Float::MAX, Float::MAX, ImVec2.create(0,0)) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_PlotHistogramCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float) && arg[8].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::PlotHistogram : No matching functions found (#{arg})")
end

.PlotLines(*arg) ⇒ Object



12291
12292
12293
12294
12295
12296
12297
12298
12299
12300
12301
12302
12303
12304
12305
12306
12307
12308
12309
12310
12311
12312
12313
12314
12315
12316
# File 'lib/imgui.rb', line 12291

def self.PlotLines(*arg)
  # arg: 0:label(const char*), 1:values(const float*), 2:values_count(int)
  # ret: void
  return ImGui_PlotLines(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:values(const float*), 2:values_count(int), 3:values_offset(int), 4:overlay_text(const char*), 5:scale_min(float), 6:scale_max(float), 7:graph_size(ImVec2), 8:stride(int)
  # ret: void
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], FFI::TYPE_FLOAT32.size) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(ImVec2))
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float))
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float))
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], arg[3], arg[4], Float::MAX, Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String))
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], arg[3], nil, Float::MAX, Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], 0, nil, Float::MAX, Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(ImVec2) && arg[8].kind_of?(Integer))
  # arg: 0:label(const char*), 1:values_getter(float (*values_getter)(void* data, int idx)), 2:data(void*), 3:values_count(int)
  # ret: void
  return ImGui_PlotLinesCallback(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:values_getter(float (*values_getter)(void* data, int idx)), 2:data(void*), 3:values_count(int), 4:values_offset(int), 5:overlay_text(const char*), 6:scale_min(float), 7:scale_max(float), 8:graph_size(ImVec2)
  # ret: void
  return ImGui_PlotLinesCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], ImVec2.create(0,0)) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float))
  return ImGui_PlotLinesCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], Float::MAX, ImVec2.create(0,0)) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Float))
  return ImGui_PlotLinesCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], Float::MAX, Float::MAX, ImVec2.create(0,0)) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_PlotLinesCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, Float::MAX, Float::MAX, ImVec2.create(0,0)) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_PlotLinesCallbackEx(arg[0], arg[1], arg[2], arg[3], 0, nil, Float::MAX, Float::MAX, ImVec2.create(0,0)) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_PlotLinesCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float) && arg[8].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::PlotLines : No matching functions found (#{arg})")
end

.PopButtonRepeatObject

ret: void



8855
8856
8857
# File 'lib/imgui.rb', line 8855

def self.PopButtonRepeat()
  ImGui_PopButtonRepeat()
end

.PopClipRectObject

ret: void



8479
8480
8481
# File 'lib/imgui.rb', line 8479

def self.PopClipRect()
  ImGui_PopClipRect()
end

.PopColumnsBackgroundObject

ret: void



10253
10254
10255
# File 'lib/imgui.rb', line 10253

def self.PopColumnsBackground()
  ImGui_PopColumnsBackground()
end

.PopFocusScopeObject

ret: void



10110
10111
10112
# File 'lib/imgui.rb', line 10110

def self.PopFocusScope()
  ImGui_PopFocusScope()
end

.PopFontObject

ret: void



7735
7736
7737
# File 'lib/imgui.rb', line 7735

def self.PopFont()
  ImGui_PopFont()
end

.PopIDObject

ret: void



7932
7933
7934
# File 'lib/imgui.rb', line 7932

def self.PopID()
  ImGui_PopID()
end

.PopItemFlagObject

ret: void



7773
7774
7775
# File 'lib/imgui.rb', line 7773

def self.PopItemFlag()
  ImGui_PopItemFlag()
end

.PopItemWidthObject

ret: void



7784
7785
7786
# File 'lib/imgui.rb', line 7784

def self.PopItemWidth()
  ImGui_PopItemWidth()
end

.PopPasswordFontObject

ret: void



9120
9121
9122
# File 'lib/imgui.rb', line 9120

def self.PopPasswordFont()
  ImGui_PopPasswordFont()
end

.PopStyleColor(*arg) ⇒ Object



11435
11436
11437
11438
11439
11440
11441
11442
11443
11444
# File 'lib/imgui.rb', line 11435

def self.PopStyleColor(*arg)
  # arg: 
  # ret: void
  return ImGui_PopStyleColor() if arg.empty?
  # arg: 0:count(int)
  # ret: void
  return ImGui_PopStyleColorEx(1) if arg.length == 0 && (true)
  return ImGui_PopStyleColorEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::PopStyleColor : No matching functions found (#{arg})")
end

.PopStyleVar(*arg) ⇒ Object



11456
11457
11458
11459
11460
11461
11462
11463
11464
11465
# File 'lib/imgui.rb', line 11456

def self.PopStyleVar(*arg)
  # arg: 
  # ret: void
  return ImGui_PopStyleVar() if arg.empty?
  # arg: 0:count(int)
  # ret: void
  return ImGui_PopStyleVarEx(1) if arg.length == 0 && (true)
  return ImGui_PopStyleVarEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::PopStyleVar : No matching functions found (#{arg})")
end

.PopTabStopObject

ret: void



8866
8867
8868
# File 'lib/imgui.rb', line 8866

def self.PopTabStop()
  ImGui_PopTabStop()
end

.PopTextWrapPosObject

ret: void



7806
7807
7808
# File 'lib/imgui.rb', line 7806

def self.PopTextWrapPos()
  ImGui_PopTextWrapPos()
end

.PrintProgramLinkStatus(handle) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/imgui_impl_opengl3.rb', line 45

def self.PrintProgramLinkStatus(handle)
  rvalue = ' ' * 4
  GL.GetProgramiv(handle, GL::LINK_STATUS, rvalue)
  ok = rvalue.unpack1('L')
  return true if ok == GL::TRUE

  $stderr.puts "Error in linking program"
  log_length = ' ' * 4
  GL.GetProgramiv(handle, GL::INFO_LOG_LENGTH, log_length)
  log_length = log_length.unpack1('L')
  if log_length > 0
    buf = ' ' * log_length
    GL.GetProgramInfoLog(handle, log_length, nil, buf)
    $stderr.puts(buf)
  end
  false
end

.PrintShaderCompileStatus(handle) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/imgui_impl_opengl3.rb', line 27

def self.PrintShaderCompileStatus(handle)
  rvalue = ' ' * 4
  GL.GetShaderiv(handle, GL::COMPILE_STATUS, rvalue)
  ok = rvalue.unpack1('L')
  return true if ok == GL::TRUE

  $stderr.puts "Error in compiling shader"
  log_length = ' ' * 4
  GL.GetShaderiv(handle, GL::INFO_LOG_LENGTH, log_length)
  log_length = log_length.unpack1('L')
  if log_length > 0
    buf = ' ' * log_length
    GL.GetShaderInfoLog(handle, log_length, nil, buf)
    $stderr.puts(buf)
  end
  false
end

.ProgressBar(fraction, size_arg = ImVec2.create(-FLT_MIN,0), overlay = nil) ⇒ Object

arg: fraction(float), size_arg(ImVec2), overlay(const char*) ret: void



8004
8005
8006
# File 'lib/imgui.rb', line 8004

def self.ProgressBar(fraction, size_arg = ImVec2.create(-FLT_MIN,0), overlay = nil)
  ImGui_ProgressBar(fraction, size_arg, overlay)
end

.PushButtonRepeat(repeat) ⇒ Object

arg: repeat(bool) ret: void



8850
8851
8852
# File 'lib/imgui.rb', line 8850

def self.PushButtonRepeat(repeat)
  ImGui_PushButtonRepeat(repeat)
end

.PushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect) ⇒ Object

arg: clip_rect_min(ImVec2), clip_rect_max(ImVec2), intersect_with_current_clip_rect(bool) ret: void



8474
8475
8476
# File 'lib/imgui.rb', line 8474

def self.PushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect)
  ImGui_PushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect)
end

.PushColumnClipRect(column_index) ⇒ Object

arg: column_index(int) ret: void



10243
10244
10245
# File 'lib/imgui.rb', line 10243

def self.PushColumnClipRect(column_index)
  ImGui_PushColumnClipRect(column_index)
end

.PushColumnsBackgroundObject

ret: void



10248
10249
10250
# File 'lib/imgui.rb', line 10248

def self.PushColumnsBackground()
  ImGui_PushColumnsBackground()
end

.PushFocusScope(id) ⇒ Object

arg: id(ImGuiID) ret: void



10105
10106
10107
# File 'lib/imgui.rb', line 10105

def self.PushFocusScope(id)
  ImGui_PushFocusScope(id)
end

.PushFont(*arg) ⇒ Object



11415
11416
11417
11418
11419
11420
11421
11422
11423
# File 'lib/imgui.rb', line 11415

def self.PushFont(*arg)
  # arg: 0:font(ImFont*), 1:font_size_base_unscaled(float)
  # ret: void
  return ImGui_PushFontFloat(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Float))
  # arg: 0:font(ImFont*)
  # ret: void
  return ImGui_PushFont(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::PushFont : No matching functions found (#{arg})")
end

.PushID(*arg) ⇒ Object



11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534
11535
11536
# File 'lib/imgui.rb', line 11522

def self.PushID(*arg)
  # arg: 0:str_id(const char*)
  # ret: void
  return ImGui_PushID(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:str_id_begin(const char*), 1:str_id_end(const char*)
  # ret: void
  return ImGui_PushIDStr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  # arg: 0:ptr_id(const void*)
  # ret: void
  return ImGui_PushIDPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  # arg: 0:int_id(int)
  # ret: void
  return ImGui_PushIDInt(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::PushID : No matching functions found (#{arg})")
end

.PushItemFlag(option, enabled) ⇒ Object

arg: option(ImGuiItemFlags), enabled(bool) ret: void



7768
7769
7770
# File 'lib/imgui.rb', line 7768

def self.PushItemFlag(option, enabled)
  ImGui_PushItemFlag(option, enabled)
end

.PushItemWidth(item_width) ⇒ Object

arg: item_width(float) ret: void



7779
7780
7781
# File 'lib/imgui.rb', line 7779

def self.PushItemWidth(item_width)
  ImGui_PushItemWidth(item_width)
end

.PushMultiItemsWidths(components, width_full) ⇒ Object

arg: components(int), width_full(float) ret: void



9433
9434
9435
# File 'lib/imgui.rb', line 9433

def self.PushMultiItemsWidths(components, width_full)
  ImGui_PushMultiItemsWidths(components, width_full)
end

.PushOverrideID(id) ⇒ Object

arg: id(ImGuiID) ret: void



9391
9392
9393
# File 'lib/imgui.rb', line 9391

def self.PushOverrideID(id)
  ImGui_PushOverrideID(id)
end

.PushPasswordFontObject

ret: void



9115
9116
9117
# File 'lib/imgui.rb', line 9115

def self.PushPasswordFont()
  ImGui_PushPasswordFont()
end

.PushStyleColor(*arg) ⇒ Object



11425
11426
11427
11428
11429
11430
11431
11432
11433
# File 'lib/imgui.rb', line 11425

def self.PushStyleColor(*arg)
  # arg: 0:idx(ImGuiCol), 1:col(ImU32)
  # ret: void
  return ImGui_PushStyleColor(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  # arg: 0:idx(ImGuiCol), 1:col(ImVec4)
  # ret: void
  return ImGui_PushStyleColorImVec4(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec4))
  $stderr.puts("[Warning] ImGui::PushStyleColor : No matching functions found (#{arg})")
end

.PushStyleVar(*arg) ⇒ Object



11446
11447
11448
11449
11450
11451
11452
11453
11454
# File 'lib/imgui.rb', line 11446

def self.PushStyleVar(*arg)
  # arg: 0:idx(ImGuiStyleVar), 1:val(float)
  # ret: void
  return ImGui_PushStyleVar(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  # arg: 0:idx(ImGuiStyleVar), 1:val(ImVec2)
  # ret: void
  return ImGui_PushStyleVarImVec2(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::PushStyleVar : No matching functions found (#{arg})")
end

.PushStyleVarX(idx, val_x) ⇒ Object

arg: idx(ImGuiStyleVar), val_x(float) ret: void



7756
7757
7758
# File 'lib/imgui.rb', line 7756

def self.PushStyleVarX(idx, val_x)
  ImGui_PushStyleVarX(idx, val_x)
end

.PushStyleVarY(idx, val_y) ⇒ Object

arg: idx(ImGuiStyleVar), val_y(float) ret: void



7762
7763
7764
# File 'lib/imgui.rb', line 7762

def self.PushStyleVarY(idx, val_y)
  ImGui_PushStyleVarY(idx, val_y)
end

.PushTabStop(tab_stop) ⇒ Object

arg: tab_stop(bool) ret: void



8861
8862
8863
# File 'lib/imgui.rb', line 8861

def self.PushTabStop(tab_stop)
  ImGui_PushTabStop(tab_stop)
end

.PushTextWrapPos(wrap_local_pos_x = 0.0) ⇒ Object

arg: wrap_local_pos_x(float) ret: void



7801
7802
7803
# File 'lib/imgui.rb', line 7801

def self.PushTextWrapPos(wrap_local_pos_x = 0.0)
  ImGui_PushTextWrapPos(wrap_local_pos_x)
end

.RadioButton(*arg) ⇒ Object



11592
11593
11594
11595
11596
11597
11598
11599
11600
# File 'lib/imgui.rb', line 11592

def self.RadioButton(*arg)
  # arg: 0:label(const char*), 1:active(bool)
  # ret: bool
  return ImGui_RadioButton(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  # arg: 0:label(const char*), 1:v(int*), 2:v_button(int)
  # ret: bool
  return ImGui_RadioButtonIntPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::RadioButton : No matching functions found (#{arg})")
end

.RegisterFontAtlas(atlas) ⇒ Object

arg: atlas(ImFontAtlas*) ret: void



9070
9071
9072
# File 'lib/imgui.rb', line 9070

def self.RegisterFontAtlas(atlas)
  ImGui_RegisterFontAtlas(atlas)
end

.RegisterUserTexture(tex) ⇒ Object

arg: tex(ImTextureData*) ret: void



9058
9059
9060
# File 'lib/imgui.rb', line 9058

def self.RegisterUserTexture(tex)
  ImGui_RegisterUserTexture(tex)
end

.RemoveContextHook(ctx, hook_to_remove) ⇒ Object

arg: ctx(ImGuiContext*), hook_to_remove(ImGuiID) ret: void



9154
9155
9156
# File 'lib/imgui.rb', line 9154

def self.RemoveContextHook(ctx, hook_to_remove)
  ImGui_RemoveContextHook(ctx, hook_to_remove)
end

.RemoveSettingsHandler(type_name) ⇒ Object

arg: type_name(const char*) ret: void



9264
9265
9266
# File 'lib/imgui.rb', line 9264

def self.RemoveSettingsHandler(type_name)
  ImGui_RemoveSettingsHandler(type_name)
end

.RenderObject

ret: void



7503
7504
7505
# File 'lib/imgui.rb', line 7503

def self.Render()
  ImGui_Render()
end

.RenderArrow(*arg) ⇒ Object



13102
13103
13104
13105
13106
13107
13108
13109
13110
13111
# File 'lib/imgui.rb', line 13102

def self.RenderArrow(*arg)
  # arg: 0:draw_list(ImDrawList*), 1:pos(ImVec2), 2:col(ImU32), 3:dir(ImGuiDir)
  # ret: void
  return ImGui_RenderArrow(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:draw_list(ImDrawList*), 1:pos(ImVec2), 2:col(ImU32), 3:dir(ImGuiDir), 4:scale(float)
  # ret: void
  return ImGui_RenderArrowEx(arg[0], arg[1], arg[2], arg[3], 1.0) if arg.length == 4 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_RenderArrowEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::RenderArrow : No matching functions found (#{arg})")
end

.RenderArrowDockMenu(draw_list, p_min, sz, col) ⇒ Object

arg: draw_list(ImDrawList*), p_min(ImVec2), sz(float), col(ImU32) ret: void



10735
10736
10737
# File 'lib/imgui.rb', line 10735

def self.RenderArrowDockMenu(draw_list, p_min, sz, col)
  ImGui_RenderArrowDockMenu(draw_list, p_min, sz, col)
end

.RenderArrowPointingAt(draw_list, pos, half_sz, direction, col) ⇒ Object

arg: draw_list(ImDrawList*), pos(ImVec2), half_sz(ImVec2), direction(ImGuiDir), col(ImU32) ret: void



10729
10730
10731
# File 'lib/imgui.rb', line 10729

def self.RenderArrowPointingAt(draw_list, pos, half_sz, direction, col)
  ImGui_RenderArrowPointingAt(draw_list, pos, half_sz, direction, col)
end

.RenderBullet(draw_list, pos, col) ⇒ Object

arg: draw_list(ImDrawList*), pos(ImVec2), col(ImU32) ret: void



10717
10718
10719
# File 'lib/imgui.rb', line 10717

def self.RenderBullet(draw_list, pos, col)
  ImGui_RenderBullet(draw_list, pos, col)
end

.RenderCheckMark(draw_list, pos, col, sz) ⇒ Object

arg: draw_list(ImDrawList*), pos(ImVec2), col(ImU32), sz(float) ret: void



10723
10724
10725
# File 'lib/imgui.rb', line 10723

def self.RenderCheckMark(draw_list, pos, col, sz)
  ImGui_RenderCheckMark(draw_list, pos, col, sz)
end

.RenderColorComponentMarker(bb, col, rounding) ⇒ Object

arg: bb(ImRect), col(ImU32), rounding(float) ret: void



10705
10706
10707
# File 'lib/imgui.rb', line 10705

def self.RenderColorComponentMarker(bb, col, rounding)
  ImGui_RenderColorComponentMarker(bb, col, rounding)
end

.RenderColorRectWithAlphaCheckerboard(*arg) ⇒ Object



13057
13058
13059
13060
13061
13062
13063
13064
13065
13066
13067
# File 'lib/imgui.rb', line 13057

def self.RenderColorRectWithAlphaCheckerboard(*arg)
  # arg: 0:draw_list(ImDrawList*), 1:p_min(ImVec2), 2:p_max(ImVec2), 3:fill_col(ImU32), 4:grid_step(float), 5:grid_off(ImVec2)
  # ret: void
  return ImGui_RenderColorRectWithAlphaCheckerboard(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(ImVec2))
  # arg: 0:draw_list(ImDrawList*), 1:p_min(ImVec2), 2:p_max(ImVec2), 3:fill_col(ImU32), 4:grid_step(float), 5:grid_off(ImVec2), 6:rounding(float), 7:flags(ImDrawFlags)
  # ret: void
  return ImGui_RenderColorRectWithAlphaCheckerboardEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], 0) if arg.length == 7 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(ImVec2) && arg[6].kind_of?(Float))
  return ImGui_RenderColorRectWithAlphaCheckerboardEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0.0, 0) if arg.length == 6 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(ImVec2))
  return ImGui_RenderColorRectWithAlphaCheckerboardEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(ImVec2) && arg[6].kind_of?(Float) && arg[7].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::RenderColorRectWithAlphaCheckerboard : No matching functions found (#{arg})")
end

.RenderDragDropTargetRectEx(draw_list, bb, rounding) ⇒ Object

arg: draw_list(ImDrawList*), bb(ImRect), rounding(float) ret: void



10154
10155
10156
# File 'lib/imgui.rb', line 10154

def self.RenderDragDropTargetRectEx(draw_list, bb, rounding)
  ImGui_RenderDragDropTargetRectEx(draw_list, bb, rounding)
end

.RenderDragDropTargetRectForItem(bb) ⇒ Object

arg: bb(ImRect) ret: void



10148
10149
10150
# File 'lib/imgui.rb', line 10148

def self.RenderDragDropTargetRectForItem(bb)
  ImGui_RenderDragDropTargetRectForItem(bb)
end

.RenderFrame(*arg) ⇒ Object



13034
13035
13036
13037
13038
13039
13040
13041
13042
13043
13044
# File 'lib/imgui.rb', line 13034

def self.RenderFrame(*arg)
  # arg: 0:p_min(ImVec2), 1:p_max(ImVec2), 2:fill_col(ImU32)
  # ret: void
  return ImGui_RenderFrame(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  # arg: 0:p_min(ImVec2), 1:p_max(ImVec2), 2:fill_col(ImU32), 3:borders(bool), 4:rounding(float)
  # ret: void
  return ImGui_RenderFrameEx(arg[0], arg[1], arg[2], arg[3], 0.0) if arg.length == 4 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)))
  return ImGui_RenderFrameEx(arg[0], arg[1], arg[2], true, 0.0) if arg.length == 3 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  return ImGui_RenderFrameEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)) && arg[4].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::RenderFrame : No matching functions found (#{arg})")
end

.RenderFrameBorder(*arg) ⇒ Object



13046
13047
13048
13049
13050
13051
13052
13053
13054
13055
# File 'lib/imgui.rb', line 13046

def self.RenderFrameBorder(*arg)
  # arg: 0:p_min(ImVec2), 1:p_max(ImVec2)
  # ret: void
  return ImGui_RenderFrameBorder(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2))
  # arg: 0:p_min(ImVec2), 1:p_max(ImVec2), 2:rounding(float)
  # ret: void
  return ImGui_RenderFrameBorderEx(arg[0], arg[1], 0.0) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2))
  return ImGui_RenderFrameBorderEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::RenderFrameBorder : No matching functions found (#{arg})")
end

.RenderMouseCursor(pos, scale, mouse_cursor, col_fill, col_border, col_shadow) ⇒ Object

arg: pos(ImVec2), scale(float), mouse_cursor(ImGuiMouseCursor), col_fill(ImU32), col_border(ImU32), col_shadow(ImU32) ret: void



10711
10712
10713
# File 'lib/imgui.rb', line 10711

def self.RenderMouseCursor(pos, scale, mouse_cursor, col_fill, col_border, col_shadow)
  ImGui_RenderMouseCursor(pos, scale, mouse_cursor, col_fill, col_border, col_shadow)
end

.RenderNavCursor(*arg) ⇒ Object



13069
13070
13071
13072
13073
13074
13075
13076
13077
13078
# File 'lib/imgui.rb', line 13069

def self.RenderNavCursor(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID)
  # ret: void
  return ImGui_RenderNavCursor(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:flags(ImGuiNavRenderCursorFlags)
  # ret: void
  return ImGui_RenderNavCursorEx(arg[0], arg[1], ImGuiNavRenderCursorFlags_None) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer))
  return ImGui_RenderNavCursorEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::RenderNavCursor : No matching functions found (#{arg})")
end

.RenderNavHighlight(*arg) ⇒ Object



13080
13081
13082
13083
13084
13085
13086
13087
13088
13089
# File 'lib/imgui.rb', line 13080

def self.RenderNavHighlight(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID)
  # ret: void
  return ImGui_RenderNavHighlight(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:flags(ImGuiNavRenderCursorFlags)
  # ret: void
  return ImGui_RenderNavHighlightEx(arg[0], arg[1], ImGuiNavRenderCursorFlags_None) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer))
  return ImGui_RenderNavHighlightEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::RenderNavHighlight : No matching functions found (#{arg})")
end

.RenderPlatformWindowsDefault(*arg) ⇒ Object



12736
12737
12738
12739
12740
12741
12742
12743
12744
12745
12746
# File 'lib/imgui.rb', line 12736

def self.RenderPlatformWindowsDefault(*arg)
  # arg: 
  # ret: void
  return ImGui_RenderPlatformWindowsDefault() if arg.empty?
  # arg: 0:platform_render_arg(void*), 1:renderer_render_arg(void*)
  # ret: void
  return ImGui_RenderPlatformWindowsDefaultEx(arg[0], nil) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  return ImGui_RenderPlatformWindowsDefaultEx(nil, nil) if arg.length == 0 && (true)
  return ImGui_RenderPlatformWindowsDefaultEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::RenderPlatformWindowsDefault : No matching functions found (#{arg})")
end

.RenderRectFilledInRangeH(draw_list, rect, col, fill_x0, fill_x1, rounding) ⇒ Object

arg: draw_list(ImDrawList*), rect(ImRect), col(ImU32), fill_x0(float), fill_x1(float), rounding(float) ret: void



10741
10742
10743
# File 'lib/imgui.rb', line 10741

def self.RenderRectFilledInRangeH(draw_list, rect, col, fill_x0, fill_x1, rounding)
  ImGui_RenderRectFilledInRangeH(draw_list, rect, col, fill_x0, fill_x1, rounding)
end

.RenderRectFilledWithHole(draw_list, outer, inner, col, rounding) ⇒ Object

arg: draw_list(ImDrawList*), outer(ImRect), inner(ImRect), col(ImU32), rounding(float) ret: void



10747
10748
10749
# File 'lib/imgui.rb', line 10747

def self.RenderRectFilledWithHole(draw_list, outer, inner, col, rounding)
  ImGui_RenderRectFilledWithHole(draw_list, outer, inner, col, rounding)
end

.RenderText(*arg) ⇒ Object



12998
12999
13000
13001
13002
13003
13004
13005
13006
13007
13008
# File 'lib/imgui.rb', line 12998

def self.RenderText(*arg)
  # arg: 0:pos(ImVec2), 1:text(const char*)
  # ret: void
  return ImGui_RenderText(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(String))
  # arg: 0:pos(ImVec2), 1:text(const char*), 2:text_end(const char*), 3:hide_text_after_hash(bool)
  # ret: void
  return ImGui_RenderTextEx(arg[0], arg[1], arg[2], true) if arg.length == 3 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(String) && arg[2].kind_of?(String))
  return ImGui_RenderTextEx(arg[0], arg[1], nil, true) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(String))
  return ImGui_RenderTextEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(String) && arg[2].kind_of?(String) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::RenderText : No matching functions found (#{arg})")
end

.RenderTextClipped(*arg) ⇒ Object



13010
13011
13012
13013
13014
13015
13016
13017
13018
13019
13020
# File 'lib/imgui.rb', line 13010

def self.RenderTextClipped(*arg)
  # arg: 0:pos_min(ImVec2), 1:pos_max(ImVec2), 2:text(const char*), 3:text_end(const char*), 4:text_size_if_known(const ImVec2*)
  # ret: void
  return ImGui_RenderTextClipped(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(String) && arg[3].kind_of?(String) && arg[4].kind_of?(FFI::Pointer))
  # arg: 0:pos_min(ImVec2), 1:pos_max(ImVec2), 2:text(const char*), 3:text_end(const char*), 4:text_size_if_known(const ImVec2*), 5:align(ImVec2), 6:clip_rect(const ImRect*)
  # ret: void
  return ImGui_RenderTextClippedEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil) if arg.length == 6 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(String) && arg[3].kind_of?(String) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(ImVec2))
  return ImGui_RenderTextClippedEx(arg[0], arg[1], arg[2], arg[3], arg[4], ImVec2.create(0,0), nil) if arg.length == 5 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(String) && arg[3].kind_of?(String) && arg[4].kind_of?(FFI::Pointer))
  return ImGui_RenderTextClippedEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(String) && arg[3].kind_of?(String) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(ImVec2) && arg[6].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::RenderTextClipped : No matching functions found (#{arg})")
end

.RenderTextClippedEx(*arg) ⇒ Object



13022
13023
13024
13025
13026
13027
13028
13029
13030
13031
13032
# File 'lib/imgui.rb', line 13022

def self.RenderTextClippedEx(*arg)
  # arg: 0:draw_list(ImDrawList*), 1:pos_min(ImVec2), 2:pos_max(ImVec2), 3:text(const char*), 4:text_end(const char*), 5:text_size_if_known(const ImVec2*)
  # ret: void
  return ImGui_RenderTextClippedWithDrawList(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(String) && arg[4].kind_of?(String) && arg[5].kind_of?(FFI::Pointer))
  # arg: 0:draw_list(ImDrawList*), 1:pos_min(ImVec2), 2:pos_max(ImVec2), 3:text(const char*), 4:text_end(const char*), 5:text_size_if_known(const ImVec2*), 6:align(ImVec2), 7:clip_rect(const ImRect*)
  # ret: void
  return ImGui_RenderTextClippedWithDrawListEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil) if arg.length == 7 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(String) && arg[4].kind_of?(String) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(ImVec2))
  return ImGui_RenderTextClippedWithDrawListEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], ImVec2.create(0,0), nil) if arg.length == 6 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(String) && arg[4].kind_of?(String) && arg[5].kind_of?(FFI::Pointer))
  return ImGui_RenderTextClippedWithDrawListEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(String) && arg[4].kind_of?(String) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(ImVec2) && arg[7].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::RenderTextClippedEx : No matching functions found (#{arg})")
end

.RenderTextEllipsis(draw_list, pos_min, pos_max, ellipsis_max_x, text, text_end, text_size_if_known) ⇒ Object

arg: draw_list(ImDrawList*), pos_min(ImVec2), pos_max(ImVec2), ellipsis_max_x(float), text(const char*), text_end(const char*), text_size_if_known(const ImVec2*) ret: void



10699
10700
10701
# File 'lib/imgui.rb', line 10699

def self.RenderTextEllipsis(draw_list, pos_min, pos_max, ellipsis_max_x, text, text_end, text_size_if_known)
  ImGui_RenderTextEllipsis(draw_list, pos_min, pos_max, ellipsis_max_x, text, text_end, text_size_if_known)
end

.RenderTextWrapped(pos, text, text_end, wrap_width) ⇒ Object

arg: pos(ImVec2), text(const char*), text_end(const char*), wrap_width(float) ret: void



10693
10694
10695
# File 'lib/imgui.rb', line 10693

def self.RenderTextWrapped(pos, text, text_end, wrap_width)
  ImGui_RenderTextWrapped(pos, text, text_end, wrap_width)
end

.ResetMouseDragDelta(*arg) ⇒ Object



12725
12726
12727
12728
12729
12730
12731
12732
12733
12734
# File 'lib/imgui.rb', line 12725

def self.ResetMouseDragDelta(*arg)
  # arg: 
  # ret: void
  return ImGui_ResetMouseDragDelta() if arg.empty?
  # arg: 0:button(ImGuiMouseButton)
  # ret: void
  return ImGui_ResetMouseDragDeltaEx(0) if arg.length == 0 && (true)
  return ImGui_ResetMouseDragDeltaEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::ResetMouseDragDelta : No matching functions found (#{arg})")
end

.SameLine(*arg) ⇒ Object



11488
11489
11490
11491
11492
11493
11494
11495
11496
11497
11498
# File 'lib/imgui.rb', line 11488

def self.SameLine(*arg)
  # arg: 
  # ret: void
  return ImGui_SameLine() if arg.empty?
  # arg: 0:offset_from_start_x(float), 1:spacing(float)
  # ret: void
  return ImGui_SameLineEx(arg[0], -1.0) if arg.length == 1 && (arg[0].kind_of?(Float))
  return ImGui_SameLineEx(0.0, -1.0) if arg.length == 0 && (true)
  return ImGui_SameLineEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Float) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::SameLine : No matching functions found (#{arg})")
end

.SaveIniSettingsToDisk(ini_filename) ⇒ Object

arg: ini_filename(const char*) ret: void



8757
8758
8759
# File 'lib/imgui.rb', line 8757

def self.SaveIniSettingsToDisk(ini_filename)
  ImGui_SaveIniSettingsToDisk(ini_filename)
end

.SaveIniSettingsToMemory(out_ini_size = nil) ⇒ Object

arg: out_ini_size(size_t*) ret: pointer



8763
8764
8765
# File 'lib/imgui.rb', line 8763

def self.SaveIniSettingsToMemory(out_ini_size = nil)
  ImGui_SaveIniSettingsToMemory(out_ini_size)
end

.ScaleWindowsInViewport(viewport, scale) ⇒ Object

arg: viewport(ImGuiViewportP*), scale(float) ret: void



9217
9218
9219
# File 'lib/imgui.rb', line 9217

def self.ScaleWindowsInViewport(viewport, scale)
  ImGui_ScaleWindowsInViewport(viewport, scale)
end

.Scrollbar(axis) ⇒ Object

arg: axis(ImGuiAxis) ret: void



10795
10796
10797
# File 'lib/imgui.rb', line 10795

def self.Scrollbar(axis)
  ImGui_Scrollbar(axis)
end

.ScrollbarEx(*arg) ⇒ Object



13148
13149
13150
13151
13152
13153
13154
13155
13156
13157
# File 'lib/imgui.rb', line 13148

def self.ScrollbarEx(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:axis(ImGuiAxis), 3:p_scroll_v(ImS64*), 4:avail_v(ImS64), 5:contents_v(ImS64)
  # ret: bool
  return ImGui_ScrollbarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:axis(ImGuiAxis), 3:p_scroll_v(ImS64*), 4:avail_v(ImS64), 5:contents_v(ImS64), 6:draw_rounding_flags(ImDrawFlags)
  # ret: bool
  return ImGui_ScrollbarExEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  return ImGui_ScrollbarExEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::ScrollbarEx : No matching functions found (#{arg})")
end

.ScrollToBringRectIntoView(window, rect) ⇒ Object

arg: window(ImGuiWindow*), rect(ImRect) ret: void



9330
9331
9332
# File 'lib/imgui.rb', line 9330

def self.ScrollToBringRectIntoView(window, rect)
  ImGui_ScrollToBringRectIntoView(window, rect)
end

.ScrollToItem(flags = 0) ⇒ Object

arg: flags(ImGuiScrollFlags) ret: void



9312
9313
9314
# File 'lib/imgui.rb', line 9312

def self.ScrollToItem(flags = 0)
  ImGui_ScrollToItem(flags)
end

.ScrollToRect(window, rect, flags = 0) ⇒ Object

arg: window(ImGuiWindow*), rect(ImRect), flags(ImGuiScrollFlags) ret: void



9318
9319
9320
# File 'lib/imgui.rb', line 9318

def self.ScrollToRect(window, rect, flags = 0)
  ImGui_ScrollToRect(window, rect, flags)
end

.ScrollToRectEx(window, rect, flags = 0) ⇒ Object

arg: window(ImGuiWindow*), rect(ImRect), flags(ImGuiScrollFlags) ret: ImVec2.by_value



9324
9325
9326
# File 'lib/imgui.rb', line 9324

def self.ScrollToRectEx(window, rect, flags = 0)
  ImGui_ScrollToRectEx(window, rect, flags)
end

.Selectable(*arg) ⇒ Object



12242
12243
12244
12245
12246
12247
12248
12249
12250
12251
12252
12253
12254
12255
12256
12257
12258
12259
12260
12261
12262
# File 'lib/imgui.rb', line 12242

def self.Selectable(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_Selectable(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:label(const char*), 1:selected(bool), 2:flags(ImGuiSelectableFlags), 3:size(ImVec2)
  # ret: bool
  return ImGui_SelectableEx(arg[0], arg[1], arg[2], ImVec2.create(0,0)) if arg.length == 3 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)) && arg[2].kind_of?(Integer))
  return ImGui_SelectableEx(arg[0], arg[1], 0, ImVec2.create(0,0)) if arg.length == 2 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  return ImGui_SelectableEx(arg[0], false, 0, ImVec2.create(0,0)) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_SelectableEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2))
  # arg: 0:label(const char*), 1:p_selected(bool*), 2:flags(ImGuiSelectableFlags)
  # ret: bool
  return ImGui_SelectableBoolPtr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_SelectableBoolPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:p_selected(bool*), 2:flags(ImGuiSelectableFlags), 3:size(ImVec2)
  # ret: bool
  return ImGui_SelectableBoolPtrEx(arg[0], arg[1], arg[2], ImVec2.create(0,0)) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_SelectableBoolPtrEx(arg[0], arg[1], 0, ImVec2.create(0,0)) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_SelectableBoolPtrEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::Selectable : No matching functions found (#{arg})")
end

.SeparatorObject

ret: void



7876
7877
7878
# File 'lib/imgui.rb', line 7876

def self.Separator()
  ImGui_Separator()
end

.SeparatorEx(*arg) ⇒ Object



13137
13138
13139
13140
13141
13142
13143
13144
13145
13146
# File 'lib/imgui.rb', line 13137

def self.SeparatorEx(*arg)
  # arg: 0:flags(ImGuiSeparatorFlags)
  # ret: void
  return ImGui_SeparatorEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:flags(ImGuiSeparatorFlags), 1:thickness(float)
  # ret: void
  return ImGui_SeparatorExEx(arg[0], 1.0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_SeparatorExEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::SeparatorEx : No matching functions found (#{arg})")
end

.SeparatorText(label) ⇒ Object

arg: label(const char*) ret: void



7974
7975
7976
# File 'lib/imgui.rb', line 7974

def self.SeparatorText(label)
  ImGui_SeparatorText(label)
end

.SeparatorTextEx(id, label, label_end, extra_width) ⇒ Object

arg: id(ImGuiID), label(const char*), label_end(const char*), extra_width(float) ret: void



10777
10778
10779
# File 'lib/imgui.rb', line 10777

def self.SeparatorTextEx(id, label, label_end, extra_width)
  ImGui_SeparatorTextEx(id, label, label_end, extra_width)
end

.set_vertex(xy, uv, color) ⇒ Object

INTERNAL


672
673
674
675
676
# File 'lib/imgui_impl_raylib.rb', line 672

def self.set_vertex(xy, uv, color)
  Raylib.rlColor4ub(color[0], color[1], color[2], color[3])
  Raylib.rlTexCoord2f(uv[0], uv[1])
  Raylib.rlVertex2f(xy[0], xy[1])
end

.SetActiveID(id, window) ⇒ Object

arg: id(ImGuiID), window(ImGuiWindow*) ret: void



9351
9352
9353
# File 'lib/imgui.rb', line 9351

def self.SetActiveID(id, window)
  ImGui_SetActiveID(id, window)
end

.SetActiveIdUsingAllKeyboardKeysObject

ret: void



9813
9814
9815
# File 'lib/imgui.rb', line 9813

def self.SetActiveIdUsingAllKeyboardKeys()
  ImGui_SetActiveIdUsingAllKeyboardKeys()
end

.SetAllocatorFunctions(alloc_func, free_func, user_data = nil) ⇒ Object

arg: alloc_func(ImGuiMemAllocFunc), free_func(ImGuiMemFreeFunc), user_data(void*) ret: void



8798
8799
8800
# File 'lib/imgui.rb', line 8798

def self.SetAllocatorFunctions(alloc_func, free_func, user_data = nil)
  ImGui_SetAllocatorFunctions(alloc_func, free_func, user_data)
end

.SetClipboardText(text) ⇒ Object

arg: text(const char*) ret: void



8739
8740
8741
# File 'lib/imgui.rb', line 8739

def self.SetClipboardText(text)
  ImGui_SetClipboardText(text)
end

.SetColorEditOptions(flags) ⇒ Object

arg: flags(ImGuiColorEditFlags) ret: void



8074
8075
8076
# File 'lib/imgui.rb', line 8074

def self.SetColorEditOptions(flags)
  ImGui_SetColorEditOptions(flags)
end

.SetColumnOffset(column_index, offset_x) ⇒ Object

arg: column_index(int), offset_x(float) ret: void



8324
8325
8326
# File 'lib/imgui.rb', line 8324

def self.SetColumnOffset(column_index, offset_x)
  ImGui_SetColumnOffset(column_index, offset_x)
end

.SetColumnWidth(column_index, width) ⇒ Object

arg: column_index(int), width(float) ret: void



8312
8313
8314
# File 'lib/imgui.rb', line 8312

def self.SetColumnWidth(column_index, width)
  ImGui_SetColumnWidth(column_index, width)
end

.SetContextName(ctx, name) ⇒ Object

arg: ctx(ImGuiContext*), name(const char*) ret: void



9142
9143
9144
# File 'lib/imgui.rb', line 9142

def self.SetContextName(ctx, name)
  ImGui_SetContextName(ctx, name)
end

.SetCurrentContext(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



7483
7484
7485
# File 'lib/imgui.rb', line 7483

def self.SetCurrentContext(ctx)
  ImGui_SetCurrentContext(ctx)
end

.SetCurrentFont(font, font_size_before_scaling, font_size_after_scaling) ⇒ Object

arg: font(ImFont*), font_size_before_scaling(float), font_size_after_scaling(float) ret: void



9082
9083
9084
# File 'lib/imgui.rb', line 9082

def self.SetCurrentFont(font, font_size_before_scaling, font_size_after_scaling)
  ImGui_SetCurrentFont(font, font_size_before_scaling, font_size_after_scaling)
end

.SetCurrentViewport(window, viewport) ⇒ Object

arg: window(ImGuiWindow*), viewport(ImGuiViewportP*) ret: void



9235
9236
9237
# File 'lib/imgui.rb', line 9235

def self.SetCurrentViewport(window, viewport)
  ImGui_SetCurrentViewport(window, viewport)
end

.SetCursorPos(local_pos) ⇒ Object

arg: local_pos(ImVec2) ret: void



7854
7855
7856
# File 'lib/imgui.rb', line 7854

def self.SetCursorPos(local_pos)
  ImGui_SetCursorPos(local_pos)
end

.SetCursorPosX(local_x) ⇒ Object

arg: local_x(float) ret: void



7860
7861
7862
# File 'lib/imgui.rb', line 7860

def self.SetCursorPosX(local_x)
  ImGui_SetCursorPosX(local_x)
end

.SetCursorPosY(local_y) ⇒ Object

arg: local_y(float) ret: void



7866
7867
7868
# File 'lib/imgui.rb', line 7866

def self.SetCursorPosY(local_y)
  ImGui_SetCursorPosY(local_y)
end

.SetCursorScreenPos(pos) ⇒ Object

arg: pos(ImVec2) ret: void



7828
7829
7830
# File 'lib/imgui.rb', line 7828

def self.SetCursorScreenPos(pos)
  ImGui_SetCursorScreenPos(pos)
end

.SetDragDropPayload(type, data, sz, cond = 0) ⇒ Object

arg: type(const char*), data(const void*), sz(size_t), cond(ImGuiCond) ret: bool



8431
8432
8433
# File 'lib/imgui.rb', line 8431

def self.SetDragDropPayload(type, data, sz, cond = 0)
  ImGui_SetDragDropPayload(type, data, sz, cond)
end

.SetFocusID(id, window) ⇒ Object

arg: id(ImGuiID), window(ImGuiWindow*) ret: void



9357
9358
9359
# File 'lib/imgui.rb', line 9357

def self.SetFocusID(id, window)
  ImGui_SetFocusID(id, window)
end

.SetFontRasterizerDensity(rasterizer_density) ⇒ Object

arg: rasterizer_density(float) ret: void



9094
9095
9096
# File 'lib/imgui.rb', line 9094

def self.SetFontRasterizerDensity(rasterizer_density)
  ImGui_SetFontRasterizerDensity(rasterizer_density)
end

.SetHoveredID(id) ⇒ Object

arg: id(ImGuiID) ret: void



9373
9374
9375
# File 'lib/imgui.rb', line 9373

def self.SetHoveredID(id)
  ImGui_SetHoveredID(id)
end

.SetItemDefaultFocusObject

ret: void



8484
8485
8486
# File 'lib/imgui.rb', line 8484

def self.SetItemDefaultFocus()
  ImGui_SetItemDefaultFocus()
end

.SetItemKeyOwner(*arg) ⇒ Object



12656
12657
12658
12659
12660
12661
12662
12663
12664
# File 'lib/imgui.rb', line 12656

def self.SetItemKeyOwner(*arg)
  # arg: 0:key(ImGuiKey)
  # ret: bool
  return ImGui_SetItemKeyOwner(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:key(ImGuiKey), 1:flags(ImGuiInputFlags)
  # ret: bool
  return ImGui_SetItemKeyOwnerImGuiInputFlags(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SetItemKeyOwner : No matching functions found (#{arg})")
end

.SetItemTooltip(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(…) ret: void



8181
8182
8183
# File 'lib/imgui.rb', line 8181

def self.SetItemTooltip(fmt, *varargs)
  ImGui_SetItemTooltip(fmt, *varargs)
end

.SetKeyboardFocusHere(*arg) ⇒ Object



12523
12524
12525
12526
12527
12528
12529
12530
12531
12532
# File 'lib/imgui.rb', line 12523

def self.SetKeyboardFocusHere(*arg)
  # arg: 
  # ret: void
  return ImGui_SetKeyboardFocusHere() if arg.empty?
  # arg: 0:offset(int)
  # ret: void
  return ImGui_SetKeyboardFocusHereEx(0) if arg.length == 0 && (true)
  return ImGui_SetKeyboardFocusHereEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SetKeyboardFocusHere : No matching functions found (#{arg})")
end

.SetKeyOwner(key, owner_id, flags = 0) ⇒ Object

arg: key(ImGuiKey), owner_id(ImGuiID), flags(ImGuiInputFlags) ret: void



9831
9832
9833
# File 'lib/imgui.rb', line 9831

def self.SetKeyOwner(key, owner_id, flags = 0)
  ImGui_SetKeyOwner(key, owner_id, flags)
end

.SetKeyOwnersForKeyChord(key, owner_id, flags = 0) ⇒ Object

arg: key(ImGuiKeyChord), owner_id(ImGuiID), flags(ImGuiInputFlags) ret: void



9837
9838
9839
# File 'lib/imgui.rb', line 9837

def self.SetKeyOwnersForKeyChord(key, owner_id, flags = 0)
  ImGui_SetKeyOwnersForKeyChord(key, owner_id, flags)
end

.SetLastItemData(item_id, item_flags, status_flags, item_rect) ⇒ Object

arg: item_id(ImGuiID), item_flags(ImGuiItemFlags), status_flags(ImGuiItemStatusFlags), item_rect(ImRect) ret: void



9415
9416
9417
# File 'lib/imgui.rb', line 9415

def self.SetLastItemData(item_id, item_flags, status_flags, item_rect)
  ImGui_SetLastItemData(item_id, item_flags, status_flags, item_rect)
end

.SetMouseCursor(cursor_type) ⇒ Object

arg: cursor_type(ImGuiMouseCursor) ret: void



8722
8723
8724
# File 'lib/imgui.rb', line 8722

def self.SetMouseCursor(cursor_type)
  ImGui_SetMouseCursor(cursor_type)
end

.SetNavCursorVisible(visible) ⇒ Object

arg: visible(bool) ret: void



8490
8491
8492
# File 'lib/imgui.rb', line 8490

def self.SetNavCursorVisible(visible)
  ImGui_SetNavCursorVisible(visible)
end

.SetNavCursorVisibleAfterMoveObject

ret: void



9672
9673
9674
# File 'lib/imgui.rb', line 9672

def self.SetNavCursorVisibleAfterMove()
  ImGui_SetNavCursorVisibleAfterMove()
end

.SetNavFocusScope(focus_scope_id) ⇒ Object

arg: focus_scope_id(ImGuiID) ret: void



9695
9696
9697
# File 'lib/imgui.rb', line 9695

def self.SetNavFocusScope(focus_scope_id)
  ImGui_SetNavFocusScope(focus_scope_id)
end

.SetNavID(id, nav_layer, focus_scope_id, rect_rel) ⇒ Object

arg: id(ImGuiID), nav_layer(ImGuiNavLayer), focus_scope_id(ImGuiID), rect_rel(ImRect) ret: void



9689
9690
9691
# File 'lib/imgui.rb', line 9689

def self.SetNavID(id, nav_layer, focus_scope_id, rect_rel)
  ImGui_SetNavID(id, nav_layer, focus_scope_id, rect_rel)
end

.SetNavWindow(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



9683
9684
9685
# File 'lib/imgui.rb', line 9683

def self.SetNavWindow(window)
  ImGui_SetNavWindow(window)
end

.SetNextFrameWantCaptureKeyboard(want_capture_keyboard) ⇒ Object

arg: want_capture_keyboard(bool) ret: void



8660
8661
8662
# File 'lib/imgui.rb', line 8660

def self.SetNextFrameWantCaptureKeyboard(want_capture_keyboard)
  ImGui_SetNextFrameWantCaptureKeyboard(want_capture_keyboard)
end

.SetNextFrameWantCaptureMouse(want_capture_mouse) ⇒ Object

arg: want_capture_mouse(bool) ret: void



8728
8729
8730
# File 'lib/imgui.rb', line 8728

def self.SetNextFrameWantCaptureMouse(want_capture_mouse)
  ImGui_SetNextFrameWantCaptureMouse(want_capture_mouse)
end

.SetNextItemAllowOverlapObject

ret: void



8495
8496
8497
# File 'lib/imgui.rb', line 8495

def self.SetNextItemAllowOverlap()
  ImGui_SetNextItemAllowOverlap()
end

.SetNextItemColorMarker(col) ⇒ Object

arg: col(ImU32) ret: void



10962
10963
10964
# File 'lib/imgui.rb', line 10962

def self.SetNextItemColorMarker(col)
  ImGui_SetNextItemColorMarker(col)
end

.SetNextItemOpen(is_open, cond = 0) ⇒ Object

arg: is_open(bool), cond(ImGuiCond) ret: void



8090
8091
8092
# File 'lib/imgui.rb', line 8090

def self.SetNextItemOpen(is_open, cond = 0)
  ImGui_SetNextItemOpen(is_open, cond)
end

.SetNextItemRefVal(data_type, p_data) ⇒ Object

arg: data_type(ImGuiDataType), p_data(void*) ret: void



10933
10934
10935
# File 'lib/imgui.rb', line 10933

def self.SetNextItemRefVal(data_type, p_data)
  ImGui_SetNextItemRefVal(data_type, p_data)
end

.SetNextItemSelectionUserData(selection_user_data) ⇒ Object

arg: selection_user_data(ImGuiSelectionUserData) ret: void



8113
8114
8115
# File 'lib/imgui.rb', line 8113

def self.SetNextItemSelectionUserData(selection_user_data)
  ImGui_SetNextItemSelectionUserData(selection_user_data)
end

.SetNextItemShortcut(key_chord, flags = 0) ⇒ Object

arg: key_chord(ImGuiKeyChord), flags(ImGuiInputFlags) ret: void



8666
8667
8668
# File 'lib/imgui.rb', line 8666

def self.SetNextItemShortcut(key_chord, flags = 0)
  ImGui_SetNextItemShortcut(key_chord, flags)
end

.SetNextItemStorageID(storage_id) ⇒ Object

arg: storage_id(ImGuiID) ret: void



8096
8097
8098
# File 'lib/imgui.rb', line 8096

def self.SetNextItemStorageID(storage_id)
  ImGui_SetNextItemStorageID(storage_id)
end

.SetNextItemWidth(item_width) ⇒ Object

arg: item_width(float) ret: void



7790
7791
7792
# File 'lib/imgui.rb', line 7790

def self.SetNextItemWidth(item_width)
  ImGui_SetNextItemWidth(item_width)
end

.SetNextWindowBgAlpha(alpha) ⇒ Object

arg: alpha(float) ret: void



7692
7693
7694
# File 'lib/imgui.rb', line 7692

def self.SetNextWindowBgAlpha(alpha)
  ImGui_SetNextWindowBgAlpha(alpha)
end

.SetNextWindowClass(window_class) ⇒ Object

arg: window_class(const ImGuiWindowClass*) ret: void



8375
8376
8377
# File 'lib/imgui.rb', line 8375

def self.SetNextWindowClass(window_class)
  ImGui_SetNextWindowClass(window_class)
end

.SetNextWindowCollapsed(collapsed, cond = 0) ⇒ Object

arg: collapsed(bool), cond(ImGuiCond) ret: void



7675
7676
7677
# File 'lib/imgui.rb', line 7675

def self.SetNextWindowCollapsed(collapsed, cond = 0)
  ImGui_SetNextWindowCollapsed(collapsed, cond)
end

.SetNextWindowContentSize(size) ⇒ Object

arg: size(ImVec2) ret: void



7669
7670
7671
# File 'lib/imgui.rb', line 7669

def self.SetNextWindowContentSize(size)
  ImGui_SetNextWindowContentSize(size)
end

.SetNextWindowDockID(dock_id, cond = 0) ⇒ Object

arg: dock_id(ImGuiID), cond(ImGuiCond) ret: void



8369
8370
8371
# File 'lib/imgui.rb', line 8369

def self.SetNextWindowDockID(dock_id, cond = 0)
  ImGui_SetNextWindowDockID(dock_id, cond)
end

.SetNextWindowFocusObject

ret: void



7680
7681
7682
# File 'lib/imgui.rb', line 7680

def self.SetNextWindowFocus()
  ImGui_SetNextWindowFocus()
end

.SetNextWindowPos(*arg) ⇒ Object



11302
11303
11304
11305
11306
11307
11308
11309
11310
11311
11312
11313
# File 'lib/imgui.rb', line 11302

def self.SetNextWindowPos(*arg)
  # arg: 0:pos(ImVec2), 1:cond(ImGuiCond)
  # ret: void
  return ImGui_SetNextWindowPos(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  return ImGui_SetNextWindowPos(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(Integer))
  # arg: 0:pos(ImVec2), 1:cond(ImGuiCond), 2:pivot(ImVec2)
  # ret: void
  return ImGui_SetNextWindowPosEx(arg[0], arg[1], ImVec2.create(0,0)) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(Integer))
  return ImGui_SetNextWindowPosEx(arg[0], 0, ImVec2.create(0,0)) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  return ImGui_SetNextWindowPosEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(Integer) && arg[2].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::SetNextWindowPos : No matching functions found (#{arg})")
end

.SetNextWindowRefreshPolicy(flags) ⇒ Object

arg: flags(ImGuiWindowRefreshFlags) ret: void



9052
9053
9054
# File 'lib/imgui.rb', line 9052

def self.SetNextWindowRefreshPolicy(flags)
  ImGui_SetNextWindowRefreshPolicy(flags)
end

.SetNextWindowScroll(scroll) ⇒ Object

arg: scroll(ImVec2) ret: void



7686
7687
7688
# File 'lib/imgui.rb', line 7686

def self.SetNextWindowScroll(scroll)
  ImGui_SetNextWindowScroll(scroll)
end

.SetNextWindowSize(size, cond = 0) ⇒ Object

arg: size(ImVec2), cond(ImGuiCond) ret: void



7657
7658
7659
# File 'lib/imgui.rb', line 7657

def self.SetNextWindowSize(size, cond = 0)
  ImGui_SetNextWindowSize(size, cond)
end

.SetNextWindowSizeConstraints(size_min, size_max, custom_callback = nil, custom_callback_data = nil) ⇒ Object

arg: size_min(ImVec2), size_max(ImVec2), custom_callback(ImGuiSizeCallback), custom_callback_data(void*) ret: void



7663
7664
7665
# File 'lib/imgui.rb', line 7663

def self.SetNextWindowSizeConstraints(size_min, size_max, custom_callback = nil, custom_callback_data = nil)
  ImGui_SetNextWindowSizeConstraints(size_min, size_max, custom_callback, custom_callback_data)
end

.SetNextWindowViewport(viewport_id) ⇒ Object

arg: viewport_id(ImGuiID) ret: void



7698
7699
7700
# File 'lib/imgui.rb', line 7698

def self.SetNextWindowViewport(viewport_id)
  ImGui_SetNextWindowViewport(viewport_id)
end

.SetScrollFromPosX(*arg) ⇒ Object



11393
11394
11395
11396
11397
11398
11399
11400
11401
11402
# File 'lib/imgui.rb', line 11393

def self.SetScrollFromPosX(*arg)
  # arg: 0:local_x(float), 1:center_x_ratio(float)
  # ret: void
  return ImGui_SetScrollFromPosX(arg[0], 0.5) if arg.length == 1 && (arg[0].kind_of?(Float))
  return ImGui_SetScrollFromPosX(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Float) && arg[1].kind_of?(Float))
  # arg: 0:window(ImGuiWindow*), 1:local_x(float), 2:center_x_ratio(float)
  # ret: void
  return ImGui_SetScrollFromPosXImGuiWindowPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Float) && arg[2].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::SetScrollFromPosX : No matching functions found (#{arg})")
end

.SetScrollFromPosY(*arg) ⇒ Object



11404
11405
11406
11407
11408
11409
11410
11411
11412
11413
# File 'lib/imgui.rb', line 11404

def self.SetScrollFromPosY(*arg)
  # arg: 0:local_y(float), 1:center_y_ratio(float)
  # ret: void
  return ImGui_SetScrollFromPosY(arg[0], 0.5) if arg.length == 1 && (arg[0].kind_of?(Float))
  return ImGui_SetScrollFromPosY(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Float) && arg[1].kind_of?(Float))
  # arg: 0:window(ImGuiWindow*), 1:local_y(float), 2:center_y_ratio(float)
  # ret: void
  return ImGui_SetScrollFromPosYImGuiWindowPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Float) && arg[2].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::SetScrollFromPosY : No matching functions found (#{arg})")
end

.SetScrollHereX(center_x_ratio = 0.5) ⇒ Object

arg: center_x_ratio(float) ret: void



7724
7725
7726
# File 'lib/imgui.rb', line 7724

def self.SetScrollHereX(center_x_ratio = 0.5)
  ImGui_SetScrollHereX(center_x_ratio)
end

.SetScrollHereY(center_y_ratio = 0.5) ⇒ Object

arg: center_y_ratio(float) ret: void



7730
7731
7732
# File 'lib/imgui.rb', line 7730

def self.SetScrollHereY(center_y_ratio = 0.5)
  ImGui_SetScrollHereY(center_y_ratio)
end

.SetScrollX(*arg) ⇒ Object



11373
11374
11375
11376
11377
11378
11379
11380
11381
# File 'lib/imgui.rb', line 11373

def self.SetScrollX(*arg)
  # arg: 0:scroll_x(float)
  # ret: void
  return ImGui_SetScrollX(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Float))
  # arg: 0:window(ImGuiWindow*), 1:scroll_x(float)
  # ret: void
  return ImGui_SetScrollXImGuiWindowPtr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::SetScrollX : No matching functions found (#{arg})")
end

.SetScrollY(*arg) ⇒ Object



11383
11384
11385
11386
11387
11388
11389
11390
11391
# File 'lib/imgui.rb', line 11383

def self.SetScrollY(*arg)
  # arg: 0:scroll_y(float)
  # ret: void
  return ImGui_SetScrollY(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Float))
  # arg: 0:window(ImGuiWindow*), 1:scroll_y(float)
  # ret: void
  return ImGui_SetScrollYImGuiWindowPtr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::SetScrollY : No matching functions found (#{arg})")
end

.SetShortcutRouting(key_chord, flags, owner_id) ⇒ Object

arg: key_chord(ImGuiKeyChord), flags(ImGuiInputFlags), owner_id(ImGuiID) ret: bool



9855
9856
9857
# File 'lib/imgui.rb', line 9855

def self.SetShortcutRouting(key_chord, flags, owner_id)
  ImGui_SetShortcutRouting(key_chord, flags, owner_id)
end

.SetStateStorage(storage) ⇒ Object

arg: storage(ImGuiStorage*) ret: void



8613
8614
8615
# File 'lib/imgui.rb', line 8613

def self.SetStateStorage(storage)
  ImGui_SetStateStorage(storage)
end

.SetTabItemClosed(tab_or_docked_window_label) ⇒ Object

arg: tab_or_docked_window_label(const char*) ret: void



8363
8364
8365
# File 'lib/imgui.rb', line 8363

def self.SetTabItemClosed(tab_or_docked_window_label)
  ImGui_SetTabItemClosed(tab_or_docked_window_label)
end

.SetTooltip(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(…) ret: void



8170
8171
8172
# File 'lib/imgui.rb', line 8170

def self.SetTooltip(fmt, *varargs)
  ImGui_SetTooltip(fmt, *varargs)
end

.SetWindowClipRectBeforeSetChannel(window, clip_rect) ⇒ Object

arg: window(ImGuiWindow*), clip_rect(ImRect) ret: void



10226
10227
10228
# File 'lib/imgui.rb', line 10226

def self.SetWindowClipRectBeforeSetChannel(window, clip_rect)
  ImGui_SetWindowClipRectBeforeSetChannel(window, clip_rect)
end

.SetWindowCollapsed(*arg) ⇒ Object



11347
11348
11349
11350
11351
11352
11353
11354
11355
11356
11357
11358
11359
11360
11361
# File 'lib/imgui.rb', line 11347

def self.SetWindowCollapsed(*arg)
  # arg: 0:collapsed(bool), 1:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowCollapsed(arg[0], 0) if arg.length == 1 && ((arg[0].is_a?(TrueClass) || arg[0].is_a?(FalseClass)))
  return ImGui_SetWindowCollapsed(arg[0], arg[1]) if arg.length == 2 && ((arg[0].is_a?(TrueClass) || arg[0].is_a?(FalseClass)) && arg[1].kind_of?(Integer))
  # arg: 0:name(const char*), 1:collapsed(bool), 2:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowCollapsedStr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  return ImGui_SetWindowCollapsedStr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)) && arg[2].kind_of?(Integer))
  # arg: 0:window(ImGuiWindow*), 1:collapsed(bool), 2:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowCollapsedImGuiWindowPtr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  return ImGui_SetWindowCollapsedImGuiWindowPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SetWindowCollapsed : No matching functions found (#{arg})")
end

.SetWindowDock(window, dock_id, cond) ⇒ Object

arg: window(ImGuiWindow*), dock_id(ImGuiID), cond(ImGuiCond) ret: void



10027
10028
10029
# File 'lib/imgui.rb', line 10027

def self.SetWindowDock(window, dock_id, cond)
  ImGui_SetWindowDock(window, dock_id, cond)
end

.SetWindowFocus(*arg) ⇒ Object



11363
11364
11365
11366
11367
11368
11369
11370
11371
# File 'lib/imgui.rb', line 11363

def self.SetWindowFocus(*arg)
  # arg: 
  # ret: void
  return ImGui_SetWindowFocus() if arg.empty?
  # arg: 0:name(const char*)
  # ret: void
  return ImGui_SetWindowFocusStr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  $stderr.puts("[Warning] ImGui::SetWindowFocus : No matching functions found (#{arg})")
end

.SetWindowFontScale(scale) ⇒ Object

arg: scale(float) ret: void



8844
8845
8846
# File 'lib/imgui.rb', line 8844

def self.SetWindowFontScale(scale)
  ImGui_SetWindowFontScale(scale)
end

.SetWindowHiddenAndSkipItemsForCurrentFrame(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



8968
8969
8970
# File 'lib/imgui.rb', line 8968

def self.SetWindowHiddenAndSkipItemsForCurrentFrame(window)
  ImGui_SetWindowHiddenAndSkipItemsForCurrentFrame(window)
end

.SetWindowHitTestHole(window, pos, size) ⇒ Object

arg: window(ImGuiWindow*), pos(ImVec2), size(ImVec2) ret: void



8962
8963
8964
# File 'lib/imgui.rb', line 8962

def self.SetWindowHitTestHole(window, pos, size)
  ImGui_SetWindowHitTestHole(window, pos, size)
end

.SetWindowParentWindowForFocusRoute(window, parent_window) ⇒ Object

arg: window(ImGuiWindow*), parent_window(ImGuiWindow*) ret: void



8974
8975
8976
# File 'lib/imgui.rb', line 8974

def self.SetWindowParentWindowForFocusRoute(window, parent_window)
  ImGui_SetWindowParentWindowForFocusRoute(window, parent_window)
end

.SetWindowPos(*arg) ⇒ Object



11315
11316
11317
11318
11319
11320
11321
11322
11323
11324
11325
11326
11327
11328
11329
# File 'lib/imgui.rb', line 11315

def self.SetWindowPos(*arg)
  # arg: 0:pos(ImVec2), 1:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowPos(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  return ImGui_SetWindowPos(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(Integer))
  # arg: 0:name(const char*), 1:pos(ImVec2), 2:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowPosStr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2))
  return ImGui_SetWindowPosStr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  # arg: 0:window(ImGuiWindow*), 1:pos(ImVec2), 2:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowPosImGuiWindowPtr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2))
  return ImGui_SetWindowPosImGuiWindowPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SetWindowPos : No matching functions found (#{arg})")
end

.SetWindowSize(*arg) ⇒ Object



11331
11332
11333
11334
11335
11336
11337
11338
11339
11340
11341
11342
11343
11344
11345
# File 'lib/imgui.rb', line 11331

def self.SetWindowSize(*arg)
  # arg: 0:size(ImVec2), 1:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowSize(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  return ImGui_SetWindowSize(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(Integer))
  # arg: 0:name(const char*), 1:size(ImVec2), 2:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowSizeStr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2))
  return ImGui_SetWindowSizeStr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  # arg: 0:window(ImGuiWindow*), 1:size(ImVec2), 2:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowSizeImGuiWindowPtr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2))
  return ImGui_SetWindowSizeImGuiWindowPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SetWindowSize : No matching functions found (#{arg})")
end

.SetWindowViewport(window, viewport) ⇒ Object

arg: window(ImGuiWindow*), viewport(ImGuiViewportP*) ret: void



9229
9230
9231
# File 'lib/imgui.rb', line 9229

def self.SetWindowViewport(window, viewport)
  ImGui_SetWindowViewport(window, viewport)
end

.ShadeVertsLinearColorGradientKeepAlpha(draw_list, vert_start_idx, vert_end_idx, gradient_p0, gradient_p1, col0, col1) ⇒ Object

arg: draw_list(ImDrawList*), vert_start_idx(int), vert_end_idx(int), gradient_p0(ImVec2), gradient_p1(ImVec2), col0(ImU32), col1(ImU32) ret: void



10974
10975
10976
# File 'lib/imgui.rb', line 10974

def self.ShadeVertsLinearColorGradientKeepAlpha(draw_list, vert_start_idx, vert_end_idx, gradient_p0, gradient_p1, col0, col1)
  ImGui_ShadeVertsLinearColorGradientKeepAlpha(draw_list, vert_start_idx, vert_end_idx, gradient_p0, gradient_p1, col0, col1)
end

.ShadeVertsLinearUV(draw_list, vert_start_idx, vert_end_idx, a, b, uv_a, uv_b, clamp) ⇒ Object

arg: draw_list(ImDrawList*), vert_start_idx(int), vert_end_idx(int), a(ImVec2), b(ImVec2), uv_a(ImVec2), uv_b(ImVec2), clamp(bool) ret: void



10980
10981
10982
# File 'lib/imgui.rb', line 10980

def self.ShadeVertsLinearUV(draw_list, vert_start_idx, vert_end_idx, a, b, uv_a, uv_b, clamp)
  ImGui_ShadeVertsLinearUV(draw_list, vert_start_idx, vert_end_idx, a, b, uv_a, uv_b, clamp)
end

.ShadeVertsTransformPos(draw_list, vert_start_idx, vert_end_idx, pivot_in, cos_a, sin_a, pivot_out) ⇒ Object

arg: draw_list(ImDrawList*), vert_start_idx(int), vert_end_idx(int), pivot_in(ImVec2), cos_a(float), sin_a(float), pivot_out(ImVec2) ret: void



10986
10987
10988
# File 'lib/imgui.rb', line 10986

def self.ShadeVertsTransformPos(draw_list, vert_start_idx, vert_end_idx, pivot_in, cos_a, sin_a, pivot_out)
  ImGui_ShadeVertsTransformPos(draw_list, vert_start_idx, vert_end_idx, pivot_in, cos_a, sin_a, pivot_out)
end

.Shortcut(*arg) ⇒ Object



12645
12646
12647
12648
12649
12650
12651
12652
12653
12654
# File 'lib/imgui.rb', line 12645

def self.Shortcut(*arg)
  # arg: 0:key_chord(ImGuiKeyChord), 1:flags(ImGuiInputFlags)
  # ret: bool
  return ImGui_Shortcut(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_Shortcut(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  # arg: 0:key_chord(ImGuiKeyChord), 1:flags(ImGuiInputFlags), 2:owner_id(ImGuiID)
  # ret: bool
  return ImGui_ShortcutID(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::Shortcut : No matching functions found (#{arg})")
end

.ShowAboutWindow(p_open = nil) ⇒ Object

arg: p_open(bool*) ret: void



7532
7533
7534
# File 'lib/imgui.rb', line 7532

def self.ShowAboutWindow(p_open = nil)
  ImGui_ShowAboutWindow(p_open)
end

.ShowDebugLogWindow(p_open = nil) ⇒ Object

arg: p_open(bool*) ret: void



7526
7527
7528
# File 'lib/imgui.rb', line 7526

def self.ShowDebugLogWindow(p_open = nil)
  ImGui_ShowDebugLogWindow(p_open)
end

.ShowDemoWindow(p_open = nil) ⇒ Object

arg: p_open(bool*) ret: void



7514
7515
7516
# File 'lib/imgui.rb', line 7514

def self.ShowDemoWindow(p_open = nil)
  ImGui_ShowDemoWindow(p_open)
end

.ShowFontAtlas(atlas) ⇒ Object

arg: atlas(ImFontAtlas*) ret: void



11105
11106
11107
# File 'lib/imgui.rb', line 11105

def self.ShowFontAtlas(atlas)
  ImGui_ShowFontAtlas(atlas)
end

.ShowFontSelector(label) ⇒ Object

arg: label(const char*) ret: void



7550
7551
7552
# File 'lib/imgui.rb', line 7550

def self.ShowFontSelector(label)
  ImGui_ShowFontSelector(label)
end

.ShowIDStackToolWindow(*arg) ⇒ Object



11275
11276
11277
11278
11279
11280
11281
11282
11283
11284
# File 'lib/imgui.rb', line 11275

def self.ShowIDStackToolWindow(*arg)
  # arg: 
  # ret: void
  return ImGui_ShowIDStackToolWindow() if arg.empty?
  # arg: 0:p_open(bool*)
  # ret: void
  return ImGui_ShowIDStackToolWindowEx(nil) if arg.length == 0 && (true)
  return ImGui_ShowIDStackToolWindowEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::ShowIDStackToolWindow : No matching functions found (#{arg})")
end

.ShowMetricsWindow(p_open = nil) ⇒ Object

arg: p_open(bool*) ret: void



7520
7521
7522
# File 'lib/imgui.rb', line 7520

def self.ShowMetricsWindow(p_open = nil)
  ImGui_ShowMetricsWindow(p_open)
end

.ShowStyleEditor(ref = nil) ⇒ Object

arg: ref(ImGuiStyle*) ret: void



7538
7539
7540
# File 'lib/imgui.rb', line 7538

def self.ShowStyleEditor(ref = nil)
  ImGui_ShowStyleEditor(ref)
end

.ShowStyleSelector(label) ⇒ Object

arg: label(const char*) ret: bool



7544
7545
7546
# File 'lib/imgui.rb', line 7544

def self.ShowStyleSelector(label)
  ImGui_ShowStyleSelector(label)
end

.ShowUserGuideObject

ret: void



7555
7556
7557
# File 'lib/imgui.rb', line 7555

def self.ShowUserGuide()
  ImGui_ShowUserGuide()
end

.ShrinkWidths(items, count, width_excess, width_min) ⇒ Object

arg: items(ImGuiShrinkWidthItem*), count(int), width_excess(float), width_min(float) ret: void



9439
9440
9441
# File 'lib/imgui.rb', line 9439

def self.ShrinkWidths(items, count, width_excess, width_min)
  ImGui_ShrinkWidths(items, count, width_excess, width_min)
end

.ShutdownObject

ret: void



9136
9137
9138
# File 'lib/imgui.rb', line 9136

def self.Shutdown()
  ImGui_Shutdown()
end

.SliderAngle(*arg) ⇒ Object



11911
11912
11913
11914
11915
11916
11917
11918
11919
11920
11921
11922
11923
# File 'lib/imgui.rb', line 11911

def self.SliderAngle(*arg)
  # arg: 0:label(const char*), 1:v_rad(float*)
  # ret: bool
  return ImGui_SliderAngle(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v_rad(float*), 2:v_degrees_min(float), 3:v_degrees_max(float), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderAngleEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_SliderAngleEx(arg[0], arg[1], arg[2], arg[3], "%.0f deg", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_SliderAngleEx(arg[0], arg[1], arg[2], +360.0, "%.0f deg", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_SliderAngleEx(arg[0], arg[1], -360.0, +360.0, "%.0f deg", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_SliderAngleEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderAngle : No matching functions found (#{arg})")
end

.SliderBehavior(bb, id, data_type, p_v, p_min, p_max, format, flags, out_grab_bb) ⇒ Object

arg: bb(ImRect), id(ImGuiID), data_type(ImGuiDataType), p_v(void*), p_min(const void*), p_max(const void*), format(const char*), flags(ImGuiSliderFlags), out_grab_bb(ImRect*) ret: bool



10843
10844
10845
# File 'lib/imgui.rb', line 10843

def self.SliderBehavior(bb, id, data_type, p_v, p_min, p_max, format, flags, out_grab_bb)
  ImGui_SliderBehavior(bb, id, data_type, p_v, p_min, p_max, format, flags, out_grab_bb)
end

.SliderFloat(*arg) ⇒ Object



11863
11864
11865
11866
11867
11868
11869
11870
11871
11872
11873
# File 'lib/imgui.rb', line 11863

def self.SliderFloat(*arg)
  # arg: 0:label(const char*), 1:v(float*), 2:v_min(float), 3:v_max(float)
  # ret: bool
  return ImGui_SliderFloat(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  # arg: 0:label(const char*), 1:v(float*), 2:v_min(float), 3:v_max(float), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_SliderFloatEx(arg[0], arg[1], arg[2], arg[3], "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_SliderFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderFloat : No matching functions found (#{arg})")
end

.SliderFloat2(*arg) ⇒ Object



11875
11876
11877
11878
11879
11880
11881
11882
11883
11884
11885
# File 'lib/imgui.rb', line 11875

def self.SliderFloat2(*arg)
  # arg: 0:label(const char*), 1:v(float[2]), 2:v_min(float), 3:v_max(float)
  # ret: bool
  return ImGui_SliderFloat2(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  # arg: 0:label(const char*), 1:v(float[2]), 2:v_min(float), 3:v_max(float), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderFloat2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_SliderFloat2Ex(arg[0], arg[1], arg[2], arg[3], "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_SliderFloat2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderFloat2 : No matching functions found (#{arg})")
end

.SliderFloat3(*arg) ⇒ Object



11887
11888
11889
11890
11891
11892
11893
11894
11895
11896
11897
# File 'lib/imgui.rb', line 11887

def self.SliderFloat3(*arg)
  # arg: 0:label(const char*), 1:v(float[3]), 2:v_min(float), 3:v_max(float)
  # ret: bool
  return ImGui_SliderFloat3(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  # arg: 0:label(const char*), 1:v(float[3]), 2:v_min(float), 3:v_max(float), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderFloat3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_SliderFloat3Ex(arg[0], arg[1], arg[2], arg[3], "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_SliderFloat3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderFloat3 : No matching functions found (#{arg})")
end

.SliderFloat4(*arg) ⇒ Object



11899
11900
11901
11902
11903
11904
11905
11906
11907
11908
11909
# File 'lib/imgui.rb', line 11899

def self.SliderFloat4(*arg)
  # arg: 0:label(const char*), 1:v(float[4]), 2:v_min(float), 3:v_max(float)
  # ret: bool
  return ImGui_SliderFloat4(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  # arg: 0:label(const char*), 1:v(float[4]), 2:v_min(float), 3:v_max(float), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderFloat4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_SliderFloat4Ex(arg[0], arg[1], arg[2], arg[3], "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_SliderFloat4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderFloat4 : No matching functions found (#{arg})")
end

.SliderInt(*arg) ⇒ Object



11925
11926
11927
11928
11929
11930
11931
11932
11933
11934
11935
# File 'lib/imgui.rb', line 11925

def self.SliderInt(*arg)
  # arg: 0:label(const char*), 1:v(int*), 2:v_min(int), 3:v_max(int)
  # ret: bool
  return ImGui_SliderInt(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:v(int*), 2:v_min(int), 3:v_max(int), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String))
  return ImGui_SliderIntEx(arg[0], arg[1], arg[2], arg[3], "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_SliderIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderInt : No matching functions found (#{arg})")
end

.SliderInt2(*arg) ⇒ Object



11937
11938
11939
11940
11941
11942
11943
11944
11945
11946
11947
# File 'lib/imgui.rb', line 11937

def self.SliderInt2(*arg)
  # arg: 0:label(const char*), 1:v(int[2]), 2:v_min(int), 3:v_max(int)
  # ret: bool
  return ImGui_SliderInt2(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:v(int[2]), 2:v_min(int), 3:v_max(int), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderInt2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String))
  return ImGui_SliderInt2Ex(arg[0], arg[1], arg[2], arg[3], "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_SliderInt2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderInt2 : No matching functions found (#{arg})")
end

.SliderInt3(*arg) ⇒ Object



11949
11950
11951
11952
11953
11954
11955
11956
11957
11958
11959
# File 'lib/imgui.rb', line 11949

def self.SliderInt3(*arg)
  # arg: 0:label(const char*), 1:v(int[3]), 2:v_min(int), 3:v_max(int)
  # ret: bool
  return ImGui_SliderInt3(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:v(int[3]), 2:v_min(int), 3:v_max(int), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderInt3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String))
  return ImGui_SliderInt3Ex(arg[0], arg[1], arg[2], arg[3], "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_SliderInt3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderInt3 : No matching functions found (#{arg})")
end

.SliderInt4(*arg) ⇒ Object



11961
11962
11963
11964
11965
11966
11967
11968
11969
11970
11971
# File 'lib/imgui.rb', line 11961

def self.SliderInt4(*arg)
  # arg: 0:label(const char*), 1:v(int[4]), 2:v_min(int), 3:v_max(int)
  # ret: bool
  return ImGui_SliderInt4(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:v(int[4]), 2:v_min(int), 3:v_max(int), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderInt4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String))
  return ImGui_SliderInt4Ex(arg[0], arg[1], arg[2], arg[3], "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_SliderInt4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderInt4 : No matching functions found (#{arg})")
end

.SliderScalar(*arg) ⇒ Object



11973
11974
11975
11976
11977
11978
11979
11980
11981
11982
11983
# File 'lib/imgui.rb', line 11973

def self.SliderScalar(*arg)
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:p_min(const void*), 4:p_max(const void*)
  # ret: bool
  return ImGui_SliderScalar(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:p_min(const void*), 4:p_max(const void*), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String))
  return ImGui_SliderScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer))
  return ImGui_SliderScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderScalar : No matching functions found (#{arg})")
end

.SliderScalarN(*arg) ⇒ Object



11985
11986
11987
11988
11989
11990
11991
11992
11993
11994
11995
# File 'lib/imgui.rb', line 11985

def self.SliderScalarN(*arg)
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:components(int), 4:p_min(const void*), 5:p_max(const void*)
  # ret: bool
  return ImGui_SliderScalarN(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:components(int), 4:p_min(const void*), 5:p_max(const void*), 6:format(const char*), 7:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String))
  return ImGui_SliderScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer))
  return ImGui_SliderScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String) && arg[7].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderScalarN : No matching functions found (#{arg})")
end

.SmallButton(label) ⇒ Object

arg: label(const char*) ret: bool



7980
7981
7982
# File 'lib/imgui.rb', line 7980

def self.SmallButton(label)
  ImGui_SmallButton(label)
end

.SpacingObject

ret: void



7886
7887
7888
# File 'lib/imgui.rb', line 7886

def self.Spacing()
  ImGui_Spacing()
end

.SplitterBehavior(*arg) ⇒ Object



13159
13160
13161
13162
13163
13164
13165
13166
13167
13168
13169
13170
# File 'lib/imgui.rb', line 13159

def self.SplitterBehavior(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:axis(ImGuiAxis), 3:size1(float*), 4:size2(float*), 5:min_size1(float), 6:min_size2(float)
  # ret: bool
  return ImGui_SplitterBehavior(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:axis(ImGuiAxis), 3:size1(float*), 4:size2(float*), 5:min_size1(float), 6:min_size2(float), 7:hover_extend(float), 8:hover_visibility_delay(float), 9:bg_col(ImU32)
  # ret: bool
  return ImGui_SplitterBehaviorEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], 0) if arg.length == 9 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float) && arg[8].kind_of?(Float))
  return ImGui_SplitterBehaviorEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], 0.0, 0) if arg.length == 8 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float))
  return ImGui_SplitterBehaviorEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], 0.0, 0.0, 0) if arg.length == 7 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float))
  return ImGui_SplitterBehaviorEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9]) if arg.length == 10 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float) && arg[8].kind_of?(Float) && arg[9].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SplitterBehavior : No matching functions found (#{arg})")
end

.StartMouseMovingWindow(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



9184
9185
9186
# File 'lib/imgui.rb', line 9184

def self.StartMouseMovingWindow(window)
  ImGui_StartMouseMovingWindow(window)
end

.StartMouseMovingWindowOrNode(window, node, undock) ⇒ Object

arg: window(ImGuiWindow*), node(ImGuiDockNode*), undock(bool) ret: void



9190
9191
9192
# File 'lib/imgui.rb', line 9190

def self.StartMouseMovingWindowOrNode(window, node, undock)
  ImGui_StartMouseMovingWindowOrNode(window, node, undock)
end

.StopMouseMovingWindowObject

ret: void



9195
9196
9197
# File 'lib/imgui.rb', line 9195

def self.StopMouseMovingWindow()
  ImGui_StopMouseMovingWindow()
end

.StyleColorsClassic(dst = nil) ⇒ Object

arg: dst(ImGuiStyle*) ret: void



7578
7579
7580
# File 'lib/imgui.rb', line 7578

def self.StyleColorsClassic(dst = nil)
  ImGui_StyleColorsClassic(dst)
end

.StyleColorsDark(dst = nil) ⇒ Object

arg: dst(ImGuiStyle*) ret: void



7566
7567
7568
# File 'lib/imgui.rb', line 7566

def self.StyleColorsDark(dst = nil)
  ImGui_StyleColorsDark(dst)
end

.StyleColorsLight(dst = nil) ⇒ Object

arg: dst(ImGuiStyle*) ret: void



7572
7573
7574
# File 'lib/imgui.rb', line 7572

def self.StyleColorsLight(dst = nil)
  ImGui_StyleColorsLight(dst)
end

.TabBarAddTab(tab_bar, tab_flags, window) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab_flags(ImGuiTabItemFlags), window(ImGuiWindow*) ret: void



10633
10634
10635
# File 'lib/imgui.rb', line 10633

def self.TabBarAddTab(tab_bar, tab_flags, window)
  ImGui_TabBarAddTab(tab_bar, tab_flags, window)
end

.TabBarCloseTab(tab_bar, tab) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab(ImGuiTabItem*) ret: void



10645
10646
10647
# File 'lib/imgui.rb', line 10645

def self.TabBarCloseTab(tab_bar, tab)
  ImGui_TabBarCloseTab(tab_bar, tab)
end

.TabBarFindByID(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



10579
10580
10581
# File 'lib/imgui.rb', line 10579

def self.TabBarFindByID(id)
  ImGui_TabBarFindByID(id)
end

.TabBarFindMostRecentlySelectedTabForActiveWindow(tab_bar) ⇒ Object

arg: tab_bar(ImGuiTabBar*) ret: pointer



10609
10610
10611
# File 'lib/imgui.rb', line 10609

def self.TabBarFindMostRecentlySelectedTabForActiveWindow(tab_bar)
  ImGui_TabBarFindMostRecentlySelectedTabForActiveWindow(tab_bar)
end

.TabBarFindTabByID(tab_bar, tab_id) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab_id(ImGuiID) ret: pointer



10597
10598
10599
# File 'lib/imgui.rb', line 10597

def self.TabBarFindTabByID(tab_bar, tab_id)
  ImGui_TabBarFindTabByID(tab_bar, tab_id)
end

.TabBarFindTabByOrder(tab_bar, order) ⇒ Object

arg: tab_bar(ImGuiTabBar*), order(int) ret: pointer



10603
10604
10605
# File 'lib/imgui.rb', line 10603

def self.TabBarFindTabByOrder(tab_bar, order)
  ImGui_TabBarFindTabByOrder(tab_bar, order)
end

.TabBarGetCurrentTab(tab_bar) ⇒ Object

arg: tab_bar(ImGuiTabBar*) ret: pointer



10615
10616
10617
# File 'lib/imgui.rb', line 10615

def self.TabBarGetCurrentTab(tab_bar)
  ImGui_TabBarGetCurrentTab(tab_bar)
end

.TabBarGetTabName(tab_bar, tab) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab(ImGuiTabItem*) ret: pointer



10627
10628
10629
# File 'lib/imgui.rb', line 10627

def self.TabBarGetTabName(tab_bar, tab)
  ImGui_TabBarGetTabName(tab_bar, tab)
end

.TabBarGetTabOrder(tab_bar, tab) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab(ImGuiTabItem*) ret: int



10621
10622
10623
# File 'lib/imgui.rb', line 10621

def self.TabBarGetTabOrder(tab_bar, tab)
  ImGui_TabBarGetTabOrder(tab_bar, tab)
end

.TabBarProcessReorder(tab_bar) ⇒ Object

arg: tab_bar(ImGuiTabBar*) ret: bool



10663
10664
10665
# File 'lib/imgui.rb', line 10663

def self.TabBarProcessReorder(tab_bar)
  ImGui_TabBarProcessReorder(tab_bar)
end

.TabBarQueueFocus(*arg) ⇒ Object



12978
12979
12980
12981
12982
12983
12984
12985
12986
# File 'lib/imgui.rb', line 12978

def self.TabBarQueueFocus(*arg)
  # arg: 0:tab_bar(ImGuiTabBar*), 1:tab(ImGuiTabItem*)
  # ret: void
  return ImGui_TabBarQueueFocus(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:tab_bar(ImGuiTabBar*), 1:tab_name(const char*)
  # ret: void
  return ImGui_TabBarQueueFocusStr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(String))
  $stderr.puts("[Warning] ImGui::TabBarQueueFocus : No matching functions found (#{arg})")
end

.TabBarQueueReorder(tab_bar, tab, offset) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab(ImGuiTabItem*), offset(int) ret: void



10651
10652
10653
# File 'lib/imgui.rb', line 10651

def self.TabBarQueueReorder(tab_bar, tab, offset)
  ImGui_TabBarQueueReorder(tab_bar, tab, offset)
end

.TabBarQueueReorderFromMousePos(tab_bar, tab, mouse_pos) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab(ImGuiTabItem*), mouse_pos(ImVec2) ret: void



10657
10658
10659
# File 'lib/imgui.rb', line 10657

def self.TabBarQueueReorderFromMousePos(tab_bar, tab, mouse_pos)
  ImGui_TabBarQueueReorderFromMousePos(tab_bar, tab, mouse_pos)
end

.TabBarRemove(tab_bar) ⇒ Object

arg: tab_bar(ImGuiTabBar*) ret: void



10585
10586
10587
# File 'lib/imgui.rb', line 10585

def self.TabBarRemove(tab_bar)
  ImGui_TabBarRemove(tab_bar)
end

.TabBarRemoveTab(tab_bar, tab_id) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab_id(ImGuiID) ret: void



10639
10640
10641
# File 'lib/imgui.rb', line 10639

def self.TabBarRemoveTab(tab_bar, tab_id)
  ImGui_TabBarRemoveTab(tab_bar, tab_id)
end

.TabItemBackground(draw_list, bb, flags, col) ⇒ Object

arg: draw_list(ImDrawList*), bb(ImRect), flags(ImGuiTabItemFlags), col(ImU32) ret: void



10681
10682
10683
# File 'lib/imgui.rb', line 10681

def self.TabItemBackground(draw_list, bb, flags, col)
  ImGui_TabItemBackground(draw_list, bb, flags, col)
end

.TabItemButton(label, flags = 0) ⇒ Object

arg: label(const char*), flags(ImGuiTabItemFlags) ret: bool



8357
8358
8359
# File 'lib/imgui.rb', line 8357

def self.TabItemButton(label, flags = 0)
  ImGui_TabItemButton(label, flags)
end

.TabItemCalcSize(*arg) ⇒ Object



12988
12989
12990
12991
12992
12993
12994
12995
12996
# File 'lib/imgui.rb', line 12988

def self.TabItemCalcSize(*arg)
  # arg: 0:label(const char*), 1:has_close_button_or_unsaved_marker(bool)
  # ret: ImVec2.by_value
  return ImGui_TabItemCalcSizeStr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  # arg: 0:window(ImGuiWindow*)
  # ret: ImVec2.by_value
  return ImGui_TabItemCalcSize(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::TabItemCalcSize : No matching functions found (#{arg})")
end

.TabItemEx(tab_bar, label, p_open, flags, docked_window) ⇒ Object

arg: tab_bar(ImGuiTabBar*), label(const char*), p_open(bool*), flags(ImGuiTabItemFlags), docked_window(ImGuiWindow*) ret: bool



10669
10670
10671
# File 'lib/imgui.rb', line 10669

def self.TabItemEx(tab_bar, label, p_open, flags, docked_window)
  ImGui_TabItemEx(tab_bar, label, p_open, flags, docked_window)
end

.TabItemLabelAndCloseButton(draw_list, bb, flags, frame_padding, label, tab_id, close_button_id, is_contents_visible, out_just_closed, out_text_clipped) ⇒ Object

arg: draw_list(ImDrawList*), bb(ImRect), flags(ImGuiTabItemFlags), frame_padding(ImVec2), label(const char*), tab_id(ImGuiID), close_button_id(ImGuiID), is_contents_visible(bool), out_just_closed(bool*), out_text_clipped(bool*) ret: void



10687
10688
10689
# File 'lib/imgui.rb', line 10687

def self.TabItemLabelAndCloseButton(draw_list, bb, flags, frame_padding, label, tab_id, close_button_id, is_contents_visible, out_just_closed, out_text_clipped)
  ImGui_TabItemLabelAndCloseButton(draw_list, bb, flags, frame_padding, label, tab_id, close_button_id, is_contents_visible, out_just_closed, out_text_clipped)
end

.TabItemSpacing(str_id, flags, width) ⇒ Object

arg: str_id(const char*), flags(ImGuiTabItemFlags), width(float) ret: void



10675
10676
10677
# File 'lib/imgui.rb', line 10675

def self.TabItemSpacing(str_id, flags, width)
  ImGui_TabItemSpacing(str_id, flags, width)
end

.TableAngledHeadersRowObject

ret: void



8247
8248
8249
# File 'lib/imgui.rb', line 8247

def self.TableAngledHeadersRow()
  ImGui_TableAngledHeadersRow()
end

.TableAngledHeadersRowEx(row_id, angle, max_label_width, data, data_count) ⇒ Object

arg: row_id(ImGuiID), angle(float), max_label_width(float), data(const ImGuiTableHeaderData*), data_count(int) ret: void



10331
10332
10333
# File 'lib/imgui.rb', line 10331

def self.TableAngledHeadersRowEx(row_id, angle, max_label_width, data, data_count)
  ImGui_TableAngledHeadersRowEx(row_id, angle, max_label_width, data, data_count)
end

.TableApplyExternalUnclipRect(table, rect) ⇒ Object

arg: table(ImGuiTable*), rect(ImRect*) ret: void



10384
10385
10386
# File 'lib/imgui.rb', line 10384

def self.TableApplyExternalUnclipRect(table, rect)
  ImGui_TableApplyExternalUnclipRect(table, rect)
end

.TableBeginApplyRequests(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10354
10355
10356
# File 'lib/imgui.rb', line 10354

def self.TableBeginApplyRequests(table)
  ImGui_TableBeginApplyRequests(table)
end

.TableBeginCell(table, column_n) ⇒ Object

arg: table(ImGuiTable*), column_n(int) ret: void



10474
10475
10476
# File 'lib/imgui.rb', line 10474

def self.TableBeginCell(table, column_n)
  ImGui_TableBeginCell(table, column_n)
end

.TableBeginContextMenuPopup(table) ⇒ Object

arg: table(ImGuiTable*) ret: bool



10402
10403
10404
# File 'lib/imgui.rb', line 10402

def self.TableBeginContextMenuPopup(table)
  ImGui_TableBeginContextMenuPopup(table)
end

.TableBeginInitMemory(table, columns_count) ⇒ Object

arg: table(ImGuiTable*), columns_count(int) ret: void



10348
10349
10350
# File 'lib/imgui.rb', line 10348

def self.TableBeginInitMemory(table, columns_count)
  ImGui_TableBeginInitMemory(table, columns_count)
end

.TableBeginRow(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10462
10463
10464
# File 'lib/imgui.rb', line 10462

def self.TableBeginRow(table)
  ImGui_TableBeginRow(table)
end

.TableCalcMaxColumnWidth(table, column_n) ⇒ Object

arg: table(const ImGuiTable*), column_n(int) ret: float



10492
10493
10494
# File 'lib/imgui.rb', line 10492

def self.TableCalcMaxColumnWidth(table, column_n)
  ImGui_TableCalcMaxColumnWidth(table, column_n)
end

.TableDrawBorders(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10390
10391
10392
# File 'lib/imgui.rb', line 10390

def self.TableDrawBorders(table)
  ImGui_TableDrawBorders(table)
end

.TableDrawDefaultContextMenu(table, flags_for_section_to_display) ⇒ Object

arg: table(ImGuiTable*), flags_for_section_to_display(ImGuiTableFlags) ret: void



10396
10397
10398
# File 'lib/imgui.rb', line 10396

def self.TableDrawDefaultContextMenu(table, flags_for_section_to_display)
  ImGui_TableDrawDefaultContextMenu(table, flags_for_section_to_display)
end

.TableEndCell(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10480
10481
10482
# File 'lib/imgui.rb', line 10480

def self.TableEndCell(table)
  ImGui_TableEndCell(table)
end

.TableEndRow(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10468
10469
10470
# File 'lib/imgui.rb', line 10468

def self.TableEndRow(table)
  ImGui_TableEndRow(table)
end

.TableFindByID(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



10342
10343
10344
# File 'lib/imgui.rb', line 10342

def self.TableFindByID(id)
  ImGui_TableFindByID(id)
end

.TableFixColumnSortDirection(table, column) ⇒ Object

arg: table(ImGuiTable*), column(ImGuiTableColumn*) ret: void



10450
10451
10452
# File 'lib/imgui.rb', line 10450

def self.TableFixColumnSortDirection(table, column)
  ImGui_TableFixColumnSortDirection(table, column)
end

.TableFixDisplayOrder(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10426
10427
10428
# File 'lib/imgui.rb', line 10426

def self.TableFixDisplayOrder(table)
  ImGui_TableFixDisplayOrder(table)
end

.TableGcCompactSettingsObject

ret: void



10527
10528
10529
# File 'lib/imgui.rb', line 10527

def self.TableGcCompactSettings()
  ImGui_TableGcCompactSettings()
end

.TableGcCompactTransientBuffers(*arg) ⇒ Object



12968
12969
12970
12971
12972
12973
12974
12975
12976
# File 'lib/imgui.rb', line 12968

def self.TableGcCompactTransientBuffers(*arg)
  # arg: 0:table(ImGuiTable*)
  # ret: void
  return ImGui_TableGcCompactTransientBuffers(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  # arg: 0:table(ImGuiTableTempData*)
  # ret: void
  return ImGui_TableGcCompactTransientBuffersImGuiTableTempDataPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::TableGcCompactTransientBuffers : No matching functions found (#{arg})")
end

.TableGetBoundSettings(table) ⇒ Object

arg: table(ImGuiTable*) ret: pointer



10551
10552
10553
# File 'lib/imgui.rb', line 10551

def self.TableGetBoundSettings(table)
  ImGui_TableGetBoundSettings(table)
end

.TableGetCellBgRect(table, column_n) ⇒ Object

arg: table(const ImGuiTable*), column_n(int) ret: ImRect.by_value



10486
10487
10488
# File 'lib/imgui.rb', line 10486

def self.TableGetCellBgRect(table, column_n)
  ImGui_TableGetCellBgRect(table, column_n)
end

.TableGetColumnCountObject

ret: int



8257
8258
8259
# File 'lib/imgui.rb', line 8257

def self.TableGetColumnCount()
  ImGui_TableGetColumnCount()
end

.TableGetColumnFlags(column_n = -1)) ⇒ Object

arg: column_n(int) ret: int



8273
8274
8275
# File 'lib/imgui.rb', line 8273

def self.TableGetColumnFlags(column_n = -1)
  ImGui_TableGetColumnFlags(column_n)
end

.TableGetColumnIndexObject

ret: int



8262
8263
8264
# File 'lib/imgui.rb', line 8262

def self.TableGetColumnIndex()
  ImGui_TableGetColumnIndex()
end

.TableGetColumnName(*arg) ⇒ Object



12472
12473
12474
12475
12476
12477
12478
12479
12480
12481
# File 'lib/imgui.rb', line 12472

def self.TableGetColumnName(*arg)
  # arg: 0:column_n(int)
  # ret: pointer
  return ImGui_TableGetColumnName(-1) if arg.length == 0 && (true)
  return ImGui_TableGetColumnName(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:table(const ImGuiTable*), 1:column_n(int)
  # ret: pointer
  return ImGui_TableGetColumnNameImGuiTablePtr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::TableGetColumnName : No matching functions found (#{arg})")
end

.TableGetColumnNextSortDirection(column) ⇒ Object

arg: column(ImGuiTableColumn*) ret: uchar



10444
10445
10446
# File 'lib/imgui.rb', line 10444

def self.TableGetColumnNextSortDirection(column)
  ImGui_TableGetColumnNextSortDirection(column)
end

.TableGetColumnResizeID(*arg) ⇒ Object



12957
12958
12959
12960
12961
12962
12963
12964
12965
12966
# File 'lib/imgui.rb', line 12957

def self.TableGetColumnResizeID(*arg)
  # arg: 0:table(ImGuiTable*), 1:column_n(int)
  # ret: uint
  return ImGui_TableGetColumnResizeID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer))
  # arg: 0:table(ImGuiTable*), 1:column_n(int), 2:instance_no(int)
  # ret: uint
  return ImGui_TableGetColumnResizeIDEx(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer))
  return ImGui_TableGetColumnResizeIDEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::TableGetColumnResizeID : No matching functions found (#{arg})")
end

.TableGetColumnWidthAuto(table, column) ⇒ Object

arg: table(ImGuiTable*), column(ImGuiTableColumn*) ret: float



10456
10457
10458
# File 'lib/imgui.rb', line 10456

def self.TableGetColumnWidthAuto(table, column)
  ImGui_TableGetColumnWidthAuto(table, column)
end

.TableGetHeaderAngledMaxLabelWidthObject

ret: float



10304
10305
10306
# File 'lib/imgui.rb', line 10304

def self.TableGetHeaderAngledMaxLabelWidth()
  ImGui_TableGetHeaderAngledMaxLabelWidth()
end

.TableGetHeaderRowHeightObject

ret: float



10299
10300
10301
# File 'lib/imgui.rb', line 10299

def self.TableGetHeaderRowHeight()
  ImGui_TableGetHeaderRowHeight()
end

.TableGetHoveredColumnObject

ret: int



8284
8285
8286
# File 'lib/imgui.rb', line 8284

def self.TableGetHoveredColumn()
  ImGui_TableGetHoveredColumn()
end

.TableGetHoveredRowObject

ret: int



10294
10295
10296
# File 'lib/imgui.rb', line 10294

def self.TableGetHoveredRow()
  ImGui_TableGetHoveredRow()
end

.TableGetInstanceData(table, instance_no) ⇒ Object

arg: table(ImGuiTable*), instance_no(int) ret: pointer



10414
10415
10416
# File 'lib/imgui.rb', line 10414

def self.TableGetInstanceData(table, instance_no)
  ImGui_TableGetInstanceData(table, instance_no)
end

.TableGetInstanceID(table, instance_no) ⇒ Object

arg: table(ImGuiTable*), instance_no(int) ret: uint



10420
10421
10422
# File 'lib/imgui.rb', line 10420

def self.TableGetInstanceID(table, instance_no)
  ImGui_TableGetInstanceID(table, instance_no)
end

.TableGetRowIndexObject

ret: int



8267
8268
8269
# File 'lib/imgui.rb', line 8267

def self.TableGetRowIndex()
  ImGui_TableGetRowIndex()
end

.TableGetSortSpecsObject

ret: pointer



8252
8253
8254
# File 'lib/imgui.rb', line 8252

def self.TableGetSortSpecs()
  ImGui_TableGetSortSpecs()
end

.TableHeader(label) ⇒ Object

arg: label(const char*) ret: void



8237
8238
8239
# File 'lib/imgui.rb', line 8237

def self.TableHeader(label)
  ImGui_TableHeader(label)
end

.TableHeadersRowObject

ret: void



8242
8243
8244
# File 'lib/imgui.rb', line 8242

def self.TableHeadersRow()
  ImGui_TableHeadersRow()
end

.TableLoadSettings(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10533
10534
10535
# File 'lib/imgui.rb', line 10533

def self.TableLoadSettings(table)
  ImGui_TableLoadSettings(table)
end

.TableMergeDrawChannels(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10408
10409
10410
# File 'lib/imgui.rb', line 10408

def self.TableMergeDrawChannels(table)
  ImGui_TableMergeDrawChannels(table)
end

.TableNextColumnObject

ret: bool



8219
8220
8221
# File 'lib/imgui.rb', line 8219

def self.TableNextColumn()
  ImGui_TableNextColumn()
end

.TableNextRow(*arg) ⇒ Object



12446
12447
12448
12449
12450
12451
12452
12453
12454
12455
12456
# File 'lib/imgui.rb', line 12446

def self.TableNextRow(*arg)
  # arg: 
  # ret: void
  return ImGui_TableNextRow() if arg.empty?
  # arg: 0:row_flags(ImGuiTableRowFlags), 1:min_row_height(float)
  # ret: void
  return ImGui_TableNextRowEx(arg[0], 0.0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_TableNextRowEx(0, 0.0) if arg.length == 0 && (true)
  return ImGui_TableNextRowEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::TableNextRow : No matching functions found (#{arg})")
end

.TableOpenContextMenu(*arg) ⇒ Object



12932
12933
12934
12935
12936
12937
12938
12939
12940
12941
# File 'lib/imgui.rb', line 12932

def self.TableOpenContextMenu(*arg)
  # arg: 
  # ret: void
  return ImGui_TableOpenContextMenu() if arg.empty?
  # arg: 0:column_n(int)
  # ret: void
  return ImGui_TableOpenContextMenuEx(-1) if arg.length == 0 && (true)
  return ImGui_TableOpenContextMenuEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::TableOpenContextMenu : No matching functions found (#{arg})")
end

.TablePopBackgroundChannelObject

ret: void



10314
10315
10316
# File 'lib/imgui.rb', line 10314

def self.TablePopBackgroundChannel()
  ImGui_TablePopBackgroundChannel()
end

.TablePopColumnChannelObject

ret: void



10325
10326
10327
# File 'lib/imgui.rb', line 10325

def self.TablePopColumnChannel()
  ImGui_TablePopColumnChannel()
end

.TablePushBackgroundChannelObject

ret: void



10309
10310
10311
# File 'lib/imgui.rb', line 10309

def self.TablePushBackgroundChannel()
  ImGui_TablePushBackgroundChannel()
end

.TablePushColumnChannel(column_n) ⇒ Object

arg: column_n(int) ret: void



10320
10321
10322
# File 'lib/imgui.rb', line 10320

def self.TablePushColumnChannel(column_n)
  ImGui_TablePushColumnChannel(column_n)
end

.TableQueueSetColumnDisplayOrder(table, column_n, dst_order) ⇒ Object

arg: table(ImGuiTable*), column_n(int), dst_order(int) ret: void



10516
10517
10518
# File 'lib/imgui.rb', line 10516

def self.TableQueueSetColumnDisplayOrder(table, column_n, dst_order)
  ImGui_TableQueueSetColumnDisplayOrder(table, column_n, dst_order)
end

.TableRemove(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10522
10523
10524
# File 'lib/imgui.rb', line 10522

def self.TableRemove(table)
  ImGui_TableRemove(table)
end

.TableResetSettings(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10545
10546
10547
# File 'lib/imgui.rb', line 10545

def self.TableResetSettings(table)
  ImGui_TableResetSettings(table)
end

.TableSaveSettings(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10539
10540
10541
# File 'lib/imgui.rb', line 10539

def self.TableSaveSettings(table)
  ImGui_TableSaveSettings(table)
end

.TableSetBgColor(target, color, column_n = -1)) ⇒ Object

arg: target(ImGuiTableBgTarget), color(ImU32), column_n(int) ret: void



8290
8291
8292
# File 'lib/imgui.rb', line 8290

def self.TableSetBgColor(target, color, column_n = -1)
  ImGui_TableSetBgColor(target, color, column_n)
end

.TableSetColumnDisplayOrder(table, column_n, dst_order) ⇒ Object

arg: table(ImGuiTable*), column_n(int), dst_order(int) ret: void



10510
10511
10512
# File 'lib/imgui.rb', line 10510

def self.TableSetColumnDisplayOrder(table, column_n, dst_order)
  ImGui_TableSetColumnDisplayOrder(table, column_n, dst_order)
end

.TableSetColumnEnabled(column_n, v) ⇒ Object

arg: column_n(int), v(bool) ret: void



8279
8280
8281
# File 'lib/imgui.rb', line 8279

def self.TableSetColumnEnabled(column_n, v)
  ImGui_TableSetColumnEnabled(column_n, v)
end

.TableSetColumnIndex(column_n) ⇒ Object

arg: column_n(int) ret: bool



8225
8226
8227
# File 'lib/imgui.rb', line 8225

def self.TableSetColumnIndex(column_n)
  ImGui_TableSetColumnIndex(column_n)
end

.TableSetColumnSortDirection(column_n, sort_direction, append_to_sort_specs) ⇒ Object

arg: column_n(int), sort_direction(ImGuiSortDirection), append_to_sort_specs(bool) ret: void



10289
10290
10291
# File 'lib/imgui.rb', line 10289

def self.TableSetColumnSortDirection(column_n, sort_direction, append_to_sort_specs)
  ImGui_TableSetColumnSortDirection(column_n, sort_direction, append_to_sort_specs)
end

.TableSetColumnWidth(column_n, width) ⇒ Object

arg: column_n(int), width(float) ret: void



10283
10284
10285
# File 'lib/imgui.rb', line 10283

def self.TableSetColumnWidth(column_n, width)
  ImGui_TableSetColumnWidth(column_n, width)
end

.TableSetColumnWidthAutoAll(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10504
10505
10506
# File 'lib/imgui.rb', line 10504

def self.TableSetColumnWidthAutoAll(table)
  ImGui_TableSetColumnWidthAutoAll(table)
end

.TableSetColumnWidthAutoSingle(table, column_n) ⇒ Object

arg: table(ImGuiTable*), column_n(int) ret: void



10498
10499
10500
# File 'lib/imgui.rb', line 10498

def self.TableSetColumnWidthAutoSingle(table, column_n)
  ImGui_TableSetColumnWidthAutoSingle(table, column_n)
end

.TableSettingsAddSettingsHandlerObject

ret: void



10556
10557
10558
# File 'lib/imgui.rb', line 10556

def self.TableSettingsAddSettingsHandler()
  ImGui_TableSettingsAddSettingsHandler()
end

.TableSettingsCreate(id, columns_count) ⇒ Object

arg: id(ImGuiID), columns_count(int) ret: pointer



10562
10563
10564
# File 'lib/imgui.rb', line 10562

def self.TableSettingsCreate(id, columns_count)
  ImGui_TableSettingsCreate(id, columns_count)
end

.TableSettingsFindByID(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



10568
10569
10570
# File 'lib/imgui.rb', line 10568

def self.TableSettingsFindByID(id)
  ImGui_TableSettingsFindByID(id)
end

.TableSetupColumn(*arg) ⇒ Object



12458
12459
12460
12461
12462
12463
12464
12465
12466
12467
12468
12469
12470
# File 'lib/imgui.rb', line 12458

def self.TableSetupColumn(*arg)
  # arg: 0:label(const char*), 1:flags(ImGuiTableColumnFlags)
  # ret: void
  return ImGui_TableSetupColumn(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_TableSetupColumn(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  # arg: 0:label(const char*), 1:flags(ImGuiTableColumnFlags), 2:init_width_or_weight(float), 3:user_id(ImGuiID)
  # ret: void
  return ImGui_TableSetupColumnEx(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Float))
  return ImGui_TableSetupColumnEx(arg[0], arg[1], 0.0, 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  return ImGui_TableSetupColumnEx(arg[0], 0, 0.0, 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_TableSetupColumnEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::TableSetupColumn : No matching functions found (#{arg})")
end

.TableSetupDrawChannels(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10360
10361
10362
# File 'lib/imgui.rb', line 10360

def self.TableSetupDrawChannels(table)
  ImGui_TableSetupDrawChannels(table)
end

.TableSetupScrollFreeze(cols, rows) ⇒ Object

arg: cols(int), rows(int) ret: void



8231
8232
8233
# File 'lib/imgui.rb', line 8231

def self.TableSetupScrollFreeze(cols, rows)
  ImGui_TableSetupScrollFreeze(cols, rows)
end

.TableSortSpecsBuild(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10438
10439
10440
# File 'lib/imgui.rb', line 10438

def self.TableSortSpecsBuild(table)
  ImGui_TableSortSpecsBuild(table)
end

.TableSortSpecsSanitize(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10432
10433
10434
# File 'lib/imgui.rb', line 10432

def self.TableSortSpecsSanitize(table)
  ImGui_TableSortSpecsSanitize(table)
end

.TableUpdateBorders(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10372
10373
10374
# File 'lib/imgui.rb', line 10372

def self.TableUpdateBorders(table)
  ImGui_TableUpdateBorders(table)
end

.TableUpdateColumnsWeightFromWidth(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10378
10379
10380
# File 'lib/imgui.rb', line 10378

def self.TableUpdateColumnsWeightFromWidth(table)
  ImGui_TableUpdateColumnsWeightFromWidth(table)
end

.TableUpdateLayout(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



10366
10367
10368
# File 'lib/imgui.rb', line 10366

def self.TableUpdateLayout(table)
  ImGui_TableUpdateLayout(table)
end

.TeleportMousePos(pos) ⇒ Object

arg: pos(ImVec2) ret: void



9808
9809
9810
# File 'lib/imgui.rb', line 9808

def self.TeleportMousePos(pos)
  ImGui_TeleportMousePos(pos)
end

.TempInputIsActive(id) ⇒ Object

arg: id(ImGuiID) ret: bool



10921
10922
10923
# File 'lib/imgui.rb', line 10921

def self.TempInputIsActive(id)
  ImGui_TempInputIsActive(id)
end

.TempInputScalar(*arg) ⇒ Object



13220
13221
13222
13223
13224
13225
13226
13227
13228
13229
13230
# File 'lib/imgui.rb', line 13220

def self.TempInputScalar(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:label(const char*), 3:data_type(ImGuiDataType), 4:p_data(void*), 5:format(const char*)
  # ret: bool
  return ImGui_TempInputScalar(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:label(const char*), 3:data_type(ImGuiDataType), 4:p_data(void*), 5:format(const char*), 6:p_clamp_min(const void*), 7:p_clamp_max(const void*)
  # ret: bool
  return ImGui_TempInputScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil) if arg.length == 7 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String) && arg[6].kind_of?(FFI::Pointer))
  return ImGui_TempInputScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, nil) if arg.length == 6 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String))
  return ImGui_TempInputScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String) && arg[6].kind_of?(FFI::Pointer) && arg[7].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::TempInputScalar : No matching functions found (#{arg})")
end

.TempInputText(*arg) ⇒ Object



13206
13207
13208
13209
13210
13211
13212
13213
13214
13215
13216
13217
13218
# File 'lib/imgui.rb', line 13206

def self.TempInputText(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:label(const char*), 3:buf(char*), 4:buf_size(size_t), 5:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_TempInputText(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer))
  return ImGui_TempInputText(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:label(const char*), 3:buf(char*), 4:buf_size(size_t), 5:flags(ImGuiInputTextFlags), 6:callback(ImGuiInputTextCallback), 7:user_data(void*)
  # ret: bool
  return ImGui_TempInputTextEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil) if arg.length == 7 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer) && (arg[6].respond_to?(:call) || arg[6].kind_of?(FFI::Pointer)))
  return ImGui_TempInputTextEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, nil) if arg.length == 6 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  return ImGui_TempInputTextEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0, nil, nil) if arg.length == 5 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer))
  return ImGui_TempInputTextEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer) && (arg[6].respond_to?(:call) || arg[6].kind_of?(FFI::Pointer)) && arg[7].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::TempInputText : No matching functions found (#{arg})")
end

.TestKeyOwner(key, owner_id) ⇒ Object

arg: key(ImGuiKey), owner_id(ImGuiID) ret: bool



9843
9844
9845
# File 'lib/imgui.rb', line 9843

def self.TestKeyOwner(key, owner_id)
  ImGui_TestKeyOwner(key, owner_id)
end

.TestShortcutRouting(key_chord, owner_id) ⇒ Object

arg: key_chord(ImGuiKeyChord), owner_id(ImGuiID) ret: bool



9861
9862
9863
# File 'lib/imgui.rb', line 9861

def self.TestShortcutRouting(key_chord, owner_id)
  ImGui_TestShortcutRouting(key_chord, owner_id)
end

.Text(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(…) ret: void



7938
7939
7940
# File 'lib/imgui.rb', line 7938

def self.Text(fmt, *varargs)
  ImGui_Text(fmt, *varargs)
end

.TextAligned(align_x, size_x, fmt, *varargs) ⇒ Object

arg: align_x(float), size_x(float), fmt(const char*), unnamed_arg3(…) ret: void



10759
10760
10761
# File 'lib/imgui.rb', line 10759

def self.TextAligned(align_x, size_x, fmt, *varargs)
  ImGui_TextAligned(align_x, size_x, fmt, *varargs)
end

.TextColored(col, fmt, *varargs) ⇒ Object

arg: col(ImVec4), fmt(const char*), unnamed_arg2(…) ret: void



7944
7945
7946
# File 'lib/imgui.rb', line 7944

def self.TextColored(col, fmt, *varargs)
  ImGui_TextColored(col, fmt, *varargs)
end

.TextDisabled(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(…) ret: void



7950
7951
7952
# File 'lib/imgui.rb', line 7950

def self.TextDisabled(fmt, *varargs)
  ImGui_TextDisabled(fmt, *varargs)
end

.TextEx(*arg) ⇒ Object



13113
13114
13115
13116
13117
13118
13119
13120
13121
13122
13123
# File 'lib/imgui.rb', line 13113

def self.TextEx(*arg)
  # arg: 0:text(const char*)
  # ret: void
  return ImGui_TextEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:text(const char*), 1:text_end(const char*), 2:flags(ImGuiTextFlags)
  # ret: void
  return ImGui_TextExEx(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  return ImGui_TextExEx(arg[0], nil, 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_TextExEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::TextEx : No matching functions found (#{arg})")
end

arg: label(const char*) ret: bool



8015
8016
8017
# File 'lib/imgui.rb', line 8015

def self.TextLink(label)
  ImGui_TextLink(label)
end

.TextLinkOpenURL(*arg) ⇒ Object



11602
11603
11604
11605
11606
11607
11608
11609
11610
11611
# File 'lib/imgui.rb', line 11602

def self.TextLinkOpenURL(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_TextLinkOpenURL(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:label(const char*), 1:url(const char*)
  # ret: bool
  return ImGui_TextLinkOpenURLEx(arg[0], nil) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_TextLinkOpenURLEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  $stderr.puts("[Warning] ImGui::TextLinkOpenURL : No matching functions found (#{arg})")
end

.TextUnformatted(*arg) ⇒ Object



11554
11555
11556
11557
11558
11559
11560
11561
11562
11563
# File 'lib/imgui.rb', line 11554

def self.TextUnformatted(*arg)
  # arg: 0:text(const char*)
  # ret: void
  return ImGui_TextUnformatted(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:text(const char*), 1:text_end(const char*)
  # ret: void
  return ImGui_TextUnformattedEx(arg[0], nil) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_TextUnformattedEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  $stderr.puts("[Warning] ImGui::TextUnformatted : No matching functions found (#{arg})")
end

.TextWrapped(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(…) ret: void



7956
7957
7958
# File 'lib/imgui.rb', line 7956

def self.TextWrapped(fmt, *varargs)
  ImGui_TextWrapped(fmt, *varargs)
end

.TranslateWindowsInViewport(viewport, old_pos, new_pos, old_size, new_size) ⇒ Object

arg: viewport(ImGuiViewportP*), old_pos(ImVec2), new_pos(ImVec2), old_size(ImVec2), new_size(ImVec2) ret: void



9211
9212
9213
# File 'lib/imgui.rb', line 9211

def self.TranslateWindowsInViewport(viewport, old_pos, new_pos, old_size, new_size)
  ImGui_TranslateWindowsInViewport(viewport, old_pos, new_pos, old_size, new_size)
end

.TreeNode(*arg) ⇒ Object



12193
12194
12195
12196
12197
12198
12199
12200
12201
12202
12203
12204
# File 'lib/imgui.rb', line 12193

def self.TreeNode(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_TreeNode(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:str_id(const char*), 1:fmt(const char*), 2:__unnamed_arg2__(...)
  # ret: bool
  return ImGui_TreeNodeStr(arg[0], arg[1], *arg[2..]) if arg.length >= 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  # arg: 0:ptr_id(const void*), 1:fmt(const char*), 2:__unnamed_arg2__(...)
  # ret: bool
  return ImGui_TreeNodePtr(arg[0], arg[1], *arg[2..]) if arg.length >= 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(String))
  $stderr.puts("[Warning] ImGui::TreeNode : No matching functions found (#{arg})")
end

.TreeNodeBehavior(*arg) ⇒ Object



13172
13173
13174
13175
13176
13177
13178
13179
13180
13181
# File 'lib/imgui.rb', line 13172

def self.TreeNodeBehavior(*arg)
  # arg: 0:id(ImGuiID), 1:flags(ImGuiTreeNodeFlags), 2:label(const char*)
  # ret: bool
  return ImGui_TreeNodeBehavior(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String))
  # arg: 0:id(ImGuiID), 1:flags(ImGuiTreeNodeFlags), 2:label(const char*), 3:label_end(const char*)
  # ret: bool
  return ImGui_TreeNodeBehaviorEx(arg[0], arg[1], arg[2], nil) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String))
  return ImGui_TreeNodeBehaviorEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(String))
  $stderr.puts("[Warning] ImGui::TreeNodeBehavior : No matching functions found (#{arg})")
end

.TreeNodeDrawLineToChildNode(target_pos) ⇒ Object

arg: target_pos(ImVec2) ret: void



10849
10850
10851
# File 'lib/imgui.rb', line 10849

def self.TreeNodeDrawLineToChildNode(target_pos)
  ImGui_TreeNodeDrawLineToChildNode(target_pos)
end

.TreeNodeDrawLineToTreePop(data) ⇒ Object

arg: data(const ImGuiTreeNodeStackData*) ret: void



10855
10856
10857
# File 'lib/imgui.rb', line 10855

def self.TreeNodeDrawLineToTreePop(data)
  ImGui_TreeNodeDrawLineToTreePop(data)
end

.TreeNodeEx(*arg) ⇒ Object



12206
12207
12208
12209
12210
12211
12212
12213
12214
12215
12216
12217
12218
# File 'lib/imgui.rb', line 12206

def self.TreeNodeEx(*arg)
  # arg: 0:label(const char*), 1:flags(ImGuiTreeNodeFlags)
  # ret: bool
  return ImGui_TreeNodeEx(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_TreeNodeEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  # arg: 0:str_id(const char*), 1:flags(ImGuiTreeNodeFlags), 2:fmt(const char*), 3:__unnamed_arg3__(...)
  # ret: bool
  return ImGui_TreeNodeExStr(arg[0], arg[1], arg[2], *arg[3..]) if arg.length >= 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String))
  # arg: 0:ptr_id(const void*), 1:flags(ImGuiTreeNodeFlags), 2:fmt(const char*), 3:__unnamed_arg3__(...)
  # ret: bool
  return ImGui_TreeNodeExPtr(arg[0], arg[1], arg[2], *arg[3..]) if arg.length >= 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String))
  $stderr.puts("[Warning] ImGui::TreeNodeEx : No matching functions found (#{arg})")
end

.TreeNodeGetOpen(storage_id) ⇒ Object

arg: storage_id(ImGuiID) ret: bool



8102
8103
8104
# File 'lib/imgui.rb', line 8102

def self.TreeNodeGetOpen(storage_id)
  ImGui_TreeNodeGetOpen(storage_id)
end

.TreeNodeSetOpen(storage_id, open) ⇒ Object

arg: storage_id(ImGuiID), open(bool) ret: void



10867
10868
10869
# File 'lib/imgui.rb', line 10867

def self.TreeNodeSetOpen(storage_id, open)
  ImGui_TreeNodeSetOpen(storage_id, open)
end

.TreeNodeUpdateNextOpen(storage_id, flags) ⇒ Object

arg: storage_id(ImGuiID), flags(ImGuiTreeNodeFlags) ret: bool



10873
10874
10875
# File 'lib/imgui.rb', line 10873

def self.TreeNodeUpdateNextOpen(storage_id, flags)
  ImGui_TreeNodeUpdateNextOpen(storage_id, flags)
end

.TreePopObject

ret: void



8079
8080
8081
# File 'lib/imgui.rb', line 8079

def self.TreePop()
  ImGui_TreePop()
end

.TreePush(*arg) ⇒ Object



12220
12221
12222
12223
12224
12225
12226
12227
12228
# File 'lib/imgui.rb', line 12220

def self.TreePush(*arg)
  # arg: 0:str_id(const char*)
  # ret: void
  return ImGui_TreePush(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:ptr_id(const void*)
  # ret: void
  return ImGui_TreePushPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::TreePush : No matching functions found (#{arg})")
end

.TreePushOverrideID(id) ⇒ Object

arg: id(ImGuiID) ret: void



10861
10862
10863
# File 'lib/imgui.rb', line 10861

def self.TreePushOverrideID(id)
  ImGui_TreePushOverrideID(id)
end

.TypingSelectFindBestLeadingMatch(req, items_count, get_item_name_func, user_data) ⇒ Object

arg: req(ImGuiTypingSelectRequest*), items_count(int), get_item_name_func(const char* (*get_item_name_func)(void*, int)), user_data(void*) ret: int



10172
10173
10174
# File 'lib/imgui.rb', line 10172

def self.TypingSelectFindBestLeadingMatch(req, items_count, get_item_name_func, user_data)
  ImGui_TypingSelectFindBestLeadingMatch(req, items_count, get_item_name_func, user_data)
end

.TypingSelectFindMatch(req, items_count, get_item_name_func, user_data, nav_item_idx) ⇒ Object

arg: req(ImGuiTypingSelectRequest*), items_count(int), get_item_name_func(const char* (*get_item_name_func)(void*, int)), user_data(void*), nav_item_idx(int) ret: int



10160
10161
10162
# File 'lib/imgui.rb', line 10160

def self.TypingSelectFindMatch(req, items_count, get_item_name_func, user_data, nav_item_idx)
  ImGui_TypingSelectFindMatch(req, items_count, get_item_name_func, user_data, nav_item_idx)
end

.TypingSelectFindNextSingleCharMatch(req, items_count, get_item_name_func, user_data, nav_item_idx) ⇒ Object

arg: req(ImGuiTypingSelectRequest*), items_count(int), get_item_name_func(const char* (*get_item_name_func)(void*, int)), user_data(void*), nav_item_idx(int) ret: int



10166
10167
10168
# File 'lib/imgui.rb', line 10166

def self.TypingSelectFindNextSingleCharMatch(req, items_count, get_item_name_func, user_data, nav_item_idx)
  ImGui_TypingSelectFindNextSingleCharMatch(req, items_count, get_item_name_func, user_data, nav_item_idx)
end

.Unindent(*arg) ⇒ Object



11511
11512
11513
11514
11515
11516
11517
11518
11519
11520
# File 'lib/imgui.rb', line 11511

def self.Unindent(*arg)
  # arg: 
  # ret: void
  return ImGui_Unindent() if arg.empty?
  # arg: 0:indent_w(float)
  # ret: void
  return ImGui_UnindentEx(0.0) if arg.length == 0 && (true)
  return ImGui_UnindentEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::Unindent : No matching functions found (#{arg})")
end

.UnregisterFontAtlas(atlas) ⇒ Object

arg: atlas(ImFontAtlas*) ret: void



9076
9077
9078
# File 'lib/imgui.rb', line 9076

def self.UnregisterFontAtlas(atlas)
  ImGui_UnregisterFontAtlas(atlas)
end

.UnregisterUserTexture(tex) ⇒ Object

arg: tex(ImTextureData*) ret: void



9064
9065
9066
# File 'lib/imgui.rb', line 9064

def self.UnregisterUserTexture(tex)
  ImGui_UnregisterUserTexture(tex)
end

.UpdateCurrentFontSize(restore_font_size_after_scaling) ⇒ Object

arg: restore_font_size_after_scaling(float) ret: void



9088
9089
9090
# File 'lib/imgui.rb', line 9088

def self.UpdateCurrentFontSize(restore_font_size_after_scaling)
  ImGui_UpdateCurrentFontSize(restore_font_size_after_scaling)
end

.UpdateHoveredWindowAndCaptureFlags(mouse_pos) ⇒ Object

arg: mouse_pos(ImVec2) ret: void



9172
9173
9174
# File 'lib/imgui.rb', line 9172

def self.UpdateHoveredWindowAndCaptureFlags(mouse_pos)
  ImGui_UpdateHoveredWindowAndCaptureFlags(mouse_pos)
end

.UpdateInputEvents(trickle_fast_inputs) ⇒ Object

arg: trickle_fast_inputs(bool) ret: void



9166
9167
9168
# File 'lib/imgui.rb', line 9166

def self.UpdateInputEvents(trickle_fast_inputs)
  ImGui_UpdateInputEvents(trickle_fast_inputs)
end

.UpdateMouseMovingWindowEndFrameObject

ret: void



9205
9206
9207
# File 'lib/imgui.rb', line 9205

def self.UpdateMouseMovingWindowEndFrame()
  ImGui_UpdateMouseMovingWindowEndFrame()
end

.UpdateMouseMovingWindowNewFrameObject

ret: void



9200
9201
9202
# File 'lib/imgui.rb', line 9200

def self.UpdateMouseMovingWindowNewFrame()
  ImGui_UpdateMouseMovingWindowNewFrame()
end

.UpdatePlatformWindowsObject

ret: void



8821
8822
8823
# File 'lib/imgui.rb', line 8821

def self.UpdatePlatformWindows()
  ImGui_UpdatePlatformWindows()
end

arg: window(ImGuiWindow*), flags(ImGuiWindowFlags), parent_window(ImGuiWindow*) ret: void



8914
8915
8916
# File 'lib/imgui.rb', line 8914

def self.UpdateWindowParentAndRootLinks(window, flags, parent_window)
  ImGui_UpdateWindowParentAndRootLinks(window, flags, parent_window)
end

.UpdateWindowSkipRefresh(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



8920
8921
8922
# File 'lib/imgui.rb', line 8920

def self.UpdateWindowSkipRefresh(window)
  ImGui_UpdateWindowSkipRefresh(window)
end

.VSliderFloat(*arg) ⇒ Object



11997
11998
11999
12000
12001
12002
12003
12004
12005
12006
12007
# File 'lib/imgui.rb', line 11997

def self.VSliderFloat(*arg)
  # arg: 0:label(const char*), 1:size(ImVec2), 2:v(float*), 3:v_min(float), 4:v_max(float)
  # ret: bool
  return ImGui_VSliderFloat(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  # arg: 0:label(const char*), 1:size(ImVec2), 2:v(float*), 3:v_min(float), 4:v_max(float), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_VSliderFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String))
  return ImGui_VSliderFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], "%.3f", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  return ImGui_VSliderFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::VSliderFloat : No matching functions found (#{arg})")
end

.VSliderInt(*arg) ⇒ Object



12009
12010
12011
12012
12013
12014
12015
12016
12017
12018
12019
# File 'lib/imgui.rb', line 12009

def self.VSliderInt(*arg)
  # arg: 0:label(const char*), 1:size(ImVec2), 2:v(int*), 3:v_min(int), 4:v_max(int)
  # ret: bool
  return ImGui_VSliderInt(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  # arg: 0:label(const char*), 1:size(ImVec2), 2:v(int*), 3:v_min(int), 4:v_max(int), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_VSliderIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_VSliderIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], "%d", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_VSliderIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::VSliderInt : No matching functions found (#{arg})")
end

.VSliderScalar(*arg) ⇒ Object



12021
12022
12023
12024
12025
12026
12027
12028
12029
12030
12031
# File 'lib/imgui.rb', line 12021

def self.VSliderScalar(*arg)
  # arg: 0:label(const char*), 1:size(ImVec2), 2:data_type(ImGuiDataType), 3:p_data(void*), 4:p_min(const void*), 5:p_max(const void*)
  # ret: bool
  return ImGui_VSliderScalar(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:size(ImVec2), 2:data_type(ImGuiDataType), 3:p_data(void*), 4:p_min(const void*), 5:p_max(const void*), 6:format(const char*), 7:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_VSliderScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String))
  return ImGui_VSliderScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer))
  return ImGui_VSliderScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String) && arg[7].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::VSliderScalar : No matching functions found (#{arg})")
end

.WindowPosAbsToRel(window, p) ⇒ Object

arg: window(ImGuiWindow*), p(ImVec2) ret: ImVec2.by_value



8992
8993
8994
# File 'lib/imgui.rb', line 8992

def self.WindowPosAbsToRel(window, p)
  ImGui_WindowPosAbsToRel(window, p)
end

.WindowPosRelToAbs(window, p) ⇒ Object

arg: window(ImGuiWindow*), p(ImVec2) ret: ImVec2.by_value



8998
8999
9000
# File 'lib/imgui.rb', line 8998

def self.WindowPosRelToAbs(window, p)
  ImGui_WindowPosRelToAbs(window, p)
end

.WindowRectAbsToRel(window, r) ⇒ Object

arg: window(ImGuiWindow*), r(ImRect) ret: ImRect.by_value



8980
8981
8982
# File 'lib/imgui.rb', line 8980

def self.WindowRectAbsToRel(window, r)
  ImGui_WindowRectAbsToRel(window, r)
end

.WindowRectRelToAbs(window, r) ⇒ Object

arg: window(ImGuiWindow*), r(ImRect) ret: ImRect.by_value



8986
8987
8988
# File 'lib/imgui.rb', line 8986

def self.WindowRectRelToAbs(window, r)
  ImGui_WindowRectRelToAbs(window, r)
end